12:26:35.833 [main] DEBUG io.netty.handler.ssl.BouncyCastlePemReader -- Parsed PEM object of type org.bouncycastle.asn1.pkcs.PrivateKeyInfo and assume key is not encrypted
12:26:35.844 [main] INFO org.opendaylight.gnmi.simulatordevice.impl.SimulatedGnmiDevice -- Combination of server certificate and key not provided, using default ones.
12:26:35.855 [mdsal-subscription-counters11] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@42ba39bd} unlocked
12:26:35.855 [mdsal-subscription-counters11] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@42ba39bd} readied
12:26:35.856 [mdsal-subscription-counters11] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Submitting transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@42ba39bd}
12:26:35.856 [mdsal-subscription-counters11] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@42ba39bd} completed successfully
12:26:35.856 [mdsal-subscription-counters11] DEBUG org.opendaylight.restconf.server.mdsal.MdsalRestconfStreamRegistry -- Subscription receivers updated successfully
12:26:36.122 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-openflow-types]} started phase SOURCE_PRE_LINKAGE
12:26:36.122 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-vlan-types]} started phase SOURCE_PRE_LINKAGE
12:26:36.122 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-openflow]} started phase SOURCE_PRE_LINKAGE
12:26:36.122 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-interfaces]} started phase SOURCE_PRE_LINKAGE
12:26:36.122 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-if-aggregate]} started phase SOURCE_PRE_LINKAGE
12:26:36.122 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [ietf-interfaces]} started phase SOURCE_PRE_LINKAGE
12:26:36.122 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-inet-types]} started phase SOURCE_PRE_LINKAGE
12:26:36.122 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-aaa-radius]} started phase SOURCE_PRE_LINKAGE
12:26:36.122 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-aaa]} started phase SOURCE_PRE_LINKAGE
12:26:36.122 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [iana-if-type]} started phase SOURCE_PRE_LINKAGE
12:26:36.122 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-system]} started phase SOURCE_PRE_LINKAGE
12:26:36.122 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-aaa-types]} started phase SOURCE_PRE_LINKAGE
12:26:36.122 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-extensions]} started phase SOURCE_PRE_LINKAGE
12:26:36.122 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-system-logging]} started phase SOURCE_PRE_LINKAGE
12:26:36.122 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-if-types]} started phase SOURCE_PRE_LINKAGE
12:26:36.122 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-alarm-types]} started phase SOURCE_PRE_LINKAGE
12:26:36.122 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-platform]} started phase SOURCE_PRE_LINKAGE
12:26:36.122 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-platform-types]} started phase SOURCE_PRE_LINKAGE
12:26:36.122 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [gnmi-test-aug]} started phase SOURCE_PRE_LINKAGE
12:26:36.122 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [gnmi-test-model]} started phase SOURCE_PRE_LINKAGE
12:26:36.122 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-alarms]} started phase SOURCE_PRE_LINKAGE
12:26:36.122 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-system-terminal]} started phase SOURCE_PRE_LINKAGE
12:26:36.122 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-yang-types]} started phase SOURCE_PRE_LINKAGE
12:26:36.122 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-vlan]} started phase SOURCE_PRE_LINKAGE
12:26:36.122 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-if-ethernet]} started phase SOURCE_PRE_LINKAGE
12:26:36.122 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [ietf-yang-types]} started phase SOURCE_PRE_LINKAGE
12:26:36.122 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-license]} started phase SOURCE_PRE_LINKAGE
12:26:36.122 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-messages]} started phase SOURCE_PRE_LINKAGE
12:26:36.122 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-types]} started phase SOURCE_PRE_LINKAGE
12:26:36.122 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-procmon]} started phase SOURCE_PRE_LINKAGE
12:26:36.122 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-aaa-tacacs]} started phase SOURCE_PRE_LINKAGE
12:26:36.122 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.BuildGlobalContext -- Global phase SOURCE_PRE_LINKAGE started
12:26:36.124 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-extensions]} finished phase SOURCE_PRE_LINKAGE
12:26:36.124 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-if-types]} finished phase SOURCE_PRE_LINKAGE
12:26:36.124 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-alarm-types]} finished phase SOURCE_PRE_LINKAGE
12:26:36.124 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-system-terminal]} finished phase SOURCE_PRE_LINKAGE
12:26:36.124 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-yang-types]} finished phase SOURCE_PRE_LINKAGE
12:26:36.124 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [ietf-yang-types]} finished phase SOURCE_PRE_LINKAGE
12:26:36.124 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-license]} finished phase SOURCE_PRE_LINKAGE
12:26:36.124 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-types]} finished phase SOURCE_PRE_LINKAGE
12:26:36.124 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-procmon]} finished phase SOURCE_PRE_LINKAGE
12:26:36.124 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-openflow-types]} finished phase SOURCE_PRE_LINKAGE
12:26:36.124 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-vlan-types]} finished phase SOURCE_PRE_LINKAGE
12:26:36.124 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [ietf-interfaces]} finished phase SOURCE_PRE_LINKAGE
12:26:36.124 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-inet-types]} finished phase SOURCE_PRE_LINKAGE
12:26:36.124 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [iana-if-type]} finished phase SOURCE_PRE_LINKAGE
12:26:36.124 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-aaa-types]} finished phase SOURCE_PRE_LINKAGE
12:26:36.124 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-system-logging]} finished phase SOURCE_PRE_LINKAGE
12:26:36.124 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-platform-types]} finished phase SOURCE_PRE_LINKAGE
12:26:36.124 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [gnmi-test-model]} finished phase SOURCE_PRE_LINKAGE
12:26:36.124 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-messages]} finished phase SOURCE_PRE_LINKAGE
12:26:36.124 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-aaa-tacacs]} finished phase SOURCE_PRE_LINKAGE
12:26:36.124 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-interfaces]} finished phase SOURCE_PRE_LINKAGE
12:26:36.124 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-aaa-radius]} finished phase SOURCE_PRE_LINKAGE
12:26:36.124 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-aaa]} finished phase SOURCE_PRE_LINKAGE
12:26:36.124 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-platform]} finished phase SOURCE_PRE_LINKAGE
12:26:36.124 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [gnmi-test-aug]} finished phase SOURCE_PRE_LINKAGE
12:26:36.124 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-alarms]} finished phase SOURCE_PRE_LINKAGE
12:26:36.124 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-if-ethernet]} finished phase SOURCE_PRE_LINKAGE
12:26:36.124 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-if-aggregate]} finished phase SOURCE_PRE_LINKAGE
12:26:36.124 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-system]} finished phase SOURCE_PRE_LINKAGE
12:26:36.124 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-vlan]} finished phase SOURCE_PRE_LINKAGE
12:26:36.124 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-openflow]} finished phase SOURCE_PRE_LINKAGE
12:26:36.124 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.BuildGlobalContext -- Global phase SOURCE_PRE_LINKAGE finished
12:26:36.124 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-openflow-types]} started phase SOURCE_LINKAGE
12:26:36.124 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-vlan-types]} started phase SOURCE_LINKAGE
12:26:36.124 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-openflow]} started phase SOURCE_LINKAGE
12:26:36.124 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-interfaces]} started phase SOURCE_LINKAGE
12:26:36.124 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-if-aggregate]} started phase SOURCE_LINKAGE
12:26:36.124 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [ietf-interfaces]} started phase SOURCE_LINKAGE
12:26:36.124 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-inet-types]} started phase SOURCE_LINKAGE
12:26:36.124 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-aaa-radius]} started phase SOURCE_LINKAGE
12:26:36.124 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-aaa]} started phase SOURCE_LINKAGE
12:26:36.124 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [iana-if-type]} started phase SOURCE_LINKAGE
12:26:36.124 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-system]} started phase SOURCE_LINKAGE
12:26:36.124 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-aaa-types]} started phase SOURCE_LINKAGE
12:26:36.124 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-extensions]} started phase SOURCE_LINKAGE
12:26:36.124 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-system-logging]} started phase SOURCE_LINKAGE
12:26:36.124 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-if-types]} started phase SOURCE_LINKAGE
12:26:36.124 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-alarm-types]} started phase SOURCE_LINKAGE
12:26:36.124 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-platform]} started phase SOURCE_LINKAGE
12:26:36.124 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-platform-types]} started phase SOURCE_LINKAGE
12:26:36.124 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [gnmi-test-aug]} started phase SOURCE_LINKAGE
12:26:36.124 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [gnmi-test-model]} started phase SOURCE_LINKAGE
12:26:36.124 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-alarms]} started phase SOURCE_LINKAGE
12:26:36.124 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-system-terminal]} started phase SOURCE_LINKAGE
12:26:36.124 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-yang-types]} started phase SOURCE_LINKAGE
12:26:36.124 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-vlan]} started phase SOURCE_LINKAGE
12:26:36.124 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-if-ethernet]} started phase SOURCE_LINKAGE
12:26:36.124 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [ietf-yang-types]} started phase SOURCE_LINKAGE
12:26:36.124 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-license]} started phase SOURCE_LINKAGE
12:26:36.124 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-messages]} started phase SOURCE_LINKAGE
12:26:36.124 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-types]} started phase SOURCE_LINKAGE
12:26:36.124 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-procmon]} started phase SOURCE_LINKAGE
12:26:36.124 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-aaa-tacacs]} started phase SOURCE_LINKAGE
12:26:36.124 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.BuildGlobalContext -- Global phase SOURCE_LINKAGE started
12:26:36.124 [main] 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}
12:26:36.125 [main] 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]
12:26:36.125 [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}
12:26:36.125 [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]
12:26:36.125 [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]
12:26:36.125 [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}
12:26:36.125 [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}
12:26:36.125 [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}
12:26:36.125 [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}
12:26:36.125 [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]
12:26:36.125 [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}
12:26:36.125 [main] 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}
12:26:36.125 [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]
12:26:36.125 [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]
12:26:36.125 [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]
12:26:36.125 [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]
12:26:36.125 [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]
12:26:36.125 [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]
12:26:36.125 [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]
12:26:36.125 [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]
12:26:36.125 [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]
12:26:36.125 [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]
12:26:36.125 [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]
12:26:36.125 [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]
12:26:36.125 [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]
12:26:36.125 [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}
12:26:36.125 [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}
12:26:36.125 [main] 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]
12:26:36.125 [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}
12:26:36.125 [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]
12:26:36.125 [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}
12:26:36.125 [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}
12:26:36.125 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.StatementContextBase -- Listener on ParserNamespace{name=module} criterion LatestRevisionModule{moduleName=openconfig-alarm-types} found a pre-existing match: SourceIdentifier [openconfig-alarm-types@2018-11-21]=RootStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)module}, argument=Unqualified{localName=openconfig-alarm-types}, refCount=0}
12:26:36.125 [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}
12:26:36.125 [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]
12:26:36.125 [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}
12:26:36.125 [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}
12:26:36.125 [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}
12:26:36.125 [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}
12:26:36.125 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.StatementContextBase -- Listener on ParserNamespace{name=module} criterion LatestRevisionModule{moduleName=gnmi-test-model} matched added key SourceIdentifier [gnmi-test-model]
12:26:36.125 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.StatementContextBase -- Listener on ParserNamespace{name=module} criterion LatestRevisionModule{moduleName=openconfig-alarm-types} found a pre-existing match: SourceIdentifier [openconfig-alarm-types@2018-11-21]=RootStatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)module}, argument=Unqualified{localName=openconfig-alarm-types}, refCount=0}
12:26:36.125 [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}
12:26:36.125 [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}
12:26:36.125 [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]
12:26:36.125 [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}
12:26:36.125 [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]
12:26:36.125 [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}
12:26:36.125 [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]
12:26:36.125 [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]
12:26:36.125 [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]
12:26:36.125 [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]
12:26:36.125 [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]
12:26:36.125 [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}
12:26:36.125 [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}
12:26:36.125 [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}
12:26:36.125 [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}
12:26:36.125 [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}
12:26:36.125 [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}
12:26:36.125 [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}
12:26:36.125 [main] 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}
12:26:36.125 [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}
12:26:36.125 [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]
12:26:36.125 [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]
12:26:36.125 [main] 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]
12:26:36.126 [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}
12:26:36.126 [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]
12:26:36.126 [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}
12:26:36.126 [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}
12:26:36.126 [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]
12:26:36.126 [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}
12:26:36.126 [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]
12:26:36.126 [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]
12:26:36.126 [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]
12:26:36.126 [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]
12:26:36.126 [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]
12:26:36.126 [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}
12:26:36.126 [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}
12:26:36.126 [main] 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}
12:26:36.126 [main] 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]
12:26:36.126 [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}
12:26:36.126 [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}
12:26:36.126 [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}
12:26:36.126 [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}
12:26:36.126 [main] 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]
12:26:36.126 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-extensions]} finished phase SOURCE_LINKAGE
12:26:36.126 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-if-types]} finished phase SOURCE_LINKAGE
12:26:36.126 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-alarm-types]} finished phase SOURCE_LINKAGE
12:26:36.126 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-system-terminal]} finished phase SOURCE_LINKAGE
12:26:36.126 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-yang-types]} finished phase SOURCE_LINKAGE
12:26:36.126 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [ietf-yang-types]} finished phase SOURCE_LINKAGE
12:26:36.126 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-license]} finished phase SOURCE_LINKAGE
12:26:36.126 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-types]} finished phase SOURCE_LINKAGE
12:26:36.126 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-procmon]} finished phase SOURCE_LINKAGE
12:26:36.126 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-openflow-types]} finished phase SOURCE_LINKAGE
12:26:36.126 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-vlan-types]} finished phase SOURCE_LINKAGE
12:26:36.126 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [ietf-interfaces]} finished phase SOURCE_LINKAGE
12:26:36.126 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-inet-types]} finished phase SOURCE_LINKAGE
12:26:36.126 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [iana-if-type]} finished phase SOURCE_LINKAGE
12:26:36.126 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-aaa-types]} finished phase SOURCE_LINKAGE
12:26:36.126 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-system-logging]} finished phase SOURCE_LINKAGE
12:26:36.126 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-platform-types]} finished phase SOURCE_LINKAGE
12:26:36.126 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [gnmi-test-model]} finished phase SOURCE_LINKAGE
12:26:36.126 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-messages]} finished phase SOURCE_LINKAGE
12:26:36.126 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-interfaces]} finished phase SOURCE_LINKAGE
12:26:36.126 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-aaa]} finished phase SOURCE_LINKAGE
12:26:36.126 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-platform]} finished phase SOURCE_LINKAGE
12:26:36.126 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [gnmi-test-aug]} finished phase SOURCE_LINKAGE
12:26:36.126 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-alarms]} finished phase SOURCE_LINKAGE
12:26:36.126 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-if-ethernet]} finished phase SOURCE_LINKAGE
12:26:36.126 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-aaa-tacacs]} finished phase SOURCE_LINKAGE
12:26:36.126 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-if-aggregate]} finished phase SOURCE_LINKAGE
12:26:36.126 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-aaa-radius]} finished phase SOURCE_LINKAGE
12:26:36.126 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-system]} finished phase SOURCE_LINKAGE
12:26:36.126 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-vlan]} finished phase SOURCE_LINKAGE
12:26:36.126 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-openflow]} finished phase SOURCE_LINKAGE
12:26:36.126 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.BuildGlobalContext -- Global phase SOURCE_LINKAGE finished
12:26:36.126 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-openflow-types]} started phase STATEMENT_DEFINITION
12:26:36.126 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-vlan-types]} started phase STATEMENT_DEFINITION
12:26:36.126 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-openflow]} started phase STATEMENT_DEFINITION
12:26:36.126 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-interfaces]} started phase STATEMENT_DEFINITION
12:26:36.126 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-if-aggregate]} started phase STATEMENT_DEFINITION
12:26:36.126 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [ietf-interfaces]} started phase STATEMENT_DEFINITION
12:26:36.126 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-inet-types]} started phase STATEMENT_DEFINITION
12:26:36.126 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-aaa-radius]} started phase STATEMENT_DEFINITION
12:26:36.126 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-aaa]} started phase STATEMENT_DEFINITION
12:26:36.126 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [iana-if-type]} started phase STATEMENT_DEFINITION
12:26:36.126 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-system]} started phase STATEMENT_DEFINITION
12:26:36.126 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-aaa-types]} started phase STATEMENT_DEFINITION
12:26:36.126 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-extensions]} started phase STATEMENT_DEFINITION
12:26:36.126 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-system-logging]} started phase STATEMENT_DEFINITION
12:26:36.126 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-if-types]} started phase STATEMENT_DEFINITION
12:26:36.126 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-alarm-types]} started phase STATEMENT_DEFINITION
12:26:36.126 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-platform]} started phase STATEMENT_DEFINITION
12:26:36.126 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-platform-types]} started phase STATEMENT_DEFINITION
12:26:36.126 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [gnmi-test-aug]} started phase STATEMENT_DEFINITION
12:26:36.126 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [gnmi-test-model]} started phase STATEMENT_DEFINITION
12:26:36.126 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-alarms]} started phase STATEMENT_DEFINITION
12:26:36.126 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-system-terminal]} started phase STATEMENT_DEFINITION
12:26:36.126 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-yang-types]} started phase STATEMENT_DEFINITION
12:26:36.126 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-vlan]} started phase STATEMENT_DEFINITION
12:26:36.126 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-if-ethernet]} started phase STATEMENT_DEFINITION
12:26:36.126 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [ietf-yang-types]} started phase STATEMENT_DEFINITION
12:26:36.126 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-license]} started phase STATEMENT_DEFINITION
12:26:36.126 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-messages]} started phase STATEMENT_DEFINITION
12:26:36.126 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-types]} started phase STATEMENT_DEFINITION
12:26:36.126 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-procmon]} started phase STATEMENT_DEFINITION
12:26:36.126 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-aaa-tacacs]} started phase STATEMENT_DEFINITION
12:26:36.126 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.BuildGlobalContext -- Global phase STATEMENT_DEFINITION started
12:26:36.135 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-openflow-types]} finished phase STATEMENT_DEFINITION
12:26:36.135 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-vlan-types]} finished phase STATEMENT_DEFINITION
12:26:36.135 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-openflow]} finished phase STATEMENT_DEFINITION
12:26:36.135 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-interfaces]} finished phase STATEMENT_DEFINITION
12:26:36.135 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-if-aggregate]} finished phase STATEMENT_DEFINITION
12:26:36.135 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [ietf-interfaces]} finished phase STATEMENT_DEFINITION
12:26:36.135 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-inet-types]} finished phase STATEMENT_DEFINITION
12:26:36.135 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-aaa]} finished phase STATEMENT_DEFINITION
12:26:36.136 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [iana-if-type]} finished phase STATEMENT_DEFINITION
12:26:36.136 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-system]} finished phase STATEMENT_DEFINITION
12:26:36.136 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-aaa-types]} finished phase STATEMENT_DEFINITION
12:26:36.136 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-extensions]} finished phase STATEMENT_DEFINITION
12:26:36.136 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-system-logging]} finished phase STATEMENT_DEFINITION
12:26:36.136 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-if-types]} finished phase STATEMENT_DEFINITION
12:26:36.136 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-alarm-types]} finished phase STATEMENT_DEFINITION
12:26:36.136 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-platform]} finished phase STATEMENT_DEFINITION
12:26:36.136 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-platform-types]} finished phase STATEMENT_DEFINITION
12:26:36.136 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [gnmi-test-aug]} finished phase STATEMENT_DEFINITION
12:26:36.136 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [gnmi-test-model]} finished phase STATEMENT_DEFINITION
12:26:36.136 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-alarms]} finished phase STATEMENT_DEFINITION
12:26:36.136 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-system-terminal]} finished phase STATEMENT_DEFINITION
12:26:36.136 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-yang-types]} finished phase STATEMENT_DEFINITION
12:26:36.136 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-vlan]} finished phase STATEMENT_DEFINITION
12:26:36.136 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-if-ethernet]} finished phase STATEMENT_DEFINITION
12:26:36.136 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [ietf-yang-types]} finished phase STATEMENT_DEFINITION
12:26:36.136 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-license]} finished phase STATEMENT_DEFINITION
12:26:36.136 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-messages]} finished phase STATEMENT_DEFINITION
12:26:36.136 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-types]} finished phase STATEMENT_DEFINITION
12:26:36.136 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-procmon]} finished phase STATEMENT_DEFINITION
12:26:36.136 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-aaa-tacacs]} finished phase STATEMENT_DEFINITION
12:26:36.136 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-aaa-radius]} finished phase STATEMENT_DEFINITION
12:26:36.136 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.BuildGlobalContext -- Global phase STATEMENT_DEFINITION finished
12:26:36.136 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-openflow-types]} started phase FULL_DECLARATION
12:26:36.136 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-vlan-types]} started phase FULL_DECLARATION
12:26:36.136 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-openflow]} started phase FULL_DECLARATION
12:26:36.136 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-interfaces]} started phase FULL_DECLARATION
12:26:36.136 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-if-aggregate]} started phase FULL_DECLARATION
12:26:36.136 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [ietf-interfaces]} started phase FULL_DECLARATION
12:26:36.136 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-inet-types]} started phase FULL_DECLARATION
12:26:36.136 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-aaa-radius]} started phase FULL_DECLARATION
12:26:36.136 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-aaa]} started phase FULL_DECLARATION
12:26:36.136 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [iana-if-type]} started phase FULL_DECLARATION
12:26:36.136 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-system]} started phase FULL_DECLARATION
12:26:36.136 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-aaa-types]} started phase FULL_DECLARATION
12:26:36.136 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-extensions]} started phase FULL_DECLARATION
12:26:36.136 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-system-logging]} started phase FULL_DECLARATION
12:26:36.136 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-if-types]} started phase FULL_DECLARATION
12:26:36.136 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-alarm-types]} started phase FULL_DECLARATION
12:26:36.136 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-platform]} started phase FULL_DECLARATION
12:26:36.136 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-platform-types]} started phase FULL_DECLARATION
12:26:36.136 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [gnmi-test-aug]} started phase FULL_DECLARATION
12:26:36.136 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [gnmi-test-model]} started phase FULL_DECLARATION
12:26:36.136 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-alarms]} started phase FULL_DECLARATION
12:26:36.136 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-system-terminal]} started phase FULL_DECLARATION
12:26:36.136 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-yang-types]} started phase FULL_DECLARATION
12:26:36.136 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-vlan]} started phase FULL_DECLARATION
12:26:36.136 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-if-ethernet]} started phase FULL_DECLARATION
12:26:36.136 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [ietf-yang-types]} started phase FULL_DECLARATION
12:26:36.136 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-license]} started phase FULL_DECLARATION
12:26:36.136 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-messages]} started phase FULL_DECLARATION
12:26:36.136 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-types]} started phase FULL_DECLARATION
12:26:36.136 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-procmon]} started phase FULL_DECLARATION
12:26:36.136 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-aaa-tacacs]} started phase FULL_DECLARATION
12:26:36.136 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.BuildGlobalContext -- Global phase FULL_DECLARATION started
12:26:36.136 [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@18726235
12:26:36.136 [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@375c7e44
12:26:36.136 [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@12ad25b3
12:26:36.136 [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@6452adf3
12:26:36.136 [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@6f3a1886
12:26:36.136 [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@3bc0f57b
12:26:36.136 [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@40bbdf0d
12:26:36.136 [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@31f7dfdc
12:26:36.136 [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@e360f4c
12:26:36.137 [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@18726235
12:26:36.137 [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@375c7e44
12:26:36.137 [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@12ad25b3
12:26:36.137 [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@6452adf3
12:26:36.137 [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@6f3a1886
12:26:36.137 [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@3bc0f57b
12:26:36.137 [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@40bbdf0d
12:26:36.137 [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@31f7dfdc
12:26:36.137 [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@e360f4c
12:26:36.137 [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@18726235
12:26:36.137 [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@375c7e44
12:26:36.137 [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@12ad25b3
12:26:36.137 [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@6452adf3
12:26:36.137 [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@6f3a1886
12:26:36.137 [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@3bc0f57b
12:26:36.137 [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@40bbdf0d
12:26:36.137 [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@31f7dfdc
12:26:36.137 [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@e360f4c
12:26:36.137 [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@18726235
12:26:36.137 [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@375c7e44
12:26:36.137 [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@12ad25b3
12:26:36.137 [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@6452adf3
12:26:36.137 [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@6f3a1886
12:26:36.137 [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@3bc0f57b
12:26:36.137 [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@40bbdf0d
12:26:36.137 [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@31f7dfdc
12:26:36.137 [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@e360f4c
12:26:36.138 [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@18726235
12:26:36.138 [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@375c7e44
12:26:36.138 [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@12ad25b3
12:26:36.138 [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@6452adf3
12:26:36.138 [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@6f3a1886
12:26:36.138 [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@3bc0f57b
12:26:36.138 [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@40bbdf0d
12:26:36.138 [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@31f7dfdc
12:26:36.138 [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@e360f4c
12:26:36.139 [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@18726235
12:26:36.139 [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@375c7e44
12:26:36.139 [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@12ad25b3
12:26:36.139 [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@6452adf3
12:26:36.139 [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@6f3a1886
12:26:36.139 [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@3bc0f57b
12:26:36.139 [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@40bbdf0d
12:26:36.139 [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@31f7dfdc
12:26:36.139 [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@e360f4c
12:26:36.140 [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@18726235
12:26:36.140 [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@375c7e44
12:26:36.140 [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@12ad25b3
12:26:36.140 [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@6452adf3
12:26:36.140 [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@6f3a1886
12:26:36.140 [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@3bc0f57b
12:26:36.140 [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@40bbdf0d
12:26:36.140 [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@31f7dfdc
12:26:36.140 [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@e360f4c
12:26:36.140 [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@18726235
12:26:36.140 [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@375c7e44
12:26:36.140 [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@12ad25b3
12:26:36.140 [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@6452adf3
12:26:36.140 [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@6f3a1886
12:26:36.140 [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@3bc0f57b
12:26:36.140 [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@40bbdf0d
12:26:36.140 [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@31f7dfdc
12:26:36.140 [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@e360f4c
12:26:36.140 [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@18726235
12:26:36.140 [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@375c7e44
12:26:36.140 [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@12ad25b3
12:26:36.140 [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@6452adf3
12:26:36.140 [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@6f3a1886
12:26:36.141 [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@3bc0f57b
12:26:36.141 [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@40bbdf0d
12:26:36.141 [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@31f7dfdc
12:26:36.141 [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@e360f4c
12:26:36.141 [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@18726235
12:26:36.141 [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@375c7e44
12:26:36.141 [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@12ad25b3
12:26:36.141 [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@6452adf3
12:26:36.141 [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@6f3a1886
12:26:36.141 [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@3bc0f57b
12:26:36.141 [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@40bbdf0d
12:26:36.141 [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@31f7dfdc
12:26:36.141 [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@e360f4c
12:26:36.142 [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@18726235
12:26:36.142 [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@375c7e44
12:26:36.142 [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@12ad25b3
12:26:36.142 [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@6452adf3
12:26:36.142 [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@6f3a1886
12:26:36.142 [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@3bc0f57b
12:26:36.142 [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@40bbdf0d
12:26:36.142 [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@31f7dfdc
12:26:36.142 [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@e360f4c
12:26:36.143 [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@18726235
12:26:36.143 [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@375c7e44
12:26:36.143 [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@12ad25b3
12:26:36.143 [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@6452adf3
12:26:36.143 [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@6f3a1886
12:26:36.143 [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@3bc0f57b
12:26:36.143 [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@40bbdf0d
12:26:36.143 [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@31f7dfdc
12:26:36.143 [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@e360f4c
12:26:36.143 [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@18726235
12:26:36.143 [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@375c7e44
12:26:36.143 [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@12ad25b3
12:26:36.143 [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@6452adf3
12:26:36.143 [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@6f3a1886
12:26:36.143 [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@3bc0f57b
12:26:36.143 [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@40bbdf0d
12:26:36.143 [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@31f7dfdc
12:26:36.143 [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@e360f4c
12:26:36.143 [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@18726235
12:26:36.143 [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@375c7e44
12:26:36.143 [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@12ad25b3
12:26:36.143 [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@6452adf3
12:26:36.143 [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@6f3a1886
12:26:36.143 [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@3bc0f57b
12:26:36.143 [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@40bbdf0d
12:26:36.143 [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@31f7dfdc
12:26:36.143 [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@e360f4c
12:26:36.143 [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@18726235
12:26:36.143 [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@375c7e44
12:26:36.143 [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@12ad25b3
12:26:36.143 [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@6452adf3
12:26:36.143 [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@6f3a1886
12:26:36.143 [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@3bc0f57b
12:26:36.143 [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@40bbdf0d
12:26:36.143 [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@31f7dfdc
12:26:36.143 [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@e360f4c
12:26:36.143 [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@18726235
12:26:36.143 [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@375c7e44
12:26:36.143 [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@12ad25b3
12:26:36.143 [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@6452adf3
12:26:36.143 [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@6f3a1886
12:26:36.143 [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@3bc0f57b
12:26:36.143 [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@40bbdf0d
12:26:36.143 [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@31f7dfdc
12:26:36.143 [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@e360f4c
12:26:36.143 [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@18726235
12:26:36.143 [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@375c7e44
12:26:36.143 [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@12ad25b3
12:26:36.143 [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@6452adf3
12:26:36.143 [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@6f3a1886
12:26:36.143 [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@3bc0f57b
12:26:36.144 [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@40bbdf0d
12:26:36.144 [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@31f7dfdc
12:26:36.144 [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@e360f4c
12:26:36.144 [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@18726235
12:26:36.144 [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@375c7e44
12:26:36.144 [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@12ad25b3
12:26:36.144 [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@6452adf3
12:26:36.144 [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@6f3a1886
12:26:36.144 [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@3bc0f57b
12:26:36.144 [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@40bbdf0d
12:26:36.144 [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@31f7dfdc
12:26:36.144 [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@e360f4c
12:26:36.144 [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@18726235
12:26:36.144 [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@375c7e44
12:26:36.144 [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@12ad25b3
12:26:36.144 [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@6452adf3
12:26:36.144 [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@6f3a1886
12:26:36.144 [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@3bc0f57b
12:26:36.144 [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@40bbdf0d
12:26:36.144 [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@31f7dfdc
12:26:36.144 [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@e360f4c
12:26:36.144 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.ModifierImpl -- Action for [(test:model)test-data] got key (test:model)test-data
12:26:36.144 [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
12:26:36.144 [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@18726235
12:26:36.144 [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@375c7e44
12:26:36.144 [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@12ad25b3
12:26:36.144 [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@6452adf3
12:26:36.144 [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@6f3a1886
12:26:36.144 [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@3bc0f57b
12:26:36.144 [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@40bbdf0d
12:26:36.144 [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@31f7dfdc
12:26:36.144 [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@e360f4c
12:26:36.145 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.ModifierImpl -- Action for [(test:model)test-data] got key (test:model)test-data
12:26:36.145 [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@18726235
12:26:36.145 [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@375c7e44
12:26:36.145 [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@12ad25b3
12:26:36.145 [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@6452adf3
12:26:36.145 [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@6f3a1886
12:26:36.145 [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@3bc0f57b
12:26:36.145 [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@40bbdf0d
12:26:36.145 [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@31f7dfdc
12:26:36.145 [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@e360f4c
12:26:36.145 [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@18726235
12:26:36.145 [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@375c7e44
12:26:36.145 [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@12ad25b3
12:26:36.145 [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@6452adf3
12:26:36.145 [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@6f3a1886
12:26:36.145 [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@3bc0f57b
12:26:36.145 [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@40bbdf0d
12:26:36.145 [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@31f7dfdc
12:26:36.145 [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@e360f4c
12:26:36.145 [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@18726235
12:26:36.145 [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@375c7e44
12:26:36.145 [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@12ad25b3
12:26:36.145 [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@6452adf3
12:26:36.145 [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@6f3a1886
12:26:36.145 [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@3bc0f57b
12:26:36.145 [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@40bbdf0d
12:26:36.145 [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@31f7dfdc
12:26:36.145 [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@e360f4c
12:26:36.145 [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@18726235
12:26:36.145 [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@375c7e44
12:26:36.145 [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@12ad25b3
12:26:36.145 [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@6452adf3
12:26:36.145 [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@6f3a1886
12:26:36.145 [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@3bc0f57b
12:26:36.145 [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@40bbdf0d
12:26:36.145 [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@31f7dfdc
12:26:36.145 [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@e360f4c
12:26:36.146 [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@18726235
12:26:36.146 [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@375c7e44
12:26:36.146 [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@12ad25b3
12:26:36.146 [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@6452adf3
12:26:36.146 [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@6f3a1886
12:26:36.146 [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@3bc0f57b
12:26:36.146 [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@40bbdf0d
12:26:36.146 [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@31f7dfdc
12:26:36.146 [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@e360f4c
12:26:36.147 [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@18726235
12:26:36.147 [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@375c7e44
12:26:36.147 [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@12ad25b3
12:26:36.147 [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@6452adf3
12:26:36.147 [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@6f3a1886
12:26:36.147 [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@3bc0f57b
12:26:36.147 [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@40bbdf0d
12:26:36.147 [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@31f7dfdc
12:26:36.147 [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@e360f4c
12:26:36.147 [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@18726235
12:26:36.147 [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@375c7e44
12:26:36.147 [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@12ad25b3
12:26:36.147 [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@6452adf3
12:26:36.147 [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@6f3a1886
12:26:36.147 [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@3bc0f57b
12:26:36.147 [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@40bbdf0d
12:26:36.147 [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@31f7dfdc
12:26:36.147 [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@e360f4c
12:26:36.147 [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@18726235
12:26:36.147 [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@375c7e44
12:26:36.147 [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@12ad25b3
12:26:36.147 [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@6452adf3
12:26:36.147 [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@6f3a1886
12:26:36.147 [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@3bc0f57b
12:26:36.147 [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@40bbdf0d
12:26:36.147 [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@31f7dfdc
12:26:36.147 [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@e360f4c
12:26:36.147 [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@18726235
12:26:36.147 [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@375c7e44
12:26:36.147 [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@12ad25b3
12:26:36.147 [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@6452adf3
12:26:36.147 [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@6f3a1886
12:26:36.147 [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@3bc0f57b
12:26:36.147 [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@40bbdf0d
12:26:36.147 [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@31f7dfdc
12:26:36.147 [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@e360f4c
12:26:36.148 [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@18726235
12:26:36.148 [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@375c7e44
12:26:36.148 [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@12ad25b3
12:26:36.148 [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@6452adf3
12:26:36.148 [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@6f3a1886
12:26:36.148 [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@3bc0f57b
12:26:36.148 [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@40bbdf0d
12:26:36.148 [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@31f7dfdc
12:26:36.148 [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@e360f4c
12:26:36.148 [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@18726235
12:26:36.148 [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@375c7e44
12:26:36.148 [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@12ad25b3
12:26:36.148 [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@6452adf3
12:26:36.148 [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@6f3a1886
12:26:36.148 [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@3bc0f57b
12:26:36.148 [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@40bbdf0d
12:26:36.148 [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@31f7dfdc
12:26:36.148 [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@e360f4c
12:26:36.148 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-openflow-types]} finished phase FULL_DECLARATION
12:26:36.148 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-vlan-types]} finished phase FULL_DECLARATION
12:26:36.148 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-openflow]} finished phase FULL_DECLARATION
12:26:36.148 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-interfaces]} finished phase FULL_DECLARATION
12:26:36.148 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-if-aggregate]} finished phase FULL_DECLARATION
12:26:36.148 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [ietf-interfaces]} finished phase FULL_DECLARATION
12:26:36.148 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-inet-types]} finished phase FULL_DECLARATION
12:26:36.148 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-aaa-radius]} finished phase FULL_DECLARATION
12:26:36.148 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-aaa]} finished phase FULL_DECLARATION
12:26:36.148 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [iana-if-type]} finished phase FULL_DECLARATION
12:26:36.149 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-system]} finished phase FULL_DECLARATION
12:26:36.149 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-aaa-types]} finished phase FULL_DECLARATION
12:26:36.149 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-extensions]} finished phase FULL_DECLARATION
12:26:36.149 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-system-logging]} finished phase FULL_DECLARATION
12:26:36.149 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-if-types]} finished phase FULL_DECLARATION
12:26:36.149 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-alarm-types]} finished phase FULL_DECLARATION
12:26:36.149 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-platform]} finished phase FULL_DECLARATION
12:26:36.149 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-platform-types]} finished phase FULL_DECLARATION
12:26:36.149 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [gnmi-test-aug]} finished phase FULL_DECLARATION
12:26:36.149 [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
12:26:36.149 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [gnmi-test-model]} finished phase FULL_DECLARATION
12:26:36.149 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-alarms]} finished phase FULL_DECLARATION
12:26:36.149 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-system-terminal]} finished phase FULL_DECLARATION
12:26:36.149 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-yang-types]} finished phase FULL_DECLARATION
12:26:36.149 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-vlan]} finished phase FULL_DECLARATION
12:26:36.149 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-if-ethernet]} finished phase FULL_DECLARATION
12:26:36.149 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [ietf-yang-types]} finished phase FULL_DECLARATION
12:26:36.149 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-license]} finished phase FULL_DECLARATION
12:26:36.149 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-messages]} finished phase FULL_DECLARATION
12:26:36.149 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-types]} finished phase FULL_DECLARATION
12:26:36.149 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-procmon]} finished phase FULL_DECLARATION
12:26:36.149 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-aaa-tacacs]} finished phase FULL_DECLARATION
12:26:36.149 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.BuildGlobalContext -- Global phase FULL_DECLARATION finished
12:26:36.149 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-openflow-types]} started phase EFFECTIVE_MODEL
12:26:36.149 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-vlan-types]} started phase EFFECTIVE_MODEL
12:26:36.149 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-openflow]} started phase EFFECTIVE_MODEL
12:26:36.149 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-interfaces]} started phase EFFECTIVE_MODEL
12:26:36.149 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-if-aggregate]} started phase EFFECTIVE_MODEL
12:26:36.149 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [ietf-interfaces]} started phase EFFECTIVE_MODEL
12:26:36.149 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-inet-types]} started phase EFFECTIVE_MODEL
12:26:36.149 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-aaa-radius]} started phase EFFECTIVE_MODEL
12:26:36.149 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-aaa]} started phase EFFECTIVE_MODEL
12:26:36.149 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [iana-if-type]} started phase EFFECTIVE_MODEL
12:26:36.149 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-system]} started phase EFFECTIVE_MODEL
12:26:36.149 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-aaa-types]} started phase EFFECTIVE_MODEL
12:26:36.149 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-extensions]} started phase EFFECTIVE_MODEL
12:26:36.149 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-system-logging]} started phase EFFECTIVE_MODEL
12:26:36.149 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-if-types]} started phase EFFECTIVE_MODEL
12:26:36.149 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-alarm-types]} started phase EFFECTIVE_MODEL
12:26:36.149 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-platform]} started phase EFFECTIVE_MODEL
12:26:36.149 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-platform-types]} started phase EFFECTIVE_MODEL
12:26:36.149 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [gnmi-test-aug]} started phase EFFECTIVE_MODEL
12:26:36.149 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [gnmi-test-model]} started phase EFFECTIVE_MODEL
12:26:36.149 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-alarms]} started phase EFFECTIVE_MODEL
12:26:36.149 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-system-terminal]} started phase EFFECTIVE_MODEL
12:26:36.149 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-yang-types]} started phase EFFECTIVE_MODEL
12:26:36.149 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-vlan]} started phase EFFECTIVE_MODEL
12:26:36.149 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-if-ethernet]} started phase EFFECTIVE_MODEL
12:26:36.149 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [ietf-yang-types]} started phase EFFECTIVE_MODEL
12:26:36.149 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-license]} started phase EFFECTIVE_MODEL
12:26:36.149 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-messages]} started phase EFFECTIVE_MODEL
12:26:36.149 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-types]} started phase EFFECTIVE_MODEL
12:26:36.149 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-procmon]} started phase EFFECTIVE_MODEL
12:26:36.149 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-aaa-tacacs]} started phase EFFECTIVE_MODEL
12:26:36.149 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.BuildGlobalContext -- Global phase EFFECTIVE_MODEL started
12:26:36.149 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-openflow-types]} finished phase EFFECTIVE_MODEL
12:26:36.149 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-vlan-types]} finished phase EFFECTIVE_MODEL
12:26:36.150 [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]
12:26:36.150 [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]
12:26:36.150 [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]
12:26:36.150 [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]
12:26:36.150 [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]
12:26:36.150 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-inet-types]} finished phase EFFECTIVE_MODEL
12:26:36.150 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [iana-if-type]} finished phase EFFECTIVE_MODEL
12:26:36.150 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-aaa-types]} finished phase EFFECTIVE_MODEL
12:26:36.150 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-extensions]} finished phase EFFECTIVE_MODEL
12:26:36.150 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-system-logging]} finished phase EFFECTIVE_MODEL
12:26:36.150 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-if-types]} finished phase EFFECTIVE_MODEL
12:26:36.150 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-alarm-types]} finished phase EFFECTIVE_MODEL
12:26:36.151 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [gnmi-test-aug]} finished phase EFFECTIVE_MODEL
12:26:36.151 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-system-terminal]} finished phase EFFECTIVE_MODEL
12:26:36.151 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-yang-types]} finished phase EFFECTIVE_MODEL
12:26:36.151 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [ietf-yang-types]} finished phase EFFECTIVE_MODEL
12:26:36.151 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-license]} finished phase EFFECTIVE_MODEL
12:26:36.152 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-types]} finished phase EFFECTIVE_MODEL
12:26:36.152 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-aaa-tacacs]} finished phase EFFECTIVE_MODEL
12:26:36.152 [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
12:26:36.152 [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
12:26:36.152 [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
12:26:36.152 [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
12:26:36.152 [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
12:26:36.152 [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
12:26:36.152 [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
12:26:36.152 [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
12:26:36.152 [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
12:26:36.152 [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
12:26:36.152 [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
12:26:36.152 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Child (http://openconfig.net/yang/interfaces?revision=2021-04-06)interface materialized
12:26:36.152 [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
12:26:36.152 [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
12:26:36.152 [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
12:26:36.152 [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
12:26:36.152 [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
12:26:36.152 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Child (http://openconfig.net/yang/interfaces?revision=2021-04-06)subinterfaces materialized
12:26:36.152 [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
12:26:36.152 [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
12:26:36.152 [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
12:26:36.152 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Child (http://openconfig.net/yang/interfaces?revision=2021-04-06)subinterface materialized
12:26:36.152 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Child (http://openconfig.net/yang/interfaces?revision=2021-04-06)subinterface materialized
12:26:36.152 [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
12:26:36.152 [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
12:26:36.152 [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
12:26:36.152 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Child (http://openconfig.net/yang/interfaces?revision=2021-04-06)config materialized
12:26:36.152 [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
12:26:36.152 [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
12:26:36.152 [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
12:26:36.152 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Child (http://openconfig.net/yang/interfaces?revision=2021-04-06)state materialized
12:26:36.152 [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
12:26:36.152 [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
12:26:36.152 [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
12:26:36.152 [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
12:26:36.152 [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
12:26:36.152 [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
12:26:36.152 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [ietf-interfaces]} finished phase EFFECTIVE_MODEL
12:26:36.152 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-aaa-radius]} finished phase EFFECTIVE_MODEL
12:26:36.152 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-platform-types]} finished phase EFFECTIVE_MODEL
12:26:36.152 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [gnmi-test-model]} finished phase EFFECTIVE_MODEL
12:26:36.153 [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
12:26:36.153 [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
12:26:36.153 [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
12:26:36.153 [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
12:26:36.153 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Child (http://openconfig.net/yang/interfaces/ethernet?revision=2021-06-09)config materialized
12:26:36.153 [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
12:26:36.153 [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
12:26:36.153 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Child (http://openconfig.net/yang/interfaces/ethernet?revision=2021-06-09)state materialized
12:26:36.153 [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
12:26:36.153 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-if-ethernet]} finished phase EFFECTIVE_MODEL
12:26:36.153 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-messages]} finished phase EFFECTIVE_MODEL
12:26:36.153 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-procmon]} finished phase EFFECTIVE_MODEL
12:26:36.153 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-if-aggregate]} finished phase EFFECTIVE_MODEL
12:26:36.153 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-aaa]} finished phase EFFECTIVE_MODEL
12:26:36.153 [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
12:26:36.153 [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
12:26:36.153 [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
12:26:36.153 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Child (http://openconfig.net/yang/platform?revision=2021-01-18)component materialized
12:26:36.153 [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
12:26:36.153 [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
12:26:36.153 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Child (http://openconfig.net/yang/platform?revision=2021-01-18)state materialized
12:26:36.153 [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
12:26:36.153 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-alarms]} finished phase EFFECTIVE_MODEL
12:26:36.153 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-vlan]} finished phase EFFECTIVE_MODEL
12:26:36.153 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-openflow]} finished phase EFFECTIVE_MODEL
12:26:36.153 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-interfaces]} finished phase EFFECTIVE_MODEL
12:26:36.153 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-system]} finished phase EFFECTIVE_MODEL
12:26:36.153 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext -- Source YangStatementStreamSource{identifier=SourceIdentifier [openconfig-platform]} finished phase EFFECTIVE_MODEL
12:26:36.153 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.BuildGlobalContext -- Global phase EFFECTIVE_MODEL finished
12:26:36.155 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.156 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.156 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.156 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.156 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.156 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.156 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.156 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.156 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.156 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.156 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.156 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.156 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.156 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.156 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.156 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.156 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.156 [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]}
12:26:36.156 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.156 [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}
12:26:36.156 [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}
12:26:36.156 [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}
12:26:36.156 [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}
12:26:36.156 [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}
12:26:36.156 [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}
12:26:36.156 [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}
12:26:36.156 [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}
12:26:36.156 [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}
12:26:36.156 [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}
12:26:36.156 [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}
12:26:36.156 [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}
12:26:36.156 [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}
12:26:36.156 [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}
12:26:36.156 [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}
12:26:36.156 [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}
12:26:36.156 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing empty: EmptyLocalKeyEffectiveStatement{argument=[(http://openconfig.net/yang/openflow?revision=2018-11-21)name]}
12:26:36.156 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.156 [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}
12:26:36.156 [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}
12:26:36.156 [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}
12:26:36.156 [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}
12:26:36.156 [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}
12:26:36.157 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing empty: EmptyLocalKeyEffectiveStatement{argument=[(http://openconfig.net/yang/openflow?revision=2018-11-21)name]}
12:26:36.157 [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}
12:26:36.157 [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}
12:26:36.157 [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}
12:26:36.157 [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}
12:26:36.157 [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}
12:26:36.158 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.158 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.158 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.158 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.158 [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}
12:26:36.158 [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}
12:26:36.158 [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}
12:26:36.158 [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}
12:26:36.158 [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}
12:26:36.158 [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}
12:26:36.158 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.158 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.158 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.158 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.158 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.158 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.158 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.158 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.158 [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}
12:26:36.158 [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}
12:26:36.158 [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}
12:26:36.158 [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}
12:26:36.158 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.158 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.158 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.158 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.158 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.158 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.158 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.158 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.158 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.158 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.158 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.158 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.158 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.158 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.158 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.158 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.158 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.158 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.158 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.158 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.158 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.158 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.158 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.158 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.158 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.158 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.158 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.158 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.158 [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}
12:26:36.159 [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}
12:26:36.159 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.159 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.159 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.159 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.159 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.159 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.159 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.159 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.159 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.159 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.159 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.159 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.159 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.159 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.159 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.159 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.159 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.159 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.159 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.159 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.159 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.159 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.159 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.159 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.159 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.159 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.159 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.159 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.159 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.159 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.159 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.159 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.159 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.159 [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}
12:26:36.159 [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}
12:26:36.159 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.159 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.159 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.159 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.159 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.159 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.159 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.159 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.159 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.159 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.159 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.159 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.159 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.159 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.159 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.159 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.159 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.159 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.159 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.159 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.159 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.159 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.159 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.159 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.159 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.159 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.159 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.159 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.159 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.159 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.159 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.159 [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}
12:26:36.159 [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}
12:26:36.159 [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}
12:26:36.159 [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}
12:26:36.159 [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}
12:26:36.159 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing empty: EmptyLocalKeyEffectiveStatement{argument=[(http://openconfig.net/yang/interfaces?revision=2021-04-06)index]}
12:26:36.159 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.159 [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}
12:26:36.159 [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}
12:26:36.159 [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}
12:26:36.159 [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}
12:26:36.159 [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}
12:26:36.159 [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}
12:26:36.159 [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}
12:26:36.159 [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}
12:26:36.159 [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}
12:26:36.159 [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}
12:26:36.159 [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}
12:26:36.159 [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}
12:26:36.159 [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}
12:26:36.159 [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}
12:26:36.159 [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}
12:26:36.159 [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}
12:26:36.159 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing empty: EmptyLocalKeyEffectiveStatement{argument=[(http://openconfig.net/yang/interfaces?revision=2021-04-06)name]}
12:26:36.159 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.159 [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}
12:26:36.159 [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}
12:26:36.159 [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}
12:26:36.159 [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}
12:26:36.159 [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}
12:26:36.160 [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}
12:26:36.160 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.160 [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}
12:26:36.160 [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}
12:26:36.160 [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}
12:26:36.160 [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}
12:26:36.160 [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}
12:26:36.160 [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}
12:26:36.160 [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}
12:26:36.160 [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}
12:26:36.160 [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}
12:26:36.160 [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}
12:26:36.160 [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}
12:26:36.160 [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}
12:26:36.160 [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}
12:26:36.160 [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}
12:26:36.160 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.160 [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}
12:26:36.160 [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}
12:26:36.160 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing empty: EmptyLocalKeyEffectiveStatement{argument=[(http://openconfig.net/yang/interfaces?revision=2021-04-06)index]}
12:26:36.160 [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}
12:26:36.160 [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}
12:26:36.160 [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}
12:26:36.161 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.161 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.161 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.161 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.161 [main] DEBUG 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}
12:26:36.161 [main] DEBUG 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}
12:26:36.161 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.161 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.161 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.161 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.161 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.161 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.161 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.161 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.161 [main] DEBUG 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}
12:26:36.161 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.161 [main] DEBUG 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}
12:26:36.161 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.161 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.161 [main] DEBUG 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}
12:26:36.161 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.161 [main] DEBUG 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}
12:26:36.161 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.161 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.161 [main] DEBUG 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}
12:26:36.161 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.161 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.161 [main] DEBUG 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}
12:26:36.161 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.161 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.161 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.161 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.161 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.161 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.161 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.161 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.161 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.161 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.161 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.161 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.161 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.161 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.161 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.161 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.161 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.161 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.161 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.161 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.161 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.161 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.161 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.161 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.161 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.161 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.162 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.162 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.162 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.162 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.162 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.162 [main] DEBUG 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}
12:26:36.162 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.162 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.162 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.162 [main] DEBUG 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}
12:26:36.162 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.162 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.162 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.162 [main] DEBUG 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}
12:26:36.162 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.162 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.163 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.163 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.163 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.163 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.163 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.163 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.163 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.163 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.163 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.163 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.163 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.163 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.163 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.163 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.163 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.163 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.163 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.163 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.163 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.163 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.163 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.163 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.163 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.163 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.163 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.163 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.163 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.163 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.163 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.163 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.163 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.163 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.163 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.163 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.163 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.163 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.163 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.163 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.163 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.163 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.163 [main] DEBUG 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}
12:26:36.163 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.163 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.163 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.163 [main] DEBUG 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}
12:26:36.164 [mdsal-subscription-counters17] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@72d00bd7} unlocked
12:26:36.164 [mdsal-subscription-counters17] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@72d00bd7} readied
12:26:36.164 [mdsal-subscription-counters17] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Submitting transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@72d00bd7}
12:26:36.164 [mdsal-subscription-counters17] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@72d00bd7} completed successfully
12:26:36.164 [mdsal-subscription-counters17] DEBUG org.opendaylight.restconf.server.mdsal.MdsalRestconfStreamRegistry -- Subscription receivers updated successfully
12:26:36.165 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.165 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.165 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.166 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.166 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.166 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.166 [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}
12:26:36.166 [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}
12:26:36.166 [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}
12:26:36.166 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.166 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.166 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.166 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.166 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.166 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.166 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.166 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.166 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.166 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.166 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.166 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.166 [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}
12:26:36.166 [main] DEBUG org.opendaylight.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}
12:26:36.166 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 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}
12:26:36.166 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 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}
12:26:36.166 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 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}
12:26:36.166 [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}
12:26:36.166 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 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}
12:26:36.166 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 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}
12:26:36.166 [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}
12:26:36.166 [main] DEBUG org.opendaylight.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}
12:26:36.166 [main] DEBUG org.opendaylight.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}
12:26:36.166 [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}
12:26:36.166 [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}
12:26:36.166 [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}
12:26:36.166 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 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}
12:26:36.166 [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}
12:26:36.166 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 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}
12:26:36.166 [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}
12:26:36.166 [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}
12:26:36.166 [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}
12:26:36.166 [main] DEBUG org.opendaylight.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}
12:26:36.166 [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}
12:26:36.166 [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}
12:26:36.166 [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}
12:26:36.166 [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}
12:26:36.166 [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}
12:26:36.166 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 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}
12:26:36.166 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 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}
12:26:36.166 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 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}
12:26:36.166 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 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}
12:26:36.166 [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}
12:26:36.166 [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}
12:26:36.166 [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}
12:26:36.166 [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}
12:26:36.166 [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}
12:26:36.166 [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}
12:26:36.166 [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}
12:26:36.166 [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}
12:26:36.166 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 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}
12:26:36.166 [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}
12:26:36.166 [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}
12:26:36.166 [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}
12:26:36.166 [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}
12:26:36.166 [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}
12:26:36.166 [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}
12:26:36.166 [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}
12:26:36.166 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 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}
12:26:36.166 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 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}
12:26:36.166 [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}
12:26:36.166 [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}
12:26:36.166 [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}
12:26:36.166 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 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}
12:26:36.166 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 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}
12:26:36.166 [main] DEBUG org.opendaylight.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}
12:26:36.166 [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}
12:26:36.166 [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}
12:26:36.166 [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}
12:26:36.166 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 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}
12:26:36.166 [main] DEBUG org.opendaylight.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}
12:26:36.166 [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}
12:26:36.166 [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}
12:26:36.166 [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}
12:26:36.167 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.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}
12:26:36.167 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.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}
12:26:36.167 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.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}
12:26:36.167 [main] DEBUG 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}
12:26:36.167 [main] DEBUG 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}
12:26:36.167 [main] DEBUG 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}
12:26:36.167 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.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}
12:26:36.167 [main] DEBUG 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}
12:26:36.167 [main] DEBUG 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}
12:26:36.167 [main] DEBUG 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}
12:26:36.167 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.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}
12:26:36.167 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.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}
12:26:36.167 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.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}
12:26:36.167 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.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}
12:26:36.167 [main] DEBUG 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}
12:26:36.167 [main] DEBUG 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}
12:26:36.167 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing empty: EmptyLocalKeyEffectiveStatement{argument=[(http://openconfig.net/yang/system?revision=2020-04-13)address]}
12:26:36.167 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.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}
12:26:36.167 [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}
12:26:36.167 [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}
12:26:36.167 [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}
12:26:36.167 [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}
12:26:36.167 [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}
12:26:36.167 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing empty: EmptyLocalKeyEffectiveStatement{argument=[(http://openconfig.net/yang/system?revision=2020-04-13)hostname]}
12:26:36.167 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.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}
12:26:36.167 [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}
12:26:36.167 [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}
12:26:36.167 [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}
12:26:36.167 [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}
12:26:36.167 [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}
12:26:36.167 [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}
12:26:36.167 [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}
12:26:36.167 [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}
12:26:36.167 [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}
12:26:36.168 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.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}
12:26:36.168 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.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}
12:26:36.168 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.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}
12:26:36.168 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.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}
12:26:36.168 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.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}
12:26:36.168 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.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}
12:26:36.168 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.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}
12:26:36.168 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.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}
12:26:36.168 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.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}
12:26:36.168 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.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}
12:26:36.168 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.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}
12:26:36.168 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.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}
12:26:36.168 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.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}
12:26:36.168 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.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}
12:26:36.168 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.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}
12:26:36.168 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.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}
12:26:36.168 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.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}
12:26:36.168 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.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}
12:26:36.168 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.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}
12:26:36.168 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.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}
12:26:36.168 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.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}
12:26:36.168 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.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}
12:26:36.168 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.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}
12:26:36.168 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.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}
12:26:36.168 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.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}
12:26:36.168 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.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}
12:26:36.168 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.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}
12:26:36.168 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.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}
12:26:36.168 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.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}
12:26:36.168 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.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}
12:26:36.168 [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]}
12:26:36.168 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.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}
12:26:36.168 [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}
12:26:36.168 [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}
12:26:36.168 [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}
12:26:36.168 [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}
12:26:36.168 [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}
12:26:36.168 [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}
12:26:36.168 [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}
12:26:36.168 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing empty: EmptyLocalKeyEffectiveStatement{argument=[(http://openconfig.net/yang/system?revision=2020-04-13)address]}
12:26:36.168 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.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}
12:26:36.168 [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}
12:26:36.168 [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}
12:26:36.168 [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}
12:26:36.168 [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}
12:26:36.168 [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}
12:26:36.168 [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}
12:26:36.168 [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}
12:26:36.168 [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}
12:26:36.168 [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}
12:26:36.168 [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}
12:26:36.168 [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}
12:26:36.168 [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}
12:26:36.168 [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}
12:26:36.168 [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}
12:26:36.168 [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}
12:26:36.168 [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}
12:26:36.168 [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}
12:26:36.168 [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}
12:26:36.168 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.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}
12:26:36.168 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.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}
12:26:36.168 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.168 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.168 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.168 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.168 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.168 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.168 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.168 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.168 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.168 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.168 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.168 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.168 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.168 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.168 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.168 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.168 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.169 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.169 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.169 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.169 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.169 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.169 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.169 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.169 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.169 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.169 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.169 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.169 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.169 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.169 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.169 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.169 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.169 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.169 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.169 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.169 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.169 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.169 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.169 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.169 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.169 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.169 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.169 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.169 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.169 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.169 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.169 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.169 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.169 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.169 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 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}
12:26:36.169 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.169 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 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}
12:26:36.169 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.169 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 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}
12:26:36.169 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.169 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 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}
12:26:36.169 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.169 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.169 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.169 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.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}
12:26:36.169 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.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}
12:26:36.169 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.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}
12:26:36.169 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.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}
12:26:36.169 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.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}
12:26:36.169 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.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}
12:26:36.169 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.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}
12:26:36.169 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.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}
12:26:36.169 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.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}
12:26:36.169 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.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}
12:26:36.169 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.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}
12:26:36.169 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.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}
12:26:36.169 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.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}
12:26:36.169 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.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}
12:26:36.169 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.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}
12:26:36.169 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.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}
12:26:36.169 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.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}
12:26:36.169 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.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}
12:26:36.169 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.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}
12:26:36.169 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.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}
12:26:36.169 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.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}
12:26:36.169 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.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}
12:26:36.169 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.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}
12:26:36.169 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.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}
12:26:36.169 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.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}
12:26:36.169 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.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}
12:26:36.169 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.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}
12:26:36.169 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.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}
12:26:36.169 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.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}
12:26:36.169 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.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}
12:26:36.169 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.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}
12:26:36.169 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.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}
12:26:36.169 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.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}
12:26:36.169 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.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}
12:26:36.169 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.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}
12:26:36.169 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.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}
12:26:36.169 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.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}
12:26:36.169 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.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}
12:26:36.169 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.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}
12:26:36.169 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.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}
12:26:36.169 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.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}
12:26:36.169 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.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}
12:26:36.169 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.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}
12:26:36.169 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.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}
12:26:36.169 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.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}
12:26:36.169 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.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}
12:26:36.169 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.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}
12:26:36.169 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.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}
12:26:36.169 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.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}
12:26:36.169 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.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}
12:26:36.169 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.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}
12:26:36.169 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.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}
12:26:36.169 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.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}
12:26:36.169 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.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}
12:26:36.169 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.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}
12:26:36.169 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.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}
12:26:36.169 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.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}
12:26:36.169 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.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}
12:26:36.169 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.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}
12:26:36.169 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.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}
12:26:36.169 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.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}
12:26:36.170 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.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}
12:26:36.170 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.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}
12:26:36.170 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.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}
12:26:36.170 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.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}
12:26:36.170 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.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}
12:26:36.170 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.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}
12:26:36.170 [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}
12:26:36.170 [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}
12:26:36.170 [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}
12:26:36.170 [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}
12:26:36.170 [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}
12:26:36.170 [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}
12:26:36.170 [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}
12:26:36.170 [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}
12:26:36.170 [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}
12:26:36.170 [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}
12:26:36.170 [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}
12:26:36.170 [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}
12:26:36.170 [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}
12:26:36.170 [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}
12:26:36.170 [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}
12:26:36.170 [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}
12:26:36.170 [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}
12:26:36.170 [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}
12:26:36.170 [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}
12:26:36.170 [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}
12:26:36.170 [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}
12:26:36.170 [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}
12:26:36.170 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.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}
12:26:36.170 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.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}
12:26:36.170 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.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}
12:26:36.170 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.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}
12:26:36.170 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.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}
12:26:36.170 [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}
12:26:36.170 [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}
12:26:36.170 [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}
12:26:36.170 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.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}
12:26:36.170 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.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}
12:26:36.170 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.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}
12:26:36.170 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.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}
12:26:36.170 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.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}
12:26:36.170 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.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}
12:26:36.170 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.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}
12:26:36.170 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.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}
12:26:36.170 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.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}
12:26:36.170 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.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}
12:26:36.170 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.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}
12:26:36.170 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.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}
12:26:36.170 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.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}
12:26:36.170 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.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}
12:26:36.170 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.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}
12:26:36.170 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.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}
12:26:36.170 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.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}
12:26:36.170 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.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}
12:26:36.170 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.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}
12:26:36.170 [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}
12:26:36.170 [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}
12:26:36.170 [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}
12:26:36.170 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.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}
12:26:36.170 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.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}
12:26:36.170 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.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}
12:26:36.170 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.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}
12:26:36.170 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.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}
12:26:36.170 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.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}
12:26:36.170 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.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}
12:26:36.170 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.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}
12:26:36.170 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.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}
12:26:36.170 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.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}
12:26:36.170 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.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}
12:26:36.170 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.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}
12:26:36.171 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.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}
12:26:36.171 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.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}
12:26:36.171 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.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}
12:26:36.171 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.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}
12:26:36.171 [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]}
12:26:36.171 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.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}
12:26:36.171 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.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}
12:26:36.171 [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}
12:26:36.171 [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}
12:26:36.171 [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}
12:26:36.171 [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}
12:26:36.171 [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}
12:26:36.171 [main] 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}
12:26:36.171 [main] 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}
12:26:36.171 [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}
12:26:36.171 [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}
12:26:36.171 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.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}
12:26:36.171 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.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}
12:26:36.171 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.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}
12:26:36.171 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.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}
12:26:36.171 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.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}
12:26:36.171 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.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}
12:26:36.171 [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]}
12:26:36.171 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.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}
12:26:36.171 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.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}
12:26:36.171 [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}
12:26:36.171 [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}
12:26:36.171 [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}
12:26:36.171 [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}
12:26:36.171 [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}
12:26:36.171 [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]}
12:26:36.171 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.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}
12:26:36.171 [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}
12:26:36.171 [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}
12:26:36.171 [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}
12:26:36.171 [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}
12:26:36.171 [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}
12:26:36.171 [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}
12:26:36.171 [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}
12:26:36.171 [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}
12:26:36.171 [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}
12:26:36.171 [main] 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}
12:26:36.171 [main] 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}
12:26:36.171 [main] 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}
12:26:36.171 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.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}
12:26:36.171 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.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}
12:26:36.171 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.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}
12:26:36.171 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.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}
12:26:36.171 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.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}
12:26:36.171 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.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}
12:26:36.172 [main] 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}
12:26:36.172 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.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}
12:26:36.172 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.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}
12:26:36.172 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.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}
12:26:36.172 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.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}
12:26:36.172 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.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}
12:26:36.172 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.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}
12:26:36.172 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.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}
12:26:36.172 [main] 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}
12:26:36.172 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.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}
12:26:36.172 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.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}
12:26:36.172 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.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}
12:26:36.172 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.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}
12:26:36.172 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.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}
12:26:36.172 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.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}
12:26:36.172 [main] DEBUG 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}
12:26:36.172 [main] DEBUG 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}
12:26:36.172 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.172 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.172 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.172 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.172 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.172 [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}
12:26:36.172 [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}
12:26:36.172 [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}
12:26:36.172 [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}
12:26:36.172 [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}
12:26:36.172 [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}
12:26:36.172 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.172 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.172 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.172 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.172 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.172 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.172 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.172 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.172 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.172 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.172 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing empty: EmptyLocalKeyEffectiveStatement{argument=[(http://openconfig.net/yang/aaa?revision=2020-07-30)username]}
12:26:36.172 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.172 [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}
12:26:36.172 [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}
12:26:36.172 [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}
12:26:36.172 [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}
12:26:36.172 [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}
12:26:36.172 [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}
12:26:36.172 [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}
12:26:36.172 [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}
12:26:36.172 [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}
12:26:36.172 [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}
12:26:36.172 [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}
12:26:36.172 [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}
12:26:36.172 [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}
12:26:36.172 [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}
12:26:36.172 [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}
12:26:36.172 [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}
12:26:36.172 [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}
12:26:36.172 [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}
12:26:36.173 [main] DEBUG 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}
12:26:36.173 [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}
12:26:36.173 [main] DEBUG 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}
12:26:36.173 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.173 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.173 [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]}
12:26:36.173 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.173 [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}
12:26:36.173 [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}
12:26:36.173 [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}
12:26:36.173 [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}
12:26:36.173 [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}
12:26:36.173 [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}
12:26:36.173 [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}
12:26:36.173 [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}
12:26:36.173 [main] DEBUG 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}
12:26:36.173 [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}
12:26:36.173 [main] DEBUG 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}
12:26:36.173 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.173 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.173 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.173 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.173 [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]}
12:26:36.173 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.173 [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}
12:26:36.173 [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}
12:26:36.173 [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}
12:26:36.173 [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}
12:26:36.173 [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}
12:26:36.173 [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}
12:26:36.173 [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}
12:26:36.173 [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}
12:26:36.173 [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}
12:26:36.173 [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}
12:26:36.173 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.173 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.173 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.173 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.174 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.174 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.174 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.174 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.174 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.174 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.174 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.174 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.174 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.174 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.174 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.174 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.174 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.174 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.174 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.174 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.174 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.174 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.174 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.174 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.174 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.174 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.174 [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}
12:26:36.174 [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}
12:26:36.174 [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}
12:26:36.174 [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}
12:26:36.174 [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}
12:26:36.174 [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}
12:26:36.174 [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}
12:26:36.174 [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}
12:26:36.174 [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}
12:26:36.174 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.174 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.174 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.174 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.174 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.174 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.174 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.174 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.174 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.174 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.174 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.174 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.174 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.174 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.174 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.174 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.174 [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}
12:26:36.174 [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}
12:26:36.174 [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}
12:26:36.174 [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}
12:26:36.174 [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}
12:26:36.174 [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}
12:26:36.174 [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}
12:26:36.174 [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}
12:26:36.174 [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}
12:26:36.174 [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}
12:26:36.174 [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}
12:26:36.174 [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}
12:26:36.174 [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}
12:26:36.174 [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}
12:26:36.174 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing empty: EmptyLocalKeyEffectiveStatement{argument=[(http://openconfig.net/yang/aaa?revision=2020-07-30)address]}
12:26:36.174 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.174 [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}
12:26:36.174 [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}
12:26:36.174 [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}
12:26:36.174 [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}
12:26:36.174 [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}
12:26:36.174 [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}
12:26:36.174 [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}
12:26:36.174 [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}
12:26:36.174 [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}
12:26:36.174 [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}
12:26:36.174 [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}
12:26:36.174 [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}
12:26:36.174 [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}
12:26:36.174 [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}
12:26:36.174 [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}
12:26:36.174 [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}
12:26:36.174 [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}
12:26:36.174 [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}
12:26:36.174 [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}
12:26:36.175 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing empty: EmptyLocalKeyEffectiveStatement{argument=[(http://openconfig.net/yang/aaa?revision=2020-07-30)name]}
12:26:36.175 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.175 [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}
12:26:36.175 [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}
12:26:36.175 [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}
12:26:36.175 [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}
12:26:36.175 [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}
12:26:36.175 [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}
12:26:36.175 [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}
12:26:36.175 [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}
12:26:36.175 [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}
12:26:36.175 [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}
12:26:36.175 [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}
12:26:36.175 [main] 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}
12:26:36.175 [main] 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}
12:26:36.175 [main] DEBUG 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}
12:26:36.175 [main] DEBUG 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}
12:26:36.175 [main] 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}
12:26:36.175 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.175 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.175 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.175 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.175 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.175 [main] DEBUG 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}
12:26:36.175 [main] DEBUG 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}
12:26:36.175 [main] 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}
12:26:36.175 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.175 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.175 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.175 [main] DEBUG 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}
12:26:36.175 [main] DEBUG 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}
12:26:36.175 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.175 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.175 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.175 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.175 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.175 [main] 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}
12:26:36.175 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.175 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.175 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.175 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.175 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.175 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.175 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.175 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.175 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.175 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.175 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.175 [main] 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}
12:26:36.175 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.175 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.175 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.175 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.175 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.175 [main] 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}
12:26:36.175 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.175 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.175 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.175 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.175 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.175 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.175 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.176 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.176 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.176 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.176 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.176 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.176 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.176 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.176 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.176 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.176 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.176 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.176 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.176 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.176 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.176 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.176 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.176 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.176 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.176 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.176 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.176 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.176 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.176 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.176 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.176 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.176 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.176 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.176 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.176 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.176 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.176 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.176 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.176 [main] 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}
12:26:36.176 [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}
12:26:36.176 [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}
12:26:36.176 [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}
12:26:36.176 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing empty: EmptyLocalKeyEffectiveStatement{argument=[(http://openconfig.net/yang/system?revision=2020-04-13)index]}
12:26:36.176 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.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}
12:26:36.176 [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}
12:26:36.176 [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}
12:26:36.176 [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}
12:26:36.176 [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}
12:26:36.176 [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}
12:26:36.176 [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}
12:26:36.176 [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}
12:26:36.176 [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}
12:26:36.176 [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}
12:26:36.176 [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}
12:26:36.176 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.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}
12:26:36.176 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.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}
12:26:36.176 [main] DEBUG 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}
12:26:36.176 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.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}
12:26:36.176 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.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}
12:26:36.176 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.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}
12:26:36.176 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.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}
12:26:36.176 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.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}
12:26:36.176 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.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}
12:26:36.176 [main] 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}
12:26:36.176 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.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}
12:26:36.176 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.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}
12:26:36.176 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.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}
12:26:36.176 [main] DEBUG 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}
12:26:36.176 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.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}
12:26:36.176 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.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}
12:26:36.176 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.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}
12:26:36.176 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.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}
12:26:36.176 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.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}
12:26:36.176 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.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}
12:26:36.177 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.177 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.177 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.177 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.177 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.177 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.177 [main] 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}
12:26:36.177 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.177 [main] 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}
12:26:36.177 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.177 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.177 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.177 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.177 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.177 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.177 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.177 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.177 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.177 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.177 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.177 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.177 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.177 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.177 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.177 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.177 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.177 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing empty: EmptyLocalKeyEffectiveStatement{argument=[(http://openconfig.net/yang/messages?revision=2018-08-13)service]}
12:26:36.177 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.177 [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}
12:26:36.177 [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}
12:26:36.177 [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}
12:26:36.177 [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}
12:26:36.177 [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}
12:26:36.177 [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}
12:26:36.177 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.177 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.177 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.177 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.177 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.177 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.177 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.177 [main] 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}
12:26:36.177 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.177 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.177 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.177 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.177 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.177 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.177 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.177 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.177 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.177 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.177 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.177 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.178 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.178 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.178 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.178 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.178 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.178 [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]}
12:26:36.178 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.178 [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}
12:26:36.178 [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}
12:26:36.178 [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}
12:26:36.178 [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}
12:26:36.178 [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}
12:26:36.178 [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}
12:26:36.178 [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}
12:26:36.178 [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}
12:26:36.178 [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}
12:26:36.178 [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}
12:26:36.178 [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}
12:26:36.178 [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}
12:26:36.178 [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}
12:26:36.178 [main] 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}
12:26:36.178 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.178 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.178 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.178 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.178 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.178 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.178 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.178 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.178 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.178 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.178 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.178 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.178 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.178 [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}
12:26:36.178 [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}
12:26:36.178 [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}
12:26:36.178 [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}
12:26:36.178 [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}
12:26:36.178 [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}
12:26:36.178 [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}
12:26:36.178 [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}
12:26:36.178 [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}
12:26:36.178 [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}
12:26:36.178 [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}
12:26:36.178 [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}
12:26:36.178 [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}
12:26:36.178 [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}
12:26:36.178 [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}
12:26:36.178 [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}
12:26:36.178 [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}
12:26:36.178 [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}
12:26:36.178 [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}
12:26:36.178 [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}
12:26:36.178 [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}
12:26:36.178 [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}
12:26:36.178 [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}
12:26:36.178 [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}
12:26:36.178 [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}
12:26:36.178 [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}
12:26:36.178 [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}
12:26:36.178 [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}
12:26:36.178 [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}
12:26:36.178 [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}
12:26:36.178 [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}
12:26:36.178 [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}
12:26:36.178 [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}
12:26:36.179 [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}
12:26:36.179 [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}
12:26:36.179 [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}
12:26:36.179 [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}
12:26:36.179 [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}
12:26:36.179 [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}
12:26:36.179 [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}
12:26:36.179 [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}
12:26:36.179 [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}
12:26:36.179 [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}
12:26:36.179 [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}
12:26:36.179 [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}
12:26:36.179 [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}
12:26:36.179 [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}
12:26:36.179 [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}
12:26:36.179 [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}
12:26:36.179 [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}
12:26:36.179 [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}
12:26:36.179 [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}
12:26:36.179 [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}
12:26:36.179 [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}
12:26:36.179 [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}
12:26:36.179 [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}
12:26:36.179 [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}
12:26:36.179 [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}
12:26:36.179 [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}
12:26:36.179 [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}
12:26:36.179 [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}
12:26:36.179 [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}
12:26:36.179 [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}
12:26:36.179 [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}
12:26:36.179 [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}
12:26:36.179 [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}
12:26:36.179 [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}
12:26:36.179 [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}
12:26:36.179 [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}
12:26:36.179 [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}
12:26:36.179 [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}
12:26:36.179 [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}
12:26:36.179 [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}
12:26:36.179 [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}
12:26:36.179 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.179 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.180 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.180 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.180 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.180 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.180 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.180 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.180 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.180 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.180 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing empty: EmptyLocalKeyEffectiveStatement{argument=[(http://openconfig.net/yang/openflow?revision=2018-11-21)name]}
12:26:36.180 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.180 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.180 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.180 [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]}
12:26:36.180 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.180 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.180 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.180 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.180 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.180 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.180 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.180 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.180 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.180 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.180 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.180 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.180 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.180 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.180 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.180 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.180 [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}
12:26:36.180 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 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}
12:26:36.180 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 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}
12:26:36.180 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 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}
12:26:36.180 [main] DEBUG org.opendaylight.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}
12:26:36.180 [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}
12:26:36.180 [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}
12:26:36.180 [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}
12:26:36.180 [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}
12:26:36.180 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 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}
12:26:36.180 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 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}
12:26:36.180 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 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}
12:26:36.180 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 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}
12:26:36.180 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 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}
12:26:36.180 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 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}
12:26:36.180 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 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}
12:26:36.180 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 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}
12:26:36.180 [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}
12:26:36.180 [main] DEBUG org.opendaylight.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}
12:26:36.180 [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}
12:26:36.180 [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}
12:26:36.181 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 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}
12:26:36.181 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 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}
12:26:36.181 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 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}
12:26:36.181 [main] DEBUG org.opendaylight.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}
12:26:36.181 [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}
12:26:36.181 [main] DEBUG org.opendaylight.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}
12:26:36.181 [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}
12:26:36.181 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 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}
12:26:36.181 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 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}
12:26:36.181 [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}
12:26:36.181 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 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}
12:26:36.181 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 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}
12:26:36.181 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 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}
12:26:36.181 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 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}
12:26:36.181 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 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}
12:26:36.181 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 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}
12:26:36.181 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 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}
12:26:36.181 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 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}
12:26:36.181 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 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}
12:26:36.181 [main] DEBUG org.opendaylight.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}
12:26:36.181 [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}
12:26:36.181 [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}
12:26:36.181 [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}
12:26:36.181 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 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}
12:26:36.181 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 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}
12:26:36.181 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 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}
12:26:36.181 [main] DEBUG org.opendaylight.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}
12:26:36.181 [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}
12:26:36.181 [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}
12:26:36.181 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 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}
12:26:36.181 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 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}
12:26:36.181 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 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}
12:26:36.181 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 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}
12:26:36.181 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 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}
12:26:36.181 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 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}
12:26:36.181 [main] DEBUG org.opendaylight.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}
12:26:36.181 [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}
12:26:36.181 [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}
12:26:36.181 [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}
12:26:36.181 [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}
12:26:36.181 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 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}
12:26:36.181 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 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}
12:26:36.181 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 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}
12:26:36.181 [main] DEBUG org.opendaylight.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}
12:26:36.181 [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}
12:26:36.181 [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}
12:26:36.181 [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}
12:26:36.181 [main] DEBUG org.opendaylight.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}
12:26:36.181 [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}
12:26:36.181 [main] DEBUG org.opendaylight.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}
12:26:36.181 [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}
12:26:36.181 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 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}
12:26:36.181 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 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}
12:26:36.181 [main] DEBUG org.opendaylight.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}
12:26:36.181 [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}
12:26:36.181 [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}
12:26:36.181 [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}
12:26:36.181 [main] DEBUG org.opendaylight.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}
12:26:36.181 [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}
12:26:36.181 [main] DEBUG org.opendaylight.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}
12:26:36.181 [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}
12:26:36.181 [main] DEBUG org.opendaylight.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}
12:26:36.181 [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}
12:26:36.181 [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}
12:26:36.181 [main] DEBUG org.opendaylight.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}
12:26:36.181 [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}
12:26:36.181 [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}
12:26:36.181 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 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}
12:26:36.181 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 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}
12:26:36.181 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 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}
12:26:36.181 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 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}
12:26:36.181 [main] DEBUG org.opendaylight.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}
12:26:36.181 [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}
12:26:36.181 [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}
12:26:36.181 [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}
12:26:36.181 [main] DEBUG org.opendaylight.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}
12:26:36.181 [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}
12:26:36.181 [main] DEBUG org.opendaylight.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}
12:26:36.181 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 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}
12:26:36.181 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 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}
12:26:36.181 [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}
12:26:36.181 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 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}
12:26:36.181 [main] DEBUG org.opendaylight.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}
12:26:36.181 [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}
12:26:36.181 [main] DEBUG org.opendaylight.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}
12:26:36.181 [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}
12:26:36.181 [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/logging?revision=2018-11-21)logging, refCount=SWEEPING}
12:26:36.181 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.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}
12:26:36.182 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.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}
12:26:36.182 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.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}
12:26:36.182 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.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}
12:26:36.182 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.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}
12:26:36.182 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.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}
12:26:36.182 [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}
12:26:36.182 [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}
12:26:36.182 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 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}
12:26:36.182 [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}
12:26:36.182 [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}
12:26:36.182 [main] DEBUG org.opendaylight.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}
12:26:36.182 [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}
12:26:36.182 [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}
12:26:36.182 [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}
12:26:36.182 [main] DEBUG org.opendaylight.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}
12:26:36.182 [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}
12:26:36.182 [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}
12:26:36.182 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 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}
12:26:36.182 [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}
12:26:36.182 [main] DEBUG org.opendaylight.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}
12:26:36.182 [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}
12:26:36.182 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 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}
12:26:36.182 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 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}
12:26:36.182 [main] DEBUG org.opendaylight.yangtools.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}
12:26:36.182 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 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}
12:26:36.182 [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}
12:26:36.182 [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}
12:26:36.182 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 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}
12:26:36.182 [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}
12:26:36.182 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 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}
12:26:36.182 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.182 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.182 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.182 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.182 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.182 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.182 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.183 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.183 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 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}
12:26:36.183 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.183 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 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}
12:26:36.183 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.183 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 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}
12:26:36.183 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.183 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.183 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.183 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.183 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.183 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.183 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.183 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.183 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.183 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.183 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.183 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.183 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.183 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.183 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.183 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.183 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.183 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.183 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.183 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.183 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.183 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.183 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.183 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.183 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.183 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.183 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.183 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.183 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.183 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.183 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.183 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.183 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.183 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.183 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.183 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.183 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.183 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.183 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.183 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.183 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.183 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing empty: EmptyLocalKeyEffectiveStatement{argument=[(http://openconfig.net/yang/platform?revision=2021-01-18)name]}
12:26:36.183 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.183 [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}
12:26:36.183 [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}
12:26:36.183 [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}
12:26:36.183 [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}
12:26:36.183 [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}
12:26:36.183 [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}
12:26:36.183 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing empty: EmptyLocalKeyEffectiveStatement{argument=[(http://openconfig.net/yang/platform?revision=2021-01-18)name]}
12:26:36.183 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.183 [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}
12:26:36.183 [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}
12:26:36.183 [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}
12:26:36.183 [main] 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}
12:26:36.183 [main] 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}
12:26:36.183 [main] 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}
12:26:36.183 [main] 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}
12:26:36.183 [main] 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}
12:26:36.183 [main] 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}
12:26:36.183 [main] 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}
12:26:36.183 [main] 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}
12:26:36.183 [main] 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}
12:26:36.183 [main] 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}
12:26:36.183 [main] 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}
12:26:36.183 [main] 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}
12:26:36.183 [main] 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}
12:26:36.183 [main] 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}
12:26:36.184 [main] 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}
12:26:36.184 [main] 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}
12:26:36.184 [main] 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}
12:26:36.184 [main] 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}
12:26:36.184 [main] 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}
12:26:36.184 [main] 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}
12:26:36.184 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing empty: EmptyLocalKeyEffectiveStatement{argument=[(http://openconfig.net/yang/platform?revision=2021-01-18)name]}
12:26:36.184 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.184 [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}
12:26:36.184 [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}
12:26:36.184 [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}
12:26:36.184 [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}
12:26:36.184 [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}
12:26:36.184 [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}
12:26:36.184 [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}
12:26:36.184 [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}
12:26:36.184 [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}
12:26:36.184 [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}
12:26:36.184 [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}
12:26:36.184 [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}
12:26:36.184 [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}
12:26:36.184 [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}
12:26:36.184 [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}
12:26:36.184 [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}
12:26:36.184 [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}
12:26:36.184 [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}
12:26:36.184 [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}
12:26:36.184 [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}
12:26:36.184 [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}
12:26:36.184 [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}
12:26:36.184 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.184 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.184 [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}
12:26:36.184 [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}
12:26:36.184 [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}
12:26:36.184 [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}
12:26:36.184 [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}
12:26:36.184 [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}
12:26:36.184 [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}
12:26:36.184 [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}
12:26:36.184 [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}
12:26:36.184 [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}
12:26:36.184 [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}
12:26:36.184 [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}
12:26:36.184 [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}
12:26:36.184 [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}
12:26:36.184 [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}
12:26:36.184 [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}
12:26:36.184 [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}
12:26:36.184 [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}
12:26:36.184 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 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}
12:26:36.184 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 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}
12:26:36.184 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 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}
12:26:36.184 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 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}
12:26:36.184 [main] DEBUG org.opendaylight.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}
12:26:36.184 [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}
12:26:36.184 [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}
12:26:36.184 [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}
12:26:36.184 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 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}
12:26:36.184 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 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}
12:26:36.184 [main] DEBUG org.opendaylight.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}
12:26:36.184 [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}
12:26:36.184 [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}
12:26:36.184 [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}
12:26:36.184 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 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}
12:26:36.184 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 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}
12:26:36.184 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 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}
12:26:36.184 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 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}
12:26:36.184 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 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}
12:26:36.184 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 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}
12:26:36.184 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 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}
12:26:36.184 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 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}
12:26:36.184 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 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}
12:26:36.184 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 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}
12:26:36.184 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 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}
12:26:36.184 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 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}
12:26:36.184 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 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}
12:26:36.184 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 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}
12:26:36.184 [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}
12:26:36.184 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 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}
12:26:36.184 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 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}
12:26:36.184 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 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}
12:26:36.184 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 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}
12:26:36.185 [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}
12:26:36.185 [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}
12:26:36.185 [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}
12:26:36.185 [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}
12:26:36.185 [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}
12:26:36.185 [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}
12:26:36.185 [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}
12:26:36.185 [main] DEBUG org.opendaylight.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}
12:26:36.185 [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}
12:26:36.185 [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}
12:26:36.185 [main] DEBUG org.opendaylight.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}
12:26:36.185 [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}
12:26:36.185 [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}
12:26:36.185 [main] DEBUG org.opendaylight.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}
12:26:36.185 [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}
12:26:36.185 [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}
12:26:36.185 [main] DEBUG org.opendaylight.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}
12:26:36.185 [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}
12:26:36.185 [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}
12:26:36.185 [main] DEBUG org.opendaylight.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}
12:26:36.185 [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}
12:26:36.185 [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}
12:26:36.185 [main] DEBUG org.opendaylight.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}
12:26:36.185 [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}
12:26:36.185 [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}
12:26:36.185 [main] DEBUG org.opendaylight.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}
12:26:36.185 [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}
12:26:36.185 [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}
12:26:36.185 [main] DEBUG org.opendaylight.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}
12:26:36.185 [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}
12:26:36.185 [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}
12:26:36.185 [main] DEBUG org.opendaylight.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}
12:26:36.185 [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}
12:26:36.185 [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}
12:26:36.185 [main] DEBUG org.opendaylight.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}
12:26:36.185 [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}
12:26:36.185 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 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}
12:26:36.185 [main] DEBUG org.opendaylight.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}
12:26:36.185 [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}
12:26:36.185 [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}
12:26:36.185 [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}
12:26:36.185 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 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}
12:26:36.185 [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}
12:26:36.185 [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}
12:26:36.185 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 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}
12:26:36.185 [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}
12:26:36.185 [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}
12:26:36.185 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 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}
12:26:36.185 [main] DEBUG org.opendaylight.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}
12:26:36.185 [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}
12:26:36.185 [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}
12:26:36.185 [main] DEBUG org.opendaylight.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}
12:26:36.185 [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}
12:26:36.185 [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}
12:26:36.185 [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}
12:26:36.185 [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}
12:26:36.185 [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}
12:26:36.185 [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}
12:26:36.185 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 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}
12:26:36.185 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 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}
12:26:36.185 [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}
12:26:36.185 [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}
12:26:36.185 [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}
12:26:36.185 [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}
12:26:36.185 [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}
12:26:36.185 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 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}
12:26:36.185 [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}
12:26:36.185 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 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}
12:26:36.185 [main] DEBUG org.opendaylight.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}
12:26:36.185 [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}
12:26:36.185 [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}
12:26:36.185 [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}
12:26:36.185 [main] DEBUG org.opendaylight.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}
12:26:36.185 [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}
12:26:36.185 [main] DEBUG org.opendaylight.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}
12:26:36.185 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 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}
12:26:36.185 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 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}
12:26:36.185 [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}
12:26:36.185 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 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}
12:26:36.185 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 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}
12:26:36.185 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 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}
12:26:36.185 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 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}
12:26:36.185 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 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}
12:26:36.185 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 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}
12:26:36.185 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 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}
12:26:36.185 [main] DEBUG org.opendaylight.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}
12:26:36.185 [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}
12:26:36.185 [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}
12:26:36.185 [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}
12:26:36.185 [main] DEBUG org.opendaylight.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}
12:26:36.185 [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}
12:26:36.185 [main] DEBUG org.opendaylight.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}
12:26:36.185 [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}
12:26:36.185 [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}
12:26:36.185 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 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}
12:26:36.185 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 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}
12:26:36.185 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 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}
12:26:36.185 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 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}
12:26:36.185 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 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}
12:26:36.185 [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}
12:26:36.185 [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}
12:26:36.185 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 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}
12:26:36.185 [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}
12:26:36.185 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 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}
12:26:36.185 [main] DEBUG org.opendaylight.yangtools.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}
12:26:36.185 [main] DEBUG org.opendaylight.yangtools.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}
12:26:36.185 [main] DEBUG org.opendaylight.yangtools.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}
12:26:36.185 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 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}
12:26:36.185 [main] DEBUG org.opendaylight.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}
12:26:36.185 [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}
12:26:36.185 [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}
12:26:36.185 [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}
12:26:36.185 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 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}
12:26:36.185 [main] DEBUG org.opendaylight.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}
12:26:36.185 [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}
12:26:36.185 [main] DEBUG org.opendaylight.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}
12:26:36.185 [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}
12:26:36.185 [main] DEBUG org.opendaylight.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}
12:26:36.185 [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}
12:26:36.185 [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}
12:26:36.186 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 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}
12:26:36.186 [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}
12:26:36.186 [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}
12:26:36.186 [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}
12:26:36.186 [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}
12:26:36.186 [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}
12:26:36.186 [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}
12:26:36.186 [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}
12:26:36.186 [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}
12:26:36.186 [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}
12:26:36.186 [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}
12:26:36.186 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 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}
12:26:36.186 [main] DEBUG org.opendaylight.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}
12:26:36.186 [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}
12:26:36.186 [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}
12:26:36.186 [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}
12:26:36.186 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 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}
12:26:36.186 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 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}
12:26:36.186 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 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}
12:26:36.186 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 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}
12:26:36.186 [main] DEBUG org.opendaylight.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}
12:26:36.186 [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}
12:26:36.186 [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}
12:26:36.186 [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}
12:26:36.186 [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}
12:26:36.186 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 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}
12:26:36.186 [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}
12:26:36.186 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 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}
12:26:36.186 [main] DEBUG org.opendaylight.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}
12:26:36.186 [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}
12:26:36.186 [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}
12:26:36.186 [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}
12:26:36.186 [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}
12:26:36.186 [main] DEBUG org.opendaylight.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}
12:26:36.186 [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}
12:26:36.186 [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}
12:26:36.186 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 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}
12:26:36.186 [main] DEBUG org.opendaylight.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}
12:26:36.186 [main] DEBUG org.opendaylight.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}
12:26:36.186 [main] DEBUG org.opendaylight.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}
12:26:36.186 [main] DEBUG org.opendaylight.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}
12:26:36.186 [main] DEBUG org.opendaylight.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}
12:26:36.186 [main] DEBUG org.opendaylight.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}
12:26:36.186 [main] DEBUG org.opendaylight.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}
12:26:36.186 [main] DEBUG org.opendaylight.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}
12:26:36.186 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 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}
12:26:36.186 [main] DEBUG org.opendaylight.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}
12:26:36.186 [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}
12:26:36.186 [main] DEBUG org.opendaylight.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}
12:26:36.186 [main] DEBUG org.opendaylight.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}
12:26:36.186 [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}
12:26:36.186 [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}
12:26:36.186 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 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}
12:26:36.186 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 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}
12:26:36.186 [main] DEBUG org.opendaylight.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}
12:26:36.186 [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}
12:26:36.186 [main] DEBUG org.opendaylight.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}
12:26:36.186 [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}
12:26:36.186 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 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}
12:26:36.186 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 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}
12:26:36.186 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 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}
12:26:36.186 [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}
12:26:36.186 [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}
12:26:36.186 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 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}
12:26:36.186 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 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}
12:26:36.186 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 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}
12:26:36.186 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 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}
12:26:36.186 [main] DEBUG org.opendaylight.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}
12:26:36.186 [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}
12:26:36.186 [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}
12:26:36.186 [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}
12:26:36.186 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 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}
12:26:36.186 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 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}
12:26:36.186 [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}
12:26:36.186 [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}
12:26:36.186 [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}
12:26:36.186 [main] DEBUG org.opendaylight.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}
12:26:36.186 [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}
12:26:36.186 [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}
12:26:36.186 [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}
12:26:36.188 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 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}
12:26:36.188 [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}
12:26:36.188 [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}
12:26:36.188 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 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}
12:26:36.188 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 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}
12:26:36.188 [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}
12:26:36.188 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 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}
12:26:36.188 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 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}
12:26:36.188 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 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}
12:26:36.188 [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}
12:26:36.188 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 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}
12:26:36.188 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 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}
12:26:36.188 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 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}
12:26:36.188 [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}
12:26:36.188 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 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}
12:26:36.188 [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}
12:26:36.188 [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}
12:26:36.188 [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}
12:26:36.188 [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}
12:26:36.188 [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}
12:26:36.188 [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}
12:26:36.188 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 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}
12:26:36.188 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 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}
12:26:36.188 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 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}
12:26:36.188 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 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}
12:26:36.188 [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}
12:26:36.188 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 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}
12:26:36.188 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 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}
12:26:36.188 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 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}
12:26:36.188 [main] DEBUG org.opendaylight.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}
12:26:36.188 [main] DEBUG org.opendaylight.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}
12:26:36.188 [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}
12:26:36.188 [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}
12:26:36.188 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 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}
12:26:36.188 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 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}
12:26:36.188 [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}
12:26:36.188 [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}
12:26:36.188 [main] DEBUG org.opendaylight.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}
12:26:36.188 [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}
12:26:36.188 [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}
12:26:36.188 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 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}
12:26:36.189 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext -- Reusing empty: EmptyLocalKeyEffectiveStatement{argument=[(test:aug)name]}
12:26:36.189 [main] DEBUG org.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}
12:26:36.189 [main] DEBUG org.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}
12:26:36.189 [main] DEBUG org.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}
12:26:36.189 [main] DEBUG org.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}
12:26:36.189 [main] DEBUG org.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}
12:26:36.189 [main] DEBUG org.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}
12:26:36.189 [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}
12:26:36.189 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.189 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 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}
12:26:36.189 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.189 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.189 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.189 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.189 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.189 [main] DEBUG org.opendaylight.yangtools.yang.parser.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}
12:26:36.189 [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}
12:26:36.189 [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}
12:26:36.189 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 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}
12:26:36.189 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 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}
12:26:36.189 [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}
12:26:36.189 [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}
12:26:36.189 [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}
12:26:36.189 [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}
12:26:36.189 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 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}
12:26:36.189 [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}
12:26:36.189 [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}
12:26:36.189 [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}
12:26:36.189 [main] DEBUG org.opendaylight.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}
12:26:36.189 [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}
12:26:36.189 [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}
12:26:36.189 [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}
12:26:36.189 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 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}
12:26:36.189 [main] DEBUG org.opendaylight.yangtools.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}
12:26:36.189 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 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}
12:26:36.190 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 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}
12:26:36.190 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 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}
12:26:36.190 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 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}
12:26:36.190 [main] DEBUG org.opendaylight.yangtools.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}
12:26:36.190 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 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}
12:26:36.190 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 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}
12:26:36.190 [main] DEBUG org.opendaylight.yangtools.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}
12:26:36.190 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 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}
12:26:36.190 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 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}
12:26:36.190 [main] DEBUG org.opendaylight.yangtools.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}
12:26:36.190 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 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}
12:26:36.190 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 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}
12:26:36.190 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 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}
12:26:36.190 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 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}
12:26:36.190 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 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}
12:26:36.190 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 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}
12:26:36.190 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 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}
12:26:36.190 [main] DEBUG org.opendaylight.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}
12:26:36.190 [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}
12:26:36.190 [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}
12:26:36.190 [main] DEBUG org.opendaylight.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}
12:26:36.190 [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}
12:26:36.190 [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}
12:26:36.190 [main] DEBUG org.opendaylight.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}
12:26:36.190 [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}
12:26:36.190 [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}
12:26:36.190 [main] DEBUG org.opendaylight.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}
12:26:36.190 [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}
12:26:36.190 [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}
12:26:36.190 [main] DEBUG org.opendaylight.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}
12:26:36.190 [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}
12:26:36.190 [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}
12:26:36.190 [main] DEBUG org.opendaylight.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}
12:26:36.190 [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}
12:26:36.190 [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}
12:26:36.190 [main] DEBUG org.opendaylight.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}
12:26:36.190 [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}
12:26:36.190 [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}
12:26:36.190 [main] DEBUG org.opendaylight.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}
12:26:36.190 [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}
12:26:36.190 [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}
12:26:36.190 [main] DEBUG org.opendaylight.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}
12:26:36.190 [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}
12:26:36.190 [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}
12:26:36.190 [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}
12:26:36.190 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 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}
12:26:36.190 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 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}
12:26:36.190 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 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}
12:26:36.190 [main] DEBUG org.opendaylight.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}
12:26:36.190 [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}
12:26:36.190 [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}
12:26:36.190 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 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}
12:26:36.190 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 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}
12:26:36.190 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 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}
12:26:36.190 [main] DEBUG org.opendaylight.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}
12:26:36.190 [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}
12:26:36.190 [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}
12:26:36.190 [main] DEBUG org.opendaylight.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}
12:26:36.190 [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}
12:26:36.190 [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}
12:26:36.190 [main] DEBUG org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx -- 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}
12:26:36.190 [main] DEBUG org.opendaylight.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}
12:26:36.190 [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}
12:26:36.190 [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}
12:26:36.191 [main] INFO org.opendaylight.mdsal.dom.store.inmemory.InMemoryDOMDataStore -- ThreadFactory created: DOM-CFG-DCL
12:26:36.191 [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}}]}
12:26:36.191 [main] INFO org.opendaylight.mdsal.dom.store.inmemory.InMemoryDOMDataStore -- ThreadFactory created: DOM-OPER-DCL
12:26:36.191 [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}}]}
12:26:36.191 [main] INFO org.opendaylight.mdsal.dom.store.inmemory.InMemoryDOMDataStore -- ThreadFactory created: DOM-STATE-DCL
12:26:36.191 [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}}]}
12:26:36.193 [main] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedWriteTransaction -- Write Tx: DOM-CFG-0 allocated with snapshot Version[1ee3993f]
12:26:36.193 [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}]}]}]}]}]}}]}
12:26:36.193 [main] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedWriteTransaction -- Store transaction: DOM-CFG-0 : Ready
12:26:36.193 [main] DEBUG org.opendaylight.yangtools.yang.data.spi.node.MandatoryLeafEnforcer -- Adding mandatory child /(http://openconfig.net/yang/interfaces?revision=2021-04-06)config/type
12:26:36.193 [main] DEBUG org.opendaylight.mdsal.dom.store.inmemory.InMemoryDOMDataStore -- Tx: DOM-CFG-0 is submitted. Modifications: InMemoryDataTreeModification{state=Ready}
12:26:36.193 [main] DEBUG org.opendaylight.mdsal.dom.store.inmemory.InMemoryDOMStoreThreePhaseCommitCohort -- Store Transaction: DOM-CFG-0 can be committed
12:26:36.193 [main] DEBUG org.opendaylight.yangtools.yang.data.tree.impl.InMemoryDataTree -- Updating datastore from SimpleContainerNode{version=Version[1ee3993f], data=ImmutableContainerNode{name=(urn:ietf:params:xml:ns:netconf:base:1.0)data, body=[]}} to MaterializedContainerNode{version=Version[1ee3993f], subtreeVersion=Version[4b975b44], children={(http://openconfig.net/yang/interfaces?revision=2021-04-06)interfaces=SimpleContainerNode{version=Version[4b975b44], 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}]}]}]}]}]}}]}}}}
12:26:36.193 [main] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedWriteTransaction -- Store transaction: DOM-CFG-0 : Closed after submit
12:26:36.195 [main] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedWriteTransaction -- Write Tx: DOM-STATE-0 allocated with snapshot Version[4238ef0a]
12:26:36.195 [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}]}]}]}]}]}]}]}
12:26:36.196 [main] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedWriteTransaction -- Store transaction: DOM-STATE-0 : Ready
12:26:36.196 [main] DEBUG org.opendaylight.mdsal.dom.store.inmemory.InMemoryDOMDataStore -- Tx: DOM-STATE-0 is submitted. Modifications: InMemoryDataTreeModification{state=Ready}
12:26:36.196 [main] DEBUG org.opendaylight.mdsal.dom.store.inmemory.InMemoryDOMStoreThreePhaseCommitCohort -- Store Transaction: DOM-STATE-0 can be committed
12:26:36.196 [mdsal-subscription-counters2] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@2230f31} unlocked
12:26:36.196 [mdsal-subscription-counters2] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@2230f31} readied
12:26:36.196 [mdsal-subscription-counters2] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Submitting transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@2230f31}
12:26:36.196 [mdsal-subscription-counters2] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@2230f31} completed successfully
12:26:36.196 [mdsal-subscription-counters2] DEBUG org.opendaylight.restconf.server.mdsal.MdsalRestconfStreamRegistry -- Subscription receivers updated successfully
12:26:36.196 [main] DEBUG org.opendaylight.yangtools.yang.data.tree.impl.InMemoryDataTree -- Updating datastore from SimpleContainerNode{version=Version[4238ef0a], data=ImmutableContainerNode{name=(urn:ietf:params:xml:ns:netconf:base:1.0)data, body=[]}} to SimpleContainerNode{version=Version[4c2c5841], 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}]}]}]}]}]}]}]}}
12:26:36.196 [main] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedWriteTransaction -- Store transaction: DOM-STATE-0 : Closed after submit
12:26:36.196 [main] INFO org.opendaylight.gnmi.simulatordevice.impl.SimulatedGnmiDevice -- Starting gNMI device simulator on 127.0.0.1:44025 ...
12:26:36.212 [main] INFO org.opendaylight.gnmi.simulatordevice.impl.SimulatedGnmiDevice -- gNMI device simulator is up and running
12:26:36.214 [main] INFO org.opendaylight.mdsal.dom.broker.DOMNotificationRouter -- DOM Notification Router started
12:26:36.214 [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}}]}
12:26:36.215 [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}}]}
12:26:36.216 [main] INFO org.opendaylight.gnmi.test.gnmi.rcgnmi.GnmiITBase -- RESTCONF Server starting on: 127.0.0.1:33693
12:26:36.216 [main] INFO org.opendaylight.mdsal.dom.broker.DOMRpcRouter -- DOM RPC/Action router started
12:26:36.216 [main] INFO org.opendaylight.mdsal.dom.broker.DOMNotificationRouter -- DOM Notification Router started
12:26:36.230 [main] INFO org.opendaylight.aaa.encrypt.impl.AAAEncryptionServiceImpl -- AAAEncryptionService activated
12:26:36.231 [main] INFO org.opendaylight.gnmi.southbound.yangmodule.GnmiSouthboundModule -- Starting ODL gNMI Southbound Component
12:26:36.231 [main] INFO org.opendaylight.gnmi.southbound.provider.GnmiSouthboundProvider -- gNMI init started
12:26:36.232 [main] INFO org.opendaylight.gnmi.southbound.provider.GnmiSouthboundProvider -- Loading provided initial yang loaders
12:26:36.235 [main] DEBUG org.opendaylight.gnmi.southbound.schema.yangstore.impl.YangDataStoreServiceImpl -- Adding yang model gnmi-test-aug with version 1.0.0 to operational datastore
12:26:36.236 [main] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedWriteTransaction -- Write Tx: OPER-0 allocated with snapshot Version[7c2b538c]
12:26:36.236 [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}]}
12:26:36.236 [main] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedWriteTransaction -- Store transaction: OPER-0 : Ready
12:26:36.236 [main] DEBUG org.opendaylight.mdsal.dom.store.inmemory.InMemoryDOMDataStore -- Tx: OPER-0 is submitted. Modifications: InMemoryDataTreeModification{state=Ready}
12:26:36.236 [main] DEBUG org.opendaylight.mdsal.dom.broker.SerializedDOMDataBroker -- Tx: DOM-0 is submitted for execution.
12:26:36.236 [main] DEBUG org.opendaylight.mdsal.dom.broker.CommitCoordinationTask -- Transaction DOM-0: canCommit Started
12:26:36.236 [main] DEBUG org.opendaylight.mdsal.dom.store.inmemory.InMemoryDOMStoreThreePhaseCommitCohort -- Store Transaction: OPER-0 can be committed
12:26:36.236 [main] DEBUG org.opendaylight.mdsal.dom.broker.CommitCoordinationTask -- Transaction DOM-0: preCommit Started
12:26:36.236 [main] DEBUG org.opendaylight.mdsal.dom.broker.CommitCoordinationTask -- Transaction DOM-0: doCommit Started
12:26:36.236 [main] DEBUG org.opendaylight.yangtools.yang.data.tree.impl.InMemoryDataTree -- Updating datastore from SimpleContainerNode{version=Version[7c2b538c], data=ImmutableContainerNode{name=(urn:ietf:params:xml:ns:netconf:base:1.0)data, body=[]}} to MaterializedContainerNode{version=Version[7c2b538c], subtreeVersion=Version[52eff20c], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-models=SimpleContainerNode{version=Version[52eff20c], 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}]}]}]}}}}
12:26:36.236 [main] DEBUG org.opendaylight.mdsal.dom.broker.CommitCoordinationTask -- Transaction DOM-0: doCommit completed
12:26:36.236 [main] INFO org.opendaylight.gnmi.southbound.schema.loader.impl.ByPathYangLoaderService -- Loaded yang model gnmi-test-aug with version 1.0.0
12:26:36.239 [main] DEBUG org.opendaylight.gnmi.southbound.schema.yangstore.impl.YangDataStoreServiceImpl -- Adding yang model gnmi-test-model with version 1.0.0 to operational datastore
12:26:36.240 [main] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedWriteTransaction -- Write Tx: OPER-1 allocated with snapshot Version[52eff20c]
12:26:36.240 [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}]}
12:26:36.240 [main] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedWriteTransaction -- Store transaction: OPER-1 : Ready
12:26:36.240 [main] DEBUG org.opendaylight.mdsal.dom.store.inmemory.InMemoryDOMDataStore -- Tx: OPER-1 is submitted. Modifications: InMemoryDataTreeModification{state=Ready}
12:26:36.240 [main] DEBUG org.opendaylight.mdsal.dom.broker.SerializedDOMDataBroker -- Tx: DOM-1 is submitted for execution.
12:26:36.240 [main] DEBUG org.opendaylight.mdsal.dom.broker.CommitCoordinationTask -- Transaction DOM-1: canCommit Started
12:26:36.240 [main] DEBUG org.opendaylight.mdsal.dom.store.inmemory.InMemoryDOMStoreThreePhaseCommitCohort -- Store Transaction: OPER-1 can be committed
12:26:36.240 [main] DEBUG org.opendaylight.mdsal.dom.broker.CommitCoordinationTask -- Transaction DOM-1: preCommit Started
12:26:36.240 [main] DEBUG org.opendaylight.mdsal.dom.broker.CommitCoordinationTask -- Transaction DOM-1: doCommit Started
12:26:36.240 [main] DEBUG org.opendaylight.yangtools.yang.data.tree.impl.InMemoryDataTree -- Updating datastore from MaterializedContainerNode{version=Version[7c2b538c], subtreeVersion=Version[52eff20c], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-models=SimpleContainerNode{version=Version[52eff20c], 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[7c2b538c], subtreeVersion=Version[13be8d09], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-models=MaterializedContainerNode{version=Version[52eff20c], subtreeVersion=Version[13be8d09], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model=LazyContainerNode{version=Version[52eff20c], subtreeVersion=Version[13be8d09], 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[13be8d09], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight: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}]}]}}}}}
12:26:36.240 [main] DEBUG org.opendaylight.mdsal.dom.broker.CommitCoordinationTask -- Transaction DOM-1: doCommit completed
12:26:36.240 [main] INFO org.opendaylight.gnmi.southbound.schema.loader.impl.ByPathYangLoaderService -- Loaded yang model gnmi-test-model with version 1.0.0
12:26:36.246 [main] DEBUG org.opendaylight.gnmi.southbound.schema.yangstore.impl.YangDataStoreServiceImpl -- Adding yang model ietf-yang-types with version 2013-07-15 to operational datastore
12:26:36.256 [main] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedWriteTransaction -- Write Tx: OPER-2 allocated with snapshot Version[13be8d09]
12:26:36.256 [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=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}]}
12:26:36.256 [main] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedWriteTransaction -- Store transaction: OPER-2 : Ready
12:26:36.256 [main] DEBUG org.opendaylight.mdsal.dom.store.inmemory.InMemoryDOMDataStore -- Tx: OPER-2 is submitted. Modifications: InMemoryDataTreeModification{state=Ready}
12:26:36.256 [main] DEBUG org.opendaylight.mdsal.dom.broker.SerializedDOMDataBroker -- Tx: DOM-2 is submitted for execution.
12:26:36.256 [main] DEBUG org.opendaylight.mdsal.dom.broker.CommitCoordinationTask -- Transaction DOM-2: canCommit Started
12:26:36.256 [main] DEBUG org.opendaylight.mdsal.dom.store.inmemory.InMemoryDOMStoreThreePhaseCommitCohort -- Store Transaction: OPER-2 can be committed
12:26:36.256 [main] DEBUG org.opendaylight.mdsal.dom.broker.CommitCoordinationTask -- Transaction DOM-2: preCommit Started
12:26:36.256 [main] DEBUG org.opendaylight.mdsal.dom.broker.CommitCoordinationTask -- Transaction DOM-2: doCommit Started
12:26:36.256 [main] DEBUG org.opendaylight.yangtools.yang.data.tree.impl.InMemoryDataTree -- Updating datastore from MaterializedContainerNode{version=Version[7c2b538c], subtreeVersion=Version[13be8d09], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-models=MaterializedContainerNode{version=Version[52eff20c], subtreeVersion=Version[13be8d09], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model=LazyContainerNode{version=Version[52eff20c], subtreeVersion=Version[13be8d09], 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[13be8d09], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight: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[7c2b538c], subtreeVersion=Version[2055603f], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-models=MaterializedContainerNode{version=Version[52eff20c], subtreeVersion=Version[2055603f], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model=LazyContainerNode{version=Version[52eff20c], subtreeVersion=Version[2055603f], children={(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[2055603f], data=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=gnmi-test-model, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}]=SimpleContainerNode{version=Version[13be8d09], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight: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}]}]}}}}}
12:26:36.257 [main] DEBUG org.opendaylight.mdsal.dom.broker.CommitCoordinationTask -- Transaction DOM-2: doCommit completed
12:26:36.257 [main] INFO org.opendaylight.gnmi.southbound.schema.loader.impl.ByClassPathYangLoaderService -- Loaded yang model ietf-yang-types with version 2013-07-15
12:26:36.260 [main] DEBUG org.opendaylight.gnmi.southbound.schema.yangstore.impl.YangDataStoreServiceImpl -- Adding yang model openconfig-yang-types with version 0.3.0 to operational datastore
12:26:36.264 [main] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedWriteTransaction -- Write Tx: OPER-3 allocated with snapshot Version[2055603f]
12:26:36.264 [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-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}]}
12:26:36.264 [main] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedWriteTransaction -- Store transaction: OPER-3 : Ready
12:26:36.264 [main] DEBUG org.opendaylight.mdsal.dom.store.inmemory.InMemoryDOMDataStore -- Tx: OPER-3 is submitted. Modifications: InMemoryDataTreeModification{state=Ready}
12:26:36.264 [main] DEBUG org.opendaylight.mdsal.dom.broker.SerializedDOMDataBroker -- Tx: DOM-3 is submitted for execution.
12:26:36.264 [main] DEBUG org.opendaylight.mdsal.dom.broker.CommitCoordinationTask -- Transaction DOM-3: canCommit Started
12:26:36.264 [main] DEBUG org.opendaylight.mdsal.dom.store.inmemory.InMemoryDOMStoreThreePhaseCommitCohort -- Store Transaction: OPER-3 can be committed
12:26:36.264 [main] DEBUG org.opendaylight.mdsal.dom.broker.CommitCoordinationTask -- Transaction DOM-3: preCommit Started
12:26:36.264 [main] DEBUG org.opendaylight.mdsal.dom.broker.CommitCoordinationTask -- Transaction DOM-3: doCommit Started
12:26:36.264 [main] DEBUG org.opendaylight.yangtools.yang.data.tree.impl.InMemoryDataTree -- Updating datastore from MaterializedContainerNode{version=Version[7c2b538c], subtreeVersion=Version[2055603f], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-models=MaterializedContainerNode{version=Version[52eff20c], subtreeVersion=Version[2055603f], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model=LazyContainerNode{version=Version[52eff20c], subtreeVersion=Version[2055603f], children={(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[2055603f], data=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=gnmi-test-model, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}]=SimpleContainerNode{version=Version[13be8d09], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight: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[7c2b538c], subtreeVersion=Version[4182fc55], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-models=MaterializedContainerNode{version=Version[52eff20c], subtreeVersion=Version[4182fc55], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model=LazyContainerNode{version=Version[52eff20c], subtreeVersion=Version[4182fc55], 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[4182fc55], data=ImmutableMapEntryNode{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=ietf-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2013-07-15}]=SimpleContainerNode{version=Version[2055603f], data=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=gnmi-test-model, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}]=SimpleContainerNode{version=Version[13be8d09], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight: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}]}]}}}}}
12:26:36.264 [main] DEBUG org.opendaylight.mdsal.dom.broker.CommitCoordinationTask -- Transaction DOM-3: doCommit completed
12:26:36.265 [main] INFO org.opendaylight.gnmi.southbound.schema.loader.impl.ByClassPathYangLoaderService -- Loaded yang model openconfig-yang-types with version 0.3.0
12:26:36.272 [main] DEBUG org.opendaylight.gnmi.southbound.schema.yangstore.impl.YangDataStoreServiceImpl -- Adding yang model openconfig-openflow with version 0.1.2 to operational datastore
12:26:36.275 [main] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedWriteTransaction -- Write Tx: OPER-4 allocated with snapshot Version[4182fc55]
12:26:36.275 [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-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}]}
12:26:36.275 [main] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedWriteTransaction -- Store transaction: OPER-4 : Ready
12:26:36.275 [main] DEBUG org.opendaylight.mdsal.dom.store.inmemory.InMemoryDOMDataStore -- Tx: OPER-4 is submitted. Modifications: InMemoryDataTreeModification{state=Ready}
12:26:36.275 [main] DEBUG org.opendaylight.mdsal.dom.broker.SerializedDOMDataBroker -- Tx: DOM-4 is submitted for execution.
12:26:36.275 [main] DEBUG org.opendaylight.mdsal.dom.broker.CommitCoordinationTask -- Transaction DOM-4: canCommit Started
12:26:36.275 [main] DEBUG org.opendaylight.mdsal.dom.store.inmemory.InMemoryDOMStoreThreePhaseCommitCohort -- Store Transaction: OPER-4 can be committed
12:26:36.275 [main] DEBUG org.opendaylight.mdsal.dom.broker.CommitCoordinationTask -- Transaction DOM-4: preCommit Started
12:26:36.275 [main] DEBUG org.opendaylight.mdsal.dom.broker.CommitCoordinationTask -- Transaction DOM-4: doCommit Started
12:26:36.275 [main] DEBUG org.opendaylight.yangtools.yang.data.tree.impl.InMemoryDataTree -- Updating datastore from MaterializedContainerNode{version=Version[7c2b538c], subtreeVersion=Version[4182fc55], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-models=MaterializedContainerNode{version=Version[52eff20c], subtreeVersion=Version[4182fc55], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model=LazyContainerNode{version=Version[52eff20c], subtreeVersion=Version[4182fc55], 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[4182fc55], data=ImmutableMapEntryNode{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=ietf-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2013-07-15}]=SimpleContainerNode{version=Version[2055603f], data=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=gnmi-test-model, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}]=SimpleContainerNode{version=Version[13be8d09], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight: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[7c2b538c], subtreeVersion=Version[1e198cf8], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-models=MaterializedContainerNode{version=Version[52eff20c], subtreeVersion=Version[1e198cf8], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model=LazyContainerNode{version=Version[52eff20c], subtreeVersion=Version[1e198cf8], 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[13be8d09], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight: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-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.0}]=SimpleContainerNode{version=Version[4182fc55], data=ImmutableMapEntryNode{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=ietf-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2013-07-15}]=SimpleContainerNode{version=Version[2055603f], data=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-openflow, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.1.2}]=SimpleContainerNode{version=Version[1e198cf8], data=ImmutableMapEntryNode{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}]}}}, 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}]}]}}}}}
12:26:36.276 [main] DEBUG org.opendaylight.mdsal.dom.broker.CommitCoordinationTask -- Transaction DOM-4: doCommit completed
12:26:36.276 [main] INFO org.opendaylight.gnmi.southbound.schema.loader.impl.ByClassPathYangLoaderService -- Loaded yang model openconfig-openflow with version 0.1.2
12:26:36.279 [main] DEBUG org.opendaylight.gnmi.southbound.schema.yangstore.impl.YangDataStoreServiceImpl -- Adding yang model openconfig-aaa-types with version 0.4.1 to operational datastore
12:26:36.280 [main] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedWriteTransaction -- Write Tx: OPER-5 allocated with snapshot Version[1e198cf8]
12:26:36.280 [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-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}]}
12:26:36.281 [main] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedWriteTransaction -- Store transaction: OPER-5 : Ready
12:26:36.281 [main] DEBUG org.opendaylight.mdsal.dom.store.inmemory.InMemoryDOMDataStore -- Tx: OPER-5 is submitted. Modifications: InMemoryDataTreeModification{state=Ready}
12:26:36.281 [main] DEBUG org.opendaylight.mdsal.dom.broker.SerializedDOMDataBroker -- Tx: DOM-5 is submitted for execution.
12:26:36.281 [main] DEBUG org.opendaylight.mdsal.dom.broker.CommitCoordinationTask -- Transaction DOM-5: canCommit Started
12:26:36.281 [main] DEBUG org.opendaylight.mdsal.dom.store.inmemory.InMemoryDOMStoreThreePhaseCommitCohort -- Store Transaction: OPER-5 can be committed
12:26:36.281 [main] DEBUG org.opendaylight.mdsal.dom.broker.CommitCoordinationTask -- Transaction DOM-5: preCommit Started
12:26:36.281 [main] DEBUG org.opendaylight.mdsal.dom.broker.CommitCoordinationTask -- Transaction DOM-5: doCommit Started
12:26:36.281 [main] DEBUG org.opendaylight.yangtools.yang.data.tree.impl.InMemoryDataTree -- Updating datastore from MaterializedContainerNode{version=Version[7c2b538c], subtreeVersion=Version[1e198cf8], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-models=MaterializedContainerNode{version=Version[52eff20c], subtreeVersion=Version[1e198cf8], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model=LazyContainerNode{version=Version[52eff20c], subtreeVersion=Version[1e198cf8], 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[13be8d09], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight: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-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.0}]=SimpleContainerNode{version=Version[4182fc55], data=ImmutableMapEntryNode{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=ietf-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2013-07-15}]=SimpleContainerNode{version=Version[2055603f], data=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-openflow, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.1.2}]=SimpleContainerNode{version=Version[1e198cf8], data=ImmutableMapEntryNode{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}]}}}, 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[7c2b538c], subtreeVersion=Version[6cb62210], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-models=MaterializedContainerNode{version=Version[52eff20c], subtreeVersion=Version[6cb62210], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model=LazyContainerNode{version=Version[52eff20c], subtreeVersion=Version[6cb62210], 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[13be8d09], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight: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-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.1}]=SimpleContainerNode{version=Version[6cb62210], data=ImmutableMapEntryNode{name=(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[4182fc55], data=ImmutableMapEntryNode{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=ietf-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2013-07-15}]=SimpleContainerNode{version=Version[2055603f], data=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-openflow, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.1.2}]=SimpleContainerNode{version=Version[1e198cf8], data=ImmutableMapEntryNode{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}]}}}, 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}]}]}}}}}
12:26:36.282 [main] DEBUG org.opendaylight.mdsal.dom.broker.CommitCoordinationTask -- Transaction DOM-5: doCommit completed
12:26:36.282 [main] INFO org.opendaylight.gnmi.southbound.schema.loader.impl.ByClassPathYangLoaderService -- Loaded yang model openconfig-aaa-types with version 0.4.1
12:26:36.284 [main] DEBUG org.opendaylight.gnmi.southbound.schema.yangstore.impl.YangDataStoreServiceImpl -- Adding yang model openconfig-openflow-types with version 0.1.3 to operational datastore
12:26:36.285 [main] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedWriteTransaction -- Write Tx: OPER-6 allocated with snapshot Version[6cb62210]
12:26:36.285 [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-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}]}
12:26:36.285 [main] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedWriteTransaction -- Store transaction: OPER-6 : Ready
12:26:36.285 [main] DEBUG org.opendaylight.mdsal.dom.store.inmemory.InMemoryDOMDataStore -- Tx: OPER-6 is submitted. Modifications: InMemoryDataTreeModification{state=Ready}
12:26:36.285 [main] DEBUG org.opendaylight.mdsal.dom.broker.SerializedDOMDataBroker -- Tx: DOM-6 is submitted for execution.
12:26:36.285 [main] DEBUG org.opendaylight.mdsal.dom.broker.CommitCoordinationTask -- Transaction DOM-6: canCommit Started
12:26:36.285 [main] DEBUG org.opendaylight.mdsal.dom.store.inmemory.InMemoryDOMStoreThreePhaseCommitCohort -- Store Transaction: OPER-6 can be committed
12:26:36.285 [main] DEBUG org.opendaylight.mdsal.dom.broker.CommitCoordinationTask -- Transaction DOM-6: preCommit Started
12:26:36.285 [main] DEBUG org.opendaylight.mdsal.dom.broker.CommitCoordinationTask -- Transaction DOM-6: doCommit Started
12:26:36.285 [main] DEBUG org.opendaylight.yangtools.yang.data.tree.impl.InMemoryDataTree -- Updating datastore from MaterializedContainerNode{version=Version[7c2b538c], subtreeVersion=Version[6cb62210], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-models=MaterializedContainerNode{version=Version[52eff20c], subtreeVersion=Version[6cb62210], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model=LazyContainerNode{version=Version[52eff20c], subtreeVersion=Version[6cb62210], 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[13be8d09], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight: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-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.1}]=SimpleContainerNode{version=Version[6cb62210], data=ImmutableMapEntryNode{name=(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[4182fc55], data=ImmutableMapEntryNode{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=ietf-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2013-07-15}]=SimpleContainerNode{version=Version[2055603f], data=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-openflow, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.1.2}]=SimpleContainerNode{version=Version[1e198cf8], data=ImmutableMapEntryNode{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}]}}}, 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[7c2b538c], subtreeVersion=Version[5054b5fa], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-models=MaterializedContainerNode{version=Version[52eff20c], subtreeVersion=Version[5054b5fa], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model=LazyContainerNode{version=Version[52eff20c], subtreeVersion=Version[5054b5fa], 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[13be8d09], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight: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-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.1}]=SimpleContainerNode{version=Version[6cb62210], data=ImmutableMapEntryNode{name=(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[4182fc55], data=ImmutableMapEntryNode{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=ietf-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2013-07-15}]=SimpleContainerNode{version=Version[2055603f], data=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-openflow, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.1.2}]=SimpleContainerNode{version=Version[1e198cf8], data=ImmutableMapEntryNode{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}]}}, (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[5054b5fa], data=ImmutableMapEntryNode{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}]}}}, 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}]}]}}}}}
12:26:36.287 [main] DEBUG org.opendaylight.mdsal.dom.broker.CommitCoordinationTask -- Transaction DOM-6: doCommit completed
12:26:36.287 [main] INFO org.opendaylight.gnmi.southbound.schema.loader.impl.ByClassPathYangLoaderService -- Loaded yang model openconfig-openflow-types with version 0.1.3
12:26:36.291 [main] DEBUG org.opendaylight.gnmi.southbound.schema.yangstore.impl.YangDataStoreServiceImpl -- Adding yang model openconfig-alarms with version 0.3.2 to operational datastore
12:26:36.294 [main] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedWriteTransaction -- Write Tx: OPER-7 allocated with snapshot Version[5054b5fa]
12:26:36.294 [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-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}]}
12:26:36.294 [main] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedWriteTransaction -- Store transaction: OPER-7 : Ready
12:26:36.294 [main] DEBUG org.opendaylight.mdsal.dom.store.inmemory.InMemoryDOMDataStore -- Tx: OPER-7 is submitted. Modifications: InMemoryDataTreeModification{state=Ready}
12:26:36.294 [main] DEBUG org.opendaylight.mdsal.dom.broker.SerializedDOMDataBroker -- Tx: DOM-7 is submitted for execution.
12:26:36.294 [main] DEBUG org.opendaylight.mdsal.dom.broker.CommitCoordinationTask -- Transaction DOM-7: canCommit Started
12:26:36.294 [main] DEBUG org.opendaylight.mdsal.dom.store.inmemory.InMemoryDOMStoreThreePhaseCommitCohort -- Store Transaction: OPER-7 can be committed
12:26:36.294 [main] DEBUG org.opendaylight.mdsal.dom.broker.CommitCoordinationTask -- Transaction DOM-7: preCommit Started
12:26:36.294 [main] DEBUG org.opendaylight.mdsal.dom.broker.CommitCoordinationTask -- Transaction DOM-7: doCommit Started
12:26:36.295 [main] DEBUG org.opendaylight.yangtools.yang.data.tree.impl.InMemoryDataTree -- Updating datastore from MaterializedContainerNode{version=Version[7c2b538c], subtreeVersion=Version[5054b5fa], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-models=MaterializedContainerNode{version=Version[52eff20c], subtreeVersion=Version[5054b5fa], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model=LazyContainerNode{version=Version[52eff20c], subtreeVersion=Version[5054b5fa], 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[13be8d09], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight: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-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.1}]=SimpleContainerNode{version=Version[6cb62210], data=ImmutableMapEntryNode{name=(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[4182fc55], data=ImmutableMapEntryNode{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=ietf-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2013-07-15}]=SimpleContainerNode{version=Version[2055603f], data=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-openflow, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.1.2}]=SimpleContainerNode{version=Version[1e198cf8], data=ImmutableMapEntryNode{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}]}}, (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[5054b5fa], data=ImmutableMapEntryNode{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}]}}}, 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[7c2b538c], subtreeVersion=Version[d1c5d41], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-models=MaterializedContainerNode{version=Version[52eff20c], subtreeVersion=Version[d1c5d41], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model=LazyContainerNode{version=Version[52eff20c], subtreeVersion=Version[d1c5d41], 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[6cb62210], data=ImmutableMapEntryNode{name=(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[4182fc55], data=ImmutableMapEntryNode{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-alarms, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.2}]=SimpleContainerNode{version=Version[d1c5d41], data=ImmutableMapEntryNode{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=gnmi-test-model, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}]=SimpleContainerNode{version=Version[13be8d09], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight: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=ietf-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2013-07-15}]=SimpleContainerNode{version=Version[2055603f], data=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-openflow, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.1.2}]=SimpleContainerNode{version=Version[1e198cf8], data=ImmutableMapEntryNode{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}]}}, (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[5054b5fa], data=ImmutableMapEntryNode{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}]}}}, 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}]}]}}}}}
12:26:36.296 [main] DEBUG org.opendaylight.mdsal.dom.broker.CommitCoordinationTask -- Transaction DOM-7: doCommit completed
12:26:36.296 [main] INFO org.opendaylight.gnmi.southbound.schema.loader.impl.ByClassPathYangLoaderService -- Loaded yang model openconfig-alarms with version 0.3.2
12:26:36.306 [main] DEBUG org.opendaylight.gnmi.southbound.schema.yangstore.impl.YangDataStoreServiceImpl -- Adding yang model openconfig-types with version 0.6.0 to operational datastore
12:26:36.311 [main] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedWriteTransaction -- Write Tx: OPER-8 allocated with snapshot Version[d1c5d41]
12:26:36.311 [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-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}]}
12:26:36.311 [main] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedWriteTransaction -- Store transaction: OPER-8 : Ready
12:26:36.311 [main] DEBUG org.opendaylight.mdsal.dom.store.inmemory.InMemoryDOMDataStore -- Tx: OPER-8 is submitted. Modifications: InMemoryDataTreeModification{state=Ready}
12:26:36.311 [main] DEBUG org.opendaylight.mdsal.dom.broker.SerializedDOMDataBroker -- Tx: DOM-8 is submitted for execution.
12:26:36.311 [main] DEBUG org.opendaylight.mdsal.dom.broker.CommitCoordinationTask -- Transaction DOM-8: canCommit Started
12:26:36.311 [main] DEBUG org.opendaylight.mdsal.dom.store.inmemory.InMemoryDOMStoreThreePhaseCommitCohort -- Store Transaction: OPER-8 can be committed
12:26:36.311 [main] DEBUG org.opendaylight.mdsal.dom.broker.CommitCoordinationTask -- Transaction DOM-8: preCommit Started
12:26:36.312 [main] DEBUG org.opendaylight.mdsal.dom.broker.CommitCoordinationTask -- Transaction DOM-8: doCommit Started
12:26:36.312 [main] DEBUG org.opendaylight.yangtools.yang.data.tree.impl.InMemoryDataTree -- Updating datastore from MaterializedContainerNode{version=Version[7c2b538c], subtreeVersion=Version[d1c5d41], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-models=MaterializedContainerNode{version=Version[52eff20c], subtreeVersion=Version[d1c5d41], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model=LazyContainerNode{version=Version[52eff20c], subtreeVersion=Version[d1c5d41], 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[6cb62210], data=ImmutableMapEntryNode{name=(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[4182fc55], data=ImmutableMapEntryNode{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-alarms, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.2}]=SimpleContainerNode{version=Version[d1c5d41], data=ImmutableMapEntryNode{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=gnmi-test-model, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}]=SimpleContainerNode{version=Version[13be8d09], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight: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=ietf-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2013-07-15}]=SimpleContainerNode{version=Version[2055603f], data=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-openflow, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.1.2}]=SimpleContainerNode{version=Version[1e198cf8], data=ImmutableMapEntryNode{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}]}}, (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[5054b5fa], data=ImmutableMapEntryNode{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}]}}}, 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[7c2b538c], subtreeVersion=Version[18036c95], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-models=MaterializedContainerNode{version=Version[52eff20c], subtreeVersion=Version[18036c95], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model=LazyContainerNode{version=Version[52eff20c], subtreeVersion=Version[18036c95], 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[6cb62210], data=ImmutableMapEntryNode{name=(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[4182fc55], data=ImmutableMapEntryNode{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-alarms, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.2}]=SimpleContainerNode{version=Version[d1c5d41], data=ImmutableMapEntryNode{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=gnmi-test-model, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}]=SimpleContainerNode{version=Version[13be8d09], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight: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-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.6.0}]=SimpleContainerNode{version=Version[18036c95], data=ImmutableMapEntryNode{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=ietf-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2013-07-15}]=SimpleContainerNode{version=Version[2055603f], data=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-openflow, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.1.2}]=SimpleContainerNode{version=Version[1e198cf8], data=ImmutableMapEntryNode{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}]}}, (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[5054b5fa], data=ImmutableMapEntryNode{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}]}}}, 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}]}]}}}}}
12:26:36.313 [main] DEBUG org.opendaylight.mdsal.dom.broker.CommitCoordinationTask -- Transaction DOM-8: doCommit completed
12:26:36.313 [main] INFO org.opendaylight.gnmi.southbound.schema.loader.impl.ByClassPathYangLoaderService -- Loaded yang model openconfig-types with version 0.6.0
12:26:36.318 [main] DEBUG org.opendaylight.gnmi.southbound.schema.yangstore.impl.YangDataStoreServiceImpl -- Adding yang model openconfig-if-aggregate with version 2.4.3 to operational datastore
12:26:36.320 [main] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedWriteTransaction -- Write Tx: OPER-9 allocated with snapshot Version[18036c95]
12:26:36.320 [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-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}]}
12:26:36.320 [main] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedWriteTransaction -- Store transaction: OPER-9 : Ready
12:26:36.320 [main] DEBUG org.opendaylight.mdsal.dom.store.inmemory.InMemoryDOMDataStore -- Tx: OPER-9 is submitted. Modifications: InMemoryDataTreeModification{state=Ready}
12:26:36.320 [main] DEBUG org.opendaylight.mdsal.dom.broker.SerializedDOMDataBroker -- Tx: DOM-9 is submitted for execution.
12:26:36.320 [main] DEBUG org.opendaylight.mdsal.dom.broker.CommitCoordinationTask -- Transaction DOM-9: canCommit Started
12:26:36.320 [main] DEBUG org.opendaylight.mdsal.dom.store.inmemory.InMemoryDOMStoreThreePhaseCommitCohort -- Store Transaction: OPER-9 can be committed
12:26:36.320 [main] DEBUG org.opendaylight.mdsal.dom.broker.CommitCoordinationTask -- Transaction DOM-9: preCommit Started
12:26:36.320 [main] DEBUG org.opendaylight.mdsal.dom.broker.CommitCoordinationTask -- Transaction DOM-9: doCommit Started
12:26:36.320 [main] DEBUG org.opendaylight.yangtools.yang.data.tree.impl.InMemoryDataTree -- Updating datastore from MaterializedContainerNode{version=Version[7c2b538c], subtreeVersion=Version[18036c95], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-models=MaterializedContainerNode{version=Version[52eff20c], subtreeVersion=Version[18036c95], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model=LazyContainerNode{version=Version[52eff20c], subtreeVersion=Version[18036c95], 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[6cb62210], data=ImmutableMapEntryNode{name=(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[4182fc55], data=ImmutableMapEntryNode{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-alarms, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.2}]=SimpleContainerNode{version=Version[d1c5d41], data=ImmutableMapEntryNode{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=gnmi-test-model, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}]=SimpleContainerNode{version=Version[13be8d09], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight: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-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.6.0}]=SimpleContainerNode{version=Version[18036c95], data=ImmutableMapEntryNode{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=ietf-yang-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2013-07-15}]=SimpleContainerNode{version=Version[2055603f], data=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-openflow, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.1.2}]=SimpleContainerNode{version=Version[1e198cf8], data=ImmutableMapEntryNode{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}]}}, (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[5054b5fa], data=ImmutableMapEntryNode{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}]}}}, 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[7c2b538c], subtreeVersion=Version[f6bf6d0], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-models=MaterializedContainerNode{version=Version[52eff20c], subtreeVersion=Version[f6bf6d0], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model=LazyContainerNode{version=Version[52eff20c], subtreeVersion=Version[f6bf6d0], 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[6cb62210], data=ImmutableMapEntryNode{name=(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[4182fc55], data=ImmutableMapEntryNode{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-alarms, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.2}]=SimpleContainerNode{version=Version[d1c5d41], data=ImmutableMapEntryNode{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=gnmi-test-model, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}]=SimpleContainerNode{version=Version[13be8d09], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight: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-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.6.0}]=SimpleContainerNode{version=Version[18036c95], data=ImmutableMapEntryNode{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-if-aggregate, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.4.3}]=SimpleContainerNode{version=Version[f6bf6d0], data=ImmutableMapEntryNode{name=(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[2055603f], data=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-openflow, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.1.2}]=SimpleContainerNode{version=Version[1e198cf8], data=ImmutableMapEntryNode{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}]}}, (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[5054b5fa], data=ImmutableMapEntryNode{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}]}}}, 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}]}]}}}}}
12:26:36.321 [mdsal-subscription-counters15] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@5d224ba4} unlocked
12:26:36.323 [mdsal-subscription-counters15] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@5d224ba4} readied
12:26:36.323 [mdsal-subscription-counters15] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Submitting transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@5d224ba4}
12:26:36.323 [main] DEBUG org.opendaylight.mdsal.dom.broker.CommitCoordinationTask -- Transaction DOM-9: doCommit completed
12:26:36.323 [main] INFO org.opendaylight.gnmi.southbound.schema.loader.impl.ByClassPathYangLoaderService -- Loaded yang model openconfig-if-aggregate with version 2.4.3
12:26:36.323 [mdsal-subscription-counters15] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@5d224ba4} completed successfully
12:26:36.323 [mdsal-subscription-counters15] DEBUG org.opendaylight.restconf.server.mdsal.MdsalRestconfStreamRegistry -- Subscription receivers updated successfully
12:26:36.326 [main] DEBUG org.opendaylight.gnmi.southbound.schema.yangstore.impl.YangDataStoreServiceImpl -- Adding yang model openconfig-procmon with version 0.4.0 to operational datastore
12:26:36.328 [main] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedWriteTransaction -- Write Tx: OPER-10 allocated with snapshot Version[f6bf6d0]
12:26:36.328 [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-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}]}
12:26:36.328 [main] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedWriteTransaction -- Store transaction: OPER-10 : Ready
12:26:36.328 [main] DEBUG org.opendaylight.mdsal.dom.store.inmemory.InMemoryDOMDataStore -- Tx: OPER-10 is submitted. Modifications: InMemoryDataTreeModification{state=Ready}
12:26:36.328 [main] DEBUG org.opendaylight.mdsal.dom.broker.SerializedDOMDataBroker -- Tx: DOM-10 is submitted for execution.
12:26:36.328 [main] DEBUG org.opendaylight.mdsal.dom.broker.CommitCoordinationTask -- Transaction DOM-10: canCommit Started
12:26:36.328 [main] DEBUG org.opendaylight.mdsal.dom.store.inmemory.InMemoryDOMStoreThreePhaseCommitCohort -- Store Transaction: OPER-10 can be committed
12:26:36.328 [main] DEBUG org.opendaylight.mdsal.dom.broker.CommitCoordinationTask -- Transaction DOM-10: preCommit Started
12:26:36.328 [main] DEBUG org.opendaylight.mdsal.dom.broker.CommitCoordinationTask -- Transaction DOM-10: doCommit Started
12:26:36.328 [main] DEBUG org.opendaylight.yangtools.yang.data.tree.impl.InMemoryDataTree -- Updating datastore from MaterializedContainerNode{version=Version[7c2b538c], subtreeVersion=Version[f6bf6d0], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-models=MaterializedContainerNode{version=Version[52eff20c], subtreeVersion=Version[f6bf6d0], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model=LazyContainerNode{version=Version[52eff20c], subtreeVersion=Version[f6bf6d0], 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[6cb62210], data=ImmutableMapEntryNode{name=(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[4182fc55], data=ImmutableMapEntryNode{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-alarms, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.2}]=SimpleContainerNode{version=Version[d1c5d41], data=ImmutableMapEntryNode{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=gnmi-test-model, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=1.0.0}]=SimpleContainerNode{version=Version[13be8d09], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight: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-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.6.0}]=SimpleContainerNode{version=Version[18036c95], data=ImmutableMapEntryNode{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-if-aggregate, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.4.3}]=SimpleContainerNode{version=Version[f6bf6d0], data=ImmutableMapEntryNode{name=(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[2055603f], data=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-openflow, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.1.2}]=SimpleContainerNode{version=Version[1e198cf8], data=ImmutableMapEntryNode{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}]}}, (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[5054b5fa], data=ImmutableMapEntryNode{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}]}}}, 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[7c2b538c], subtreeVersion=Version[1cdd13c5], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-models=MaterializedContainerNode{version=Version[52eff20c], subtreeVersion=Version[1cdd13c5], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model=LazyContainerNode{version=Version[52eff20c], subtreeVersion=Version[1cdd13c5], 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[6cb62210], data=ImmutableMapEntryNode{name=(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[4182fc55], data=ImmutableMapEntryNode{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-alarms, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.2}]=SimpleContainerNode{version=Version[d1c5d41], data=ImmutableMapEntryNode{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-procmon, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}]=SimpleContainerNode{version=Version[1cdd13c5], data=ImmutableMapEntryNode{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[13be8d09], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight: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-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.6.0}]=SimpleContainerNode{version=Version[18036c95], data=ImmutableMapEntryNode{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-if-aggregate, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.4.3}]=SimpleContainerNode{version=Version[f6bf6d0], data=ImmutableMapEntryNode{name=(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[2055603f], data=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-openflow, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.1.2}]=SimpleContainerNode{version=Version[1e198cf8], data=ImmutableMapEntryNode{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}]}}, (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[5054b5fa], data=ImmutableMapEntryNode{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}]}}}, 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}]}]}}}}}
12:26:36.331 [main] DEBUG org.opendaylight.mdsal.dom.broker.CommitCoordinationTask -- Transaction DOM-10: doCommit completed
12:26:36.331 [main] INFO org.opendaylight.gnmi.southbound.schema.loader.impl.ByClassPathYangLoaderService -- Loaded yang model openconfig-procmon with version 0.4.0
12:26:36.335 [main] DEBUG org.opendaylight.gnmi.southbound.schema.yangstore.impl.YangDataStoreServiceImpl -- Adding yang model openconfig-system-terminal with version 0.3.1 to operational datastore
12:26:36.337 [main] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedWriteTransaction -- Write Tx: OPER-11 allocated with snapshot Version[1cdd13c5]
12:26:36.337 [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-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}]}
12:26:36.337 [main] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedWriteTransaction -- Store transaction: OPER-11 : Ready
12:26:36.337 [main] DEBUG org.opendaylight.mdsal.dom.store.inmemory.InMemoryDOMDataStore -- Tx: OPER-11 is submitted. Modifications: InMemoryDataTreeModification{state=Ready}
12:26:36.337 [main] DEBUG org.opendaylight.mdsal.dom.broker.SerializedDOMDataBroker -- Tx: DOM-11 is submitted for execution.
12:26:36.337 [main] DEBUG org.opendaylight.mdsal.dom.broker.CommitCoordinationTask -- Transaction DOM-11: canCommit Started
12:26:36.337 [main] DEBUG org.opendaylight.mdsal.dom.store.inmemory.InMemoryDOMStoreThreePhaseCommitCohort -- Store Transaction: OPER-11 can be committed
12:26:36.337 [main] DEBUG org.opendaylight.mdsal.dom.broker.CommitCoordinationTask -- Transaction DOM-11: preCommit Started
12:26:36.337 [main] DEBUG org.opendaylight.mdsal.dom.broker.CommitCoordinationTask -- Transaction DOM-11: doCommit Started
12:26:36.337 [main] DEBUG org.opendaylight.yangtools.yang.data.tree.impl.InMemoryDataTree -- Updating datastore from MaterializedContainerNode{version=Version[7c2b538c], subtreeVersion=Version[1cdd13c5], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-models=MaterializedContainerNode{version=Version[52eff20c], subtreeVersion=Version[1cdd13c5], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model=LazyContainerNode{version=Version[52eff20c], subtreeVersion=Version[1cdd13c5], 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[6cb62210], data=ImmutableMapEntryNode{name=(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[4182fc55], data=ImmutableMapEntryNode{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-alarms, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.2}]=SimpleContainerNode{version=Version[d1c5d41], data=ImmutableMapEntryNode{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-procmon, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}]=SimpleContainerNode{version=Version[1cdd13c5], data=ImmutableMapEntryNode{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[13be8d09], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight: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-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.6.0}]=SimpleContainerNode{version=Version[18036c95], data=ImmutableMapEntryNode{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-if-aggregate, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.4.3}]=SimpleContainerNode{version=Version[f6bf6d0], data=ImmutableMapEntryNode{name=(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[2055603f], data=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-openflow, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.1.2}]=SimpleContainerNode{version=Version[1e198cf8], data=ImmutableMapEntryNode{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}]}}, (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[5054b5fa], data=ImmutableMapEntryNode{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}]}}}, 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[7c2b538c], subtreeVersion=Version[25a31645], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-models=MaterializedContainerNode{version=Version[52eff20c], subtreeVersion=Version[25a31645], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model=LazyContainerNode{version=Version[52eff20c], subtreeVersion=Version[25a31645], 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[6cb62210], data=ImmutableMapEntryNode{name=(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[4182fc55], data=ImmutableMapEntryNode{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-alarms, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.2}]=SimpleContainerNode{version=Version[d1c5d41], data=ImmutableMapEntryNode{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-procmon, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}]=SimpleContainerNode{version=Version[1cdd13c5], data=ImmutableMapEntryNode{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[13be8d09], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight: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-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.6.0}]=SimpleContainerNode{version=Version[18036c95], data=ImmutableMapEntryNode{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-if-aggregate, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.4.3}]=SimpleContainerNode{version=Version[f6bf6d0], data=ImmutableMapEntryNode{name=(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[25a31645], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight: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[2055603f], data=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-openflow, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.1.2}]=SimpleContainerNode{version=Version[1e198cf8], data=ImmutableMapEntryNode{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}]}}, (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[5054b5fa], data=ImmutableMapEntryNode{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}]}}}, 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}]}]}}}}}
12:26:36.340 [main] DEBUG org.opendaylight.mdsal.dom.broker.CommitCoordinationTask -- Transaction DOM-11: doCommit completed
12:26:36.340 [main] INFO org.opendaylight.gnmi.southbound.schema.loader.impl.ByClassPathYangLoaderService -- Loaded yang model openconfig-system-terminal with version 0.3.1
12:26:36.342 [main] DEBUG org.opendaylight.gnmi.southbound.schema.yangstore.impl.YangDataStoreServiceImpl -- Adding yang model openconfig-if-types with version 0.2.1 to operational datastore
12:26:36.343 [main] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedWriteTransaction -- Write Tx: OPER-12 allocated with snapshot Version[25a31645]
12:26:36.343 [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=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}]}
12:26:36.343 [main] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedWriteTransaction -- Store transaction: OPER-12 : Ready
12:26:36.343 [main] DEBUG org.opendaylight.mdsal.dom.store.inmemory.InMemoryDOMDataStore -- Tx: OPER-12 is submitted. Modifications: InMemoryDataTreeModification{state=Ready}
12:26:36.343 [main] DEBUG org.opendaylight.mdsal.dom.broker.SerializedDOMDataBroker -- Tx: DOM-12 is submitted for execution.
12:26:36.343 [main] DEBUG org.opendaylight.mdsal.dom.broker.CommitCoordinationTask -- Transaction DOM-12: canCommit Started
12:26:36.343 [main] DEBUG org.opendaylight.mdsal.dom.store.inmemory.InMemoryDOMStoreThreePhaseCommitCohort -- Store Transaction: OPER-12 can be committed
12:26:36.343 [main] DEBUG org.opendaylight.mdsal.dom.broker.CommitCoordinationTask -- Transaction DOM-12: preCommit Started
12:26:36.343 [main] DEBUG org.opendaylight.mdsal.dom.broker.CommitCoordinationTask -- Transaction DOM-12: doCommit Started
12:26:36.343 [main] DEBUG org.opendaylight.yangtools.yang.data.tree.impl.InMemoryDataTree -- Updating datastore from MaterializedContainerNode{version=Version[7c2b538c], subtreeVersion=Version[25a31645], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-models=MaterializedContainerNode{version=Version[52eff20c], subtreeVersion=Version[25a31645], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model=LazyContainerNode{version=Version[52eff20c], subtreeVersion=Version[25a31645], 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[6cb62210], data=ImmutableMapEntryNode{name=(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[4182fc55], data=ImmutableMapEntryNode{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-alarms, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.2}]=SimpleContainerNode{version=Version[d1c5d41], data=ImmutableMapEntryNode{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-procmon, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}]=SimpleContainerNode{version=Version[1cdd13c5], data=ImmutableMapEntryNode{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[13be8d09], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight: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-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.6.0}]=SimpleContainerNode{version=Version[18036c95], data=ImmutableMapEntryNode{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-if-aggregate, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.4.3}]=SimpleContainerNode{version=Version[f6bf6d0], data=ImmutableMapEntryNode{name=(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[25a31645], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight: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[2055603f], data=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-openflow, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.1.2}]=SimpleContainerNode{version=Version[1e198cf8], data=ImmutableMapEntryNode{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}]}}, (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[5054b5fa], data=ImmutableMapEntryNode{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}]}}}, 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[7c2b538c], subtreeVersion=Version[389675b5], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-models=MaterializedContainerNode{version=Version[52eff20c], subtreeVersion=Version[389675b5], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model=LazyContainerNode{version=Version[52eff20c], subtreeVersion=Version[389675b5], 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[6cb62210], data=ImmutableMapEntryNode{name=(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[4182fc55], data=ImmutableMapEntryNode{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-alarms, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.2}]=SimpleContainerNode{version=Version[d1c5d41], data=ImmutableMapEntryNode{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-procmon, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}]=SimpleContainerNode{version=Version[1cdd13c5], data=ImmutableMapEntryNode{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-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.1}]=SimpleContainerNode{version=Version[389675b5], data=ImmutableMapEntryNode{name=(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[13be8d09], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight: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-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.6.0}]=SimpleContainerNode{version=Version[18036c95], data=ImmutableMapEntryNode{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-if-aggregate, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.4.3}]=SimpleContainerNode{version=Version[f6bf6d0], data=ImmutableMapEntryNode{name=(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[25a31645], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight: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[2055603f], data=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-openflow, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.1.2}]=SimpleContainerNode{version=Version[1e198cf8], data=ImmutableMapEntryNode{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}]}}, (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[5054b5fa], data=ImmutableMapEntryNode{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}]}}}, 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}]}]}}}}}
12:26:36.346 [main] DEBUG org.opendaylight.mdsal.dom.broker.CommitCoordinationTask -- Transaction DOM-12: doCommit completed
12:26:36.346 [main] INFO org.opendaylight.gnmi.southbound.schema.loader.impl.ByClassPathYangLoaderService -- Loaded yang model openconfig-if-types with version 0.2.1
12:26:36.351 [mdsal-subscription-counters4] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@4e46e66c} unlocked
12:26:36.351 [mdsal-subscription-counters4] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@4e46e66c} readied
12:26:36.351 [mdsal-subscription-counters4] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Submitting transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@4e46e66c}
12:26:36.351 [mdsal-subscription-counters4] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@4e46e66c} completed successfully
12:26:36.351 [mdsal-subscription-counters4] DEBUG org.opendaylight.restconf.server.mdsal.MdsalRestconfStreamRegistry -- Subscription receivers updated successfully
12:26:36.355 [main] DEBUG org.opendaylight.gnmi.southbound.schema.yangstore.impl.YangDataStoreServiceImpl -- Adding yang model openconfig-system-logging with version 0.3.1 to operational datastore
12:26:36.360 [main] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedWriteTransaction -- Write Tx: OPER-13 allocated with snapshot Version[389675b5]
12:26:36.360 [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-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}]}
12:26:36.360 [main] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedWriteTransaction -- Store transaction: OPER-13 : Ready
12:26:36.360 [main] DEBUG org.opendaylight.mdsal.dom.store.inmemory.InMemoryDOMDataStore -- Tx: OPER-13 is submitted. Modifications: InMemoryDataTreeModification{state=Ready}
12:26:36.360 [main] DEBUG org.opendaylight.mdsal.dom.broker.SerializedDOMDataBroker -- Tx: DOM-13 is submitted for execution.
12:26:36.360 [main] DEBUG org.opendaylight.mdsal.dom.broker.CommitCoordinationTask -- Transaction DOM-13: canCommit Started
12:26:36.360 [main] DEBUG org.opendaylight.mdsal.dom.store.inmemory.InMemoryDOMStoreThreePhaseCommitCohort -- Store Transaction: OPER-13 can be committed
12:26:36.360 [main] DEBUG org.opendaylight.mdsal.dom.broker.CommitCoordinationTask -- Transaction DOM-13: preCommit Started
12:26:36.360 [main] DEBUG org.opendaylight.mdsal.dom.broker.CommitCoordinationTask -- Transaction DOM-13: doCommit Started
12:26:36.360 [main] DEBUG org.opendaylight.yangtools.yang.data.tree.impl.InMemoryDataTree -- Updating datastore from MaterializedContainerNode{version=Version[7c2b538c], subtreeVersion=Version[389675b5], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-models=MaterializedContainerNode{version=Version[52eff20c], subtreeVersion=Version[389675b5], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model=LazyContainerNode{version=Version[52eff20c], subtreeVersion=Version[389675b5], 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[6cb62210], data=ImmutableMapEntryNode{name=(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[4182fc55], data=ImmutableMapEntryNode{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-alarms, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.2}]=SimpleContainerNode{version=Version[d1c5d41], data=ImmutableMapEntryNode{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-procmon, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.4.0}]=SimpleContainerNode{version=Version[1cdd13c5], data=ImmutableMapEntryNode{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-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.1}]=SimpleContainerNode{version=Version[389675b5], data=ImmutableMapEntryNode{name=(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[13be8d09], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight: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-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.6.0}]=SimpleContainerNode{version=Version[18036c95], data=ImmutableMapEntryNode{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-if-aggregate, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.4.3}]=SimpleContainerNode{version=Version[f6bf6d0], data=ImmutableMapEntryNode{name=(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[25a31645], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight: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[2055603f], data=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-openflow, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.1.2}]=SimpleContainerNode{version=Version[1e198cf8], data=ImmutableMapEntryNode{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}]}}, (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[5054b5fa], data=ImmutableMapEntryNode{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}]}}}, 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[7c2b538c], subtreeVersion=Version[40300c67], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-models=MaterializedContainerNode{version=Version[52eff20c], subtreeVersion=Version[40300c67], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model=LazyContainerNode{version=Version[52eff20c], subtreeVersion=Version[40300c67], 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[6cb62210], data=ImmutableMapEntryNode{name=(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[4182fc55], data=ImmutableMapEntryNode{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[1cdd13c5], data=ImmutableMapEntryNode{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-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.1}]=SimpleContainerNode{version=Version[389675b5], data=ImmutableMapEntryNode{name=(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[13be8d09], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight: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-if-aggregate, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.4.3}]=SimpleContainerNode{version=Version[f6bf6d0], data=ImmutableMapEntryNode{name=(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[25a31645], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight: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[2055603f], data=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-openflow, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.1.2}]=SimpleContainerNode{version=Version[1e198cf8], data=ImmutableMapEntryNode{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}]}}, (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[5054b5fa], data=ImmutableMapEntryNode{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-alarms, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.2}]=SimpleContainerNode{version=Version[d1c5d41], data=ImmutableMapEntryNode{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-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.6.0}]=SimpleContainerNode{version=Version[18036c95], data=ImmutableMapEntryNode{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-system-logging, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}]=SimpleContainerNode{version=Version[40300c67], data=ImmutableMapEntryNode{name=(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}]}]}}}}}
12:26:36.363 [main] DEBUG org.opendaylight.mdsal.dom.broker.CommitCoordinationTask -- Transaction DOM-13: doCommit completed
12:26:36.363 [main] INFO org.opendaylight.gnmi.southbound.schema.loader.impl.ByClassPathYangLoaderService -- Loaded yang model openconfig-system-logging with version 0.3.1
12:26:36.383 [main] DEBUG org.opendaylight.gnmi.southbound.schema.yangstore.impl.YangDataStoreServiceImpl -- Adding yang model ietf-interfaces with version 2018-02-20 to operational datastore
12:26:36.404 [main] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedWriteTransaction -- Write Tx: OPER-14 allocated with snapshot Version[40300c67]
12:26:36.404 [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=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}]}
12:26:36.404 [main] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedWriteTransaction -- Store transaction: OPER-14 : Ready
12:26:36.404 [main] DEBUG org.opendaylight.mdsal.dom.store.inmemory.InMemoryDOMDataStore -- Tx: OPER-14 is submitted. Modifications: InMemoryDataTreeModification{state=Ready}
12:26:36.404 [main] DEBUG org.opendaylight.mdsal.dom.broker.SerializedDOMDataBroker -- Tx: DOM-14 is submitted for execution.
12:26:36.404 [main] DEBUG org.opendaylight.mdsal.dom.broker.CommitCoordinationTask -- Transaction DOM-14: canCommit Started
12:26:36.404 [main] DEBUG org.opendaylight.mdsal.dom.store.inmemory.InMemoryDOMStoreThreePhaseCommitCohort -- Store Transaction: OPER-14 can be committed
12:26:36.404 [main] DEBUG org.opendaylight.mdsal.dom.broker.CommitCoordinationTask -- Transaction DOM-14: preCommit Started
12:26:36.405 [main] DEBUG org.opendaylight.mdsal.dom.broker.CommitCoordinationTask -- Transaction DOM-14: doCommit Started
12:26:36.405 [main] DEBUG org.opendaylight.yangtools.yang.data.tree.impl.InMemoryDataTree -- Updating datastore from MaterializedContainerNode{version=Version[7c2b538c], subtreeVersion=Version[40300c67], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-models=MaterializedContainerNode{version=Version[52eff20c], subtreeVersion=Version[40300c67], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model=LazyContainerNode{version=Version[52eff20c], subtreeVersion=Version[40300c67], 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[6cb62210], data=ImmutableMapEntryNode{name=(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[4182fc55], data=ImmutableMapEntryNode{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[1cdd13c5], data=ImmutableMapEntryNode{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-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.1}]=SimpleContainerNode{version=Version[389675b5], data=ImmutableMapEntryNode{name=(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[13be8d09], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight: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-if-aggregate, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.4.3}]=SimpleContainerNode{version=Version[f6bf6d0], data=ImmutableMapEntryNode{name=(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[25a31645], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight: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[2055603f], data=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-openflow, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.1.2}]=SimpleContainerNode{version=Version[1e198cf8], data=ImmutableMapEntryNode{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}]}}, (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[5054b5fa], data=ImmutableMapEntryNode{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-alarms, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.2}]=SimpleContainerNode{version=Version[d1c5d41], data=ImmutableMapEntryNode{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-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.6.0}]=SimpleContainerNode{version=Version[18036c95], data=ImmutableMapEntryNode{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-system-logging, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}]=SimpleContainerNode{version=Version[40300c67], data=ImmutableMapEntryNode{name=(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[7c2b538c], subtreeVersion=Version[7ae5c355], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-models=MaterializedContainerNode{version=Version[52eff20c], subtreeVersion=Version[7ae5c355], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model=LazyContainerNode{version=Version[52eff20c], subtreeVersion=Version[7ae5c355], 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[6cb62210], data=ImmutableMapEntryNode{name=(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[4182fc55], data=ImmutableMapEntryNode{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[1cdd13c5], data=ImmutableMapEntryNode{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-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.1}]=SimpleContainerNode{version=Version[389675b5], data=ImmutableMapEntryNode{name=(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[13be8d09], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight: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-if-aggregate, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.4.3}]=SimpleContainerNode{version=Version[f6bf6d0], data=ImmutableMapEntryNode{name=(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[25a31645], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight: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[2055603f], data=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-openflow, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.1.2}]=SimpleContainerNode{version=Version[1e198cf8], data=ImmutableMapEntryNode{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}]}}, (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[5054b5fa], data=ImmutableMapEntryNode{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=ietf-interfaces, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2018-02-20}]=SimpleContainerNode{version=Version[7ae5c355], data=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[d1c5d41], data=ImmutableMapEntryNode{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-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.6.0}]=SimpleContainerNode{version=Version[18036c95], data=ImmutableMapEntryNode{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-system-logging, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}]=SimpleContainerNode{version=Version[40300c67], data=ImmutableMapEntryNode{name=(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}]}]}}}}}
12:26:36.408 [main] DEBUG org.opendaylight.mdsal.dom.broker.CommitCoordinationTask -- Transaction DOM-14: doCommit completed
12:26:36.408 [main] INFO org.opendaylight.gnmi.southbound.schema.loader.impl.ByClassPathYangLoaderService -- Loaded yang model ietf-interfaces with version 2018-02-20
12:26:36.420 [main] DEBUG org.opendaylight.gnmi.southbound.schema.yangstore.impl.YangDataStoreServiceImpl -- Adding yang model openconfig-if-ethernet with version 2.11.0 to operational datastore
12:26:36.429 [main] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedWriteTransaction -- Write Tx: OPER-15 allocated with snapshot Version[7ae5c355]
12:26:36.429 [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=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}]}
12:26:36.430 [main] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedWriteTransaction -- Store transaction: OPER-15 : Ready
12:26:36.430 [main] DEBUG org.opendaylight.mdsal.dom.store.inmemory.InMemoryDOMDataStore -- Tx: OPER-15 is submitted. Modifications: InMemoryDataTreeModification{state=Ready}
12:26:36.430 [main] DEBUG org.opendaylight.mdsal.dom.broker.SerializedDOMDataBroker -- Tx: DOM-15 is submitted for execution.
12:26:36.430 [main] DEBUG org.opendaylight.mdsal.dom.broker.CommitCoordinationTask -- Transaction DOM-15: canCommit Started
12:26:36.430 [main] DEBUG org.opendaylight.mdsal.dom.store.inmemory.InMemoryDOMStoreThreePhaseCommitCohort -- Store Transaction: OPER-15 can be committed
12:26:36.430 [main] DEBUG org.opendaylight.mdsal.dom.broker.CommitCoordinationTask -- Transaction DOM-15: preCommit Started
12:26:36.430 [main] DEBUG org.opendaylight.mdsal.dom.broker.CommitCoordinationTask -- Transaction DOM-15: doCommit Started
12:26:36.430 [main] DEBUG org.opendaylight.yangtools.yang.data.tree.impl.InMemoryDataTree -- Updating datastore from MaterializedContainerNode{version=Version[7c2b538c], subtreeVersion=Version[7ae5c355], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-models=MaterializedContainerNode{version=Version[52eff20c], subtreeVersion=Version[7ae5c355], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model=LazyContainerNode{version=Version[52eff20c], subtreeVersion=Version[7ae5c355], 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[6cb62210], data=ImmutableMapEntryNode{name=(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[4182fc55], data=ImmutableMapEntryNode{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[1cdd13c5], data=ImmutableMapEntryNode{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-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.1}]=SimpleContainerNode{version=Version[389675b5], data=ImmutableMapEntryNode{name=(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[13be8d09], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight: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-if-aggregate, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.4.3}]=SimpleContainerNode{version=Version[f6bf6d0], data=ImmutableMapEntryNode{name=(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[25a31645], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight: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[2055603f], data=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-openflow, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.1.2}]=SimpleContainerNode{version=Version[1e198cf8], data=ImmutableMapEntryNode{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}]}}, (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[5054b5fa], data=ImmutableMapEntryNode{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=ietf-interfaces, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2018-02-20}]=SimpleContainerNode{version=Version[7ae5c355], data=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[d1c5d41], data=ImmutableMapEntryNode{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-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.6.0}]=SimpleContainerNode{version=Version[18036c95], data=ImmutableMapEntryNode{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-system-logging, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}]=SimpleContainerNode{version=Version[40300c67], data=ImmutableMapEntryNode{name=(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[7c2b538c], subtreeVersion=Version[44ef239], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-models=MaterializedContainerNode{version=Version[52eff20c], subtreeVersion=Version[44ef239], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model=LazyContainerNode{version=Version[52eff20c], subtreeVersion=Version[44ef239], 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[6cb62210], data=ImmutableMapEntryNode{name=(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[4182fc55], data=ImmutableMapEntryNode{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[1cdd13c5], data=ImmutableMapEntryNode{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-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.1}]=SimpleContainerNode{version=Version[389675b5], data=ImmutableMapEntryNode{name=(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=openconfig-if-ethernet, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.11.0}]=SimpleContainerNode{version=Version[44ef239], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight: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[13be8d09], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight: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-if-aggregate, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.4.3}]=SimpleContainerNode{version=Version[f6bf6d0], data=ImmutableMapEntryNode{name=(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[25a31645], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight: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[2055603f], data=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-openflow, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.1.2}]=SimpleContainerNode{version=Version[1e198cf8], data=ImmutableMapEntryNode{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}]}}, (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[5054b5fa], data=ImmutableMapEntryNode{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=ietf-interfaces, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2018-02-20}]=SimpleContainerNode{version=Version[7ae5c355], data=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[d1c5d41], data=ImmutableMapEntryNode{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-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.6.0}]=SimpleContainerNode{version=Version[18036c95], data=ImmutableMapEntryNode{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-system-logging, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}]=SimpleContainerNode{version=Version[40300c67], data=ImmutableMapEntryNode{name=(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}]}]}}}}}
12:26:36.432 [mdsal-subscription-counters13] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@3cbad2c0} unlocked
12:26:36.435 [mdsal-subscription-counters13] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@3cbad2c0} readied
12:26:36.435 [main] DEBUG org.opendaylight.mdsal.dom.broker.CommitCoordinationTask -- Transaction DOM-15: doCommit completed
12:26:36.435 [mdsal-subscription-counters13] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Submitting transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@3cbad2c0}
12:26:36.435 [mdsal-subscription-counters13] DEBUG org.opendaylight.mdsal.dom.spi.AbstractPingPongTransactionChain -- Transaction PingPongTransaction{delegate=org.opendaylight.mdsal.dom.spi.DOMForwardedReadWriteTransaction@3cbad2c0} completed successfully
12:26:36.435 [main] INFO org.opendaylight.gnmi.southbound.schema.loader.impl.ByClassPathYangLoaderService -- Loaded yang model openconfig-if-ethernet with version 2.11.0
12:26:36.435 [mdsal-subscription-counters13] DEBUG org.opendaylight.restconf.server.mdsal.MdsalRestconfStreamRegistry -- Subscription receivers updated successfully
12:26:36.438 [main] DEBUG org.opendaylight.gnmi.southbound.schema.yangstore.impl.YangDataStoreServiceImpl -- Adding yang model openconfig-extensions with version 2020-06-16 to operational datastore
12:26:36.443 [main] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedWriteTransaction -- Write Tx: OPER-16 allocated with snapshot Version[44ef239]
12:26:36.443 [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-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}]}
12:26:36.443 [main] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedWriteTransaction -- Store transaction: OPER-16 : Ready
12:26:36.443 [main] DEBUG org.opendaylight.mdsal.dom.store.inmemory.InMemoryDOMDataStore -- Tx: OPER-16 is submitted. Modifications: InMemoryDataTreeModification{state=Ready}
12:26:36.443 [main] DEBUG org.opendaylight.mdsal.dom.broker.SerializedDOMDataBroker -- Tx: DOM-16 is submitted for execution.
12:26:36.443 [main] DEBUG org.opendaylight.mdsal.dom.broker.CommitCoordinationTask -- Transaction DOM-16: canCommit Started
12:26:36.443 [main] DEBUG org.opendaylight.mdsal.dom.store.inmemory.InMemoryDOMStoreThreePhaseCommitCohort -- Store Transaction: OPER-16 can be committed
12:26:36.443 [main] DEBUG org.opendaylight.mdsal.dom.broker.CommitCoordinationTask -- Transaction DOM-16: preCommit Started
12:26:36.443 [main] DEBUG org.opendaylight.mdsal.dom.broker.CommitCoordinationTask -- Transaction DOM-16: doCommit Started
12:26:36.443 [main] DEBUG org.opendaylight.yangtools.yang.data.tree.impl.InMemoryDataTree -- Updating datastore from MaterializedContainerNode{version=Version[7c2b538c], subtreeVersion=Version[44ef239], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-models=MaterializedContainerNode{version=Version[52eff20c], subtreeVersion=Version[44ef239], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model=LazyContainerNode{version=Version[52eff20c], subtreeVersion=Version[44ef239], 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[6cb62210], data=ImmutableMapEntryNode{name=(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[4182fc55], data=ImmutableMapEntryNode{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[1cdd13c5], data=ImmutableMapEntryNode{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-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.1}]=SimpleContainerNode{version=Version[389675b5], data=ImmutableMapEntryNode{name=(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=openconfig-if-ethernet, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.11.0}]=SimpleContainerNode{version=Version[44ef239], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight: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[13be8d09], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight: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-if-aggregate, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.4.3}]=SimpleContainerNode{version=Version[f6bf6d0], data=ImmutableMapEntryNode{name=(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[25a31645], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight: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[2055603f], data=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-openflow, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.1.2}]=SimpleContainerNode{version=Version[1e198cf8], data=ImmutableMapEntryNode{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}]}}, (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[5054b5fa], data=ImmutableMapEntryNode{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=ietf-interfaces, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2018-02-20}]=SimpleContainerNode{version=Version[7ae5c355], data=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[d1c5d41], data=ImmutableMapEntryNode{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-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.6.0}]=SimpleContainerNode{version=Version[18036c95], data=ImmutableMapEntryNode{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-system-logging, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}]=SimpleContainerNode{version=Version[40300c67], data=ImmutableMapEntryNode{name=(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[7c2b538c], subtreeVersion=Version[2192320a], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-models=MaterializedContainerNode{version=Version[52eff20c], subtreeVersion=Version[2192320a], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model=LazyContainerNode{version=Version[52eff20c], subtreeVersion=Version[2192320a], 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[6cb62210], data=ImmutableMapEntryNode{name=(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[4182fc55], data=ImmutableMapEntryNode{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[1cdd13c5], data=ImmutableMapEntryNode{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-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.2.1}]=SimpleContainerNode{version=Version[389675b5], data=ImmutableMapEntryNode{name=(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=openconfig-if-ethernet, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.11.0}]=SimpleContainerNode{version=Version[44ef239], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight: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[13be8d09], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight: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-if-aggregate, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2.4.3}]=SimpleContainerNode{version=Version[f6bf6d0], data=ImmutableMapEntryNode{name=(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-extensions, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2020-06-16}]=SimpleContainerNode{version=Version[2192320a], data=ImmutableMapEntryNode{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[25a31645], data=ImmutableMapEntryNode{name=(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model[{(urn:opendaylight: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[2055603f], data=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-openflow, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.1.2}]=SimpleContainerNode{version=Version[1e198cf8], data=ImmutableMapEntryNode{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}]}}, (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[5054b5fa], data=ImmutableMapEntryNode{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=ietf-interfaces, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=2018-02-20}]=SimpleContainerNode{version=Version[7ae5c355], data=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[d1c5d41], data=ImmutableMapEntryNode{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-types, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.6.0}]=SimpleContainerNode{version=Version[18036c95], data=ImmutableMapEntryNode{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-system-logging, (urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)version=0.3.1}]=SimpleContainerNode{version=Version[40300c67], data=ImmutableMapEntryNode{name=(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}]}]}}}}}
12:26:36.450 [main] DEBUG org.opendaylight.mdsal.dom.broker.CommitCoordinationTask -- Transaction DOM-16: doCommit completed
12:26:36.450 [main] INFO org.opendaylight.gnmi.southbound.schema.loader.impl.ByClassPathYangLoaderService -- Loaded yang model openconfig-extensions with version 2020-06-16
12:26:36.454 [main] DEBUG org.opendaylight.gnmi.southbound.schema.yangstore.impl.YangDataStoreServiceImpl -- Adding yang model openconfig-license with version 0.2.0 to operational datastore
12:26:36.456 [main] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedWriteTransaction -- Write Tx: OPER-17 allocated with snapshot Version[2192320a]
12:26:36.456 [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-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}]}
12:26:36.456 [main] DEBUG org.opendaylight.mdsal.dom.spi.store.SnapshotBackedWriteTransaction -- Store transaction: OPER-17 : Ready
12:26:36.456 [main] DEBUG org.opendaylight.mdsal.dom.store.inmemory.InMemoryDOMDataStore -- Tx: OPER-17 is submitted. Modifications: InMemoryDataTreeModification{state=Ready}
12:26:36.456 [main] DEBUG org.opendaylight.mdsal.dom.broker.SerializedDOMDataBroker -- Tx: DOM-17 is submitted for execution.
12:26:36.456 [main] DEBUG org.opendaylight.mdsal.dom.broker.CommitCoordinationTask -- Transaction DOM-17: canCommit Started
12:26:36.456 [main] DEBUG org.opendaylight.mdsal.dom.store.inmemory.InMemoryDOMStoreThreePhaseCommitCohort -- Store Transaction: OPER-17 can be committed
12:26:36.456 [main] DEBUG org.opendaylight.mdsal.dom.broker.CommitCoordinationTask -- Transaction DOM-17: preCommit Started
12:26:36.456 [main] DEBUG org.opendaylight.mdsal.dom.broker.CommitCoordinationTask -- Transaction DOM-17: doCommit Started
12:26:36.456 [main] DEBUG org.opendaylight.yangtools.yang.data.tree.impl.InMemoryDataTree -- Updating datastore from MaterializedContainerNode{version=Version[7c2b538c], subtreeVersion=Version[2192320a], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-models=MaterializedContainerNode{version=Version[52eff20c], subtreeVersion=Version[2192320a], children={(urn:opendaylight:gnmi:yang:storage?revision=2021-03-31)gnmi-yang-model=LazyContainerNode{version=Version[52eff20c], subtreeVersion=Version[2192320a], 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[6cb62210], data=ImmutableMapEntryNode{name=(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:
$[$=(,