| 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; |
| } |
| } |