netconfcentral logo

ietf-logical-network-element@2017-12-04



  module ietf-logical-network-element {

    yang-version 1.1;

    namespace
      "urn:ietf:params:xml:ns:yang:ietf-logical-network-element";

    prefix lne;

    import ietf-interfaces {
      prefix if;
      reference
        "RFC 7223: A YANG Data Model for Interface Management";


    }
    import ietf-yang-schema-mount {
      prefix yangmnt;
      reference
        "draft-ietf-netmod-schema-mount: YANG Schema Mount";


    }

    organization
      "IETF Routing Area (rtgwg) Working Group";

    contact
      "WG Web:   <http://tools.ietf.org/wg/rtgwg/>
     WG List:  <mailto:rtgwg@ietf.org>

     Author:   Lou Berger
               <mailto:lberger@labn.net>
     Author:   Christan Hopps
               <mailto:chopps@chopps.org>
     Author:   Acee Lindem
               <mailto:acee@cisco.com>
     Author:   Dean Bogdanovic
               <mailto:ivandean@gmail.com>";

    description
      "This module is used to support multiple logical network
     elements on a single physical or virtual system.

     Copyright (c) 2017 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 XXXX; see
     the RFC itself for full legal notices.";

    revision "2017-12-04" {
      description "Initial revision.";
      reference
        "RFC TBD";

    }


    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
           my not be modifiable in all implementations.";
        }

        leaf description {
          type string;
          description
            "Description of the logical network element.";
        }

        container root {
          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'.";
          }
          description
            "Container for mount point.";
        }  // container root
      }  // list logical-network-element
    }  // container logical-network-elements

    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 on a per logical network element basis.

       Note that a standard error will be returned if the
       identified leafref isn't present.  If an interfaces 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 interface is bound.";
      }
    }

    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.";
      }
    }  // notification bind-lne-name-failed
  }  // module ietf-logical-network-element