module ietf-logical-network-element { yang-version 1.1; // namespace namespace "urn:ietf:params:xml:ns:yang:ietf-logical-network-element"; prefix lne; // import some basic types import ietf-interfaces { prefix if; reference "RFC 8343: A YANG Data Model for Interface Management"; } import ietf-yang-schema-mount { prefix yangmnt; reference "RFC 8528: YANG Schema Mount"; } organization "IETF Routing Area (rtgwg) Working Group"; contact "WG Web: WG List: Author: Lou Berger Author: Christian Hopps Author: Acee Lindem Author: Dean Bogdanovic "; description "This module is used to support multiple logical network elements on a single physical or virtual system. Copyright (c) 2019 IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info). This version of this YANG module is part of RFC 8530; see the RFC itself for full legal notices."; revision 2019-01-25 { description "Initial revision."; reference "RFC 8530: YANG Model for Logical Network Elements"; } // top level device definition statements container logical-network-elements { description "Allows a network device to support multiple logical network element (device) instances."; list logical-network-element { key "name"; description "List of logical network elements."; leaf name { type string; description "Device-wide unique identifier for the logical network element."; } leaf managed { type boolean; default "true"; description "True if the host can access LNE information using the root mount point. This value may not be modifiable in all implementations."; } leaf description { type string; description "Description of the logical network element."; } container root { description "Container for mount point."; yangmnt:mount-point "root" { description "Root for models supported per logical network element. This mount point may or may not be inline based on the server implementation. It SHALL always contain a YANG library and interfaces instance. When the associated 'managed' leaf is 'false', any operation that attempts to access information below the root SHALL fail with an error-tag of 'access-denied' and an error-app-tag of 'lne-not-managed'."; } } } } // augment statements augment "/if:interfaces/if:interface" { description "Add a node for the identification of the logical network element associated with an interface. Applies to interfaces that can be assigned per logical network element. Note that a standard error will be returned if the identified leafref isn't present. If an interface cannot be assigned for any other reason, the operation SHALL fail with an error-tag of 'operation-failed' and an error-app-tag of 'lne-assignment-failed'. A meaningful error-info that indicates the source of the assignment failure SHOULD also be provided."; leaf bind-lne-name { type leafref { path "/logical-network-elements/logical-network-element/name"; } description "Logical network element ID to which the interface is bound."; } } // notification statements notification bind-lne-name-failed { description "Indicates an error in the association of an interface to an LNE. Only generated after success is initially returned when bind-lne-name is set."; leaf name { type leafref { path "/if:interfaces/if:interface/if:name"; } mandatory true; description "Contains the interface name associated with the failure."; } leaf bind-lne-name { type leafref { path "/if:interfaces/if:interface/lne:bind-lne-name"; } mandatory true; description "Contains the bind-lne-name associated with the failure."; } leaf error-info { type string; description "Optionally, indicates the source of the assignment failure."; } } }