netconfcentral logo

ietf-lisp

HTML

ietf-lisp@2017-07-01



  module ietf-lisp {

    yang-version 1;

    namespace
      "urn:ietf:params:xml:ns:yang:ietf-lisp";

    prefix lisp;

    import ietf-interfaces {
      prefix if;
    }
    import ietf-lisp-address-types {
      prefix lcaf;
    }
    import ietf-yang-types {
      prefix yang;
    }

    organization
      "IETF LISP (Locator/ID Separation Protocol) Working Group";

    contact "lisp@ietf.org";

    description
      "This YANG module defines the generic parameters for LISP.
     The module can be extended by vendors to define vendor-specific
     LISP parameters and policies.

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

    revision "2017-07-01" {
      description "Initial revision.";
      reference
        "https://tools.ietf.org/html/rfc6830";

    }


    identity lisp-role {
      base 
      description "LISP router role.";
    }

    identity itr {
      base lisp-role;
      description "LISP ITR.";
    }

    identity pitr {
      base lisp-role;
      description "LISP PITR.";
    }

    identity etr {
      base lisp-role;
      description "LISP ETR.";
    }

    identity petr {
      base lisp-role;
      description "LISP PETR.";
    }

    identity mapping-system {
      base 
      description "Mapping System interface";
    }

    identity single-node-mapping-system {
      base mapping-system;
      description
        "logically singular Map Server";
    }

    typedef mapping-system-ref {
      type identityref {
        base mapping-system;
      }
      description "Mapping System reference";
    }

    typedef lisp-role-ref {
      type identityref {
        base lisp-role;
      }
      description "LISP role reference";
    }

    typedef map-reply-action {
      type enumeration {
        enum "no-action" {
          value 0;
          description
            "Mapping is kept alive and no encapsulation occurs.";
        }
        enum "natively-forward" {
          value 1;
          description
            "Matching packets are not encapsulated or dropped but
           natively forwarded.";
        }
        enum "send-map-request" {
          value 2;
          description
            "Matching packets invoke Map-Requests.";
        }
        enum "drop" {
          value 3;
          description
            "Matching packets are dropped.";
        }
      }
      description
        "Defines the lisp map-cache ACT type";
      reference
        "https://tools.ietf.org/html/rfc6830#section-6.1.4";

    }

    typedef eid-id {
      type string;
      description
        "Type encoding of lisp-addresses to be generally used in EID
       keyed lists.";
    }

    typedef auth-key-type {
      type enumeration {
        enum "none" {
          value 0;
          description "No authentication.";
        }
        enum "hmac-sha-1-96" {
          value 1;
          description
            "HMAC-SHA-1-96 (RFC2404) authentication is used.";
        }
        enum "hmac-sha-256-128" {
          value 2;
          description
            "HMAC-SHA-256-128 (RFC4868) authentication is used.";
        }
      }
      description
        "Enumeration of the authentication mechanisms supported by
       LISP.";
      reference
        "https://tools.ietf.org/html/rfc6830#section-6.1.6";

    }

    typedef xtr-id-type {
      type binary {
        length "16";
      }
      description "128 bit xTR identifier.";
    }

    grouping locator-properties {
      description "Properties of a RLOC";
      leaf priority {
        type uint8;
        description "Locator priority.";
      }

      leaf weight {
        type uint8;
        description "Locator weight.";
      }

      leaf multicast-priority {
        type uint8;
        description
          "Locator's multicast priority";
      }

      leaf multicast-weight {
        type uint8;
        description
          "Locator's multicast weight";
      }
    }  // grouping locator-properties

    grouping locators-grouping {
      description
        "Group that defines a list of LISP locators.";
      list locator {
        key "id";
        description
          "List of routing locators";
        leaf id {
          type string {
            length "1..64";
          }
          description "Locator id";
        }

        container locator-address {
          description
            "The locator address provided in LISP canonincal
             address format.";
          uses lcaf:lisp-address;
        }  // container locator-address

        uses locator-properties;
      }  // list locator
    }  // grouping locators-grouping

    grouping local-locators-grouping {
      description
        "Group that defines a list of LISP locators.";
      list interface {
        key "interface-ref";
        description
          "The address type of the locator";
        leaf interface-ref {
          type if:interface-ref;
          description
            "The name of the interface supporting the locator.";
        }

        uses locator-properties;
      }  // list interface
    }  // grouping local-locators-grouping

    grouping mapping {
      description
        "Group that defines a LISP mapping.";
      container eid {
        description
          "End-host Identifier (EID) to be mapped to a list of
         locators";
        uses lcaf:lisp-address;
      }  // container eid

      leaf time-to-live {
        type uint32;
        units "minutes";
        description
          "Mapping validity period in minutes.";
      }

      leaf creation-time {
        type yang:date-and-time;
        description
          "Time when the mapping was created.";
      }

      leaf authoritative {
        type bits {
          bit A {
            position 0;
            description "Authoritative bit.";
          }
        }
        description
          "Bit that indicates if mapping comes from an
         authoritative source.";
      }

      leaf static {
        type boolean;
        default "false";
        description
          "This leaf should be true if the mapping is static.";
      }

      choice locator-list {
        description
          "list of locartors are either negative, or positive.";
        leaf map-reply-action {
          type map-reply-action;
          description
            "Forwarding action for a negative mapping.";
        }
        container rlocs {
          description
            "List of locators for a positive mapping.";
          uses locators-grouping;
        }  // container rlocs
      }  // choice locator-list
    }  // grouping mapping

    grouping mappings {
      description
        "Group that defines a list of LISP mappings.";
      list virtual-network {
        key "vni";
        description
          "Virtual network to which the mappings belong.";
        leaf vni {
          type lcaf:instance-id-type;
          description
            "Virtual network identifier.";
        }

        container mappings {
          description
            "Mappings within the virtual network.";
          list mapping {
            key "id";
            description
              "List of EID to RLOCs mappings.";
            leaf id {
              type eid-id;
              description
                "Id that uniquely identifies a mapping.";
            }

            uses mapping;
          }  // list mapping
        }  // container mappings
      }  // list virtual-network
    }  // grouping mappings

    container lisp {
      description
        "Parameters for the LISP subsystem.";
      container locator-sets {
        description
          "Container that defines a named locator set which can be
        referenced elsewhere.";
        list locator-set {
          key "locator-set-name";
          description
            "Multiple locator sets can be defined.";
          leaf locator-set-name {
            type string {
              length "1..64";
            }
            description "Locator set name";
          }

          choice locator-type {
            description
              "Locator sets can be based on local interfaces, or
             general locators.";
            case local-interface {
              description
                "List of locators in this set based on local
              interfaces.";
              uses local-locators-grouping;
            }  // case local-interface

            case general-locator {
              description
                "List of locators in this set based on lisp-address.";
              uses locators-grouping;
            }  // case general-locator
          }  // choice locator-type
        }  // list locator-set
      }  // container locator-sets

      container lisp-router-instances {
        description
          "Different LISP routers instantiated in the device";
        list lisp-router-instance {
          key "lisp-router-instance-id";
          description
            "Each entry contains parameters for a LISP router.";
          leaf lisp-router-instance-id {
            type int32;
            description
              "Arbitrary lisp-router id.";
          }

          list lisp-role {
            key "lisp-role-type";
            description
              "List of lisp device roles such as MS, MR, ITR,
            PITR, ETR or PETR.";
            leaf lisp-role-type {
              type lisp-role-ref;
              description
                "The type of LISP device - identity derived from the
               'lisp-device' base identity.";
            }
          }  // list lisp-role

          container lisp-router-id {
            when
              "../lisp-role/lisp-role-type = 'itr' or
                ../lisp-role/lisp-role-type = 'pitr' or
                ../lisp-role/lisp-role-type = 'etr' or
                ../lisp-role/lisp-role-type = 'petr'" {
              description
                "Only when ITR, PITR, ETR or PETR.";
            }
            description
              "Site-ID and xTR-ID of the device.";
            leaf site-id {
              type uint64;
              description "Site ID";
            }

            leaf xtr-id {
              type xtr-id-type;
              description "xTR ID";
            }
          }  // container lisp-router-id
        }  // list lisp-router-instance
      }  // container lisp-router-instances
    }  // container lisp
  }  // module ietf-lisp

Summary

  
  
Organization IETF LISP (Locator/ID Separation Protocol) Working Group
  
Module ietf-lisp
Version 2017-07-01
File ietf-lisp@2017-07-01.yang
  
Prefix lisp
Namespace urn:ietf:params:xml:ns:yang:ietf-lisp
  
Cooked /cookedmodules/ietf-lisp/2017-07-01
YANG /src/ietf-lisp@2017-07-01.yang
XSD /xsd/ietf-lisp@2017-07-01.xsd
  
Abstract This YANG module defines the generic parameters for LISP. The module can be extended by vendors to define vendor-specific LISP p...
  
Contact
lisp@ietf.org

Description

 
This YANG module defines the generic parameters for LISP.
The module can be extended by vendors to define vendor-specific
LISP parameters and policies.

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

Typedefs

Typedef Base type Abstract
auth-key-type enumeration Enumeration of the authentication mechanisms supported by LISP.
eid-id string Type encoding of lisp-addresses to be generally used in EID keyed lists.
lisp-role-ref identityref LISP role reference
map-reply-action enumeration Defines the lisp map-cache ACT type
mapping-system-ref identityref Mapping System reference
xtr-id-type binary 128 bit xTR identifier.

Groupings

Grouping Objects Abstract
local-locators-grouping interface Group that defines a list of LISP locators.
locator-properties priority weight multicast-priority multicast-weight Properties of a RLOC
locators-grouping locator Group that defines a list of LISP locators.
mapping eid time-to-live creation-time authoritative static locator-list Group that defines a LISP mapping.
mappings virtual-network Group that defines a list of LISP mappings.

Objects

Type Key
Mandatory config
Optional config
Not config
Object Type Abstract
lisp container Parameters for the LISP subsystem.
   lisp-router-instances container Different LISP routers instantiated in the device
      lisp-router-instance list Each entry contains parameters for a LISP router.
         lisp-role list List of lisp device roles such as MS, MR, ITR, PITR, ETR or PETR.
            lisp-role-type leaf The type of LISP device - identity derived from the 'lisp-device' base identity.
         lisp-router-id container Site-ID and xTR-ID of the device.
            site-id leaf Site ID
            xtr-id leaf xTR ID
         lisp-router-instance-id leaf Arbitrary lisp-router id.
   locator-sets container Container that defines a named locator set which can be referenced elsewhere.
      locator-set list Multiple locator sets can be defined.
         locator-set-name leaf Locator set name
         locator-type choice Locator sets can be based on local interfaces, or general locators.
            general-locator case List of locators in this set based on lisp-address.
               locator list List of routing locators
                  id leaf Locator id
                  locator-address container The locator address provided in LISP canonincal address format.
                     address choice Various LISP address types, including IP, MAC, and LCAF.
                     address-type leaf Type of the LISP address.
                        afi-list case afi-list
                           afi-list container AFI-List LCAF type.
                              address-list leaf-list List of AFI addresses.
                        application-data case application-data
                           application-data container Application Data LCAF type.
                              address leaf AFI address.
                              ip-tos leaf Type of service field.
                              local-port-high leaf High end of local port range.
                              local-port-low leaf Low end of local port range.
                              protocol leaf Protocol number.
                              remote-port-high leaf High end of remote port range.
                              remote-port-low leaf Low end of remote port range.
                        as-number case as-number
                        as-number-lcaf case as-number-lcaf
                           as-number-lcaf container AS Number LCAF type.
                              address leaf AFI address.
                              as leaf AS number.
                           as-number leaf AS Number.
                        distinguished-name case distinguished-name
                           distinguished-name leaf Distinguished Name address.
                        explicit-locator-path case explicit-locator-path
                           explicit-locator-path container Explicit Locator Path LCAF type.
                              hop list List of locator hops forming the explicit path.
                                 address leaf AFI address.
                                 hop-id leaf Unique identifier for the hop.
                                 lrs-bits leaf Flag bits per hop.
                        geo-coordinates case geo-coordinates
                           geo-coordinates container Geo-coordinates LCAF type.
                              address leaf AFI address.
                              altitude leaf Height relative to sea level in meters.
                              latitude leaf Bit that selects between North and South latitude.
                              latitude-degrees leaf Degrees of latitude.
                              latitude-minutes leaf Minutes of latitude.
                              latitude-seconds leaf Seconds of latitude.
                              longitude leaf Bit that selects between East and West longitude.
                              longitude-degrees leaf Degrees of longitude.
                              longitude-minutes leaf Minutes of longitude.
                              longitude-seconds leaf Seconds of longitude.
                        instance-id case instance-id
                           instance-id container Instance ID LCAF type.
                              address leaf AFI address.
                              iid leaf Instance ID value.
                              mask-length leaf Mask length.
                        ipv4 case ipv4
                        ipv4-prefix case ipv4-prefix
                           ipv4-prefix leaf IPv4 prefix.
                           ipv4 leaf IPv4 address.
                        ipv6 case ipv6
                        ipv6-prefix case ipv6-prefix
                           ipv6-prefix leaf IPv6 address.
                           ipv6 leaf IPv6 address.
                        key-value-address case key-value-address
                           key-value-address container Key/Value Address LCAF type.
                              key leaf Address as Key.
                              value leaf Address as Value.
                        mac case mac
                           mac leaf MAC address.
                        nat-traversal case nat-traversal
                           nat-traversal container NAT-Traversal LCAF type.
                              etr-udp-port leaf ETR UDP port.
                              global-etr-rloc leaf Global ETR RLOC address.
                              ms-rloc leaf Map-Server RLOC address.
                              ms-udp-port leaf Map-Server UDP port (set to 4342).
                              private-etr-rloc leaf Private ETR RLOC address.
                              rtr-rlocs leaf-list List of RTR RLOC addresses.
                        no-address case no-address
                           no-address leaf No address.
                        null-address case null-address
                           null-address container Null body LCAF type
                              address leaf AFI address.
                        service-path case service-path
                           service-path container Service Path LCAF type.
                              service-index leaf Service path index for NSH header
                              service-path-id leaf Service path identifier for the path for NSH header
                        source-dest-key case source-dest-key
                           source-dest-key container Source/Dest LCAF type.
                              dest leaf Destination address.
                              source leaf Source address.
                     virtual-network-id leaf Virtual Network Identifier (instance-id) of the address.
                  multicast-priority leaf Locator's multicast priority
                  multicast-weight leaf Locator's multicast weight
                  priority leaf Locator priority.
                  weight leaf Locator weight.
            local-interface case List of locators in this set based on local interfaces.
               interface list The address type of the locator
                  interface-ref leaf The name of the interface supporting the locator.
                  multicast-priority leaf Locator's multicast priority
                  multicast-weight leaf Locator's multicast weight
                  priority leaf Locator priority.
                  weight leaf Locator weight.