All Downloads are FREE. Search and download functionalities are using the official Maven repository.

[email protected] Maven / Gradle / Ivy

There is a newer version: 14.0.4
Show newest version
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.";
    }
  }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy