module bbf-pppoe-intermediate-agent {
yang-version 1.1;
namespace
"urn:bbf:yang:bbf-pppoe-intermediate-agent";
prefix bbf-pppoe-ia;
import ietf-interfaces {
prefix if;
}
import ietf-yang-types {
prefix yang;
}
import bbf-yang-types {
prefix bbf-yang;
}
import bbf-if-type {
prefix bbfift;
}
import bbf-subscriber-types {
prefix bbf-subtype;
}
organization
"Broadband Forum <https://www.broadband-forum.org>
Common YANG Project Stream";
contact
"Comments or questions about this Broadband Forum YANG module
should be directed to <mailto:help@broadband-forum.org>.
Editor: Joey Boyd, ADTRAN
<mailto:joey.boyd@adtran.com>
Editor: Ludwig Pauwels, Nokia
<mailto:ludwig.pauwels@nokia.com>
PS Leader: Michael Shaffer, Nokia
<mailto:michael.shaffer@nokia.com>
PS Leader: William Lupton, Broadband Forum
<mailto:wlupton@broadband-forum.org>";
description
"This module contains a collection of YANG definitions for
supporting the Broadband Forum requirements on subscriber
management via the PPPoE protocol 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).
Copyright (c) 2017, 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-383; see
the TR itself for full legal notices.";
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>";
}
augment /if:interfaces/if:interface {
when
"derived-from-or-self (if:type,
'bbfift:vlan-sub-interface')" {
description
"Applies only to VLAN sub-interfaces.";
}
description
"Additions for PPPoE Intermediate Agent on the VLAN
sub-interface.";
container pppoe {
presence
"Presence of this container indicates PPPoE is supported on
this interface.";
description
"PPPoE Intermediate Agent configuration parameters.";
leaf enable {
type boolean;
default "false";
description
"Enable PPPoE Intermediate Agent functionality.";
}
leaf profile-ref {
when "../enable = 'true'" {
description
"Applicable only when PPPoE Intermediate Agent
functionality is enabled.";
}
type leafref {
path "/bbf-pppoe-ia:pppoe-profiles/bbf-pppoe-ia:pppoe-profile/bbf-pppoe-ia:name";
}
mandatory true;
description
"Reference to the PPPoE configuration profile.";
}
} // container pppoe
}
container pppoe-profiles {
description
"PPPoE Intermediate Agent configuration profile.";
list pppoe-profile {
key "name";
description
"List containing the parameters for PPPoE Intermediate Agent
configuration.";
leaf name {
type bbf-yang:string-ascii64;
description "Name of the profile.";
}
container pppoe-vendor-specific-tag {
description
"Contains information that needs to be filled in the
vendor-specific tag - 0x0105.";
leaf-list subtag {
type enumeration {
enum "circuit-id" {
value 0;
description
"Add the sub-option Agent Circuit ID in the
vendor-specific tag with sub-option number 0x01.
The value inserted is the value of the leaf
circuit-id defined in the instance in the list
subscriber-profiles/subscriber-profile that is
associated with the interface, if any. If this leaf
is unknown, then a sub-option
Agent Circuit ID will be generated according to the
syntax defined in the leaf
default-circuit-id-syntax.";
reference
"TR-101i2 - Section 8.3";
}
enum "remote-id" {
value 1;
description
"Add the sub-option Agent Remote ID in the
vendor-specific tag with sub-option number 0x02.
The value inserted is the value of the leaf
remote-id defined in the instance in the list
subscriber-profiles/subscriber-profile that is
associated with the interface, if any. If this leaf
is unknown, then a sub-option
Agent Remote ID will be generated according to the
syntax defined in the leaf
default-remote-id-syntax.";
reference
"TR-101i2 - Section 8.3";
}
enum
"access-loop-characteristics" {
value 2;
description
"Access loop characteristics to be added in the
vendor-specific tag with sub-tag-numbers 0x81-0x8E
and 0x90.
The characteristics to be added to the sub-option are
controlled via the leaf access-loop-subtags";
reference
"TR-101i2 - Section 8.4";
}
}
min-elements 1;
description
"Identifies the sub-tags that should be part of the
vendor-specific tag.";
}
leaf default-circuit-id-syntax {
type bbf-yang:string-ascii63-or-empty;
default "";
description
"To be used to generate a sub-option Agent Circuit ID when
no circuit-id is provided for the VLAN sub-interface via
a referenced subscriber-profiles/subscriber-profile.
The syntax is a string of ASCII characters that
determines the actual value inserted in the sub-option.
Parts of the syntax that are recognized as predefined
keywords will be replaced by an actual value.";
reference
"TR-178 - R117";
}
leaf default-remote-id-syntax {
type bbf-yang:string-ascii63-or-empty;
default "";
description
"To be used to generate a sub-option Agent Remote ID when
no remote-id is provided for the VLAN sub-interface via a
referenced subscriber-profiles/subscriber-profile.
The syntax is a string of ASCII characters that
determines the actual value inserted in the sub-option.
Parts of the syntax that are recognized as predefined
keywords will be replaced by an actual value.";
reference
"TR-178 - R120";
}
leaf access-loop-subtags {
type bbf-subtype:broadband-line-characteristics;
default "";
description
"Access Loop sub-tags that are to be added in the
vendor-specific tag.";
reference
"TR-178 - R123";
}
leaf start-numbering-from-zero {
type boolean;
default "false";
description
"In case the default-circuit-id-syntax or
default-remote-id-syntax indicates a Slot or a Port
identification shall be added to the sub-tag value, then
this leaf determines if the slot/port numbering MUST
start from 0 or 1.";
reference
"TR-178 - R118";
}
leaf use-leading-zeroes {
type boolean;
default "false";
description
"In case the default-circuit-id-syntax or
default-remote-id-syntax indicates a Slot or a Port
identification shall be added to the sub-tag value, then
this leaf determines if the slot/port numbering MUST use
leading 0's or not, i.e. generate a fixed length string
or a string with only meaningful digits.";
reference
"TR-178 - R119 and TR-101i2 - R153";
}
} // container pppoe-vendor-specific-tag
} // list pppoe-profile
} // container pppoe-profiles
augment /if:interfaces-state/if:interface/if:statistics {
when
"derived-from-or-self(../if:type,
'bbfift:vlan-sub-interface')" {
description
"Applies to VLAN sub-interfaces.";
}
description
"PPPoE Intermediate Agent statistics.";
container pppoe {
presence
"This container is present if PPPoE Intermediate Agent
functionality is enabled on this interface.";
description
"Container presents the packet statistics related to the PPPoE
Intermediate Agent.";
leaf in-error-packets-from-client {
type yang:counter32;
description
"Invalid PPPoE discovery stage packets received on the
interface. The packets are received from a PPPoE Client
connected to it (directly or indirectly through a network).
Discontinuities in the counter can occur at
re-initialization of the management system, and/or when the
PPPoE Intermediate Agent functionality is disabled/
enabled.";
}
leaf in-error-packets-from-server {
type yang:counter32;
description
"Invalid PPPoE discovery stage packets received on the
interface. The packets are received from a PPPoE Server
connected to it (directly or indirectly through a network).
Discontinuities in the counter can occur at
re-initialization of the management system, and/or when the
PPPoE Intermediate Agent functionality is disabled/
enabled.";
}
leaf in-packets-from-client {
type yang:counter32;
description
"Valid PPPoE discovery stage packets received on the
interface. The packets are received from a PPPoE Client
connected to it (directly or indirectly through a network).
Discontinuities in the counter can occur at
re-initialization of the management system, and/or when the
PPPoE Intermediate Agent functionality is disabled/
enabled.";
}
leaf in-packets-from-server {
type yang:counter32;
description
"Valid PPPoE discovery stage packets received on the
interface. The packets are received from a PPPoE Server
connected to it (directly or indirectly through a network).
Discontinuities in the counter can occur at
re-initialization of the management system, and/or when the
PPPoE Intermediate Agent functionality is disabled/
enabled.";
}
leaf out-packets-to-server {
type yang:counter32;
description
"Valid PPPoE discovery stage packets sent to the
interface. The packets are sent to a PPPoE Server
connected to it (directly or indirectly through a network).
Discontinuities in the counter can occur at
re-initialization of the management system, and/or when the
PPPoE Intermediate Agent functionality is disabled/
enabled.";
}
leaf out-packets-to-client {
type yang:counter32;
description
"Valid PPPoE discovery stage packets sent to the
interface. The packets are sent to a PPPoE Client
connected to it (directly or indirectly through a network).
Discontinuities in the counter can occur at
re-initialization of the management system, and/or when the
PPPoE Intermediate Agent functionality is disabled/
enabled.";
}
leaf vendor-specific-tag-inserted-packets-to-server {
type yang:counter32;
description
"PPPoE discovery stage packets from a Client to a Server
that pass this interface and into which the PPPoE
Intermediate Agent functionality inserted the
vendor-specific tag.
Discontinuities in the counter can occur at
re-initialization of the management system, and/or when the
PPPoE Intermediate Agent functionality is disabled/
enabled.";
}
leaf vendor-specific-tag-removed-packets-to-client {
type yang:counter32;
description
"PPPoE discovery stage packets from a Server to a Client
that pass this interface and from which the PPPoE
Intermediate Agent functionality removed the
vendor-specific tag.
Discontinuities in the counter can occur at
re-initialization of the management system, and/or when the
PPPoE Intermediate Agent functionality is disabled/
enabled.";
}
leaf outgoing-mtu-exceeded-packets-from-client {
type yang:counter32;
description
"PPPoE discovery stage packets from a Client that are
dropped because the PPPoE Message size after
adding the vendor-specific tag would exceed the MTU
of the outgoing interface.
Discontinuities in the counter can occur at
re-initialization of the management system, and/or when the
PPPoE Intermediate Agent functionality is disabled/
enabled.";
reference
"TR-254 - section 5.4.2.1";
}
} // container pppoe
}
} // module bbf-pppoe-intermediate-agent