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.";
}
}
}