Add NETCONF notification for ONU activation and Kafka client to receive events, update dependencies
Change-Id: I5f768fa8077ef7c64e00a534744ca47492344935
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";
+ }
+ }
+ }
+}