netconfcentral logo

ietf-lisp-etr@2017-07-01



  module ietf-lisp-etr {

    yang-version 1;

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

    prefix lisp-etr;

    import ietf-lisp {
      prefix lisp;
    }
    import ietf-lisp-address-types {
      prefix lcaf;
    }
    import ietf-inet-types {
      prefix inet;
    }

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

    contact "lisp@ietf.org";

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

     Copyright (c) 2015 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";

    }


    augment /lisp:lisp/lisp:lisp-router-instances/lisp:lisp-router-instance {
      when
        "lisp:lisp-role/lisp:lisp-role-type = 'lisp:etr' or
          lisp:lisp-role/lisp:lisp-role-type = 'lisp:petr'" {
        description
          "Augment is valid when LISP device type is (P)ETR.";
      }
      description
        "This augments LISP devices list with (P)ETR specific
       parameters.";
      container etr {
        presence
          "LISP (P)ETR operation enabled";
        description "(P)ETR parameters.";
        container map-servers {
          when
            "../../lisp:lisp-role/lisp:lisp-role-type = 'lisp:etr'" {
            description
              "Container exists only when LISP device type is ETR.";
          }
          description
            "Map-Servers that the ETR uses.";
          list map-server {
            key "ms-address";
            description
              "Each Map-Server within the list of Map-Servers.";
            leaf ms-address {
              type inet:ip-address;
              description
                "Map-Server address.";
            }

            leaf auth-key {
              type string;
              description
                "Map-Server authentication key.";
            }

            leaf auth-key-type {
              type lisp:auth-key-type;
              description
                "Map-Server authentication type.";
            }
          }  // list map-server
        }  // container map-servers

        container local-eids {
          when
            "../../lisp:lisp-role/lisp:lisp-role-type = 'lisp:etr'" {
            description
              "Container exists only when LISP device type is ETR.";
          }
          description
            "Virtual networks served by the ETR.";
          list virtual-network {
            key "vni";
            description
              "Virtual network for local-EIDs.";
            leaf vni {
              type lcaf:instance-id-type;
              description
                "Virtual network identifier.";
            }

            container eids {
              description
                "EIDs served by the ETR.";
              list local-eid {
                key "id";
                min-elements 1;
                description
                  "List of local EIDs.";
                leaf id {
                  type lisp:eid-id;
                  description
                    "Unique id of local EID.";
                }

                container eid-address {
                  description
                    "EID address in generic LISP address format.";
                  uses lcaf:lisp-address;
                }  // container eid-address

                leaf rlocs {
                  type leafref {
                    path "/lisp:lisp/lisp:locator-sets/lisp:locator-set/lisp:locator-set-name";
                  }
                  description
                    "Locator set mapped to this local EID.";
                }

                leaf record-ttl {
                  type uint32;
                  units "minutes";
                  description
                    "Validity period of the EID to RLOCs mapping provided
                  in Map-Replies.";
                }

                leaf want-map-notify {
                  type boolean;
                  default "true";
                  description
                    "Flag which if set in a Map-Register requests that a
                  Map-Notify be sent in response.";
                }

                leaf proxy-reply {
                  type boolean;
                  default "false";
                  description
                    "Flag which if set in a Map-Register requests that the
                  Map-Server proxy Map-Replies for the ETR.";
                }

                leaf registration-interval {
                  type uint16;
                  units "seconds";
                  default "60";
                  description
                    "Interval between consecutive Map-Register messages.";
                }
              }  // list local-eid
            }  // container eids
          }  // list virtual-network
        }  // container local-eids
      }  // container etr
    }
  }  // module ietf-lisp-etr