Add NETCONF notification for ONU activation and Kafka client to receive events, update dependencies
Change-Id: I5f768fa8077ef7c64e00a534744ca47492344935
diff --git a/build/config/nacm.xml b/build/config/nacm.xml
new file mode 100644
index 0000000..f9dad2e
--- /dev/null
+++ b/build/config/nacm.xml
@@ -0,0 +1,26 @@
+<!-- ietf-netconf-acm.xml -->
+<nacm xmlns="urn:ietf:params:xml:ns:yang:ietf-netconf-acm">
+ <enable-nacm>true</enable-nacm>
+ <groups>
+ <group>
+ <name>voltha</name>
+ <user-name>voltha</user-name>
+ </group>
+ </groups>
+ <rule-list>
+ <name>devices</name>
+ <group>voltha</group>
+ <rule>
+ <name>allow-devices</name>
+ <module-name>bbf-device-aggregation</module-name>
+ <access-operations>*</access-operations>
+ <action>permit</action>
+ </rule>
+ <rule>
+ <name>allow-hardware</name>
+ <module-name>ietf-hardware</module-name>
+ <access-operations>*</access-operations>
+ <action>permit</action>
+ </rule>
+ </rule-list>
+</nacm>
\ No newline at end of file
diff --git a/build/package/Dockerfile.bbf-adapter b/build/package/Dockerfile.bbf-adapter
index bbd3f1e..2517145 100644
--- a/build/package/Dockerfile.bbf-adapter
+++ b/build/package/Dockerfile.bbf-adapter
@@ -20,7 +20,7 @@
FROM voltha/bbf-adapter-builder:local AS dev
#Build runtime dependencies
-RUN apk add --no-cache libssh-dev=0.9.5-r0 openssl-dev=1.1.1n-r0 openssl=1.1.1n-r0 bash=5.1.16-r0
+RUN apk add --no-cache libssh-dev=0.9.5-r0 openssl-dev=1.1.1q-r0 openssl=1.1.1q-r0 bash=5.1.16-r0
ARG LIBNETCONF2_VERSION
ARG NETOPEER2_VERSION
@@ -82,29 +82,18 @@
SHELL ["/bin/ash", "-o", "pipefail", "-c"]
-RUN apk add --no-cache pcre2=10.36-r0 libssh=0.9.5-r0 openssl=1.1.1n-r0
+RUN apk add --no-cache pcre2=10.36-r1 libssh=0.9.5-r0 openssl=1.1.1q-r0
# Dependencies install their library files in lib64, add it to the path
RUN echo "/lib:/usr/local/lib:/usr/lib:/usr/local/lib64" > /etc/ld-musl-x86_64.path
# Copy dependencies files
COPY --from=dev /usr/local/bin /usr/local/bin
+COPY --from=dev /usr/local/sbin /usr/local/sbin
COPY --from=dev /usr/local/lib64 /usr/local/lib64
COPY --from=dev /usr/local/share /usr/local/share
COPY --from=dev /etc/sysrepo /etc/sysrepo
-# Copy yang files and install them to sysrepo
-COPY ./build/yang-files /yang
-RUN for f in /yang/*.yang; do sysrepoctl -i "$f" -s /yang -p 664 -v3; done
-
-# Enable admin and oper state in ietf-hardware
-RUN sysrepoctl -e hardware-state -c ietf-hardware
-
-COPY ./build/yang-files/schema-mount.xml /
-
-# Add sysrepo's yang library data to the data provided to the schema-mount libyang extension
-RUN sysrepocfg -X -x/ietf-yang-library:* -d operational >> /schema-mount.xml
-
# Add user for connecting to netopeer2-server through ssh
ARG NETCONF_USER=voltha
ARG NETCONF_PASSWORD=onf
@@ -113,6 +102,25 @@
RUN adduser $NETCONF_USER --uid 1001 -G netconf --disabled-password
RUN echo $NETCONF_USER:$NETCONF_PASSWORD | chpasswd
+# Copy yang files and install them to sysrepo
+COPY ./build/yang-files /yang
+RUN for f in /yang/*.yang; do sysrepoctl -i "$f" -s /yang -o $NETCONF_USER -g netconf -p 664 -v3; done
+RUN for f in /yang/*/*.yang; do sysrepoctl -i "$f" -s /yang -o $NETCONF_USER -g netconf -p 664 -v3; done
+
+COPY ./build/config /config
+# Disable nacm to test edit-config easily
+RUN sysrepocfg --import=/config/nacm.xml -d startup -m ietf-netconf-acm
+RUN sysrepocfg --import=/config/nacm.xml -d running -m ietf-netconf-acm
+RUN sysrepocfg --import=/config/nacm.xml -d candidate -m ietf-netconf-acm
+
+# Enable admin and oper state in ietf-hardware
+RUN sysrepoctl -e hardware-state -c ietf-hardware -v3
+
+COPY ./build/yang-files/schema-mount.xml /
+
+# Add sysrepo's yang library data to the data provided to the schema-mount libyang extension
+RUN sysrepocfg -X -x/ietf-yang-library:* -d operational >> /schema-mount.xml
+
# Set the working directory
WORKDIR /
diff --git a/build/tools/Dockerfile.builder b/build/tools/Dockerfile.builder
index a3c27c3..d401866 100644
--- a/build/tools/Dockerfile.builder
+++ b/build/tools/Dockerfile.builder
@@ -19,7 +19,7 @@
# Build golangci-lint
FROM --platform=linux/amd64 golang:1.16.3-alpine3.13 AS lint-builder
-RUN apk add --no-cache build-base=0.5-r2
+RUN apk add --no-cache build-base=0.5-r3
#Install golangci-lint
RUN go install github.com/golangci/golangci-lint/cmd/golangci-lint@v1.44.2
@@ -31,7 +31,7 @@
RUN mkdir -m 777 /.cache /go/pkg
-RUN apk add --no-cache build-base=0.5-r2 pcre2-dev=10.36-r0 git=2.30.3-r0 cmake=3.18.4-r1
+RUN apk add --no-cache build-base=0.5-r3 pcre2-dev=10.36-r1 git=2.30.5-r0 cmake=3.18.4-r1
# Dependencies install their library files in lib64, add it to the path
RUN echo "/lib:/usr/local/lib:/usr/lib:/usr/local/lib64" > /etc/ld-musl-x86_64.path
diff --git a/build/yang-files/iana-if-type@2021-06-21.yang b/build/yang-files/iana-if-type@2021-06-21.yang
new file mode 100644
index 0000000..e36ee38
--- /dev/null
+++ b/build/yang-files/iana-if-type@2021-06-21.yang
@@ -0,0 +1,1832 @@
+module iana-if-type {
+ namespace "urn:ietf:params:xml:ns:yang:iana-if-type";
+ prefix ianaift;
+
+ import ietf-interfaces {
+ prefix if;
+ }
+
+ organization "IANA";
+ contact
+ " Internet Assigned Numbers Authority
+
+ Postal: ICANN
+ 12025 Waterfront Drive, Suite 300
+ Los Angeles, CA 90094-2536
+ United States
+
+ Tel: +1 310 301 5800
+ <mailto:iana@iana.org>";
+ description
+ "This YANG module defines YANG identities for IANA-registered
+ interface types.
+
+ This YANG module is maintained by IANA and reflects the
+ 'ifType definitions' registry.
+
+ The latest revision of this YANG module can be obtained from
+ the IANA web site.
+
+ Requests for new values should be made to IANA via
+ email (iana@iana.org).
+
+ Copyright (c) 2014 IETF Trust and the persons identified as
+ authors of the code. All rights reserved.
+
+ Redistribution and use in source and binary forms, with or
+ without modification, is permitted pursuant to, and subject
+ to the license terms contained in, the Simplified BSD License
+ set forth in Section 4.c of the IETF Trust's Legal Provisions
+ Relating to IETF Documents
+ (http://trustee.ietf.org/license-info).
+
+ The initial version of this YANG module is part of RFC 7224;
+ see the RFC itself for full legal notices.";
+ reference
+ "IANA 'ifType definitions' registry.
+ <http://www.iana.org/assignments/smi-numbers>";
+
+ revision 2021-06-21 {
+ description
+ "Corrected reference for ifType 303.";
+ }
+ revision 2021-05-17 {
+ description
+ "Registered ifType 303.";
+ }
+ revision 2021-04-22 {
+ description
+ "Registered ifType 302.";
+ }
+ revision 2021-04-01 {
+ description
+ "Updated reference for 301.";
+ }
+ revision 2021-02-18 {
+ description
+ "Registered ifType 301.";
+ }
+
+ revision 2020-08-27 {
+ description
+ "Added missing references.";
+ }
+
+ revision 2020-07-13 {
+ description
+ "Added identity cpri.";
+ }
+
+ revision 2020-07-10 {
+ description
+ "Registered ifType 300.";
+ }
+
+ revision 2020-01-10 {
+ description
+ "Registered ifType 299.";
+ }
+
+ revision 2019-10-16 {
+ description
+ "Registered ifType 298.";
+ }
+ revision 2019-07-16 {
+ description
+ "Registered ifType 297.";
+ }
+ revision 2019-06-21 {
+ description
+ "Updated reference associated with ifTypes 295-296.";
+ }
+
+ revision 2019-02-08 {
+ description
+ "Corrected formatting issue.";
+ }
+
+ revision 2019-01-31 {
+ description
+ "Registered ifTypes 295-296.";
+ }
+
+ revision 2018-07-03 {
+ description
+ "Corrected revision date.";
+ }
+
+ revision 2018-06-29 {
+ description
+ "Corrected formatting issue.";
+ }
+
+ revision 2018-06-28 {
+ description
+ "Registered ifType 294.";
+ }
+
+ revision 2018-06-28 {
+ description
+ "Registered ifType 293.";
+ }
+
+ revision 2018-06-22 {
+ description
+ "Registered ifType 292.";
+ }
+
+ revision 2018-06-21 {
+ description
+ "Registered ifType 291.";
+ }
+
+ revision 2017-03-30 {
+ description
+ "Registered ifType 290.";
+ }
+
+ revision 2017-01-19 {
+ description
+ "Registered ifType 289.";
+ }
+
+ revision 2016-11-23 {
+ description
+ "Registered ifTypes 283-288.";
+ }
+
+ revision 2016-06-09 {
+ description
+ "Registered ifType 282.";
+ }
+ revision 2016-05-03 {
+ description
+ "Registered ifType 281.";
+ }
+ revision 2015-06-12 {
+ description
+ "Corrected formatting issue.";
+ }
+ revision 2014-09-24 {
+ description
+ "Registered ifType 280.";
+ }
+ revision 2014-09-19 {
+ description
+ "Registered ifType 279.";
+ }
+ revision 2014-07-03 {
+ description
+ "Registered ifTypes 277-278.";
+ }
+ revision 2014-05-19 {
+ description
+ "Updated the contact address.";
+ }
+ revision 2014-05-08 {
+ description
+ "Initial revision.";
+ reference
+ "RFC 7224: IANA Interface Type YANG Module";
+ }
+
+ identity iana-interface-type {
+ base if:interface-type;
+ description
+ "This identity is used as a base for all interface types
+ defined in the 'ifType definitions' registry.";
+ }
+
+ identity other {
+ base iana-interface-type;
+ }
+ identity regular1822 {
+ base iana-interface-type;
+ }
+ identity hdh1822 {
+ base iana-interface-type;
+ }
+ identity ddnX25 {
+ base iana-interface-type;
+ }
+ identity rfc877x25 {
+ base iana-interface-type;
+ reference
+ "RFC 1382 - SNMP MIB Extension for the X.25 Packet Layer";
+ }
+ identity ethernetCsmacd {
+ base iana-interface-type;
+ description
+ "For all Ethernet-like interfaces, regardless of speed,
+ as per RFC 3635.";
+ reference
+ "RFC 3635 - Definitions of Managed Objects for the
+ Ethernet-like Interface Types";
+ }
+ identity iso88023Csmacd {
+ base iana-interface-type;
+ status deprecated;
+ description
+ "Deprecated via RFC 3635.
+ Use ethernetCsmacd(6) instead.";
+ reference
+ "RFC 3635 - Definitions of Managed Objects for the
+ Ethernet-like Interface Types";
+ }
+ identity iso88024TokenBus {
+ base iana-interface-type;
+ }
+ identity iso88025TokenRing {
+ base iana-interface-type;
+ }
+ identity iso88026Man {
+ base iana-interface-type;
+ }
+ identity starLan {
+ base iana-interface-type;
+ status deprecated;
+ description
+ "Deprecated via RFC 3635.
+ Use ethernetCsmacd(6) instead.";
+ reference
+ "RFC 3635 - Definitions of Managed Objects for the
+ Ethernet-like Interface Types";
+ }
+ identity proteon10Mbit {
+ base iana-interface-type;
+ }
+ identity proteon80Mbit {
+ base iana-interface-type;
+ }
+ identity hyperchannel {
+ base iana-interface-type;
+ }
+ identity fddi {
+ base iana-interface-type;
+ reference
+ "RFC 1512 - FDDI Management Information Base";
+ }
+ identity lapb {
+ base iana-interface-type;
+ reference
+ "RFC 1381 - SNMP MIB Extension for X.25 LAPB";
+ }
+ identity sdlc {
+ base iana-interface-type;
+ }
+ identity ds1 {
+ base iana-interface-type;
+ description
+ "DS1-MIB.";
+ reference
+ "RFC 4805 - Definitions of Managed Objects for the
+ DS1, J1, E1, DS2, and E2 Interface Types";
+ }
+ identity e1 {
+ base iana-interface-type;
+ status obsolete;
+ description
+ "Obsolete; see DS1-MIB.";
+ reference
+ "RFC 4805 - Definitions of Managed Objects for the
+ DS1, J1, E1, DS2, and E2 Interface Types";
+ }
+ identity basicISDN {
+ base iana-interface-type;
+ description
+ "No longer used. See also RFC 2127.";
+ }
+ identity primaryISDN {
+ base iana-interface-type;
+ description
+ "No longer used. See also RFC 2127.";
+ }
+ identity propPointToPointSerial {
+ base iana-interface-type;
+ description
+ "Proprietary serial.";
+ }
+ identity ppp {
+ base iana-interface-type;
+ }
+ identity softwareLoopback {
+ base iana-interface-type;
+ }
+ identity eon {
+ base iana-interface-type;
+ description
+ "CLNP over IP.";
+ }
+ identity ethernet3Mbit {
+ base iana-interface-type;
+ }
+ identity nsip {
+ base iana-interface-type;
+ description
+ "XNS over IP.";
+ }
+ identity slip {
+ base iana-interface-type;
+ description
+ "Generic SLIP.";
+ }
+ identity ultra {
+ base iana-interface-type;
+ description
+ "Ultra Technologies.";
+ }
+ identity ds3 {
+ base iana-interface-type;
+ description
+ "DS3-MIB.";
+ reference
+ "RFC 3896 - Definitions of Managed Objects for the
+ DS3/E3 Interface Type";
+ }
+ identity sip {
+ base iana-interface-type;
+ description
+ "SMDS, coffee.";
+ reference
+ "RFC 1694 - Definitions of Managed Objects for SMDS
+ Interfaces using SMIv2";
+ }
+ identity frameRelay {
+ base iana-interface-type;
+ description
+ "DTE only.";
+ reference
+ "RFC 2115 - Management Information Base for Frame Relay
+ DTEs Using SMIv2";
+ }
+ identity rs232 {
+ base iana-interface-type;
+ reference
+ "RFC 1659 - Definitions of Managed Objects for RS-232-like
+ Hardware Devices using SMIv2";
+ }
+ identity para {
+ base iana-interface-type;
+ description
+ "Parallel-port.";
+ reference
+ "RFC 1660 - Definitions of Managed Objects for
+ Parallel-printer-like Hardware Devices using
+ SMIv2";
+ }
+ identity arcnet {
+ base iana-interface-type;
+ description
+ "ARCnet.";
+ }
+ identity arcnetPlus {
+ base iana-interface-type;
+ description
+ "ARCnet Plus.";
+ }
+ identity atm {
+ base iana-interface-type;
+ description
+ "ATM cells.";
+ }
+ identity miox25 {
+ base iana-interface-type;
+ reference
+ "RFC 1461 - SNMP MIB extension for Multiprotocol
+ Interconnect over X.25";
+ }
+ identity sonet {
+ base iana-interface-type;
+ description
+ "SONET or SDH.";
+ }
+ identity x25ple {
+ base iana-interface-type;
+ reference
+ "RFC 2127 - ISDN Management Information Base using SMIv2";
+ }
+ identity iso88022llc {
+ base iana-interface-type;
+ }
+ identity localTalk {
+ base iana-interface-type;
+ }
+ identity smdsDxi {
+ base iana-interface-type;
+ }
+ identity frameRelayService {
+ base iana-interface-type;
+ description
+ "FRNETSERV-MIB.";
+ reference
+ "RFC 2954 - Definitions of Managed Objects for Frame
+ Relay Service";
+ }
+ identity v35 {
+ base iana-interface-type;
+ }
+ identity hssi {
+ base iana-interface-type;
+ }
+ identity hippi {
+ base iana-interface-type;
+ }
+ identity modem {
+ base iana-interface-type;
+ description
+ "Generic modem.";
+ }
+ identity aal5 {
+ base iana-interface-type;
+ description
+ "AAL5 over ATM.";
+ }
+ identity sonetPath {
+ base iana-interface-type;
+ }
+ identity sonetVT {
+ base iana-interface-type;
+ }
+ identity smdsIcip {
+ base iana-interface-type;
+ description
+ "SMDS InterCarrier Interface.";
+ }
+ identity propVirtual {
+ base iana-interface-type;
+ description
+ "Proprietary virtual/internal.";
+ reference
+ "RFC 2863 - The Interfaces Group MIB";
+ }
+ identity propMultiplexor {
+ base iana-interface-type;
+ description
+ "Proprietary multiplexing.";
+ reference
+ "RFC 2863 - The Interfaces Group MIB";
+ }
+ identity ieee80212 {
+ base iana-interface-type;
+ description
+ "100BaseVG.";
+ }
+ identity fibreChannel {
+ base iana-interface-type;
+ description
+ "Fibre Channel.";
+ }
+ identity hippiInterface {
+ base iana-interface-type;
+ description
+ "HIPPI interfaces.";
+ }
+ identity frameRelayInterconnect {
+ base iana-interface-type;
+ status obsolete;
+ description
+ "Obsolete; use either
+ frameRelay(32) or frameRelayService(44).";
+ }
+ identity aflane8023 {
+ base iana-interface-type;
+ description
+ "ATM Emulated LAN for 802.3.";
+ }
+ identity aflane8025 {
+ base iana-interface-type;
+ description
+ "ATM Emulated LAN for 802.5.";
+ }
+ identity cctEmul {
+ base iana-interface-type;
+ description
+ "ATM Emulated circuit.";
+ }
+ identity fastEther {
+ base iana-interface-type;
+ status deprecated;
+ description
+ "Obsoleted via RFC 3635.
+ ethernetCsmacd(6) should be used instead.";
+ reference
+ "RFC 3635 - Definitions of Managed Objects for the
+ Ethernet-like Interface Types";
+ }
+ identity isdn {
+ base iana-interface-type;
+ description
+ "ISDN and X.25.";
+ reference
+ "RFC 1356 - Multiprotocol Interconnect on X.25 and ISDN
+ in the Packet Mode";
+ }
+ identity v11 {
+ base iana-interface-type;
+ description
+ "CCITT V.11/X.21.";
+ }
+ identity v36 {
+ base iana-interface-type;
+ description
+ "CCITT V.36.";
+ }
+ identity g703at64k {
+ base iana-interface-type;
+ description
+ "CCITT G703 at 64Kbps.";
+ }
+ identity g703at2mb {
+ base iana-interface-type;
+ status obsolete;
+ description
+ "Obsolete; see DS1-MIB.";
+ }
+ identity qllc {
+ base iana-interface-type;
+ description
+ "SNA QLLC.";
+ }
+ identity fastEtherFX {
+ base iana-interface-type;
+ status deprecated;
+ description
+ "Obsoleted via RFC 3635.
+ ethernetCsmacd(6) should be used instead.";
+ reference
+ "RFC 3635 - Definitions of Managed Objects for the
+ Ethernet-like Interface Types";
+ }
+ identity channel {
+ base iana-interface-type;
+ description
+ "Channel.";
+ }
+ identity ieee80211 {
+ base iana-interface-type;
+ description
+ "Radio spread spectrum.";
+ }
+ identity ibm370parChan {
+ base iana-interface-type;
+ description
+ "IBM System 360/370 OEMI Channel.";
+ }
+ identity escon {
+ base iana-interface-type;
+ description
+ "IBM Enterprise Systems Connection.";
+ }
+ identity dlsw {
+ base iana-interface-type;
+ description
+ "Data Link Switching.";
+ }
+ identity isdns {
+ base iana-interface-type;
+ description
+ "ISDN S/T interface.";
+ }
+ identity isdnu {
+ base iana-interface-type;
+ description
+ "ISDN U interface.";
+ }
+ identity lapd {
+ base iana-interface-type;
+ description
+ "Link Access Protocol D.";
+ }
+ identity ipSwitch {
+ base iana-interface-type;
+ description
+ "IP Switching Objects.";
+ }
+ identity rsrb {
+ base iana-interface-type;
+ description
+ "Remote Source Route Bridging.";
+ }
+ identity atmLogical {
+ base iana-interface-type;
+ description
+ "ATM Logical Port.";
+ reference
+ "RFC 3606 - Definitions of Supplemental Managed Objects
+ for ATM Interface";
+ }
+ identity ds0 {
+ base iana-interface-type;
+ description
+ "Digital Signal Level 0.";
+ reference
+ "RFC 2494 - Definitions of Managed Objects for the DS0
+ and DS0 Bundle Interface Type";
+ }
+ identity ds0Bundle {
+ base iana-interface-type;
+ description
+ "Group of ds0s on the same ds1.";
+ reference
+ "RFC 2494 - Definitions of Managed Objects for the DS0
+ and DS0 Bundle Interface Type";
+ }
+ identity bsc {
+ base iana-interface-type;
+ description
+ "Bisynchronous Protocol.";
+ }
+ identity async {
+ base iana-interface-type;
+ description
+ "Asynchronous Protocol.";
+ }
+ identity cnr {
+ base iana-interface-type;
+ description
+ "Combat Net Radio.";
+ }
+ identity iso88025Dtr {
+ base iana-interface-type;
+ description
+ "ISO 802.5r DTR.";
+ }
+ identity eplrs {
+ base iana-interface-type;
+ description
+ "Ext Pos Loc Report Sys.";
+ }
+ identity arap {
+ base iana-interface-type;
+ description
+ "Appletalk Remote Access Protocol.";
+ }
+ identity propCnls {
+ base iana-interface-type;
+ description
+ "Proprietary Connectionless Protocol.";
+ }
+ identity hostPad {
+ base iana-interface-type;
+ description
+ "CCITT-ITU X.29 PAD Protocol.";
+ }
+ identity termPad {
+ base iana-interface-type;
+ description
+ "CCITT-ITU X.3 PAD Facility.";
+ }
+ identity frameRelayMPI {
+ base iana-interface-type;
+ description
+ "Multiproto Interconnect over FR.";
+ }
+ identity x213 {
+ base iana-interface-type;
+ description
+ "CCITT-ITU X213.";
+ }
+ identity adsl {
+ base iana-interface-type;
+ description
+ "Asymmetric Digital Subscriber Loop.";
+ }
+ identity radsl {
+ base iana-interface-type;
+ description
+ "Rate-Adapt. Digital Subscriber Loop.";
+ }
+ identity sdsl {
+ base iana-interface-type;
+ description
+ "Symmetric Digital Subscriber Loop.";
+ }
+ identity vdsl {
+ base iana-interface-type;
+ description
+ "Very H-Speed Digital Subscrib. Loop.";
+ }
+ identity iso88025CRFPInt {
+ base iana-interface-type;
+ description
+ "ISO 802.5 CRFP.";
+ }
+ identity myrinet {
+ base iana-interface-type;
+ description
+ "Myricom Myrinet.";
+ }
+ identity voiceEM {
+ base iana-interface-type;
+ description
+ "Voice recEive and transMit.";
+ }
+ identity voiceFXO {
+ base iana-interface-type;
+ description
+ "Voice Foreign Exchange Office.";
+ }
+ identity voiceFXS {
+ base iana-interface-type;
+ description
+ "Voice Foreign Exchange Station.";
+ }
+ identity voiceEncap {
+ base iana-interface-type;
+ description
+ "Voice encapsulation.";
+ }
+ identity voiceOverIp {
+ base iana-interface-type;
+ description
+ "Voice over IP encapsulation.";
+ }
+ identity atmDxi {
+ base iana-interface-type;
+ description
+ "ATM DXI.";
+ }
+ identity atmFuni {
+ base iana-interface-type;
+ description
+ "ATM FUNI.";
+ }
+ identity atmIma {
+ base iana-interface-type;
+ description
+ "ATM IMA.";
+ }
+ identity pppMultilinkBundle {
+ base iana-interface-type;
+ description
+ "PPP Multilink Bundle.";
+ }
+ identity ipOverCdlc {
+ base iana-interface-type;
+ description
+ "IBM ipOverCdlc.";
+ }
+ identity ipOverClaw {
+ base iana-interface-type;
+ description
+ "IBM Common Link Access to Workstn.";
+ }
+ identity stackToStack {
+ base iana-interface-type;
+ description
+ "IBM stackToStack.";
+ }
+ identity virtualIpAddress {
+ base iana-interface-type;
+ description
+ "IBM VIPA.";
+ }
+ identity mpc {
+ base iana-interface-type;
+ description
+ "IBM multi-protocol channel support.";
+ }
+ identity ipOverAtm {
+ base iana-interface-type;
+ description
+ "IBM ipOverAtm.";
+ reference
+ "RFC 2320 - Definitions of Managed Objects for Classical IP
+ and ARP Over ATM Using SMIv2 (IPOA-MIB)";
+ }
+ identity iso88025Fiber {
+ base iana-interface-type;
+ description
+ "ISO 802.5j Fiber Token Ring.";
+ }
+ identity tdlc {
+ base iana-interface-type;
+ description
+ "IBM twinaxial data link control.";
+ }
+ identity gigabitEthernet {
+ base iana-interface-type;
+ status deprecated;
+ description
+ "Obsoleted via RFC 3635.
+ ethernetCsmacd(6) should be used instead.";
+ reference
+ "RFC 3635 - Definitions of Managed Objects for the
+ Ethernet-like Interface Types";
+ }
+ identity hdlc {
+ base iana-interface-type;
+ description
+ "HDLC.";
+ }
+ identity lapf {
+ base iana-interface-type;
+ description
+ "LAP F.";
+ }
+ identity v37 {
+ base iana-interface-type;
+ description
+ "V.37.";
+ }
+ identity x25mlp {
+ base iana-interface-type;
+ description
+ "Multi-Link Protocol.";
+ }
+ identity x25huntGroup {
+ base iana-interface-type;
+ description
+ "X25 Hunt Group.";
+ }
+ identity transpHdlc {
+ base iana-interface-type;
+ description
+ "Transp HDLC.";
+ }
+ identity interleave {
+ base iana-interface-type;
+ description
+ "Interleave channel.";
+ }
+ identity fast {
+ base iana-interface-type;
+ description
+ "Fast channel.";
+ }
+ identity ip {
+ base iana-interface-type;
+ description
+ "IP (for APPN HPR in IP networks).";
+ }
+ identity docsCableMaclayer {
+ base iana-interface-type;
+ description
+ "CATV Mac Layer.";
+ }
+ identity docsCableDownstream {
+ base iana-interface-type;
+ description
+ "CATV Downstream interface.";
+ }
+ identity docsCableUpstream {
+ base iana-interface-type;
+ description
+ "CATV Upstream interface.";
+ }
+ identity a12MppSwitch {
+ base iana-interface-type;
+ description
+ "Avalon Parallel Processor.";
+ }
+ identity tunnel {
+ base iana-interface-type;
+ description
+ "Encapsulation interface.";
+ }
+ identity coffee {
+ base iana-interface-type;
+ description
+ "Coffee pot.";
+ reference
+ "RFC 2325 - Coffee MIB";
+ }
+ identity ces {
+ base iana-interface-type;
+ description
+ "Circuit Emulation Service.";
+ }
+ identity atmSubInterface {
+ base iana-interface-type;
+ description
+ "ATM Sub Interface.";
+ }
+ identity l2vlan {
+ base iana-interface-type;
+ description
+ "Layer 2 Virtual LAN using 802.1Q.";
+ }
+ identity l3ipvlan {
+ base iana-interface-type;
+ description
+ "Layer 3 Virtual LAN using IP.";
+ }
+ identity l3ipxvlan {
+ base iana-interface-type;
+ description
+ "Layer 3 Virtual LAN using IPX.";
+ }
+ identity digitalPowerline {
+ base iana-interface-type;
+ description
+ "IP over Power Lines.";
+ }
+ identity mediaMailOverIp {
+ base iana-interface-type;
+ description
+ "Multimedia Mail over IP.";
+ }
+ identity dtm {
+ base iana-interface-type;
+ description
+ "Dynamic synchronous Transfer Mode.";
+ }
+ identity dcn {
+ base iana-interface-type;
+ description
+ "Data Communications Network.";
+ }
+ identity ipForward {
+ base iana-interface-type;
+ description
+ "IP Forwarding Interface.";
+ }
+ identity msdsl {
+ base iana-interface-type;
+ description
+ "Multi-rate Symmetric DSL.";
+ }
+ identity ieee1394 {
+ base iana-interface-type;
+
+ description
+ "IEEE1394 High Performance Serial Bus.";
+ }
+ identity if-gsn {
+ base iana-interface-type;
+ description
+ "HIPPI-6400.";
+ }
+ identity dvbRccMacLayer {
+ base iana-interface-type;
+ description
+ "DVB-RCC MAC Layer.";
+ }
+ identity dvbRccDownstream {
+ base iana-interface-type;
+ description
+ "DVB-RCC Downstream Channel.";
+ }
+ identity dvbRccUpstream {
+ base iana-interface-type;
+ description
+ "DVB-RCC Upstream Channel.";
+ }
+ identity atmVirtual {
+ base iana-interface-type;
+ description
+ "ATM Virtual Interface.";
+ }
+ identity mplsTunnel {
+ base iana-interface-type;
+ description
+ "MPLS Tunnel Virtual Interface.";
+ }
+ identity srp {
+ base iana-interface-type;
+ description
+ "Spatial Reuse Protocol.";
+ }
+ identity voiceOverAtm {
+ base iana-interface-type;
+ description
+ "Voice over ATM.";
+ }
+ identity voiceOverFrameRelay {
+ base iana-interface-type;
+ description
+ "Voice Over Frame Relay.";
+ }
+ identity idsl {
+ base iana-interface-type;
+ description
+ "Digital Subscriber Loop over ISDN.";
+ }
+ identity compositeLink {
+ base iana-interface-type;
+ description
+ "Avici Composite Link Interface.";
+ }
+ identity ss7SigLink {
+ base iana-interface-type;
+ description
+ "SS7 Signaling Link.";
+ }
+ identity propWirelessP2P {
+ base iana-interface-type;
+ description
+ "Prop. P2P wireless interface.";
+ }
+ identity frForward {
+ base iana-interface-type;
+ description
+ "Frame Forward Interface.";
+ }
+ identity rfc1483 {
+ base iana-interface-type;
+ description
+ "Multiprotocol over ATM AAL5.";
+ reference
+ "RFC 1483 - Multiprotocol Encapsulation over ATM
+ Adaptation Layer 5";
+ }
+ identity usb {
+ base iana-interface-type;
+ description
+ "USB Interface.";
+ }
+ identity ieee8023adLag {
+ base iana-interface-type;
+ description
+ "IEEE 802.3ad Link Aggregate.";
+ }
+ identity bgppolicyaccounting {
+ base iana-interface-type;
+ description
+ "BGP Policy Accounting.";
+ }
+ identity frf16MfrBundle {
+ base iana-interface-type;
+ description
+ "FRF.16 Multilink Frame Relay.";
+ }
+ identity h323Gatekeeper {
+ base iana-interface-type;
+ description
+ "H323 Gatekeeper.";
+ }
+ identity h323Proxy {
+ base iana-interface-type;
+ description
+ "H323 Voice and Video Proxy.";
+ }
+ identity mpls {
+ base iana-interface-type;
+ description
+ "MPLS.";
+ }
+ identity mfSigLink {
+ base iana-interface-type;
+ description
+ "Multi-frequency signaling link.";
+ }
+ identity hdsl2 {
+ base iana-interface-type;
+ description
+ "High Bit-Rate DSL - 2nd generation.";
+ }
+ identity shdsl {
+ base iana-interface-type;
+ description
+ "Multirate HDSL2.";
+ }
+ identity ds1FDL {
+ base iana-interface-type;
+ description
+ "Facility Data Link (4Kbps) on a DS1.";
+ }
+ identity pos {
+ base iana-interface-type;
+ description
+ "Packet over SONET/SDH Interface.";
+ }
+ identity dvbAsiIn {
+ base iana-interface-type;
+ description
+ "DVB-ASI Input.";
+ }
+ identity dvbAsiOut {
+ base iana-interface-type;
+ description
+ "DVB-ASI Output.";
+ }
+ identity plc {
+ base iana-interface-type;
+ description
+ "Power Line Communications.";
+ }
+ identity nfas {
+ base iana-interface-type;
+ description
+ "Non-Facility Associated Signaling.";
+ }
+ identity tr008 {
+ base iana-interface-type;
+ description
+ "TR008.";
+ }
+ identity gr303RDT {
+ base iana-interface-type;
+ description
+ "Remote Digital Terminal.";
+ }
+ identity gr303IDT {
+ base iana-interface-type;
+ description
+ "Integrated Digital Terminal.";
+ }
+ identity isup {
+ base iana-interface-type;
+ description
+ "ISUP.";
+ }
+ identity propDocsWirelessMaclayer {
+ base iana-interface-type;
+ description
+ "Cisco proprietary Maclayer.";
+ }
+ identity propDocsWirelessDownstream {
+ base iana-interface-type;
+ description
+ "Cisco proprietary Downstream.";
+ }
+ identity propDocsWirelessUpstream {
+ base iana-interface-type;
+ description
+ "Cisco proprietary Upstream.";
+ }
+ identity hiperlan2 {
+ base iana-interface-type;
+ description
+ "HIPERLAN Type 2 Radio Interface.";
+ }
+ identity propBWAp2Mp {
+ base iana-interface-type;
+ description
+ "PropBroadbandWirelessAccesspt2Multipt (use of this value
+ for IEEE 802.16 WMAN interfaces as per IEEE Std 802.16f
+ is deprecated, and ieee80216WMAN(237) should be used
+ instead).";
+ }
+ identity sonetOverheadChannel {
+ base iana-interface-type;
+ description
+ "SONET Overhead Channel.";
+ }
+ identity digitalWrapperOverheadChannel {
+ base iana-interface-type;
+ description
+ "Digital Wrapper.";
+ }
+ identity aal2 {
+ base iana-interface-type;
+ description
+ "ATM adaptation layer 2.";
+ }
+ identity radioMAC {
+ base iana-interface-type;
+ description
+ "MAC layer over radio links.";
+ }
+ identity atmRadio {
+ base iana-interface-type;
+ description
+ "ATM over radio links.";
+ }
+ identity imt {
+ base iana-interface-type;
+ description
+ "Inter-Machine Trunks.";
+ }
+ identity mvl {
+ base iana-interface-type;
+ description
+ "Multiple Virtual Lines DSL.";
+ }
+ identity reachDSL {
+ base iana-interface-type;
+ description
+ "Long Reach DSL.";
+ }
+ identity frDlciEndPt {
+ base iana-interface-type;
+ description
+ "Frame Relay DLCI End Point.";
+ }
+ identity atmVciEndPt {
+ base iana-interface-type;
+ description
+ "ATM VCI End Point.";
+ }
+ identity opticalChannel {
+ base iana-interface-type;
+ description
+ "Optical Channel.";
+ }
+ identity opticalTransport {
+ base iana-interface-type;
+ description
+ "Optical Transport.";
+ }
+ identity propAtm {
+ base iana-interface-type;
+ description
+ "Proprietary ATM.";
+ }
+ identity voiceOverCable {
+ base iana-interface-type;
+ description
+ "Voice Over Cable Interface.";
+ }
+ identity infiniband {
+ base iana-interface-type;
+ description
+ "Infiniband.";
+ }
+ identity teLink {
+ base iana-interface-type;
+ description
+ "TE Link.";
+ }
+ identity q2931 {
+ base iana-interface-type;
+ description
+ "Q.2931.";
+ }
+ identity virtualTg {
+ base iana-interface-type;
+ description
+ "Virtual Trunk Group.";
+ }
+ identity sipTg {
+ base iana-interface-type;
+ description
+ "SIP Trunk Group.";
+ }
+ identity sipSig {
+ base iana-interface-type;
+ description
+ "SIP Signaling.";
+ }
+ identity docsCableUpstreamChannel {
+ base iana-interface-type;
+ description
+ "CATV Upstream Channel.";
+ }
+ identity econet {
+ base iana-interface-type;
+ description
+ "Acorn Econet.";
+ }
+ identity pon155 {
+ base iana-interface-type;
+ description
+ "FSAN 155Mb Symetrical PON interface.";
+ }
+ identity pon622 {
+ base iana-interface-type;
+ description
+ "FSAN 622Mb Symetrical PON interface.";
+ }
+ identity bridge {
+ base iana-interface-type;
+ description
+ "Transparent bridge interface.";
+ }
+ identity linegroup {
+ base iana-interface-type;
+ description
+ "Interface common to multiple lines.";
+ }
+ identity voiceEMFGD {
+ base iana-interface-type;
+ description
+ "Voice E&M Feature Group D.";
+ }
+ identity voiceFGDEANA {
+ base iana-interface-type;
+ description
+ "Voice FGD Exchange Access North American.";
+ }
+ identity voiceDID {
+ base iana-interface-type;
+ description
+ "Voice Direct Inward Dialing.";
+ }
+ identity mpegTransport {
+ base iana-interface-type;
+ description
+ "MPEG transport interface.";
+ }
+ identity sixToFour {
+ base iana-interface-type;
+ status deprecated;
+ description
+ "6to4 interface (DEPRECATED).";
+ reference
+ "RFC 4087 - IP Tunnel MIB";
+ }
+ identity gtp {
+ base iana-interface-type;
+ description
+ "GTP (GPRS Tunneling Protocol).";
+ }
+ identity pdnEtherLoop1 {
+ base iana-interface-type;
+ description
+ "Paradyne EtherLoop 1.";
+ }
+ identity pdnEtherLoop2 {
+ base iana-interface-type;
+ description
+ "Paradyne EtherLoop 2.";
+ }
+ identity opticalChannelGroup {
+ base iana-interface-type;
+ description
+ "Optical Channel Group.";
+ }
+ identity homepna {
+ base iana-interface-type;
+ description
+ "HomePNA ITU-T G.989.";
+ }
+ identity gfp {
+ base iana-interface-type;
+ description
+ "Generic Framing Procedure (GFP).";
+ }
+ identity ciscoISLvlan {
+ base iana-interface-type;
+ description
+ "Layer 2 Virtual LAN using Cisco ISL.";
+ }
+ identity actelisMetaLOOP {
+ base iana-interface-type;
+ description
+ "Acteleis proprietary MetaLOOP High Speed Link.";
+ }
+ identity fcipLink {
+ base iana-interface-type;
+ description
+ "FCIP Link.";
+ }
+ identity rpr {
+ base iana-interface-type;
+ description
+ "Resilient Packet Ring Interface Type.";
+ }
+ identity qam {
+ base iana-interface-type;
+ description
+ "RF Qam Interface.";
+ }
+ identity lmp {
+ base iana-interface-type;
+ description
+ "Link Management Protocol.";
+ reference
+ "RFC 4327 - Link Management Protocol (LMP) Management
+ Information Base (MIB)";
+ }
+ identity cblVectaStar {
+ base iana-interface-type;
+ description
+ "Cambridge Broadband Networks Limited VectaStar.";
+ }
+ identity docsCableMCmtsDownstream {
+ base iana-interface-type;
+ description
+ "CATV Modular CMTS Downstream Interface.";
+ }
+ identity adsl2 {
+ base iana-interface-type;
+ status deprecated;
+ description
+ "Asymmetric Digital Subscriber Loop Version 2
+ (DEPRECATED/OBSOLETED - please use adsl2plus(238)
+ instead).";
+ reference
+ "RFC 4706 - Definitions of Managed Objects for Asymmetric
+ Digital Subscriber Line 2 (ADSL2)";
+ }
+ identity macSecControlledIF {
+ base iana-interface-type;
+ description
+ "MACSecControlled.";
+ }
+ identity macSecUncontrolledIF {
+ base iana-interface-type;
+ description
+ "MACSecUncontrolled.";
+ }
+ identity aviciOpticalEther {
+ base iana-interface-type;
+ description
+ "Avici Optical Ethernet Aggregate.";
+ }
+ identity atmbond {
+ base iana-interface-type;
+ description
+ "atmbond.";
+ }
+ identity voiceFGDOS {
+ base iana-interface-type;
+ description
+ "Voice FGD Operator Services.";
+ }
+ identity mocaVersion1 {
+ base iana-interface-type;
+ description
+ "MultiMedia over Coax Alliance (MoCA) Interface
+ as documented in information provided privately to IANA.";
+ }
+ identity ieee80216WMAN {
+ base iana-interface-type;
+ description
+ "IEEE 802.16 WMAN interface.";
+ }
+ identity adsl2plus {
+ base iana-interface-type;
+ description
+ "Asymmetric Digital Subscriber Loop Version 2 -
+ Version 2 Plus and all variants.";
+ }
+ identity dvbRcsMacLayer {
+ base iana-interface-type;
+ description
+ "DVB-RCS MAC Layer.";
+ reference
+ "RFC 5728 - The SatLabs Group DVB-RCS MIB";
+ }
+ identity dvbTdm {
+ base iana-interface-type;
+ description
+ "DVB Satellite TDM.";
+ reference
+ "RFC 5728 - The SatLabs Group DVB-RCS MIB";
+ }
+ identity dvbRcsTdma {
+ base iana-interface-type;
+ description
+ "DVB-RCS TDMA.";
+ reference
+ "RFC 5728 - The SatLabs Group DVB-RCS MIB";
+ }
+ identity x86Laps {
+ base iana-interface-type;
+ description
+ "LAPS based on ITU-T X.86/Y.1323.";
+ }
+ identity wwanPP {
+ base iana-interface-type;
+ description
+ "3GPP WWAN.";
+ }
+ identity wwanPP2 {
+ base iana-interface-type;
+ description
+ "3GPP2 WWAN.";
+ }
+ identity voiceEBS {
+ base iana-interface-type;
+ description
+ "Voice P-phone EBS physical interface.";
+ }
+ identity ifPwType {
+ base iana-interface-type;
+ description
+ "Pseudowire interface type.";
+ reference
+ "RFC 5601 - Pseudowire (PW) Management Information Base (MIB)";
+ }
+ identity ilan {
+ base iana-interface-type;
+ description
+ "Internal LAN on a bridge per IEEE 802.1ap.";
+ }
+ identity pip {
+ base iana-interface-type;
+ description
+ "Provider Instance Port on a bridge per IEEE 802.1ah PBB.";
+ }
+ identity aluELP {
+ base iana-interface-type;
+ description
+ "Alcatel-Lucent Ethernet Link Protection.";
+ }
+ identity gpon {
+ base iana-interface-type;
+ description
+ "Gigabit-capable passive optical networks (G-PON) as per
+ ITU-T G.948.";
+ }
+ identity vdsl2 {
+ base iana-interface-type;
+ description
+ "Very high speed digital subscriber line Version 2
+ (as per ITU-T Recommendation G.993.2).";
+ reference
+ "RFC 5650 - Definitions of Managed Objects for Very High
+ Speed Digital Subscriber Line 2 (VDSL2)";
+ }
+ identity capwapDot11Profile {
+ base iana-interface-type;
+ description
+ "WLAN Profile Interface.";
+ reference
+ "RFC 5834 - Control and Provisioning of Wireless Access
+ Points (CAPWAP) Protocol Binding MIB for
+ IEEE 802.11";
+ }
+ identity capwapDot11Bss {
+ base iana-interface-type;
+ description
+ "WLAN BSS Interface.";
+ reference
+ "RFC 5834 - Control and Provisioning of Wireless Access
+ Points (CAPWAP) Protocol Binding MIB for
+ IEEE 802.11";
+ }
+ identity capwapWtpVirtualRadio {
+ base iana-interface-type;
+ description
+ "WTP Virtual Radio Interface.";
+ reference
+ "RFC 5833 - Control and Provisioning of Wireless Access
+ Points (CAPWAP) Protocol Base MIB";
+ }
+ identity bits {
+ base iana-interface-type;
+ description
+ "bitsport.";
+ }
+ identity docsCableUpstreamRfPort {
+ base iana-interface-type;
+ description
+ "DOCSIS CATV Upstream RF Port.";
+ }
+ identity cableDownstreamRfPort {
+ base iana-interface-type;
+ description
+ "CATV downstream RF Port.";
+ }
+ identity vmwareVirtualNic {
+ base iana-interface-type;
+ description
+ "VMware Virtual Network Interface.";
+ }
+ identity ieee802154 {
+ base iana-interface-type;
+ description
+ "IEEE 802.15.4 WPAN interface.";
+ reference
+ "IEEE 802.15.4-2006";
+ }
+ identity otnOdu {
+ base iana-interface-type;
+ description
+ "OTN Optical Data Unit.";
+ }
+ identity otnOtu {
+ base iana-interface-type;
+ description
+ "OTN Optical channel Transport Unit.";
+ }
+ identity ifVfiType {
+ base iana-interface-type;
+ description
+ "VPLS Forwarding Instance Interface Type.";
+ }
+ identity g9981 {
+ base iana-interface-type;
+ description
+ "G.998.1 bonded interface.";
+ }
+ identity g9982 {
+ base iana-interface-type;
+ description
+ "G.998.2 bonded interface.";
+ }
+ identity g9983 {
+ base iana-interface-type;
+ description
+ "G.998.3 bonded interface.";
+ }
+
+ identity aluEpon {
+ base iana-interface-type;
+ description
+ "Ethernet Passive Optical Networks (E-PON).";
+ }
+ identity aluEponOnu {
+ base iana-interface-type;
+ description
+ "EPON Optical Network Unit.";
+ }
+ identity aluEponPhysicalUni {
+ base iana-interface-type;
+ description
+ "EPON physical User to Network interface.";
+ }
+ identity aluEponLogicalLink {
+ base iana-interface-type;
+ description
+ "The emulation of a point-to-point link over the EPON
+ layer.";
+ }
+ identity aluGponOnu {
+ base iana-interface-type;
+ description
+ "GPON Optical Network Unit.";
+ reference
+ "ITU-T G.984.2";
+ }
+ identity aluGponPhysicalUni {
+ base iana-interface-type;
+ description
+ "GPON physical User to Network interface.";
+ reference
+ "ITU-T G.984.2";
+ }
+ identity vmwareNicTeam {
+ base iana-interface-type;
+ description
+ "VMware NIC Team.";
+ }
+ identity docsOfdmDownstream {
+ base iana-interface-type;
+ description
+ "CATV Downstream OFDM interface.";
+ reference
+ "Cable Modem Operations Support System Interface
+ Specification";
+ }
+ identity docsOfdmaUpstream {
+ base iana-interface-type;
+ description
+ "CATV Upstream OFDMA interface.";
+ reference
+ "Cable Modem Operations Support System Interface
+ Specification";
+ }
+ identity gfast {
+ base iana-interface-type;
+ description
+ "G.fast port.";
+ reference
+ "ITU-T G.9701";
+ }
+ identity sdci {
+ base iana-interface-type;
+ description
+ "SDCI (IO-Link).";
+ reference
+ "IEC 61131-9 Edition 1.0 2013-09";
+ }
+ identity xboxWireless {
+ base iana-interface-type;
+ description
+ "Xbox wireless.";
+ }
+ identity fastdsl {
+ base iana-interface-type;
+ description
+ "FastDSL.";
+ reference
+ "BBF TR-355";
+ }
+ identity docsCableScte55d1FwdOob {
+ base iana-interface-type;
+ description
+ "Cable SCTE 55-1 OOB Forward Channel.";
+ reference
+ "ANSI/SCTE 55-1 2009";
+ }
+ identity docsCableScte55d1RetOob {
+ base iana-interface-type;
+ description
+ "Cable SCTE 55-1 OOB Return Channel.";
+ reference
+ "ANSI/SCTE 55-1 2009";
+ }
+ identity docsCableScte55d2DsOob {
+ base iana-interface-type;
+ description
+ "Cable SCTE 55-2 OOB Downstream Channel.";
+ reference
+ "ANSI/SCTE 55-2 2008";
+ }
+ identity docsCableScte55d2UsOob {
+ base iana-interface-type;
+ description
+ "Cable SCTE 55-2 OOB Upstream Channel.";
+ reference
+ "ANSI/SCTE 55-2 2008";
+ }
+ identity docsCableNdf {
+ base iana-interface-type;
+ description
+ "Cable Narrowband Digital Forward.";
+ }
+ identity docsCableNdr {
+ base iana-interface-type;
+ description
+ "Cable Narrowband Digital Return.";
+ }
+ identity ptm {
+ base iana-interface-type;
+ description
+ "Packet Transfer Mode.";
+ reference
+ "IEEE G.993.1, Annex H; IEEE G.993.2; IEEE G.9701";
+ }
+ identity ghn {
+ base iana-interface-type;
+ description
+ "G.hn port.";
+ reference
+ "IEEE G.9961";
+ }
+ identity otnOtsi {
+ base iana-interface-type;
+ description
+ "Optical Tributary Signal.";
+ reference
+ "ITU-T G.959.1";
+ }
+ identity otnOtuc {
+ base iana-interface-type;
+ description
+ "OTN OTUCn.";
+ reference
+ "ITU-T G.709/Y.1331";
+ }
+ identity otnOduc {
+ base iana-interface-type;
+ description
+ "OTN ODUC.";
+ reference
+ "ITU-T G.709";
+ }
+ identity otnOtsig {
+ base iana-interface-type;
+ description
+ "OTN OTUC Signal.";
+ reference
+ "ITU-T G.709";
+ }
+ identity microwaveCarrierTermination {
+ base iana-interface-type;
+ description
+ "air interface of a single microwave carrier.";
+ reference
+ "RFC 8561 - A YANG Data Model for Microwave Radio Link";
+ }
+ identity microwaveRadioLinkTerminal {
+ base iana-interface-type;
+ description
+ "radio link interface for one or several aggregated microwave carriers.";
+ reference
+ "RFC 8561 - A YANG Data Model for Microwave Radio Link";
+ }
+ identity ieee8021axDrni {
+ base iana-interface-type;
+ description
+ "IEEE 802.1AX Distributed Resilient Network Interface.";
+ reference
+ "IEEE 802.1AX-Rev-d2-0";
+ }
+ identity ax25 {
+ base iana-interface-type;
+ description
+ "AX.25 network interfaces.";
+ reference
+ "AX.25 Link Access Protocol for Amateur Packet Radio version 2.2";
+ }
+ identity ieee19061nanocom {
+ base iana-interface-type;
+ description
+ "Nanoscale and Molecular Communication.";
+ reference
+ "IEEE 1906.1-2015";
+ }
+ identity cpri {
+ base iana-interface-type;
+ description
+ "Common Public Radio Interface.";
+ reference
+ "CPRI v7.0";
+ }
+ identity omni {
+ base iana-interface-type;
+ description
+ "Overlay Multilink Network Interface (OMNI).";
+ reference
+ "draft-templin-6man-omni-00";
+ }
+ identity roe {
+ base iana-interface-type;
+ description
+ "Radio over Ethernet Interface.";
+ reference
+ "1914.3-2018 - IEEE Standard for Radio over Ethernet Encapsulations and Mappings";
+ }
+ identity p2pOverLan {
+ base iana-interface-type;
+ description
+ "Point to Point over LAN interface.";
+ reference
+ "RFC 5309 - Point-to-Point Operation over LAN in Link State Routing Protocols";
+ }
+}
diff --git a/build/yang-files/notification/bbf-if-type.yang b/build/yang-files/notification/bbf-if-type.yang
new file mode 100644
index 0000000..148b219
--- /dev/null
+++ b/build/yang-files/notification/bbf-if-type.yang
@@ -0,0 +1,169 @@
+module bbf-if-type {
+ yang-version 1.1;
+ namespace "urn:bbf:yang:bbf-if-type";
+ prefix bbfift;
+
+ import iana-if-type {
+ prefix ianaift;
+ }
+ import ietf-interfaces {
+ prefix if;
+ }
+
+ organization
+ "Broadband Forum <https://www.broadband-forum.org>
+ Common YANG Work Area";
+ contact
+ "Comments or questions about this Broadband Forum YANG module
+ should be directed to <mailto:help@broadband-forum.org>.
+
+ Editor: Nick Hancock, ADTRAN
+
+ Editor: Ludwig Pauwels, Nokia
+
+ PS Leader: Joey Boyd, ADTRAN
+
+ PS Leader: Sowrirajan Padmanabhan, Nokia
+
+ WA Director: Joey Boyd, ADTRAN
+
+ WA Director: Sven Ooghe, Nokia";
+ description
+ "This module contains a collection of YANG definitions for
+ supporting the Broadband Forum requirements on reusable data
+ types as applicable to access network equipment. As such, this
+ module is specific to access network equipment (e.g.,
+ BBF-specified Access Nodes and FTTdp DPUs).
+
+ Specifically, this module defines interface types that are needed
+ for BBF applications but are not defined in iana-if-type.
+
+ Copyright (c) 2017-2020, Broadband Forum
+
+ Redistribution and use in source and binary forms, with or
+ without modification, are permitted provided that the following
+ conditions are met:
+
+ 1. Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+
+ 2. Redistributions in binary form must reproduce the above
+ copyright notice, this list of conditions and the following
+ disclaimer in the documentation and/or other materials
+ provided with the distribution.
+
+ 3. Neither the name of the copyright holder nor the names of its
+ contributors may be used to endorse or promote products
+ derived from this software without specific prior written
+ permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
+ CONTRIBUTORS \"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES,
+ INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+ MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
+ CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+ NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+ CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
+ STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+ ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+ The above license is used as a license under copyright only.
+ Please reference the Forum IPR Policy for patent licensing terms
+ <https://www.broadband-forum.org/ipr-policy>.
+
+ Any moral rights which are necessary to exercise under the above
+ license grant are also deemed granted under this license.
+
+ This version of this YANG module is part of TR-383a3; see
+ the TR itself for full legal notices.";
+
+ revision 2020-10-13 {
+ description
+ "Amendment 3.
+ * Approval Date: 2020-10-13.
+ * Publication Date: 2020-10-13.";
+ reference
+ "TR-383a3: Common YANG Modules
+ <https://www.broadband-forum.org/technical/download/
+ TR-383_Amendment-3.pdf>";
+ }
+ revision 2018-12-03 {
+ description
+ "Amendment 2.
+ * Approval Date: 2018-12-03.
+ * Publication Date: 2018-12-03.";
+ reference
+ "TR-383a2: Common YANG Modules
+ <https://www.broadband-forum.org/technical/download/
+ TR-383_Amendment-2.pdf>";
+ }
+ revision 2018-07-13 {
+ description
+ "Amendment 1.
+ * Approval Date: 2018-06-04.
+ * Publication Date: see revision date above.";
+ reference
+ "TR-383: Common YANG Modules
+ <https://www.broadband-forum.org/technical/download/
+ TR-383_Amendment-1.pdf>";
+ }
+ revision 2017-05-08 {
+ description
+ "Initial revision.
+ * Approval Date: see revision date above.
+ * Publication Date: 2017-06-02.";
+ reference
+ "TR-383: Common YANG Modules
+ <https://www.broadband-forum.org/technical/download/
+ TR-383.pdf>";
+ }
+
+ identity bbf-interface-type {
+ base if:interface-type;
+ description
+ "This identity is used as a base for all interface types
+ defined by the BBF that are not in the 'ifType definitions'
+ registry maintained by IANA.";
+ }
+
+ identity sub-interface {
+ base bbf-interface-type;
+ description
+ "Base type for generic sub-interfaces. ";
+ }
+
+ identity vlan-sub-interface {
+ base ianaift:l2vlan;
+ base sub-interface;
+ description
+ "A sub-interface which carries traffic that is parsed for VLAN
+ tags. I.e. either the frames carries VLAN tags, or the first
+ Ethertype differs from one of the VLAN TPIDs defined by IEEE
+ and then the frame is considered as untagged. ";
+ }
+
+ identity l2-termination {
+ base bbf-interface-type;
+ description
+ "An interface which terminates layer 2 traffic without the
+ need to be associated with any Ethernet-like interface.";
+ }
+
+ identity ethernet-like {
+ base bbf-interface-type;
+ description
+ "An abstract identity defining a class of interfaces which
+ represents a logical interface transporting Ethernet frames,
+ i.e. frames with a destination and source MAC address, an
+ Ethernet type or length field, and a payload. This
+ 'interface type' is intended only to be used to define
+ constraints against a class of interfaces each of which have
+ their 'type' derived from this identity (as well as potentially
+ others). At no time should this identity be used as the 'type'
+ for an interface.";
+ }
+}
diff --git a/build/yang-files/notification/bbf-xpon-if-type.yang b/build/yang-files/notification/bbf-xpon-if-type.yang
new file mode 100644
index 0000000..2b8d0c9
--- /dev/null
+++ b/build/yang-files/notification/bbf-xpon-if-type.yang
@@ -0,0 +1,196 @@
+module bbf-xpon-if-type {
+ yang-version 1.1;
+ namespace "urn:bbf:yang:bbf-xpon-if-type";
+ prefix bbf-xponift;
+
+ import bbf-if-type {
+ prefix bbfift;
+ }
+
+ organization
+ "Broadband Forum <https://www.broadband-forum.org>
+ Fiber Access Networks Work Area";
+ contact
+ "Comments or questions about this Broadband Forum YANG module
+ should be directed to <mailto:help@broadband-forum.org>.
+
+ Editor: Joey Boyd, ADTRAN
+
+ Editor: Samuel Chen, Broadcom
+
+ Editor: Robert Peschi, Nokia
+
+ WA Director: Marta Seda, Calix
+
+ WA Director: Lin Wei, Huawei";
+ description
+ "This module contains a collection of YANG definitions which
+ defines xPON interface types that are needed for BBF applications
+ but are not defined in iana-if-type.
+
+ Copyright (c) 2018, Broadband Forum
+
+ Redistribution and use in source and binary forms, with or
+ without modification, are permitted provided that the following
+ conditions are met:
+
+ 1. Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+
+ 2. Redistributions in binary form must reproduce the above
+ copyright notice, this list of conditions and the following
+ disclaimer in the documentation and/or other materials
+ provided with the distribution.
+
+ 3. Neither the name of the copyright holder nor the names of its
+ contributors may be used to endorse or promote products
+ derived from this software without specific prior written
+ permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
+ CONTRIBUTORS \"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES,
+ INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+ MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
+ CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+ NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+ CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
+ STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+ ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+ The above license is used as a license under copyright only.
+ Please reference the Forum IPR Policy for patent licensing terms
+ <https://www.broadband-forum.org/ipr-policy>.
+
+ Any moral rights which are necessary to exercise under the above
+ license grant are also deemed granted under this license.
+
+ This version of this YANG module is part of TR-385; see
+ the TR itself for full legal notices.";
+
+ revision 2019-02-25 {
+ description
+ "Initial revision.
+ * Approval Date: 2019-02-25.
+ * Publication Date: 2019-02-25.";
+ reference
+ "TR-385: ITU-T PON YANG Modules
+ <https://www.broadband-forum.org/technical/download/
+ TR-385.pdf>";
+ }
+
+ identity bbf-xpon-interface-type {
+ base bbfift:bbf-interface-type;
+ description
+ "This identity is used as a base for all xPON interface types
+ defined by the BBF that are not in the 'ifType definitions'
+ registry maintained by IANA.";
+ }
+
+ identity channel-group {
+ base bbf-xpon-interface-type;
+ description
+ "A set of channel-pairs carried over a common fiber.";
+ }
+
+ identity channel-partition {
+ base bbf-xpon-interface-type;
+ description
+ "Any of the operator-specified non-overlapping subsets of TWDM
+ or PtP WDM channels in an NG-PON2 system.";
+ }
+
+ identity channel-pair {
+ base bbf-xpon-interface-type;
+ description
+ "A set of one downstream wavelength channel and one upstream
+ wavelength channel that provides connectivity between an OLT
+ and one or more ONUs.";
+ }
+
+ identity channel-termination {
+ base bbf-xpon-interface-type;
+ description
+ "A logical function that resides at the OLT network element and
+ terminates a single PtP WDM channel in a PtP WDM system or a
+ single TWDM channel in a TWDM system.";
+ }
+
+ identity ani {
+ base bbf-xpon-interface-type;
+ description
+ "The Access Network Interface located on the ONU.";
+ }
+
+ identity v-ani {
+ base bbf-xpon-interface-type;
+ description
+ "A virtual representation of the 'ani' on the OLT.";
+ }
+
+ identity onu-v-enet {
+ base bbf-xpon-interface-type;
+ base bbfift:ethernet-like;
+ description
+ "Base type for onu-v-enet interfaces. The ONU-vENET
+ interfaces are virtual interfaces which carry ethernet
+ frames, which belong to the ONU and which are facing
+ the xPON side of the ONU i.e. facing the OLT.
+
+ ONU-vENET are virtual interfaces in the sense that they
+ do not directly refer to a physical port of an ONU.
+ Instead, ONU-vENET interfaces have the ANI interface of
+ the ONU as underlying interface. ONU-vENET are NOT
+ facing the user side of the ONU.
+
+ An ONU-vENET can be used as the xPON side Ehernet
+ aggregation interface of an ONU which performs Ethernet
+ traffic aggregation from several user-facing interfaces.";
+ }
+
+ identity olt-v-enet {
+ base bbf-xpon-interface-type;
+ base bbfift:ethernet-like;
+ description
+ "Base type for olt-v-enet interfaces. The OLT-vENET
+ interfaces are virtual interfaces which carry ethernet
+ frames, which belong to the OLT and which are facing
+ the xPON side of the OLT i.e. facing the ONU.
+
+ OLT-vENET are virtual interfaces in the sense that they
+ do not directly refer to a physical port of an OLT.
+ Instead, OLT-vENET interfaces have the v-ANI interface
+ corresponding to a specific ONU as underlying interface.
+ In the general case, an OLT-vENET 1-1 corresponds to a
+ counter-part ONU-vENET interface on the ONU.
+
+ In the specific case of a TR-156 deployment scheme,
+ there is typically no need for the ONU to instanciate
+ ONU-vENET interfaces for subscriber traffic: in that
+ case OLT-vENET interfaces can directly 1-1 correspond
+ to individual user facing interface of the ONU, being
+ physical (per TR-156) or virtual (per TR-167).";
+ }
+
+ identity onu-v-vrefpoint {
+ base bbf-xpon-interface-type;
+ base bbfift:ethernet-like;
+ description
+ "Base type for ONU-vUNI interfaces. The ONU-vUNI
+ interface is a virtual interface which carry ethernet
+ frames, which belong to the ONU and which is facing
+ the user.
+
+ It is intended for use as ONU 'Virtual V reference point'
+ defined in TR-167 (ref TR-167, Section 4 and 4.1).
+ ONU-vUNI are virtual interfaces in the sense that they
+ do not refer to a physical port of an ONU.
+
+ ONU-vUNI are virtual equivalents of the physical
+ interfaces at the ONU U reference point defined in
+ TR-156 (ref. TR-156, Section 4).";
+ }
+}
diff --git a/build/yang-files/notification/bbf-xpon-onu-states.yang b/build/yang-files/notification/bbf-xpon-onu-states.yang
new file mode 100644
index 0000000..df93fc2
--- /dev/null
+++ b/build/yang-files/notification/bbf-xpon-onu-states.yang
@@ -0,0 +1,258 @@
+module bbf-xpon-onu-states {
+ yang-version 1.1;
+ namespace "urn:bbf:yang:bbf-xpon-onu-states";
+ prefix bbf-xpon-onu-states;
+
+ import ietf-interfaces {
+ prefix if;
+ }
+ import ietf-yang-types {
+ prefix yang;
+ }
+ import bbf-xpon-types {
+ prefix bbf-xpon-types;
+ }
+ import bbf-xpon-onu-types {
+ prefix bbf-xpon-onu-types;
+ }
+ import bbf-xpon {
+ prefix bbf-xpon;
+ }
+
+ organization
+ "Broadband Forum <https://www.broadband-forum.org>
+ Fiber Access Networks Work Area";
+ contact
+ "Comments or questions about this Broadband Forum YANG module
+ should be directed to <mailto:help@broadband-forum.org>.
+
+ Editor: Joey Boyd, ADTRAN
+
+ Editor: Samuel Chen, Broadcom
+
+ Editor: Robert Peschi, Nokia
+
+ WA Director: Marta Seda, Calix
+
+ WA Director: Lin Wei, Huawei";
+ description
+ "This module contains a collection of YANG definitions about
+ ONUs for which a virtual ANI may be or may be not configured.
+
+ Copyright (c) 2018, Broadband Forum
+
+ Redistribution and use in source and binary forms, with or
+ without modification, are permitted provided that the following
+ conditions are met:
+
+ 1. Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+
+ 2. Redistributions in binary form must reproduce the above
+ copyright notice, this list of conditions and the following
+ disclaimer in the documentation and/or other materials
+ provided with the distribution.
+
+ 3. Neither the name of the copyright holder nor the names of its
+ contributors may be used to endorse or promote products
+ derived from this software without specific prior written
+ permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
+ CONTRIBUTORS \"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES,
+ INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+ MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
+ CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+ NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+ CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
+ STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+ ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+ The above license is used as a license under copyright only.
+ Please reference the Forum IPR Policy for patent licensing terms
+ <https://www.broadband-forum.org/ipr-policy>.
+
+ Any moral rights which are necessary to exercise under the above
+ license grant are also deemed granted under this license.
+
+ This version of this YANG module is part of TR-385; see
+ the TR itself for full legal notices.";
+
+ revision 2019-02-25 {
+ description
+ "Initial revision.
+ * Approval Date: 2019-02-25.
+ * Publication Date: 2019-02-25.";
+ reference
+ "TR-385: ITU-T PON YANG Modules
+ <https://www.broadband-forum.org/technical/download/
+ TR-385.pdf>";
+ }
+
+
+ grouping onu-state-data {
+ description
+ "Information about an ONU.";
+ leaf onu-state {
+ type identityref {
+ base bbf-xpon-onu-types:onu-state-base;
+ }
+ mandatory true;
+ description
+ "This leaf presents the state of the ONU. The most
+ specific applicable identity should be provided as
+ value.";
+ }
+ leaf onu-id {
+ type bbf-xpon-types:onu-id;
+ description
+ "This is the ITU-T TC layer ONU-ID identifier which the
+ ONU is currently using on the channel group.";
+ reference
+ "ITU-T G.984.3 clause 5.5.2
+ ITU-T G.987.3 clause 6.4.2
+ ITU-T G.9807.1 clause C.6.1.5.6
+ ITU-T G.989.3 clause 6.1.5.6";
+ }
+ leaf detected-registration-id {
+ type string {
+ length "0..36";
+ }
+ description
+ "The registration ID value which the OLT has received from
+ the ONU. This YANG leaf is not present if the ONU has not
+ provided any registration ID to the OLT. Registration ID
+ may be useful in identifying a particular ONU installed
+ at a particular location. For ITU-T G.984.3, the leaf
+ can only be up to 10 octets long (refer to 'password'),
+ for ITU-T G.987.3, ITU-T G.9807.3 and ITU-T G.989.3
+ the leaf can be up to 36 bytes long.";
+ reference
+ "ITU-T G.984.3 clause 9.2.4.2
+ ITU-T G.987.3 clause 11.3.4.2
+ ITU-T G.9807.3 clause C.11.3.4.2
+ ITU-T G.989.3 clause 11.3.4.2";
+ }
+ leaf v-ani-ref {
+ type if:interface-ref;
+ description
+ "The virtual ANI corresponding to this ONU when configured
+ on this OLT. This YANG leaf is not present if no virtual
+ ANI is corresponding to the ONU in the OLT.";
+ }
+ }
+
+ grouping onus-present-on-local-channel-termination {
+ description
+ "State data of all ONUs present on a given channel termination
+ local to this OLT.";
+ container onus-present-on-local-channel-termination {
+ description
+ "State data of all ONUs present on a given channel
+ termination local to this OLT (Refer to 'inside-olt').
+ Even the ONUs for which no corresponding virtual ANI is
+ configured in the OLT are accounted.
+ An ONU is considered present on a channel termination
+ when it is using the optical signal of this channel
+ termination i.e. as early as the channel termination
+ receives from the ONU a PLOAM Serial_Number_ONU message
+ or as early as it receives a PLOAM Tuning_Resp(Complete_u)
+ message and as long as the channel termination is not in
+ LOBi state for this ONU (i.e in practice the ONU keeps
+ responding to downstream OLT bandwidth map messages).";
+ list onu {
+ key "detected-serial-number";
+ description
+ "The list of all ONUs present on the channel termination.";
+ leaf detected-serial-number {
+ type bbf-xpon-types:onu-serial-number;
+ mandatory true;
+ description
+ "The serial number of the ONU.";
+ reference
+ "ITU-T G.984.3, clause 9.2.4.1
+ ITU-T G.987.3, clause 11.3.3.2
+ ITU-T G.9807.1, clauses C11.2.6.1, C11.2.6.2 and C11.3.4.1
+ ITU-T G.989.3, clauses 11.2.6.1, 11.2.6.2 and 11.3.4.1.";
+ }
+ uses onu-state-data;
+ leaf onu-detected-datetime {
+ type yang:date-and-time;
+ mandatory true;
+ description
+ "The OLT system date and time when the ONU was detected
+ present on the channel termination.";
+ }
+ leaf onu-state-last-change {
+ type yang:date-and-time;
+ mandatory true;
+ description
+ "The OLT system date and time when the 'onu-state'
+ YANG leaf got its current value.";
+ }
+ }
+ }
+ }
+
+ augment '/if:interfaces-state/if:interface'
+ + '/bbf-xpon:channel-termination' {
+ when "derived-from-or-self"
+ + "(/if:interfaces/if:interface[if:name=current()]"
+ + "/bbf-xpon:channel-termination/bbf-xpon:location, "
+ + "'bbf-xpon-types:inside-olt')";
+ description
+ "State data of all ONUs present on a given channel
+ termination local to this OLT (Refer to 'inside-olt').
+ Even the ONUs for which no corresponding virtual ANI is
+ configured in the OLT are accounted.
+ An ONU is considered present on a channel termination
+ when it is using the optical signal of this channel
+ termination i.e. as early as the channel termination
+ receives from the ONU a PLOAM Serial_Number_ONU message
+ or as early as it receives a PLOAM Tuning_Resp(Complete_u)
+ message and as long as the channel termination is not in
+ LOBi state for this ONU (i.e in practice the ONU keeps
+ responding to downstream OLT bandwidth map messages).";
+ uses onus-present-on-local-channel-termination;
+ }
+
+ notification onu-state-change {
+ description
+ "A notification traceable to a channel termination which
+ signifies that an ONU has transitioned into the indicated
+ state. This notification considers not only ONUs for which a
+ corresponding virtual ANI is configured in the OLT but also
+ ONUs for which no corresponding virtual ANI is configured
+ in the OLT.";
+ leaf detected-serial-number {
+ type bbf-xpon-types:onu-serial-number;
+ mandatory true;
+ description
+ "The serial number of the ONU entering the new state.";
+ reference
+ "ITU-T G.984.3, clause 9.2.4.1
+ ITU-T G.987.3, clause 11.3.3.2
+ ITU-T G.9807.1, clauses C11.2.6.1, C11.2.6.2 and C11.3.4.1
+ ITU-T G.989.3, clauses 11.2.6.1, 11.2.6.2 and 11.3.4.1.";
+ }
+ leaf channel-termination-ref {
+ type if:interface-ref;
+ mandatory true;
+ description
+ "The channel termination reporting from its point of view the
+ new state of the ONU.";
+ }
+ leaf onu-state-last-change {
+ type yang:date-and-time;
+ mandatory true;
+ description
+ "The OLT system date and time when the ONU has transitioned
+ into the indicated state.";
+ }
+ uses onu-state-data;
+ }
+}
\ No newline at end of file
diff --git a/build/yang-files/notification/bbf-xpon-onu-types.yang b/build/yang-files/notification/bbf-xpon-onu-types.yang
new file mode 100644
index 0000000..00a042a
--- /dev/null
+++ b/build/yang-files/notification/bbf-xpon-onu-types.yang
@@ -0,0 +1,202 @@
+module bbf-xpon-onu-types {
+ yang-version 1.1;
+ namespace "urn:bbf:yang:bbf-xpon-more-types";
+ prefix bbf-xpon-onu-types;
+
+ organization
+ "Broadband Forum <https://www.broadband-forum.org>
+ Fiber Access Networks Work Area";
+ contact
+ "Comments or questions about this Broadband Forum YANG module
+ should be directed to <mailto:help@broadband-forum.org>.
+
+ Editor: Joey Boyd, ADTRAN
+
+ Editor: Samuel Chen, Broadcom
+
+ Editor: Robert Peschi, Nokia
+
+ WA Director: Marta Seda, Calix
+
+ WA Director: Lin Wei, Huawei";
+ description
+ "This module contains a collection of YANG definitions which
+ defines common types used in the xPON YANG models.
+
+ Copyright (c) 2018, Broadband Forum
+
+ Redistribution and use in source and binary forms, with or
+ without modification, are permitted provided that the following
+ conditions are met:
+
+ 1. Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+
+ 2. Redistributions in binary form must reproduce the above
+ copyright notice, this list of conditions and the following
+ disclaimer in the documentation and/or other materials
+ provided with the distribution.
+
+ 3. Neither the name of the copyright holder nor the names of its
+ contributors may be used to endorse or promote products
+ derived from this software without specific prior written
+ permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
+ CONTRIBUTORS \"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES,
+ INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+ MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
+ CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+ NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+ CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
+ STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+ ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+ The above license is used as a license under copyright only.
+ Please reference the Forum IPR Policy for patent licensing terms
+ <https://www.broadband-forum.org/ipr-policy>.
+
+ Any moral rights which are necessary to exercise under the above
+ license grant are also deemed granted under this license.
+
+ This version of this YANG module is part of TR-385; see
+ the TR itself for full legal notices.";
+
+ revision 2019-02-25 {
+ description
+ "Initial revision.
+ * Approval Date: 2019-02-25.
+ * Publication Date: 2019-02-25.";
+ reference
+ "TR-385: ITU-T PON YANG Modules
+ <https://www.broadband-forum.org/technical/download/
+ TR-385.pdf>";
+ }
+
+ identity onu-state-base {
+ description
+ "This identity is used to qualify the state of an ONU.";
+ }
+
+ identity onu-present {
+ base onu-state-base;
+ description
+ "This identity is used to denote that an ONU is currently
+ using the optical signal of one of the channel terminations
+ local to this OLT (Refer to 'inside-olt'). An OLT considers
+ that an ONU is using the optical signal of one of its
+ local channel terminations as early as it receives from
+ the ONU a PLOAM Serial_Number_ONU message or as early as
+ it receives a PLOAM Tuning_Resp(Complete_u) message and as
+ long as the channel termination is not in LOBi state for
+ this ONU (i.e in practice the ONU keeps responding to
+ downstream OLT bandwidth map messages).";
+ }
+
+ identity onu-present-and-on-intended-channel-termination {
+ base onu-present;
+ description
+ "This identity is used to denote that an ONU is currently
+ using the optical signal of a channel termination which
+ is local to this OLT (Refer to 'inside-olt') and which
+ is intended for the ONU.
+ In case of G-PON, XG-PON and XGS-PON, this means that the
+ ONU is using a channel-termination belonging to the
+ channel partition where the virtual ANI is configured.
+ In case of NG-PON2 this means that the ONU is using
+ the desired channel-termination which is based on the
+ configured preferred and/or protection channel pair
+ or resulted from executing an 'in-service-onu-tune-request'
+ YANG action.";
+ }
+
+ identity onu-present-and-in-discovery {
+ base onu-present;
+ description
+ "This identity is used to denote that an NG-PON2 ONU, has
+ just been detected present on a channel termination which
+ is local to this OLT (Refer to 'inside-olt') but from which
+ the ONU potentially still needs to tune away while the OLT
+ is assessing the intended channel termination of the ONU.";
+ }
+
+ identity onu-present-and-discovery-tune-fail {
+ base onu-present;
+ description
+ "This identity is used to denote that an NG-PON2 ONU has just
+ been detected present on a channel termination which is local
+ to this OLT (Refer to 'inside-olt') but is not its intended
+ one and from which the ONU could not be tuned away towards
+ an identified intended channel termination.";
+ }
+
+ identity onu-present-and-unexpected {
+ base onu-present;
+ description
+ "This identity is used to denote that a G-PON, XG-PON or
+ XGS-PON ONU is present on a channel termination which is
+ local to this OLT (Refer to 'inside-olt') but for which
+ the OLT has no configured virtual ANI. This identity is
+ also used to denote that an NG-PON2 ONU has just been
+ detected present on a channel termination which is local
+ to this OLT (Refer to 'inside-olt') but is not its intended
+ one and for which no intended channel termination could be
+ identified (for instance because the NGPON2 ONU is not
+ configured on any OLT on the channel group).";
+ }
+
+ identity onu-present-and-emergency-stopped {
+ base onu-present;
+ description
+ "This identity is used to denote that a G-PON, XG-PON,
+ XGS-PON or NG-PON2 ONU is present on a channel termination
+ which is local to this OLT (Refer to 'inside-olt') and to
+ which the OLT has sent a 'Disable_Serial_Number' DS PLOAM
+ message, bringing the ONU in ITU-T 'Emergency Stop state'.";
+ reference
+ "ITU-T G.984.3 Section 9.2.1
+ ITU-T G.987.3 Table 11.2
+ ITU-T G.9807.3 Table C.11.2
+ ITU-T G.989.3 Table 11.2";
+ }
+
+ identity onu-not-present {
+ base onu-state-base;
+ description
+ "This identity is used to denote that the ONU is not present
+ on the OLT, i.e. that the ONU is not using the optical
+ signal of any channel termination local to this OLT; this
+ could mean that the ONU is using the optical signal of a
+ channel termination belonging to another OLT, or that the
+ ONU is not connected at all to the channel group.";
+ }
+
+ identity onu-not-present-with-v-ani {
+ base onu-not-present;
+ description
+ "This identity is used to denote that an ONU, for which a
+ virtual ANI is configured on the OLT, is not using the
+ optical signal of any channel termination local to this
+ OLT; this could mean that the ONU is using the optical
+ signal of a channel termination belonging to another OLT,
+ or that the ONU is not connected at all to the channel
+ group.";
+ }
+
+ identity onu-not-present-without-v-ani {
+ base onu-not-present;
+ description
+ "This identity is used to denote that an ONU, for which
+ no virtual ANI is configured on the OLT, is not using
+ any longer the optical signal of any channel termination
+ local to this OLT. This could mean that the ONU is
+ disconnected from the channel group; in case of NG-PON2
+ it could also mean that the ONU is tuned away to a
+ channel termination belonging to another OLT.";
+ }
+}
+
diff --git a/build/yang-files/notification/bbf-xpon-types.yang b/build/yang-files/notification/bbf-xpon-types.yang
new file mode 100644
index 0000000..40126f9
--- /dev/null
+++ b/build/yang-files/notification/bbf-xpon-types.yang
@@ -0,0 +1,430 @@
+module bbf-xpon-types {
+ yang-version 1.1;
+ namespace "urn:bbf:yang:bbf-xpon-types";
+ prefix bbf-xpon-types;
+
+ import ietf-inet-types {
+ prefix inet;
+ }
+
+ organization
+ "Broadband Forum <https://www.broadband-forum.org>
+ Fiber Access Networks Work Area";
+ contact
+ "Comments or questions about this Broadband Forum YANG module
+ should be directed to <mailto:help@broadband-forum.org>.
+
+ Editor: Joey Boyd, ADTRAN
+
+ Editor: Samuel Chen, Broadcom
+
+ Editor: Robert Peschi, Nokia
+
+ WA Director: Marta Seda, Calix
+
+ WA Director: Lin Wei, Huawei";
+ description
+ "This module contains a collection of YANG definitions which
+ defines common types used in the xPON YANG models.
+
+ Copyright (c) 2018, Broadband Forum
+
+ Redistribution and use in source and binary forms, with or
+ without modification, are permitted provided that the following
+ conditions are met:
+
+ 1. Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+
+ 2. Redistributions in binary form must reproduce the above
+ copyright notice, this list of conditions and the following
+ disclaimer in the documentation and/or other materials
+ provided with the distribution.
+
+ 3. Neither the name of the copyright holder nor the names of its
+ contributors may be used to endorse or promote products
+ derived from this software without specific prior written
+ permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
+ CONTRIBUTORS \"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES,
+ INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+ MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
+ CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+ NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+ CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
+ STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+ ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+ The above license is used as a license under copyright only.
+ Please reference the Forum IPR Policy for patent licensing terms
+ <https://www.broadband-forum.org/ipr-policy>.
+
+ Any moral rights which are necessary to exercise under the above
+ license grant are also deemed granted under this license.
+
+ This version of this YANG module is part of TR-385; see
+ the TR itself for full legal notices.";
+
+ revision 2019-02-25 {
+ description
+ "Initial revision.
+ * Approval Date: 2019-02-25.
+ * Publication Date: 2019-02-25.";
+ reference
+ "TR-385: ITU-T PON YANG Modules
+ <https://www.broadband-forum.org/technical/download/
+ TR-385.pdf>";
+ }
+
+ identity type-b-state-base {
+ description
+ "This identity is used as the base for possible
+ channel-terminations states for type B protection.";
+ }
+
+ identity active {
+ base type-b-state-base;
+ description
+ "This identity is used to denote active state in type B
+ protection.";
+ }
+
+ identity standby {
+ base type-b-state-base;
+ description
+ "This identity is used to denote standby state in type B
+ protection.";
+ }
+
+ identity not-part-of-type-b {
+ base type-b-state-base;
+ description
+ "This identity is used to denote that the object is not part
+ of a type B protection scheme. This is for instance the
+ case when a channel-termination does not (yet) refer
+ to a channel-pair.";
+ }
+
+ identity location-base {
+ description
+ "This identity is used as the possible locations of an
+ object.";
+ }
+
+ identity inside-olt {
+ base location-base;
+ description
+ "This identity is used to denote a location physically inside
+ the OLT chassis.";
+ }
+
+ identity outside-olt {
+ base location-base;
+ description
+ "This identity is used to denote a location physically outside
+ the OLT chassis.";
+ }
+
+ identity channel-pair-type-base {
+ description
+ "This identity is used to qualify the possible types of a
+ channel-pair.";
+ }
+
+ identity ngpon2-twdm {
+ base channel-pair-type-base;
+ description
+ "This identity is used to denote a TWDM NG-PON2 channel-pair,
+ per ITU-T G.989.3.";
+ }
+
+ identity ngpon2-ptp {
+ base channel-pair-type-base;
+ description
+ "This identity is used to denote a PtP NG-PON2 channel-pair, per
+ ITU-T G.989.3.";
+ }
+
+ identity xgs {
+ base channel-pair-type-base;
+ description
+ "This identity is used to denote an XGS-PON channel-pair,
+ per ITU-T G.9807.1.";
+ }
+
+ identity xgpon {
+ base channel-pair-type-base;
+ description
+ "This identity is used to denote an XG-PON channel-pair,
+ per ITU-T G.987.3.";
+ }
+
+ identity gpon {
+ base channel-pair-type-base;
+ description
+ "This identity is used to denote an G-PON channel-pair,
+ per ITU-T G.984.3.";
+ }
+
+ identity channel-pair-line-rate-profile-base {
+ description
+ "This identity is used to define the possible combinations
+ of downstream and upstream line-rates for an NG-PON2
+ channel-pair.";
+ }
+
+ identity unplanned-cp-line-rate {
+ base channel-pair-line-rate-profile-base;
+ description
+ "This identity is used to denote an NG-PON2 channel-pair with
+ yet undefined downstream and upstream line rates.";
+ }
+
+ identity down-10-up-10 {
+ base channel-pair-line-rate-profile-base;
+ description
+ "This identity is used to denote an NG-PON2 channel-pair with
+ downstream 10Gbps and upstream 10Gbps line rates.";
+ }
+
+ identity down-10-up-2.5 {
+ base channel-pair-line-rate-profile-base;
+ description
+ "This identity is used to denote an NG-PON2 channel-pair with
+ downstream 10Gbps and upstream 2.5Gbps line rates.";
+ }
+
+ identity down-2.5-up-2.5 {
+ base channel-pair-line-rate-profile-base;
+ description
+ "This identity is used to denote an NG-PON2 channel-pair with
+ downstream 2.5Gbps and upstream 2.5Gbps line rates.";
+ }
+
+ identity tcp-connection-state-base {
+ description
+ "This identity is used to denote the possible states of
+ a TCP connection.";
+ }
+
+ identity established {
+ base tcp-connection-state-base;
+ description
+ "This identity is used to reflect that the TCP connection is
+ established.";
+ }
+
+ identity not-established {
+ base tcp-connection-state-base;
+ description
+ "This identity is used to reflect that the TCP connection is
+ not established.";
+ }
+
+ identity unknown {
+ base tcp-connection-state-base;
+ description
+ "This identity is used to reflect that the TCP connection state
+ is not known.";
+ }
+
+ identity action-request-status {
+ description
+ "This identity is used to denote the status following the
+ reception of a YANG action.";
+ }
+
+ identity request-being-processed {
+ base action-request-status;
+ description
+ "This identity is used to denote that the OLT has received
+ the action request and is handling it.";
+ }
+
+ identity request-rejected {
+ base action-request-status;
+ description
+ "This identity is used to denote that the OLT has rejected
+ the action request and will not perform anything further
+ about it.";
+ }
+
+ typedef string-hex14 {
+ type string {
+ pattern '[a-fA-F0-9]{14}';
+ }
+ description
+ "A string representing 7 hexadecimal octets expressed in
+ ASCII.";
+ }
+
+ typedef pon-id-display-type {
+ type union {
+ type uint32;
+ type string-hex14;
+ }
+ description
+ "A type meant for the different formats of the PON-ID for the
+ various channel-pair types. The 'unint' is meant for NG-PON2,
+ XGS-PON and XG-PON and the 'string7only' is meant for G-PON.";
+ }
+
+ typedef composite-channel-id-type {
+ type union {
+ type uint8 {
+ range "0..7";
+ }
+ type enumeration {
+ enum "xgs" {
+ description
+ "To be used in case of XGS-PON, rather than 0.";
+ }
+ }
+ }
+ description
+ "A composite type strictly meant for leaves reflecting the
+ already allocated downstream or upstream channel-id on a
+ channel-group.
+ Such leaves are used to prevent conflicts when allocating
+ a channel-pair to a channel-group. For NG-PON2, the applicable
+ values are in [0..7], for XGS-PON a dedicated value 'xgs'
+ is used rather than '0' to prevent ambiguity between this and
+ the valid value '0' for NG-PON2.";
+ }
+
+ typedef composite-downstream-wavelength-type {
+ type union {
+ type uint32 {
+ range "0 | 156000..161000";
+ }
+ type enumeration {
+ enum "xgs" {
+ description
+ "To be used in case of XGS-PON.";
+ }
+ enum "xgpon" {
+ description
+ "To be used in case of XG-PON.";
+ }
+ enum "gpon" {
+ description
+ "To be used in case of G-PON.";
+ }
+ }
+ }
+ description
+ "A composite type strictly meant for leaves reflecting the
+ already allocated downstream or upstream channel-id on a
+ channel-group.
+ Such leaves are used to prevent conflicts when allocating a
+ channel-pair to a channel-group. For NG-PON2, the applicable
+ values are in [0..8], for XGS-PON a dedicated value 'xgs'
+ is applicable rather than value '0': this is not to a priori
+ forbid in yang model the coexistence of XGS-PON with NG-PON2
+ using channel-id=0.";
+ }
+
+ typedef auth-method-type {
+ type enumeration {
+ enum "serial-number" {
+ description
+ "Authentication based on ONU serial number.";
+ reference
+ "ITU-T G.984.3 clause VI.1";
+ }
+ enum "loid" {
+ description
+ "Authentication based on the Logical ONU ID (LOID).";
+ reference
+ "ITU-T G.988 clause 9.1.1";
+ }
+ enum "registration-id" {
+ description
+ "Authentication based on ONU registration ID.";
+ reference
+ "ITU-T G.984.3 clause VI.2";
+ }
+ enum "omci" {
+ description
+ "Authentication by use of the enhanced security control
+ managed entity (ME) over OMCI.";
+ reference
+ "ITU-T G.987.3 Annex C";
+ }
+ enum "dot1x" {
+ description
+ "Authentication according to IEEE 802.1x.";
+ reference
+ "ITU-T G.987.3 Annex D";
+ }
+ }
+ description
+ "Method for authenticating an ONU.";
+ }
+
+ typedef raman-mitigation-type {
+ type enumeration {
+ enum "raman-none" {
+ description
+ "No Raman mitigation is performed.";
+ }
+ enum "raman-8b10b" {
+ description
+ "For Raman mitigation, the 8B10B sublayer is introduced
+ between the downstream NG-PON2 physical interface (PHY)
+ adaptation interface and the optical interface.";
+ reference
+ "ITU-T G.989.2 clause IX.1";
+ }
+ enum "raman-miller" {
+ description
+ "For Raman mitigation, Miller code is used.";
+ reference
+ "ITU-T G.989.2 clause IX.2";
+ }
+ }
+ description
+ "NG-PON2 Raman mitigation coding schemes when using RF video
+ overlay.";
+ reference
+ "ITU-T G.989.2 Appendix IX";
+ }
+
+ typedef ip-address-or-unresolved {
+ type union {
+ type inet:ip-address;
+ type enumeration {
+ enum "unresolved" {
+ description
+ "To be used when the URL cannot be resolved into an
+ IP address.";
+ }
+ }
+ }
+ description
+ "A type meant for a leaf which is either an IP address or
+ reflects that no IP address is available.";
+ }
+
+ typedef onu-id {
+ type uint32 {
+ range "0..1020";
+ }
+ description
+ "A type meant for ONU-IDs.";
+ }
+
+ typedef onu-serial-number {
+ type string {
+ pattern '[a-zA-Z]{4}[0-9a-fA-F]{8}';
+ }
+ description
+ "A type meant for the serial number of an ONU.";
+ }
+
+}
diff --git a/build/yang-files/notification/bbf-xpon.yang b/build/yang-files/notification/bbf-xpon.yang
new file mode 100644
index 0000000..17f54a6
--- /dev/null
+++ b/build/yang-files/notification/bbf-xpon.yang
@@ -0,0 +1,90 @@
+module bbf-xpon {
+ yang-version 1.1;
+ namespace "urn:bbf:yang:bbf-xpon";
+ prefix bbf-xpon;
+
+ include bbf-xpon-base;
+ include bbf-xpon-wavelength-profile-body;
+ include bbf-xpon-multicast-gemport-body;
+ include bbf-xpon-channel-group-body;
+ include bbf-xpon-channel-partition-body;
+ include bbf-xpon-channel-pair-body;
+ include bbf-xpon-channel-termination-body;
+ include bbf-xpon-multicast-distribution-set-body;
+
+ organization
+ "Broadband Forum <https://www.broadband-forum.org>
+ Fiber Access Networks Work Area";
+ contact
+ "Comments or questions about this Broadband Forum YANG module
+ should be directed to <mailto:help@broadband-forum.org>.
+
+ Editor: Joey Boyd, ADTRAN
+
+ Editor: Samuel Chen, Broadcom
+
+ Editor: Robert Peschi, Nokia
+
+ WA Director: Marta Seda, Calix
+
+ WA Director: Lin Wei, Huawei";
+ description
+ "This module contains a collection of YANG definitions for
+ managing various types of xPON interfaces, e.g. NG-PON2,
+ G-PON, XGS-PON and XG-PON.
+
+
+ Copyright (c) 2018, Broadband Forum
+
+ Redistribution and use in source and binary forms, with or
+ without modification, are permitted provided that the following
+ conditions are met:
+
+ 1. Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+
+ 2. Redistributions in binary form must reproduce the above
+ copyright notice, this list of conditions and the following
+ disclaimer in the documentation and/or other materials
+ provided with the distribution.
+
+ 3. Neither the name of the copyright holder nor the names of its
+ contributors may be used to endorse or promote products
+ derived from this software without specific prior written
+ permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
+ CONTRIBUTORS \"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES,
+ INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+ MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
+ CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+ NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+ CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
+ STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+ ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+ The above license is used as a license under copyright only.
+ Please reference the Forum IPR Policy for patent licensing terms
+ <https://www.broadband-forum.org/ipr-policy>.
+
+ Any moral rights which are necessary to exercise under the above
+ license grant are also deemed granted under this license.
+
+ This version of this YANG module is part of TR-385; see
+ the TR itself for full legal notices.";
+
+ revision 2019-02-25 {
+ description
+ "Initial revision.
+ * Approval Date: 2019-02-25.
+ * Publication Date: 2019-02-25.";
+ reference
+ "TR-385: ITU-T PON YANG Modules
+ <https://www.broadband-forum.org/technical/download/
+ TR-385.pdf>";
+ }
+}
diff --git a/build/yang-files/notification/submodules/bbf-xpon-base.yang b/build/yang-files/notification/submodules/bbf-xpon-base.yang
new file mode 100644
index 0000000..f330bbe
--- /dev/null
+++ b/build/yang-files/notification/submodules/bbf-xpon-base.yang
@@ -0,0 +1,400 @@
+submodule bbf-xpon-base {
+ yang-version 1.1;
+ belongs-to bbf-xpon {
+ prefix bbf-xpon;
+ }
+
+ import ietf-interfaces {
+ prefix if;
+ }
+ import ietf-inet-types {
+ prefix inet;
+ }
+ import bbf-xpon-types {
+ prefix bbf-xpon-types;
+ }
+ import bbf-xpon-if-type {
+ prefix bbf-xponift;
+ }
+ import bbf-yang-types {
+ prefix bbf-yang;
+ }
+
+ organization
+ "Broadband Forum <https://www.broadband-forum.org>
+ Fiber Access Networks Work Area";
+ contact
+ "Comments or questions about this Broadband Forum YANG module
+ should be directed to <mailto:help@broadband-forum.org>.
+
+ Editor: Joey Boyd, ADTRAN
+
+ Editor: Samuel Chen, Broadcom
+
+ Editor: Robert Peschi, Nokia
+
+ WA Director: Marta Seda, Calix
+
+ WA Director: Lin Wei, Huawei";
+ description
+ "This submodule contains a collection of YANG definitions and
+ augmentations to ietf-interfaces for managing the xPON
+ infrastructure.
+
+ Copyright (c) 2018, Broadband Forum
+
+ Redistribution and use in source and binary forms, with or
+ without modification, are permitted provided that the following
+ conditions are met:
+
+ 1. Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+
+ 2. Redistributions in binary form must reproduce the above
+ copyright notice, this list of conditions and the following
+ disclaimer in the documentation and/or other materials
+ provided with the distribution.
+
+ 3. Neither the name of the copyright holder nor the names of its
+ contributors may be used to endorse or promote products
+ derived from this software without specific prior written
+ permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
+ CONTRIBUTORS \"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES,
+ INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+ MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
+ CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+ NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+ CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
+ STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+ ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+ The above license is used as a license under copyright only.
+ Please reference the Forum IPR Policy for patent licensing terms
+ <https://www.broadband-forum.org/ipr-policy>.
+
+ Any moral rights which are necessary to exercise under the above
+ license grant are also deemed granted under this license.
+
+ This version of this YANG module is part of TR-385; see
+ the TR itself for full legal notices.";
+
+ revision 2019-02-25 {
+ description
+ "Initial revision.
+ * Approval Date: 2019-02-25.
+ * Publication Date: 2019-02-25.";
+ reference
+ "TR-385: ITU-T PON YANG Modules
+ <https://www.broadband-forum.org/technical/download/
+ TR-385.pdf>";
+ }
+
+ feature ictp-support {
+ description
+ "Indicates that the OLT supports ICTP.";
+ }
+
+ feature configurable-ictp-proxy-tcp-port {
+ if-feature "ictp-support";
+ description
+ "Indicates support for the configuration of the TCP port
+ used by an ICTP proxy.";
+ }
+
+ container xpon {
+ description
+ "Configuration associated with managing xPON in a system.";
+ container ictp {
+ if-feature "ictp-support";
+ description
+ "Configuration data for the support of
+ Inter-Channel-Termination Protocol (ICTP).";
+ reference
+ "BBF TR-352";
+ leaf activated {
+ type boolean;
+ default "false";
+ description
+ "This is to enable or disable support of ICTP.
+ When true, the OLT attempts to establish TCP
+ connections with all relevant peer ICTP proxies
+ and is ready to exchange ICTP messages with other
+ channel terminations through those ICTP proxies.
+ When false, the OLT does not process nor generate
+ any ICTP messages and will not establish nor maintain
+ any TCP connection to any ICTP proxy.";
+ }
+ container all-ictp-proxies-all-channel-groups {
+ description
+ "This container contains all configuration data related to
+ TR-352 ICTP transport infrastructure for all ICTP proxies,
+ whether they are in charge of 'inside-olt' channel
+ terminations or 'outside-olt' channel terminations, for all
+ channel groups.";
+ list proxy {
+ key "name";
+ description
+ "The list of all ICTP proxies, whether they are in charge
+ of 'inside-olt' channel terminations or 'outside-olt'
+ channel terminations, for all channel groups configured
+ in the OLT.";
+ leaf name {
+ type bbf-yang:string-ascii64;
+ description
+ "Name of the ICTP Proxy.";
+ }
+ leaf host {
+ type inet:host;
+ mandatory true;
+ description
+ "This is the IP address or the DNS domain name of the
+ ICTP proxy. TCP connections originating from this ICTP
+ proxy will use this IP address (or the one resolved
+ from the DNS domain name) as source IP address. Other
+ ICTP proxies will reach this Proxy using this IP
+ address (or the one resolved from the DNS domain name)
+ as destination address.";
+ }
+ leaf tcp-port {
+ if-feature "configurable-ictp-proxy-tcp-port";
+ type inet:port-number;
+ default "7202";
+ description
+ "The TCP port used by the ICTP proxy.";
+ }
+ container all-channel-terminations-proxied-by-this-proxy {
+ description
+ "In the context of a given ICTP proxy, this container
+ contains the list of all channel terminations 'inside'
+ and 'outside' the OLT, for all channel groups, for
+ which this ICTP proxy is playing proxy role.";
+ list channel-termination {
+ key "channel-termination-ref";
+ description
+ "The list of all channel terminations inside and
+ outside the OLT, for all channel groups, for which
+ this ICTP proxy is playing proxy role.";
+ leaf channel-termination-ref {
+ type if:interface-ref;
+ must "derived-from-or-self(/if:interfaces"
+ + "/if:interface[if:name=current()]/if:type,"
+ + "'bbf-xponift:channel-termination')" {
+ error-message
+ "Must reference a channel termination.";
+ }
+ description
+ "Reference to a channel termination for which this
+ ICTP proxy is responsible.";
+ }
+ leaf channel-termination-ictp-activated {
+ type boolean;
+ default "false";
+ description
+ "When true, the ICTP proxy is willing to exchange
+ ICTP messages on behalf of this
+ channel termination. When false, the ICTP
+ proxy ignores this channel termination.";
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ container xpon-state {
+ config false;
+ description
+ "State data associated with managing xPON in a system.";
+ container ictp {
+ if-feature "ictp-support";
+ description
+ "State data for the support of
+ Inter-Channel-Termination Protocol (ICTP).";
+ reference
+ "BBF TR-352";
+ container all-ictp-proxies-all-channel-groups {
+ description
+ "State data related to all ICTP proxies across all channel
+ groups.";
+ list proxy {
+ key "name";
+ description
+ "The list of all ICTP proxies for all channel-groups.";
+ leaf name {
+ type bbf-yang:string-ascii64;
+ description
+ "Name of the ICTP Proxy.";
+ }
+ leaf proxy-ip-address {
+ type bbf-xpon-types:ip-address-or-unresolved;
+ description
+ "This is the IP address (v4 or v6) of this ICTP proxy
+ as derived from its configured host and as used in the
+ TCP connection when established. It is 'unresolved' if
+ for some reason the system is unable to deduce the IP
+ address from the host name of the ICTP proxy.";
+ }
+ container known-peered-proxies {
+ description
+ "In the context of an ICTP proxy, this container
+ contains state data about peering relations involving
+ this ICTP proxy. An OLT must know at least all peering
+ relations involving the ICTP proxies in charge of one
+ or several channel terminations 'inside' the OLT.
+ An OLT may or may not know peering relations between
+ ICTP proxies exclusively involving channel terminations
+ 'outside' the OLT.";
+ list proxy {
+ key "name";
+ description
+ "In the context of an ICTP proxy, the list of all
+ ICTP proxies which the OLT knows to be peered with
+ this ICTP proxy.";
+ leaf name {
+ type bbf-yang:string-ascii64;
+ description
+ "Name of this ICTP peer proxy.";
+ }
+ leaf ip-address {
+ type bbf-xpon-types:ip-address-or-unresolved;
+ description
+ "This is the IP address (v4 or v6) of the peer
+ ICTP proxy as derived from its configured
+ host and as used in the TCP connection when
+ established. It is 'unresolved' if for some
+ reason the system is unable to deduce the IP
+ address from the host name of the ICTP proxy.";
+ }
+ leaf tcp-connection-state {
+ type identityref {
+ base bbf-xpon-types:tcp-connection-state-base;
+ }
+ description
+ "This leaf reflects the state of the TCP connection
+ with this peer ICTP Proxy. When 'established' the
+ TCP connection is operational and able to transport
+ ICTP messages. When 'not-established', the TCP
+ connection is unable to exchange any ICTP message.
+ When the TCP connection state is 'unknown' the OLT
+ does not know whether the involved ICTP proxies can
+ exchange ICTP messages or not; typically, this is
+ because the OLT is not involved at all with either
+ of the two related ICTP proxies.";
+ }
+ leaf source-tcp-port {
+ type inet:port-number;
+ description
+ "This is the source port number of the TCP
+ connection with the peer ICTP proxy, when
+ established.";
+ }
+ leaf destination-tcp-port {
+ type inet:port-number;
+ description
+ "This is the destination port number of the TCP
+ connection with the peer ICTP proxy, when
+ established.";
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+
+ augment '/if:interfaces/if:interface' {
+ when "if:type = 'bbf-xponift:channel-group'";
+ description
+ "Augment interface configuration with xPON channel group
+ configuration.";
+ container channel-group {
+ description
+ "Channel group configuration data for all xPON variants
+ (NG-PON2, XGS-PON, XG-PON and G-PON).";
+ }
+ }
+
+ augment '/if:interfaces/if:interface' {
+ when "derived-from-or-self"
+ + "(if:type, 'bbf-xponift:channel-partition')";
+ description
+ "Augment interface configuration with xPON channel partition
+ configuration.";
+ container channel-partition {
+ description
+ "Channel partition configuration data for all xPON variants
+ (NG-PON2, XGS-PON, XG-PON and G-PON).";
+ }
+ }
+
+ augment '/if:interfaces/if:interface' {
+ when "derived-from-or-self"
+ + "(if:type, 'bbf-xponift:channel-pair')";
+ description
+ "Augment interface configuration with xPON channel pair
+ configuration.";
+ container channel-pair {
+ description
+ "Channel pair configuration data for all xPON variants
+ (NG-PON2, XGS-PON, XG-PON and G-PON).";
+ }
+ }
+
+ augment '/if:interfaces/if:interface' {
+ when "derived-from-or-self"
+ + "(if:type, 'bbf-xponift:channel-termination')";
+ description
+ "Augment interface configuration with xPON channel termination
+ configuration.";
+ container channel-termination {
+ description
+ "channel termination configuration data for all xPON variants
+ (NG-PON2, XGS-PON, XG-PON and G-PON).";
+ }
+ }
+
+ augment '/if:interfaces-state/if:interface' {
+ when "derived-from-or-self"
+ + "(if:type, 'bbf-xponift:channel-group')";
+ description
+ "Augment interface state data with xPON channel group
+ state data.";
+ container channel-group {
+ description
+ "Channel group state data for all xPON variants
+ (NG-PON2, XGS-PON, XG-PON and G-PON).";
+ }
+ }
+
+ augment '/if:interfaces-state/if:interface' {
+ when "derived-from-or-self"
+ + "(if:type, 'bbf-xponift:channel-pair')";
+ description
+ "Augment interface state data with xPON channel pair
+ state data.";
+ container channel-pair {
+ description
+ "Channel pair state data for all xPON variants
+ (NG-PON2, XGS-PON, XG-PON and G-PON).";
+ }
+ }
+
+ augment '/if:interfaces-state/if:interface' {
+ when "derived-from-or-self"
+ + "(if:type, 'bbf-xponift:channel-termination')";
+ description
+ "Augment interface state data with xPON channel termination
+ state data.";
+ container channel-termination {
+ description
+ "Channel termination state data for all xPON variants
+ (NG-PON2, XGS-PON, XG-PON and G-PON).";
+ }
+ }
+}
diff --git a/build/yang-files/notification/submodules/bbf-xpon-channel-group-body.yang b/build/yang-files/notification/submodules/bbf-xpon-channel-group-body.yang
new file mode 100644
index 0000000..2096f52
--- /dev/null
+++ b/build/yang-files/notification/submodules/bbf-xpon-channel-group-body.yang
@@ -0,0 +1,468 @@
+submodule bbf-xpon-channel-group-body {
+ yang-version 1.1;
+ belongs-to bbf-xpon {
+ prefix bbf-xpon;
+ }
+
+ import bbf-xpon-types {
+ prefix bbf-xpon-types;
+ }
+ import bbf-yang-types {
+ prefix bbf-yang;
+ }
+ import ietf-interfaces {
+ prefix if;
+ }
+ import bbf-xpon-if-type {
+ prefix bbfxponift;
+ }
+
+ include bbf-xpon-base;
+ include bbf-xpon-channel-partition-body;
+
+ organization
+ "Broadband Forum <https://www.broadband-forum.org>
+ Fiber Access Networks Work Area";
+ contact
+ "Comments or questions about this Broadband Forum YANG module
+ should be directed to <mailto:help@broadband-forum.org>.
+
+ Editor: Joey Boyd, ADTRAN
+
+ Editor: Samuel Chen, Broadcom
+
+ Editor: Robert Peschi, Nokia
+
+ WA Director: Marta Seda, Calix
+
+ WA Director: Lin Wei, Huawei";
+ description
+ "This submodule contains a collection of YANG definitions for
+ managing channel groups.
+
+ Copyright (c) 2018, Broadband Forum
+
+ Redistribution and use in source and binary forms, with or
+ without modification, are permitted provided that the following
+ conditions are met:
+
+ 1. Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+
+ 2. Redistributions in binary form must reproduce the above
+ copyright notice, this list of conditions and the following
+ disclaimer in the documentation and/or other materials
+ provided with the distribution.
+
+ 3. Neither the name of the copyright holder nor the names of its
+ contributors may be used to endorse or promote products
+ derived from this software without specific prior written
+ permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
+ CONTRIBUTORS \"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES,
+ INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+ MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
+ CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+ NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+ CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
+ STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+ ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+ The above license is used as a license under copyright only.
+ Please reference the Forum IPR Policy for patent licensing terms
+ <https://www.broadband-forum.org/ipr-policy>.
+
+ Any moral rights which are necessary to exercise under the above
+ license grant are also deemed granted under this license.
+
+ This version of this YANG module is part of TR-385; see
+ the TR itself for full legal notices.";
+
+ revision 2019-02-25 {
+ description
+ "Initial revision.
+ * Approval Date: 2019-02-25.
+ * Publication Date: 2019-02-25.";
+ reference
+ "TR-385: ITU-T PON YANG Modules
+ <https://www.broadband-forum.org/technical/download/
+ TR-385.pdf>";
+ }
+
+ typedef alloc-id-values {
+ type string {
+ pattern '((25[6-9]|2[6-9][0-9]|[3-9][0-9][0-9]|[1-9][0-9][0-'
+ + '9][0-9]|1[0-6][0-3][0-8][0-3])([,-](25[6-9]|2[6-9]['
+ + '0-9]|[3-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|1[0-6][0-'
+ + '3][0-8][0-3]))*)?';
+ }
+ description
+ "A list of non-overlapping Alloc-ID values in
+ ascending order, between 1024 to 16383 for G.9807.1
+ XGS-PON/G.989.3 NGPON2 compliant OLTs and
+ 256 to 4095 for G.984.3 GPON-compliant OLTs.
+
+ The format of this string can be any of the following:
+
+ single value
+ Example: '1024'
+ comma separated list of values
+ Example: '1024,1030,16000'
+ range of values
+ Example: '1024-1300'
+ comma separated list of ranges
+ Example: '1025-1300,1301-1400,1500-1600'
+ comma separated list of values and ranges
+ Example: '1024-1300,1301,1303-1310'.";
+ }
+
+ typedef gemport-values {
+ type string {
+ pattern '((25[4-9]|2[6-9][0-9]|[3-9][0-9][0-9]|[1-9][0-9][0-'
+ + '9][0-9]|[1-6][0-5][0-5][0-3][0-4])([,-](25[4-9]|2[6-'
+ + '9][0-9]|[3-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-6]['
+ + '0-5][0-5][0-3][0-4]))*)?';
+ }
+ description
+ "A list of non-overlapping xGEM/GEM port-ID values in
+ ascending order, between 1021 to 65534 for G.9807.1
+ XGS-PON/G.989.3 NGPON2 compliant OLTs and
+ 254 to 4095 for G.984.3 GPON-compliant OLTs.
+
+ The format of this string can be any of the following:
+
+ single value
+ Example: '1024'
+ comma separated list of values
+ Example: '1024,1030,16000'
+ range of values
+ Example: '1024-1300'
+ comma separated list of ranges
+ Example: '1025-1300,1301-1400,1500-1600'
+ comma separated list of values and ranges
+ Example: '1024-1300,1301,1303-1310'.";
+ }
+
+ typedef onu-id-values {
+ type string {
+ pattern '(([0-9]|[1-9][0-9]|[1-9][0-9][0-9]|10[0-2]0)([,-](['
+ + '0-9]|[1-9][0-9]|[1-9][0-9][0-9]|10[0-2]0))*)?';
+ }
+ description
+ "A list of non-overlapping ONU-ID values in
+ ascending order, between 0 to 1020 for G.9807.1
+ XGS-PON/G.989.3 NGPON2 compliant OLTs and
+ 0 to 253 for G.984.3 GPON-compliant OLTs.
+
+ The format of this string can be any of the following:
+
+ single value
+ Example: '1020'
+ comma separated list of values
+ Example: '1,30,600'
+ range of values
+ Example: '30-60'
+ comma separated list of ranges
+ Example: '30-60,80-90'
+ comma separated list of values and ranges
+ Example: '1,30-60,70,90-100'.";
+ }
+
+ feature pon-pools {
+ description
+ "Assignable PON resource (Alloc-ID, xGEM port, ONU-id)
+ into PON pool feature.";
+ }
+
+ grouping channel-group-config-data {
+ description
+ "All config data for a channel group.";
+ leaf polling-period {
+ type uint32 {
+ range "1..864000";
+ }
+ units "0.1 second";
+ default "100";
+ description
+ "The period between two consecutive times the
+ autodetection procedure on each pair in the
+ group is executed.
+ Used in NG-PON2 for quiet window control.
+ Value represents tenths of seconds.
+ (e.g. 1 = 0.1 second, 864000 = 24 hours).";
+ }
+ leaf raman-mitigation {
+ type bbf-xpon-types:raman-mitigation-type;
+ default "raman-none";
+ description
+ "NG-PON2 Raman mitigation coding schemes when using RF video
+ overlay.";
+ reference
+ "ITU-T G.989.2 Appendix IX";
+ }
+ leaf system-id {
+ type string {
+ pattern '[0-9a-fA-F]{5}';
+ }
+ description
+ "A 20-bit number that identifies a specific NG-PON2 system
+ (typically a channel group) among multiple NG-PON2 systems
+ under a common administation.
+ It is defined as NGSYS ID in G.989.3 clause 6.1.5.2 and may
+ be coded to support administration such as name, geographical
+ location, servie profile (see also G.989.3 table VIII.2).";
+ reference
+ "ITU-T G.989.3 clause 6.1.5.2;
+ ITU-T G.989.3 table VIII.2";
+ }
+ container pon-pools {
+ if-feature "pon-pools";
+ description
+ "This container describes per channel termination
+ PON resources allocation. A channel termination can only
+ be a member of a single channel group. Within
+ a channel group, PON resources should not
+ overlap and only be assigned to a single
+ channel termination.";
+ list pon-pool {
+ key "name";
+ min-elements 1;
+ max-elements 8;
+ description
+ "This container describes the allocated PON pool of
+ Alloc-IDs, GEM port-IDs and ONU-IDs.";
+ leaf name {
+ type bbf-yang:string-ascii64;
+ description
+ "Name of the PON pool.";
+ }
+ leaf channel-termination-ref {
+ type if:interface-ref;
+ must "derived-from-or-self(/if:interfaces/"
+ + "if:interface[if:name = current()]/if:type,"
+ + "'bbfxponift:channel-termination')" {
+ error-message
+ "Referenced interface must be of type
+ 'channel-termination'.";
+ }
+ description
+ "Reference to a channel termination to which PON resource
+ pools will be assigned.";
+ }
+ leaf alloc-id-values {
+ type alloc-id-values;
+ description
+ "The list of assignable alloc-IDs between 1024 to
+ 16383 for G.9807.1 XGS-PON/G.989.3 NGPON2 compliant
+ OLTs and 256 to 4095 for G.984.3 GPON-compliant OLTs..
+ A single value or range of values can be specified.
+
+ The format of this string can be any of the following:
+ single value
+ Example: '1024'
+ comma separated list of values
+ Example: '1024,1030,16000'
+ range of values
+ Example: '1024-1300'
+ comma separated list of ranges
+ Example: '1025-1300,1301-1400,1500-1600'
+ comma separated list of values and ranges
+ Example: '1024-1300,1301,1303-1310'.";
+ }
+ leaf gemport-values {
+ type gemport-values;
+ description
+ "The list of assignable GEM port/xGEM port-ID between
+ 1021 to 65534 for G.9807.1 XGS-PON/G.989.3 NGPON2
+ compliant OLTs and 254 to 4095 for G.984.3
+ GPON-compliant OLTs.
+
+ A single value or range of values can be specified.
+
+ single value
+ Example: '1024'
+ comma separated list of values
+ Example: '1024,1030,16000'
+ range of values
+ Example: '1024-1300'
+ comma separated list of ranges
+ Example: '1025-1300,1301-1400,1500-1600'
+ comma separated list of values and ranges
+ Example: '1024-1300,1301,1303-1310'.";
+ }
+ leaf onu-id-values {
+ type onu-id-values;
+ description
+ "The list of assignable ONU-ID values between
+ 0 to 1020 for G.9807.1 XGS-PON/G.989.3 NGPON2
+ compliant OLTs and 0 to 253 for G.984.3
+ GPON-compliant OLTs.
+
+ The format of this string can be any of the following:
+ single value
+ Example: '1020'
+ comma separated list of values
+ Example: '1,30,600'
+ range of values
+ Example: '30-60'
+ comma separated list of ranges
+ Example: '30-60,80-90'
+ comma separated list of values and ranges
+ Example: '1,30-60,70,90-100'.";
+ }
+ }
+ }
+ }
+
+ grouping channel-group-state-data {
+ description
+ "All state data for a channel group.";
+ container allocated-upstream-channel-ids {
+ description
+ "The list maintained by the system of all the upstream
+ channel-id's which are already allocated to the
+ channel group. For NG-PON2, the applicable values are
+ in [0..7], for XGS-PON a dedicated value 'xgs' is
+ applicable rather than value '0': this is not to a
+ priori forbid in yang model the coexistence of XGS-PON
+ with NG-PON2 using channel-id=0. This list is a helper
+ to avoid upstream channel-id conflicts when allocating
+ channel pairs to a channel group.";
+ leaf-list channel-id {
+ type bbf-xpon-types:composite-channel-id-type;
+ description
+ "An upstream channel-id in use on the channel group.
+ For NG-PON2, value must be in [0..7].
+ For XGS-PON, value must be 'xgs'.";
+ }
+ }
+ container allocated-downstream-channel-ids {
+ description
+ "The list maintained by the system of all the downstream
+ channel-id's which are already allocated to the
+ channel group. For NG-PON2, the applicable values are
+ in [0..7], for XGS-PON a dedicated value 'xgs' is
+ applicable rather than value '0': this is not to a
+ priori forbid in yang model the coexistence of XGS-PON
+ with NG-PON2 using channel-id=0. This list is a helper
+ to avoid downstream channel-id conflicts when allocating
+ channel pairs to a channel group.";
+ leaf-list downstream-channel-id {
+ type bbf-xpon-types:composite-channel-id-type;
+ description
+ "A downstreamchannel-id in use on the channel group.
+ For NG-PON2, value must be in [0..7].
+ For XGS-PON, value must be 'xgs'.";
+ }
+ }
+ container allocated-downstream-wavelengths {
+ description
+ "The list maintained by the system of all the downstream
+ wavelengths already allocated to the channel group
+ including all of the NG-PON2, XGS-PON, XG-PON and G-PON
+ cases.
+ This list is a helper to avoid wavelength conflicts
+ when allocating channel pairs to a channel group.";
+ leaf-list wavelength {
+ type bbf-xpon-types:composite-downstream-wavelength-type;
+ description
+ "A downstream wavelength already allocated to the
+ channel group. For NG-PON2 it must be a value in
+ [156000..161000] expressed in hundredths of nm to fit
+ ITU-T precision requirements. For the XGS-PON, XG-PON
+ and G-PON cases, it must have resp. the value 'xgs',
+ 'xgpon' or 'gpon'.";
+ }
+ }
+ container pon-pools {
+ if-feature "pon-pools";
+ description
+ "This container describes the list of available and consumed
+ and unusable PON resources that a channel termination in a
+ channel group may have.";
+ list pon-pool {
+ key "name";
+ min-elements 1;
+ max-elements 8;
+ description
+ "This container describes the current characteristics of the
+ PON pool of Alloc-IDs, GEM port-IDs and ONU-IDs.";
+ leaf name {
+ type bbf-yang:string-ascii64;
+ description
+ "Name of the PON pool.";
+ }
+ leaf channel-termination-ref {
+ type if:interface-state-ref;
+ must "derived-from-or-self(/if:interfaces-state"
+ + "/if:interface[if:name = current()]/if:type,"
+ + "'bbfxponift:channel-termination')";
+ description
+ "Reference the configured channel termination
+ that is being reported against.";
+ }
+ container consumed-resources {
+ description
+ "The consumed PON resources.";
+ leaf alloc-id-values {
+ type alloc-id-values;
+ description
+ "The list of consumed Alloc-IDs.
+ For example: '1024-1300,1301,1303-1310'.";
+ }
+ leaf gemport-values {
+ type gemport-values;
+ description
+ "The list of consumed GEM port-IDs/xGEM port-IDs.
+ For example: '1024-1300,1301,1303-1310'.";
+ }
+ leaf onu-ids {
+ type onu-id-values;
+ description
+ "The list of consumed ONU-IDs.
+ For example: '1,30-60,70,90-100'.";
+ }
+ }
+ container available-resources {
+ description
+ "The available/unused PON resources.";
+ leaf alloc-id-values {
+ type alloc-id-values;
+ description
+ "The list of available Alloc-IDs.
+ For example: '1024-1300,1301,1303-1310'.";
+ }
+ leaf gemport-values {
+ type gemport-values;
+ description
+ "The list of available GEM port-IDs/xGEM port-IDs.
+ For example: '1024-1300,1301,1303-1310'.";
+ }
+ leaf onu-ids {
+ type onu-id-values;
+ description
+ "The list of available ONU-IDs.
+ For example: '1,30-60,70,90-100'.";
+ }
+ }
+ }
+ }
+ }
+
+ augment '/if:interfaces/if:interface/bbf-xpon:channel-group' {
+ description
+ "Configuration of an xPON channel group.";
+ uses channel-group-config-data;
+ }
+
+ augment '/if:interfaces-state/if:interface/bbf-xpon:channel-group' {
+ description
+ "State data of an xPON channel group.";
+ uses channel-group-state-data;
+ }
+}
diff --git a/build/yang-files/notification/submodules/bbf-xpon-channel-pair-body.yang b/build/yang-files/notification/submodules/bbf-xpon-channel-pair-body.yang
new file mode 100644
index 0000000..0c5b6f6
--- /dev/null
+++ b/build/yang-files/notification/submodules/bbf-xpon-channel-pair-body.yang
@@ -0,0 +1,238 @@
+submodule bbf-xpon-channel-pair-body {
+ yang-version 1.1;
+ belongs-to bbf-xpon {
+ prefix bbf-xpon;
+ }
+
+ import bbf-xpon-types {
+ prefix bbf-xpon-types;
+ }
+ import ietf-interfaces {
+ prefix if;
+ }
+ import bbf-xpon-if-type {
+ prefix bbf-xponift;
+ }
+ include bbf-xpon-base;
+ include bbf-xpon-wavelength-profile-body;
+
+ organization
+ "Broadband Forum <https://www.broadband-forum.org>
+ Fiber Access Networks Work Area";
+ contact
+ "Comments or questions about this Broadband Forum YANG module
+ should be directed to <mailto:help@broadband-forum.org>.
+
+ Editor: Joey Boyd, ADTRAN
+
+ Editor: Samuel Chen, Broadcom
+
+ Editor: Robert Peschi, Nokia
+
+ WA Director: Marta Seda, Calix
+
+ WA Director: Lin Wei, Huawei";
+ description
+ "This submodule contains a collection of YANG definitions for
+ managing channel pairs.
+
+ Copyright (c) 2018, Broadband Forum
+
+ Redistribution and use in source and binary forms, with or
+ without modification, are permitted provided that the following
+ conditions are met:
+
+ 1. Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+
+ 2. Redistributions in binary form must reproduce the above
+ copyright notice, this list of conditions and the following
+ disclaimer in the documentation and/or other materials
+ provided with the distribution.
+
+ 3. Neither the name of the copyright holder nor the names of its
+ contributors may be used to endorse or promote products
+ derived from this software without specific prior written
+ permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
+ CONTRIBUTORS \"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES,
+ INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+ MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
+ CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+ NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+ CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
+ STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+ ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+ The above license is used as a license under copyright only.
+ Please reference the Forum IPR Policy for patent licensing terms
+ <https://www.broadband-forum.org/ipr-policy>.
+
+ Any moral rights which are necessary to exercise under the above
+ license grant are also deemed granted under this license.
+
+ This version of this YANG module is part of TR-385; see
+ the TR itself for full legal notices.";
+
+ revision 2019-02-25 {
+ description
+ "Initial revision.
+ * Approval Date: 2019-02-25.
+ * Publication Date: 2019-02-25.";
+ reference
+ "TR-385: ITU-T PON YANG Modules
+ <https://www.broadband-forum.org/technical/download/
+ TR-385.pdf>";
+ }
+
+ grouping channel-pair-config-data {
+ description
+ "All configuration data for a channel pair.";
+ leaf channel-group-ref {
+ type if:interface-ref;
+ must "derived-from-or-self(/if:interfaces"
+ + "/if:interface[if:name=current()]/if:type,"
+ + "'bbf-xponift:channel-group')" {
+ error-message
+ "Must reference a channel group.";
+ }
+ description
+ "Reference to channel group. Note that it is not allowed
+ to have several channel-pairs with identical downsream
+ channel-ID or upstream channel-ID or transmit wavelength
+ simultaneously active on the same chnanel-group.
+ In particular there may be only a maximum of one XGS-PON,
+ one XG-PON and one G-PON active on the same channel group.
+ The YANG model does not enforce these constraints which are
+ assumed to be enforced or verified by the OLT network
+ element software.";
+ }
+ leaf channel-partition-ref {
+ type if:interface-ref;
+ must "derived-from-or-self(/if:interfaces"
+ + "/if:interface[if:name=current()]/if:type,"
+ + "'bbf-xponift:channel-partition') and "
+ + "/if:interfaces/if:interface[if:name=current()]"
+ + "/channel-partition/channel-group-ref="
+ + "../channel-group-ref" {
+ error-message
+ "Must reference a channel partition associated with the same
+ channel group this pair is associated with.";
+ }
+ description
+ "Reference to channel partition.";
+ }
+ leaf wavelength-prof-ref {
+ when "derived-from-or-self(../channel-pair-type,"
+ + "'bbf-xpon-types:ngpon2-twdm') or derived-from-or-self"
+ + "(../channel-pair-type, 'bbf-xpon-types:ngpon2-ptp') or "
+ + "derived-from-or-self(../channel-pair-type,"
+ + "'bbf-xpon-types:xgs')";
+ type wavelength-prof-ref;
+ description
+ "An NG-PON2 channel pair needs to point to an existing
+ wavelength profile. Similar for XGS-PON (ref: ITU-T G.9807.1
+ A.8.2: Basic Wavelength and Optional Wavelength sets). The
+ wavelength for XG-PON and G-PON is fixed per ITU-T standards
+ and needs not be configured via a wavelength profile.";
+ }
+ leaf channel-pair-type {
+ type identityref {
+ base bbf-xpon-types:channel-pair-type-base;
+ }
+ mandatory true;
+ description
+ "Represents the type of channel pair
+ (e.g. TWDM NG-PON2, PtP NG-PON2, XGS-PON, XG-PON,
+ G-PON).";
+ }
+ leaf channel-pair-line-rate {
+ when "derived-from-or-self(../channel-pair-type,"
+ + "'bbf-xpon-types:ngpon2-twdm') or derived-from-or-self"
+ + "(../channel-pair-type, 'bbf-xpon-types:ngpon2-ptp')";
+ type identityref {
+ base bbf-xpon-types:channel-pair-line-rate-profile-base;
+ }
+ default "bbf-xpon-types:unplanned-cp-line-rate";
+ description
+ "Represents the planned downstream/upstream channel pair
+ speed for NG-PON2. The line rates for
+ XGS-PON (downstream 10Gbps/upstream 10Gbps),
+ XG-PON(downstream 10Gbps/upstream 2.5Gbps) and
+ G-PON (downstream 2.5Gbps/upstream 1.2Gbps)
+ are fixed per ITU-T standards and need not be configured.";
+ }
+ leaf gpon-pon-id-interval {
+ when "derived-from-or-self"
+ + "(../channel-pair-type, 'bbf-xpon-types:gpon')";
+ type uint16 {
+ range "0..60";
+ }
+ units "seconds";
+ default "0";
+ description
+ "This attribute is used to specify the frequency of
+ transmission of the periodic downstream PON-ID PLOAM
+ message for this G-PON. See ITU-T G.984.3 C1. The default
+ value '0' allows not to generate this PLOAM message,
+ fulfilling ITU-T G.984.3 C2 requirement.
+ This is only applicable to G-PON.";
+ reference
+ "ITU-T G.984.3 C1
+ ITU-T G.984.3 C2";
+ }
+ }
+
+ grouping channel-pair-state-data {
+ description
+ "All state data for a channel pair.";
+ leaf actual-downstream-wavelength {
+ type uint32 {
+ range "0 | 148000..162000";
+ }
+ units "0.01nm";
+ default "0";
+ description
+ "Represents the Actual Downstream wavelength for the
+ channel pair for any of the NG-PON2, XGS-PON, XG-PON or
+ G-PON case. It is expressed in hundredths of nm to fit
+ ITU-T precision requirements.";
+ }
+ leaf primary-ct-assigned {
+ type boolean;
+ default "false";
+ description
+ "When true this means that a channel termination with
+ Primary type B role has been assigned to this channel pair.";
+ reference
+ "ITU-T G.989.3 clause 18.2";
+ }
+ leaf secondary-ct-assigned {
+ type boolean;
+ default "false";
+ description
+ "When true this means that a channel termination with
+ Secondary type B role has been assigned to this
+ channel pair.";
+ reference
+ "ITU-T G.989.3 clause 18.2";
+ }
+ }
+
+ augment '/if:interfaces/if:interface/bbf-xpon:channel-pair' {
+ description
+ "Configuration of an xPON channel pair.";
+ uses channel-pair-config-data;
+ }
+
+ augment '/if:interfaces-state/if:interface/bbf-xpon:channel-pair' {
+ description
+ "State data of an xPON channel pair.";
+ uses channel-pair-state-data;
+ }
+}
diff --git a/build/yang-files/notification/submodules/bbf-xpon-channel-partition-body.yang b/build/yang-files/notification/submodules/bbf-xpon-channel-partition-body.yang
new file mode 100644
index 0000000..422c8db
--- /dev/null
+++ b/build/yang-files/notification/submodules/bbf-xpon-channel-partition-body.yang
@@ -0,0 +1,182 @@
+submodule bbf-xpon-channel-partition-body {
+ yang-version 1.1;
+ belongs-to bbf-xpon {
+ prefix bbf-xpon;
+ }
+
+ import ietf-interfaces {
+ prefix if;
+ }
+ import bbf-xpon-if-type {
+ prefix bbf-xponift;
+ }
+ import bbf-xpon-types {
+ prefix bbf-xpon-types;
+ }
+ include bbf-xpon-base;
+
+ organization
+ "Broadband Forum <https://www.broadband-forum.org>
+ Fiber Access Networks Work Area";
+ contact
+ "Comments or questions about this Broadband Forum YANG module
+ should be directed to <mailto:help@broadband-forum.org>.
+
+ Editor: Joey Boyd, ADTRAN
+
+ Editor: Samuel Chen, Broadcom
+
+ Editor: Robert Peschi, Nokia
+
+ WA Director: Marta Seda, Calix
+
+ WA Director: Lin Wei, Huawei";
+ description
+ "This submodule contains a collection of YANG definitions for
+ managing channel partitions.
+
+ Copyright (c) 2018, Broadband Forum
+
+ Redistribution and use in source and binary forms, with or
+ without modification, are permitted provided that the following
+ conditions are met:
+
+ 1. Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+
+ 2. Redistributions in binary form must reproduce the above
+ copyright notice, this list of conditions and the following
+ disclaimer in the documentation and/or other materials
+ provided with the distribution.
+
+ 3. Neither the name of the copyright holder nor the names of its
+ contributors may be used to endorse or promote products
+ derived from this software without specific prior written
+ permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
+ CONTRIBUTORS \"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES,
+ INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+ MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
+ CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+ NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+ CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
+ STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+ ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+ The above license is used as a license under copyright only.
+ Please reference the Forum IPR Policy for patent licensing terms
+ <https://www.broadband-forum.org/ipr-policy>.
+
+ Any moral rights which are necessary to exercise under the above
+ license grant are also deemed granted under this license.
+
+ This version of this YANG module is part of TR-385; see
+ the TR itself for full legal notices.";
+
+ revision 2019-02-25 {
+ description
+ "Initial revision.
+ * Approval Date: 2019-02-25.
+ * Publication Date: 2019-02-25.";
+ reference
+ "TR-385: ITU-T PON YANG Modules
+ <https://www.broadband-forum.org/technical/download/
+ TR-385.pdf>";
+ }
+
+ grouping channel-partition-config-data {
+ description
+ "All config data for a channel partition";
+ leaf channel-group-ref {
+ type if:interface-ref;
+ must "derived-from-or-self(/if:interfaces"
+ + "/if:interface[if:name=current()]/if:type,"
+ + "'bbf-xponift:channel-group')" {
+ error-message
+ "Must reference a channel group.";
+ }
+ mandatory true;
+ description
+ "Reference to a channel group.";
+ }
+ leaf channel-partition-index {
+ type uint8 {
+ range "0..15";
+ }
+ description
+ "This attribute identifies the partition inside the
+ channel group.";
+ reference
+ "ITU-T G.989.3 clause 6.1.5.9 and clause 11.3.3.14.";
+ }
+ leaf downstream-fec {
+ type boolean;
+ default "true";
+ description
+ "Enable/Disable downstream FEC.
+ Note that downstream FEC is always enabled for XG-PON and
+ XGS-PON and thus a value of 'false' is ignored.";
+ reference
+ "ITU-T G.984.3 clause 13.1.2.1
+ ITU-T G.987.3 clause 10.1
+ ITU-T G.9807.1 clause C.10.1.1.1.3
+ ITU-T G.989.3 clause 10.1.1.1.3";
+ }
+ leaf closest-onu-distance {
+ type uint16 {
+ range "0..40";
+ }
+ units "km";
+ default "0";
+ description
+ "Establishes the distance of the closest ONU.
+ Used to determine how to equalize delay
+ between the ONUs.";
+ }
+ leaf maximum-differential-xpon-distance {
+ type uint16 {
+ range "20 | 40";
+ }
+ units "km";
+ default "20";
+ description
+ "This attribute provides the ability to set the maximum
+ differential logical reach for a channel partition.";
+ reference
+ "ITU-T G.989.1 clause 8.2
+ ITU-T G.989.3 clause 13.1.";
+ }
+ leaf authentication-method {
+ type bbf-xpon-types:auth-method-type;
+ default "serial-number";
+ description
+ "ONU Authentication mode option for this
+ channel partition.";
+ reference
+ "ITU-T G.984.3, section VI.1.";
+ }
+ leaf multicast-aes-indicator {
+ type boolean;
+ default "false";
+ description
+ "Used to designate whether AES should be
+ enabled/disabled for multicast GEM ports.";
+ reference
+ "ITU-T G.984.3, section 12.2. and 9.2.3.8
+ ITU-T G.987.3, section 15.5.1 and 15.5.4
+ ITU-T G.9807.1, section C.15.5.1 and C.15.5.4
+ ITU-T G.989.3, section 15.5.1 and 5.5.4.";
+ }
+ }
+
+ augment '/if:interfaces/if:interface/bbf-xpon:channel-partition' {
+ description
+ "Configuration of an xPON channel partition.";
+ uses channel-partition-config-data;
+ }
+}
diff --git a/build/yang-files/notification/submodules/bbf-xpon-channel-termination-body.yang b/build/yang-files/notification/submodules/bbf-xpon-channel-termination-body.yang
new file mode 100644
index 0000000..513cee8
--- /dev/null
+++ b/build/yang-files/notification/submodules/bbf-xpon-channel-termination-body.yang
@@ -0,0 +1,285 @@
+submodule bbf-xpon-channel-termination-body {
+ yang-version 1.1;
+ belongs-to bbf-xpon {
+ prefix bbf-xpon;
+ }
+
+ import ietf-interfaces {
+ prefix if;
+ }
+ import bbf-xpon-types {
+ prefix bbf-xpon-types;
+ }
+ import bbf-xpon-if-type {
+ prefix bbf-xponift;
+ }
+ include bbf-xpon-base;
+
+ organization
+ "Broadband Forum <https://www.broadband-forum.org>
+ Fiber Access Networks Work Area";
+ contact
+ "Comments or questions about this Broadband Forum YANG module
+ should be directed to <mailto:help@broadband-forum.org>.
+
+ Editor: Joey Boyd, ADTRAN
+
+ Editor: Samuel Chen, Broadcom
+
+ Editor: Robert Peschi, Nokia
+
+ WA Director: Marta Seda, Calix
+
+ WA Director: Lin Wei, Huawei";
+ description
+ "This submodule contains a collection of YANG definitions for
+ managing channel terminations.
+
+ Copyright (c) 2018, Broadband Forum
+
+ Redistribution and use in source and binary forms, with or
+ without modification, are permitted provided that the following
+ conditions are met:
+
+ 1. Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+
+ 2. Redistributions in binary form must reproduce the above
+ copyright notice, this list of conditions and the following
+ disclaimer in the documentation and/or other materials
+ provided with the distribution.
+
+ 3. Neither the name of the copyright holder nor the names of its
+ contributors may be used to endorse or promote products
+ derived from this software without specific prior written
+ permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
+ CONTRIBUTORS \"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES,
+ INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+ MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
+ CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+ NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+ CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
+ STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+ ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+ The above license is used as a license under copyright only.
+ Please reference the Forum IPR Policy for patent licensing terms
+ <https://www.broadband-forum.org/ipr-policy>.
+
+ Any moral rights which are necessary to exercise under the above
+ license grant are also deemed granted under this license.
+
+ This version of this YANG module is part of TR-385; see
+ the TR itself for full legal notices.";
+
+ revision 2019-02-25 {
+ description
+ "Initial revision.
+ * Approval Date: 2019-02-25.
+ * Publication Date: 2019-02-25.";
+ reference
+ "TR-385: ITU-T PON YANG Modules
+ <https://www.broadband-forum.org/technical/download/
+ TR-385.pdf>";
+ }
+
+ grouping channel-termination-config-data {
+ description
+ "All configuration data for a channel termination.";
+ leaf channel-pair-ref {
+ type if:interface-ref;
+ must "derived-from-or-self(/if:interfaces"
+ + "/if:interface[if:name=current()]/if:type,"
+ + "'bbf-xponift:channel-pair') and "
+ + "/if:interfaces/if:interface[if:name=current()]/"
+ + "bbf-xpon:channel-pair/bbf-xpon:channel-pair-type = "
+ + "../bbf-xpon:channel-termination-type" {
+ error-message
+ "Must reference a channel pair with the same xPON type as
+ the channel termination.";
+ }
+ description
+ "Reference to a channel pair.";
+ }
+ leaf channel-termination-type {
+ type identityref {
+ base bbf-xpon-types:channel-pair-type-base;
+ }
+ mandatory true;
+ description
+ "Represents the type of channel termination (e.g.
+ TWDM NG-PON2, PtP NG-PON2, XGS-PON, XG-PON, G-PON).";
+ }
+ leaf meant-for-type-b-primary-role {
+ type boolean;
+ description
+ "When true, the channel termination is meant to play type B
+ protection Primary role when it refers to a channel pair.
+ When false, the channel termination is meant to play
+ type B protection Secondary role when it refers to a
+ channel pair.";
+ reference
+ "ITU-T G.898.3 Amendment 1 (11/2016), section 18.1.";
+ }
+ leaf ngpon2-twdm-admin-label {
+ when "derived-from-or-self"
+ + "(../bbf-xpon:channel-termination-type,"
+ + "'bbf-xpon-types:ngpon2-twdm')";
+ type uint32 {
+ range "0..268435455" {
+ description
+ "0 to 2^28-1.";
+ }
+ }
+ description
+ "For TWDM NG-PON2, the admin-label is configurable and is
+ 28 bits long. It is the configurable part of the PON-ID
+ which is available as state data.";
+ reference
+ "ITU-T G.989.3 section 6.1.5.3";
+ }
+ leaf ngpon2-ptp-admin-label {
+ when "derived-from-or-self"
+ + "(../bbf-xpon:channel-termination-type,"
+ + "'bbf-xpon-types:ngpon2-ptp')";
+ type uint32 {
+ range "0..4194303" {
+ description
+ "0 to 2^22-1.";
+ }
+ }
+ description
+ "For PtP NG-PON2, the admin-label is configurable and is
+ 22 bits long. It is the configurable part of the PON-ID
+ which is available as state data.";
+ reference
+ "ITU-T G.989.3 section 6.1.5.3";
+ }
+ leaf xgs-pon-id {
+ when "derived-from-or-self"
+ + "(../bbf-xpon:channel-termination-type,"
+ + "'bbf-xpon-types:xgs')";
+ type uint32;
+ description
+ "For XGS-PON, the PON-ID is entirely configurable and is
+ 32 bits long. The PON-ID is also available as state
+ data.";
+ reference
+ "ITU-T G.9807.1 section C.10.1.1.1.3";
+ }
+ leaf xgpon-pon-id {
+ when "derived-from-or-self"
+ + "(../bbf-xpon:channel-termination-type,"
+ + "'bbf-xpon-types:xgpon')";
+ type uint32;
+ description
+ "For XG-PON, the PON-ID is entirely configurable and is
+ 32 bits long. The PON-ID is also available as state
+ data.";
+ reference
+ "ITU-T G.987.3 section E.2";
+ }
+ leaf gpon-pon-id {
+ when "derived-from-or-self"
+ + "(../bbf-xpon:channel-termination-type,"
+ + "'bbf-xpon-types:gpon')";
+ type bbf-xpon-types:string-hex14;
+ description
+ "For G-PON, the PON-ID is entirely configurable with
+ any binary value over 7 bytes. The PON-ID is also
+ available as state data.";
+ reference
+ "ITU-T G.984.3 section C.2.2";
+ }
+ leaf pon-tag {
+ when "not(derived-from-or-self"
+ + "(../bbf-xpon:channel-termination-type,"
+ + "'bbf-xpon-types:gpon'))";
+ type string {
+ pattern '[0-9a-fA-F]{16}';
+ }
+ description
+ "8 bytes. Each octet is represented by two hex values.
+ Used to specify channel-pair-TAG attribute in NG-PON2,
+ XGS-PON and XG-PON downstream PLOAM messages.
+ The PON-TAG is not relevant for G-PON.";
+ }
+ leaf ber-calc-period {
+ type uint32 {
+ range "1..864000";
+ }
+ units "0.1s";
+ default "10";
+ description
+ "Measurement period used to determine if an SDi alarm
+ has occurred for an ONU.";
+ reference
+ "ITU-T G.984.3 section 11.1.3";
+ }
+ leaf location {
+ type identityref {
+ base bbf-xpon-types:location-base;
+ }
+ description
+ "Indicates whether the CT is physically inside the OLT i.e.
+ can be related to a port in the OLT hardware model or
+ physically part of another OLT.";
+ }
+ }
+
+ grouping channel-termination-oper-data {
+ description
+ "All oper data for a channel termination";
+ leaf pon-id-display {
+ type bbf-xpon-types:pon-id-display-type;
+ description
+ "The PON-ID of the channel termination.
+ Per ITU-T G.989.3, ITU-T G.9807.1, ITU-T G.987.3 and
+ ITU-T G.984.3, depending of the xPON type some part
+ of this object is configured by the operator and the
+ other part is genuine operational data determined by
+ the system.";
+ }
+ leaf type-b-state {
+ type identityref {
+ base bbf-xpon-types:type-b-state-base;
+ }
+ description
+ "The type B protection state of the CT; it will typically
+ be active/standby. When the channel termination is not yet
+ referring to a channel pair, it is not part of any type B
+ protection scheme (and not usable either, btw); in that
+ case its type-b-state has the value 'not-part-of-type-b.";
+ reference
+ "ITU-T G.989.3 Amendment 1 clause 18.2";
+ }
+ leaf location {
+ type identityref {
+ base bbf-xpon-types:location-base;
+ }
+ description
+ "Indicates whether the CT is physically inside the OLT i.e.
+ can be related to a port in the OLT hardware model or
+ physically part of another OLT.";
+ }
+ }
+
+ augment '/if:interfaces/if:interface/bbf-xpon:channel-termination' {
+ description
+ "Configuration of an xPON channel termination.";
+ uses channel-termination-config-data;
+ }
+
+ augment '/if:interfaces-state/if:interface/bbf-xpon:channel-'
+ + 'termination' {
+ description
+ "State data of an xPON channel termination.";
+ uses channel-termination-oper-data;
+ }
+}
diff --git a/build/yang-files/notification/submodules/bbf-xpon-multicast-distribution-set-body.yang b/build/yang-files/notification/submodules/bbf-xpon-multicast-distribution-set-body.yang
new file mode 100644
index 0000000..a2c1326
--- /dev/null
+++ b/build/yang-files/notification/submodules/bbf-xpon-multicast-distribution-set-body.yang
@@ -0,0 +1,148 @@
+submodule bbf-xpon-multicast-distribution-set-body {
+ yang-version 1.1;
+ belongs-to bbf-xpon {
+ prefix bbf-xpon;
+ }
+
+ import bbf-yang-types {
+ prefix bbf-yang;
+ }
+ include bbf-xpon-base;
+ include bbf-xpon-multicast-gemport-body;
+
+ organization
+ "Broadband Forum <https://www.broadband-forum.org>
+ Fiber Access Networks Work Area";
+ contact
+ "Comments or questions about this Broadband Forum YANG module
+ should be directed to <mailto:help@broadband-forum.org>.
+
+ Editor: Joey Boyd, ADTRAN
+
+ Editor: Samuel Chen, Broadcom
+
+ Editor: Robert Peschi, Nokia
+
+ WA Director: Marta Seda, Calix
+
+ WA Director: Lin Wei, Huawei";
+ description
+ "This submodule contains a collection of YANG definitions for
+ managing multicast distribution sets.
+
+ Copyright (c) 2018, Broadband Forum
+
+ Redistribution and use in source and binary forms, with or
+ without modification, are permitted provided that the following
+ conditions are met:
+
+ 1. Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+
+ 2. Redistributions in binary form must reproduce the above
+ copyright notice, this list of conditions and the following
+ disclaimer in the documentation and/or other materials
+ provided with the distribution.
+
+ 3. Neither the name of the copyright holder nor the names of its
+ contributors may be used to endorse or promote products
+ derived from this software without specific prior written
+ permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
+ CONTRIBUTORS \"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES,
+ INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+ MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
+ CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+ NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+ CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
+ STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+ ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+ The above license is used as a license under copyright only.
+ Please reference the Forum IPR Policy for patent licensing terms
+ <https://www.broadband-forum.org/ipr-policy>.
+
+ Any moral rights which are necessary to exercise under the above
+ license grant are also deemed granted under this license.
+
+ This version of this YANG module is part of TR-385; see
+ the TR itself for full legal notices.";
+
+ revision 2019-02-25 {
+ description
+ "Initial revision.
+ * Approval Date: 2019-02-25.
+ * Publication Date: 2019-02-25.";
+ reference
+ "TR-385: ITU-T PON YANG Modules
+ <https://www.broadband-forum.org/technical/download/
+ TR-385.pdf>";
+ }
+
+ augment '/bbf-xpon:xpon' {
+ description
+ "Augment system level xPON configuration with multicase
+ distribution set configuration.";
+ container multicast-distribution-set {
+ description
+ "Configuration data for a multicast distribution set.";
+ uses multicast-distribution-set-data;
+ }
+ }
+
+ grouping multicast-distribution-set-data {
+ description
+ "All configuration data for a multicast distribution set.";
+ list multicast-set {
+ key "name";
+ leaf name {
+ type bbf-yang:string-ascii64;
+ description
+ "Name of the multicast distribution set.";
+ }
+ leaf multicast-gemport-ref {
+ type multicast-gemport-ref;
+ description
+ "Points to a multicast GEM port.";
+ }
+ choice multicast-vlans {
+ description
+ "Multicast VLAN list or all. All means all multicast
+ vlans are carried on the same GEM port.";
+ case vlan-list {
+ description
+ "Multicast VLAN list.";
+ list vlan-list {
+ key "multicast-vlan-id";
+ leaf multicast-vlan-id {
+ type uint16 {
+ range "0..4095";
+ }
+ description
+ "Multicast VLAN-ID.";
+ }
+ description
+ "List of vlans.";
+ }
+ }
+ case all-multicast-vlans {
+ description
+ "All multicast VLANs are carried on the same
+ GEM port.";
+ leaf all-multicast-vlans {
+ type empty;
+ description
+ "All multicast VLANs.";
+ }
+ }
+ }
+ description
+ "List of multicast sets.";
+ }
+ }
+}
diff --git a/build/yang-files/notification/submodules/bbf-xpon-multicast-gemport-body.yang b/build/yang-files/notification/submodules/bbf-xpon-multicast-gemport-body.yang
new file mode 100644
index 0000000..e5ce9e6
--- /dev/null
+++ b/build/yang-files/notification/submodules/bbf-xpon-multicast-gemport-body.yang
@@ -0,0 +1,158 @@
+submodule bbf-xpon-multicast-gemport-body {
+ yang-version 1.1;
+ belongs-to bbf-xpon {
+ prefix bbf-xpon;
+ }
+
+ import ietf-interfaces {
+ prefix if;
+ }
+ import bbf-xpon-if-type {
+ prefix bbf-xponift;
+ }
+ import bbf-yang-types {
+ prefix bbf-yang;
+ }
+ include bbf-xpon-base;
+
+ organization
+ "Broadband Forum <https://www.broadband-forum.org>
+ Fiber Access Networks Work Area";
+ contact
+ "Comments or questions about this Broadband Forum YANG module
+ should be directed to <mailto:help@broadband-forum.org>.
+
+ Editor: Joey Boyd, ADTRAN
+
+ Editor: Samuel Chen, Broadcom
+
+ Editor: Robert Peschi, Nokia
+
+ WA Director: Marta Seda, Calix
+
+ WA Director: Lin Wei, Huawei";
+ description
+ "This submodule contains a collection of YANG definitions for
+ managing multicast GEM ports.
+
+ Copyright (c) 2018, Broadband Forum
+
+ Redistribution and use in source and binary forms, with or
+ without modification, are permitted provided that the following
+ conditions are met:
+
+ 1. Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+
+ 2. Redistributions in binary form must reproduce the above
+ copyright notice, this list of conditions and the following
+ disclaimer in the documentation and/or other materials
+ provided with the distribution.
+
+ 3. Neither the name of the copyright holder nor the names of its
+ contributors may be used to endorse or promote products
+ derived from this software without specific prior written
+ permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
+ CONTRIBUTORS \"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES,
+ INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+ MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
+ CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+ NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+ CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
+ STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+ ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+ The above license is used as a license under copyright only.
+ Please reference the Forum IPR Policy for patent licensing terms
+ <https://www.broadband-forum.org/ipr-policy>.
+
+ Any moral rights which are necessary to exercise under the above
+ license grant are also deemed granted under this license.
+
+ This version of this YANG module is part of TR-385; see
+ the TR itself for full legal notices.";
+
+ revision 2019-02-25 {
+ description
+ "Initial revision.
+ * Approval Date: 2019-02-25.
+ * Publication Date: 2019-02-25.";
+ reference
+ "TR-385: ITU-T PON YANG Modules
+ <https://www.broadband-forum.org/technical/download/
+ TR-385.pdf>";
+ }
+
+ typedef multicast-gemport-ref {
+ type leafref {
+ path '/bbf-xpon:xpon/bbf-xpon:multicast-gemports/bbf-xpon:'
+ + 'multicast-gemport/bbf-xpon:name';
+ }
+ description
+ "Points to multicast GEM port.";
+ }
+
+ augment '/bbf-xpon:xpon' {
+ description
+ "Augment system level xPON configuration with multicase GEM
+ port configuration.";
+ container multicast-gemports {
+ description
+ "Multicast GEM ports configuration data.";
+ uses multicast-gemports-config-data;
+ }
+ }
+
+ grouping multicast-gemports-config-data {
+ description
+ "The config data of multicast GEM ports. Multicast GEM ports
+ can be used for multicast or broadcast.";
+ list multicast-gemport {
+ key "name";
+ leaf name {
+ type bbf-yang:string-ascii64;
+ description
+ "The name of the multicast GEM port.";
+ }
+ leaf gemport-id {
+ type uint32;
+ description
+ "The ID of the multicast GEM port.";
+ }
+ leaf interface {
+ type if:interface-ref;
+ must
+ "/if:interfaces/if:interface[if:name=current()]
+ /if:type='bbf-xponift:channel-pair'" {
+ error-message
+ "Must reference a channel pair.";
+ }
+ description
+ "Each channel pair has in general one or several multicast
+ GEM ports.";
+ }
+ leaf traffic-class {
+ type uint8 {
+ range "0..7";
+ }
+ description
+ "Traffic class value.";
+ }
+ leaf is-broadcast {
+ type boolean;
+ default "false";
+ description
+ "If true, this multicast GEM port is used for broadcast
+ traffic.";
+ }
+ description
+ "List of multicast GEM ports.";
+ }
+ }
+}
diff --git a/build/yang-files/notification/submodules/bbf-xpon-wavelength-profile-body.yang b/build/yang-files/notification/submodules/bbf-xpon-wavelength-profile-body.yang
new file mode 100644
index 0000000..14e6b69
--- /dev/null
+++ b/build/yang-files/notification/submodules/bbf-xpon-wavelength-profile-body.yang
@@ -0,0 +1,151 @@
+submodule bbf-xpon-wavelength-profile-body {
+ yang-version 1.1;
+ belongs-to bbf-xpon {
+ prefix bbf-xpon;
+ }
+
+ import bbf-yang-types {
+ prefix bbf-yang;
+ }
+ include bbf-xpon-base;
+
+ organization
+ "Broadband Forum <https://www.broadband-forum.org>
+ Fiber Access Networks Work Area";
+ contact
+ "Comments or questions about this Broadband Forum YANG module
+ should be directed to <mailto:help@broadband-forum.org>.
+
+ Editor: Joey Boyd, ADTRAN
+
+ Editor: Samuel Chen, Broadcom
+
+ Editor: Robert Peschi, Nokia
+
+ WA Director: Marta Seda, Calix
+
+ WA Director: Lin Wei, Huawei";
+ description
+ "This submodule contains a collection of YANG definitions for
+ managing wavelength profiles.
+
+ Copyright (c) 2018, Broadband Forum
+
+ Redistribution and use in source and binary forms, with or
+ without modification, are permitted provided that the following
+ conditions are met:
+
+ 1. Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+
+ 2. Redistributions in binary form must reproduce the above
+ copyright notice, this list of conditions and the following
+ disclaimer in the documentation and/or other materials
+ provided with the distribution.
+
+ 3. Neither the name of the copyright holder nor the names of its
+ contributors may be used to endorse or promote products
+ derived from this software without specific prior written
+ permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
+ CONTRIBUTORS \"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES,
+ INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+ MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
+ CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+ NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+ CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
+ STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+ ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+ The above license is used as a license under copyright only.
+ Please reference the Forum IPR Policy for patent licensing terms
+ <https://www.broadband-forum.org/ipr-policy>.
+
+ Any moral rights which are necessary to exercise under the above
+ license grant are also deemed granted under this license.
+
+ This version of this YANG module is part of TR-385; see
+ the TR itself for full legal notices.";
+
+ revision 2019-02-25 {
+ description
+ "Initial revision.
+ * Approval Date: 2019-02-25.
+ * Publication Date: 2019-02-25.";
+ reference
+ "TR-385: ITU-T PON YANG Modules
+ <https://www.broadband-forum.org/technical/download/
+ TR-385.pdf>";
+ }
+
+ typedef wavelength-prof-ref {
+ type leafref {
+ path '/bbf-xpon:xpon/bbf-xpon:wavelength-profiles/bbf-xpon:'
+ + 'wavelength-profile/bbf-xpon:name';
+ }
+ description
+ "A reference to a wavelength profile.";
+ }
+
+ augment '/bbf-xpon:xpon' {
+ description
+ "Augment system level xPON configuration with wavelength
+ profile configuration.";
+ container wavelength-profiles {
+ description
+ "Wavelength profile configuration.";
+ uses wavelength-profile-data;
+ }
+ }
+
+ grouping wavelength-profile-data {
+ description
+ "All config data for wavelength profile.";
+ list wavelength-profile {
+ key "name";
+ description
+ "The list of wavelength profiles.";
+ leaf name {
+ type bbf-yang:string-ascii64;
+ description
+ "Wavelength profile name.";
+ }
+ leaf upstream-channel-id {
+ type uint8 {
+ range "0..15";
+ }
+ default "0";
+ description
+ "Upstream channel ID.";
+ reference
+ "ITU-T G.989.3 clause 6.1.5.5.";
+ }
+ leaf downstream-channel-id {
+ type uint8 {
+ range "0..15";
+ }
+ default "0";
+ description
+ "Downstream channel ID.";
+ reference
+ "ITU-T G.989.3 clause 6.1.5.4.";
+ }
+ leaf downstream-wavelength {
+ type uint32 {
+ range "0 | 156000..161000";
+ }
+ units "0.01nm";
+ default "0";
+ description
+ "Downstream wavelength.";
+ reference
+ "ITU-T G.989.2";
+ }
+ }
+ }
+}
diff --git a/build/yang-files/schema-mount.xml b/build/yang-files/schema-mount.xml
index 6460aa5..925baa5 100644
--- a/build/yang-files/schema-mount.xml
+++ b/build/yang-files/schema-mount.xml
@@ -15,6 +15,10 @@
-->
<schema-mounts xmlns="urn:ietf:params:xml:ns:yang:ietf-yang-schema-mount">
+ <namespace>
+ <prefix>bbf-device-aggregation</prefix>
+ <uri>urn:bbf:yang:bbf-device-aggregation</uri>
+ </namespace>
<mount-point>
<module>bbf-device-aggregation</module>
<label>device-yang-library</label>