--- /dev/null
+module org-openroadm-lldp {
+ namespace "http://org/openroadm/lldp";
+ prefix org-openroadm-lldp;
+
+ import ietf-inet-types {
+ prefix inet;
+ revision-date 2013-07-15;
+ }
+ import org-openroadm-device {
+ prefix org-openroadm-device;
+ revision-date 2018-10-19;
+ }
+ import iana-afn-safi {
+ prefix ianaaf;
+ revision-date 2013-07-04;
+ }
+ import org-openroadm-resource-types {
+ prefix org-openroadm-resource-types;
+ revision-date 2018-10-19;
+ }
+ import ietf-yang-types {
+ prefix yang;
+ revision-date 2013-07-15;
+ }
+
+ organization
+ "Open ROADM MSA";
+ contact
+ "OpenROADM.org";
+ description
+ "YANG definitions for lldp protocol.
+
+ Copyright of the Members of the Open ROADM MSA Agreement dated (c) 2016,
+ AT&T Intellectual Property. All other rights reserved.
+
+ Redistribution and use in source and binary forms, with or without modification,
+ are permitted provided that the following conditions are met:
+
+ * Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+ * 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.
+ * Neither the Members of the Open ROADM MSA Agreement 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 MEMBERS OF THE OPEN ROADM MSA AGREEMENT ''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 THE MEMBERS OF THE OPEN ROADM MSA AGREEMENT 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.";
+
+ revision 2018-10-19 {
+ description
+ "Version 2.2.1";
+ }
+ revision 2017-12-15 {
+ description
+ "Version 2.2";
+ }
+ revision 2017-09-29 {
+ description
+ "Version 2.1";
+ }
+ revision 2017-07-28 {
+ description
+ "Version 2.0.1 - added revision-date to imports";
+ }
+ revision 2017-06-26 {
+ description
+ "Version 2.0";
+ }
+ revision 2016-10-14 {
+ description
+ "Version 1.2";
+ }
+
+ grouping nbr-info-grp {
+ description
+ "Display LLDP Neighbour ";
+ leaf remoteSysName {
+ type string;
+ description
+ "remote neighbour system name";
+ }
+ leaf remoteMgmtAddressSubType {
+ type ianaaf:address-family;
+ description
+ "remote neighbour Management Address Subtype Enumeration";
+ }
+ leaf remoteMgmtAddress {
+ type inet:ip-address;
+ description
+ "remote neighbour management address";
+ }
+ leaf remotePortIdSubType {
+ type enumeration {
+ enum "other" {
+ value 0;
+ description
+ "reserved";
+ }
+ enum "ifalias" {
+ value 1;
+ description
+ "Interface Alias (IfAlias - IETF RFC 2863) ";
+ }
+ enum "portcomponent" {
+ value 2;
+ description
+ "Port component (EntPhysicalAlias IETF RFC 4133)";
+ }
+ enum "macaddress" {
+ value 3;
+ description
+ "MAC address (IEEE Std 802) ";
+ }
+ enum "networkaddress" {
+ value 4;
+ description
+ "Network Address";
+ }
+ enum "ifname" {
+ value 5;
+ description
+ "Interface Name (ifName - IETF RFC 2863)";
+ }
+ enum "agentcircuitid" {
+ value 6;
+ description
+ "Agent Circuit Id (IETF RFC 3046)";
+ }
+ enum "local" {
+ value 7;
+ description
+ "Locally assigned";
+ }
+ }
+ description
+ "remote neighbour Port ID Subtype Enumeration";
+ }
+ leaf remotePortId {
+ type string;
+ description
+ "remote neighbour port Id";
+ }
+ leaf remoteChassisIdSubType {
+ type enumeration {
+ enum "reserved" {
+ value 0;
+ description
+ "reserved";
+ }
+ enum "chassiscomponent" {
+ value 1;
+ description
+ "Chassis component (EntPhysicalAlias IETF RFC 4133)";
+ }
+ enum "ifalias" {
+ value 2;
+ description
+ "Interface Alias (IfAlias - IETF RFC 2863) ";
+ }
+ enum "portcomponent" {
+ value 3;
+ description
+ "Port component (EntPhysicalAlias IETF RFC 4133)";
+ }
+ enum "macaddress" {
+ value 4;
+ description
+ "MAC address (IEEE Std 802) ";
+ }
+ enum "networkaddress" {
+ value 5;
+ description
+ "Network Address";
+ }
+ enum "ifname" {
+ value 6;
+ description
+ "Interface Name (ifName - IETF RFC 2863)";
+ }
+ enum "local" {
+ value 7;
+ description
+ "Locally assigned";
+ }
+ }
+ description
+ "Chassis ID Subtype Enumeration";
+ }
+ leaf remoteChassisId {
+ type string;
+ description
+ "remote neighbour Chassis Id";
+ }
+ }
+
+ grouping lldp-container {
+ container lldp {
+ description
+ "LLDP configurable and retrievable";
+ container global-config {
+ description
+ "LLDP global configurations";
+ leaf adminStatus {
+ type enumeration {
+ enum "disable" {
+ value 0;
+ description
+ "Disable the LLDP feature per NE";
+ }
+ enum "enable" {
+ value 1;
+ description
+ "Enable the LLDP feature per NE";
+ }
+ }
+ default "enable";
+ description
+ "LLDP feature Enable/Disable per NE";
+ }
+ leaf msgTxInterval {
+ type uint16 {
+ range "5..32768";
+ }
+ default "30";
+ description
+ "LLDP frame Retransmit Interval in seconds";
+ }
+ leaf msgTxHoldMultiplier {
+ type uint8 {
+ range "2..10";
+ }
+ default "4";
+ description
+ "TTL value for the TLVs transmitter over wire in seconds";
+ }
+ }
+ list port-config {
+ key "ifName";
+ description
+ "LLDP port configurations";
+ leaf ifName {
+ type leafref {
+ path "/org-openroadm-device:org-openroadm-device/org-openroadm-device:interface/org-openroadm-device:name";
+ }
+ description
+ "Ethernet interface name where LLDP runs";
+ }
+ leaf adminStatus {
+ type enumeration {
+ enum "disable" {
+ value 0;
+ description
+ "Disables the LLDP frames transmit and receive on specific interface";
+ }
+ enum "txandrx" {
+ value 1;
+ description
+ "Enable Transmit and Receive LLDP frames on specific interface";
+ }
+ }
+ default "txandrx";
+ description
+ "LLDP enable per port basis";
+ }
+ }
+ container nbr-list {
+ config false;
+ description
+ "LLDP Oper data - Neighbour List information";
+ list if-name {
+ key "ifName";
+ leaf ifName {
+ type string;
+ description
+ "Ethernet interface name where LLDP runs";
+ }
+ uses nbr-info-grp;
+ }
+ }
+ }
+ }
+
+ notification lldp-nbr-info-change {
+ description
+ "LLDP: Neighbor Information Changed
+ remoteSysName
+ remoteSysMgmtAddressSubType
+ remoteSysMgmtAddress
+ remotePortIdSubType
+ remotePortId
+ remoteChassisIdSubType
+ remoteChassisId
+ All of the above attributes are sent in event";
+ leaf notification-type {
+ type org-openroadm-resource-types:resource-notification-type;
+ }
+ leaf resource-type {
+ type org-openroadm-resource-types:resource-type-enum;
+ description
+ "resource-type for this notification is interface";
+ }
+ leaf resource {
+ type string;
+ description
+ "resource interface-name";
+ }
+ container nbr-info {
+ uses nbr-info-grp;
+ }
+ leaf event-time {
+ type yang:date-and-time;
+ }
+ }
+ augment "/org-openroadm-device:org-openroadm-device/org-openroadm-device:protocols" {
+ when "/org-openroadm-device:org-openroadm-device/org-openroadm-device:info/org-openroadm-device:node-type='rdm' or /org-openroadm-device:org-openroadm-device/org-openroadm-device:info/org-openroadm-device:node-type='ila'";
+ uses lldp-container;
+ }
+}