| module org-openroadm-lldp { | |
| namespace "http://org/openroadm/lldp"; | |
| prefix org-openroadm-lldp; | |
| import ietf-inet-types { | |
| prefix inet; | |
| } | |
| import org-openroadm-device { | |
| prefix org-openroadm-device; | |
| } | |
| import iana-afn-safi { | |
| prefix ianaaf; | |
| } | |
| import org-openroadm-resource-types { | |
| prefix org-openroadm-resource-types; | |
| } | |
| import ietf-yang-types { | |
| prefix yang; | |
| } | |
| 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 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"; | |
| } | |
| } | |
| description | |
| "LLDP feature Enable/Disable per NE"; | |
| default "enable"; | |
| } | |
| leaf msgTxInterval { | |
| type uint16 { | |
| range "5..32768"; | |
| } | |
| description | |
| "LLDP frame Retransmit Interval in seconds"; | |
| default "30"; | |
| } | |
| leaf msgTxHoldMultiplier { | |
| type uint8 { | |
| range "2..10"; | |
| } | |
| description | |
| "TTL value for the TLVs transmitter over wire in seconds"; | |
| default "4"; | |
| } | |
| } | |
| list port-config { | |
| description | |
| "LLDP port configurations"; | |
| key "ifName"; | |
| 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"; | |
| } | |
| } | |
| description | |
| "LLDP enable per port basis"; | |
| default "txandrx"; | |
| } | |
| } | |
| container nbr-list { | |
| description | |
| "LLDP Oper data - Neighbour List information"; | |
| config false; | |
| list if-name { | |
| key "ifName"; | |
| leaf ifName { | |
| type string; | |
| description | |
| "Ethernet interface name where LLDP runs"; | |
| } | |
| uses nbr-info-grp; | |
| } | |
| } | |
| } | |
| } | |
| 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'"; | |
| uses lldp-container; | |
| } | |
| 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; | |
| } | |
| } | |
| } |