blob: f330bbe442cce8ec620da305d3efcbfb39f29ac9 [file] [log] [blame]
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).";
}
}
}