netconfcentral logo

ietf-dhcpv6-relay

HTML

ietf-dhcpv6-relay@2018-09-04



  module ietf-dhcpv6-relay {

    yang-version 1.1;

    namespace
      "urn:ietf:params:xml:ns:yang:ietf-dhcpv6-relay";

    prefix dhcpv6-relay;

    import ietf-inet-types {
      prefix inet;
    }
    import ietf-dhcpv6-options {
      prefix dhcpv6-options;
    }
    import ietf-dhcpv6-types {
      prefix dhcpv6-types;
    }
    import ietf-interfaces {
      prefix if;
    }

    organization
      "IETF DHC (Dynamic Host Configuration) Working group";

    contact
      "cuiyong@tsinghua.edu.cn
     lh.sunlinh@gmail.com
     ian.farrer@telekom.de
     sladjana.zechlin@telekom.de
     hezihao9512@gmail.com";

    description
      "This model defines a YANG data model that can be
     used to configure and manage a DHCPv6 relay.";

    revision "2018-09-04" {
      description "";
      reference
        "I-D: draft-ietf-dhc-dhcpv6-yang";

    }

    revision "2018-03-04" {
      description
        "Resolved most issues on the DHC official
    github";
      reference
        "I-D: draft-ietf-dhc-dhcpv6-yang";

    }

    revision "2017-12-22" {
      description
        "Resolve most issues on Ian's github.";
      reference
        "I-D: draft-ietf-dhc-dhcpv6-yang";

    }

    revision "2017-11-24" {
      description
        "First version of the separated relay specific
       YANG model.";
      reference
        "I-D: draft-ietf-dhc-dhcpv6-yang";

    }


    container relay {
      presence "Enables the relay";
      description "DHCPv6 relay portion";
      container relay-config {
        description
          "This container contains the configuration data
        of the relay.";
        container relay-attributes {
          description
            "A container describes some basic attributes of the relay
           agent including some relay agent specific options data that
           need to be configured previously.
           Such options include Remote-Id option and Subscriber-Id
           option.";
          leaf name {
            type string;
            description "Relay agent name";
          }

          leaf description {
            type string;
            description
              "Textual description of the relay agent";
          }

          leaf-list dest-addrs {
            type inet:ipv6-address;
            description
              "Each DHCPv6 relay agent may be configured with a list
             of destination addresses.
             This node defines such a list of IPv6 addresses that
             may include unicast addresses, multicast addresses or
             other addresses.";
          }

          list subscribers {
            key "subscriber";
            description "Subscribers";
            leaf subscriber {
              type uint8;
              mandatory true;
              description "Subscriber";
            }

            leaf subscriber-id {
              type string;
              mandatory true;
              description "Subscriber id";
            }
          }  // list subscribers

          list remote-host {
            key "ent-num";
            description "Remote host";
            leaf ent-num {
              type uint32;
              mandatory true;
              description
                "Enterprise number";
            }

            leaf remote-id {
              type string;
              mandatory true;
              description "Remote id";
            }
          }  // list remote-host

          uses dhcpv6-types:vendor-infor;
        }  // container relay-attributes

        container rsoo-option-sets {
          description
            "DHCPv6 relay agent could provide some information that would
          be useful to DHCPv6 client.
          Since relay agent cannot provide options directly to the
          client, RSOO-enabled options are defined to propose options
          for the server to send to the client.
          This container models such RSOO-enabled options.";
          reference
            "RFC6422";

          list option-set {
            key "option-set-id";
            description
              "This list under the 'rsoo-option-sets' container is similar
             to the that defined in server module.
             It allows the relay to implement several sets of RSOO-enabled
             options for different interfaces.
             The list only includes the EAP Re-authentication Protocol
             (ERP) Local Domain Name DHCPv6 Option defined in RFC6440,
             since it is the only one RSOO-enabled options accepted by
             IANA so far.";
            leaf option-set-id {
              type uint32;
              description "Option sed id";
            }

            uses dhcpv6-options:relay-supplied-option-definitions;
          }  // list option-set
        }  // container rsoo-option-sets

        list relay-if {
          key "if-name";
          description
            "A relay agent may have several interfaces, we should provide
         a way to configure and manage parameters on the interface-level.
         A list that describes specific interfaces and their corresponding
         parameters is employed to fulfill the configuration. Here we use
         a string called 'if-name' as the key of list.";
          leaf if-name {
            type if:interface-ref;
            mandatory true;
            description "Interface name";
          }

          leaf interface-id {
            type string;
            description "Interface id";
          }

          leaf ipv6-address {
            type inet:ipv6-address;
            description
              "IPv6 address for this interface";
          }

          leaf rsoo-option-set-id {
            type leafref {
              path "/relay/relay-config/rsoo-option-sets/option-set/option-set-id";
            }
            description
              "Configured Relay Supplied Option set";
          }

          list next-entity {
            key "dest-addr";
            description
              "This node defines a list that is used to describe the
             next hop entity of this relay distinguished by their
             addresses.";
            leaf dest-addr {
              type inet:ipv6-address;
              mandatory true;
              description "Destination addr";
            }

            leaf available {
              type boolean;
              mandatory true;
              description
                "Whether the next entity is available or not";
            }

            leaf multicast {
              type boolean;
              mandatory true;
              description
                "Whether the address is multicast or not";
            }

            leaf server {
              type boolean;
              mandatory true;
              description
                "Whether the next entity is a server";
            }
          }  // list next-entity
        }  // list relay-if
      }  // container relay-config

      container relay-state {
        config false;
        description "State data of relay";
        list relay-if {
          key "if-name";
          description
            "A relay agent may have several interfaces, we should provide
         a way to configure and manage parameters on the interface-level.
         A list that describes specific interfaces and their corresponding
         parameters is employed to fulfill the configuration. Here we use
         a string called 'if-name' as the key of list.";
          leaf if-name {
            type string;
            mandatory true;
            description "Interface name";
          }

          list pd-route {
            key "pd-route-id";
            description "pd route";
            leaf pd-route-id {
              type uint8;
              mandatory true;
              description "PD route id";
            }

            leaf requesting-router-id {
              type uint32;
              mandatory true;
              description
                "Requesting router id";
            }

            leaf delegating-router-id {
              type uint32;
              mandatory true;
              description
                "Delegating router id";
            }

            leaf next-router {
              type inet:ipv6-address;
              mandatory true;
              description "Next router";
            }

            leaf last-router {
              type inet:ipv6-address;
              mandatory true;
              description "Previous router";
            }
          }  // list pd-route

          list next-entity {
            key "dest-addr";
            description
              "This node defines a list that is used to
            describe the next hop entity of this relay agent.
            Different entities are distinguished by their
            addresses.";
            leaf dest-addr {
              type inet:ipv6-address;
              mandatory true;
              description "destination addr";
            }

            container packet-stats {
              description
                "packet statistics";
              leaf solicit-rvd-count {
                type uint32;
                mandatory true;
                description
                  "solicit received counter";
              }

              leaf request-rvd-count {
                type uint32;
                mandatory true;
                description
                  "request received counter";
              }

              leaf renew-rvd-count {
                type uint32;
                mandatory true;
                description
                  "renew received counter";
              }

              leaf rebind-rvd-count {
                type uint32;
                mandatory true;
                description
                  "rebind received counter";
              }

              leaf decline-rvd-count {
                type uint32;
                mandatory true;
                description
                  "decline received counter";
              }

              leaf release-rvd-count {
                type uint32;
                mandatory true;
                description
                  "release received counter";
              }

              leaf info-req-rvd-count {
                type uint32;
                mandatory true;
                description
                  "information request counter";
              }

              leaf relay-for-rvd-count {
                type uint32;
                mandatory true;
                description
                  "relay forward received counter";
              }

              leaf relay-rep-rvd-count {
                type uint32;
                mandatory true;
                description
                  "relay reply received counter";
              }

              leaf packet-to-cli-count {
                type uint32;
                mandatory true;
                description
                  "packet to client counter";
              }

              leaf adver-sent-count {
                type uint32;
                mandatory true;
                description
                  "advertisement sent counter";
              }

              leaf confirm-sent-count {
                type uint32;
                mandatory true;
                description
                  "confirm sent counter";
              }

              leaf reply-sent-count {
                type uint32;
                mandatory true;
                description
                  "reply sent counter";
              }

              leaf reconfig-sent-count {
                type uint32;
                mandatory true;
                description
                  "reconfigure sent counter";
              }

              leaf relay-for-sent-count {
                type uint32;
                mandatory true;
                description
                  "relay forward sent counter";
              }

              leaf relay-rep-sent-count {
                type uint32;
                mandatory true;
                description
                  "relay reply sent counter";
              }
            }  // container packet-stats
          }  // list next-entity
        }  // list relay-if

        container relay-stats {
          config false;
          description "Relay statistics";
          leaf cli-packet-rvd-count {
            type uint32;
            mandatory true;
            description
              "Client packet received counter";
          }

          leaf relay-for-rvd-count {
            type uint32;
            mandatory true;
            description
              "Relay forward received counter";
          }

          leaf relay-rep-rvd-count {
            type uint32;
            mandatory true;
            description
              "Relay reply received counter";
          }

          leaf packet-to-cli-count {
            type uint32;
            mandatory true;
            description
              "Packet to client counter";
          }

          leaf relay-for-sent-count {
            type uint32;
            mandatory true;
            description
              "Relay forward sent counter";
          }

          leaf relay-rep-sent-count {
            type uint32;
            mandatory true;
            description
              "Relay reply sent counter";
          }

          leaf discarded-packet-count {
            type uint32;
            mandatory true;
            description
              "Discarded packet counter";
          }
        }  // container relay-stats
      }  // container relay-state
    }  // container relay

    notification notifications {
      description
        "DHCPv6 relay notification module";
      container dhcpv6-relay-event {
        description "DHCPv6 relay event";
        container topo-changed {
          description
            "Raised when the topology of the relay agent is changed.";
          leaf relay-if-name {
            type string;
            mandatory true;
            description
              "Relay interface name";
          }

          leaf first-hop {
            type boolean;
            mandatory true;
            description "First hop";
          }

          leaf last-entity-addr {
            type inet:ipv6-address;
            mandatory true;
            description
              "Last entity address";
          }
        }  // container topo-changed
      }  // container dhcpv6-relay-event
    }  // notification notifications
  }  // module ietf-dhcpv6-relay

Summary

  
  
Organization IETF DHC (Dynamic Host Configuration) Working group
  
Module ietf-dhcpv6-relay
Version 2018-09-04
File ietf-dhcpv6-relay@2018-09-04.yang
  
Prefix dhcpv6-relay
Namespace urn:ietf:params:xml:ns:yang:ietf-dhcpv6-relay
  
Cooked /cookedmodules/ietf-dhcpv6-relay/2018-09-04
YANG /src/ietf-dhcpv6-relay@2018-09-04.yang
XSD /xsd/ietf-dhcpv6-relay@2018-09-04.xsd
  
Abstract This model defines a YANG data model that can be used to configure and manage a DHCPv6 relay.
  
Contact
cuiyong@tsinghua.edu.cn
lh.sunlinh@gmail.com
ian.farrer@telekom.de
sladjana.zechlin@telekom.de
hezihao9512@gmail.com

Description

 
This model defines a YANG data model that can be
used to configure and manage a DHCPv6 relay.

Objects

Type Key
Mandatory config
Optional config
Not config
Object Type Abstract
relay container DHCPv6 relay portion
   relay-config container This container contains the configuration data of the relay.
      relay-attributes container A container describes some basic attributes of the relay agent including some relay agent specific options data that need to be configured previously. Such options include Remote-Id option and Subscriber-Id option.
         description leaf Textual description of the relay agent
         dest-addrs leaf-list Each DHCPv6 relay agent may be configured with a list of destination addresses. This node defines such a list of IPv6 addresses that may include unicast addresses, multicast addresses or other addresses.
         name leaf Relay agent name
         remote-host list Remote host
            ent-num leaf Enterprise number
            remote-id leaf Remote id
         subscribers list Subscribers
            subscriber leaf Subscriber
            subscriber-id leaf Subscriber id
         vendor-info container ent-num data
            data leaf-list specific vendor info
            ent-num leaf enterprise number
      relay-if list A relay agent may have several interfaces, we should provide a way to configure and manage parameters on the interface-level. A list that describes specific interfaces and their corresponding parameters is employed to fulfill the configuration. Here we us...
         if-name leaf Interface name
         interface-id leaf Interface id
         ipv6-address leaf IPv6 address for this interface
         next-entity list This node defines a list that is used to describe the next hop entity of this relay distinguished by their addresses.
            available leaf Whether the next entity is available or not
            dest-addr leaf Destination addr
            multicast leaf Whether the address is multicast or not
            server leaf Whether the next entity is a server
         rsoo-option-set-id leaf Configured Relay Supplied Option set
      rsoo-option-sets container DHCPv6 relay agent could provide some information that would be useful to DHCPv6 client. Since relay agent cannot provide options directly to the client, RSOO-enabled options are defined to propose options for the server to send to the client. This contai...
         option-set list This list under the 'rsoo-option-sets' container is similar to the that defined in server module. It allows the relay to implement several sets of RSOO-enabled options for different interfaces. The list only includes the EAP Re-authentication Protocol (ER...
            erp-local-domain-name-option container OPTION_ERP_LOCAL_DOMAIN_NAME (65) DHCPv6 ERP Local Domain Name Option
               erp-for-client list erp for client
                  cli-id leaf client id
                  duid container Sets the DUID
                     duid-type choice Selects the format for the DUID.
                        duid-en case DUID Assigned by Vendor Based on Enterprise Number (Type 2 - DUID-EN)
                           duid-en-enterprise-number leaf Vendor's registered Private Enterprise Number as maintained by IANA
                           duid-en-identifier leaf Identifier, unique to the device that is using it
                        duid-ll case DUID Based on Link-layer Address (Type 3 - DUID-LL)
                           duid-ll-hardware-type leaf Hardware type as assigned by IANA (RFC826).
                           duid-ll-link-layer-addr leaf Link-layer address as described in RFC2464
                        duid-llt case DUID Based on Link-layer Address Plus Time (Type 1 - DUID-LLT)
                           duid-llt-hardware-type leaf Hardware type as assigned by IANA (RFC826).
                           duid-llt-link-layer-addr leaf Link-layer address as described in RFC2464
                           duid-llt-time leaf The time value is the time that the DUID is generated represented in seconds since midnight (UTC), January 1, 2000, modulo 2^32.
                        duid-unknown case DUID based on free raw bytes
                           data leaf The bits to be used as the identifier
                        duid-uuid case DUID Based on Universally Unique Identifier (Type 4 - DUID-UUID)
                           uuid leaf A Universally Unique IDentifier in the string representation defined in RFC 4122. The canonical representation uses lowercase characters
                     type-code leaf Type code of this DUID
                  erp-name leaf erp name
            option-set-id leaf Option sed id
   relay-state container State data of relay
      relay-if list A relay agent may have several interfaces, we should provide a way to configure and manage parameters on the interface-level. A list that describes specific interfaces and their corresponding parameters is employed to fulfill the configuration. Here we us...
         if-name leaf Interface name
         next-entity list This node defines a list that is used to describe the next hop entity of this relay agent. Different entities are distinguished by their addresses.
            dest-addr leaf destination addr
            packet-stats container packet statistics
               adver-sent-count leaf advertisement sent counter
               confirm-sent-count leaf confirm sent counter
               decline-rvd-count leaf decline received counter
               info-req-rvd-count leaf information request counter
               packet-to-cli-count leaf packet to client counter
               rebind-rvd-count leaf rebind received counter
               reconfig-sent-count leaf reconfigure sent counter
               relay-for-rvd-count leaf relay forward received counter
               relay-for-sent-count leaf relay forward sent counter
               relay-rep-rvd-count leaf relay reply received counter
               relay-rep-sent-count leaf relay reply sent counter
               release-rvd-count leaf release received counter
               renew-rvd-count leaf renew received counter
               reply-sent-count leaf reply sent counter
               request-rvd-count leaf request received counter
               solicit-rvd-count leaf solicit received counter
         pd-route list pd route
            delegating-router-id leaf Delegating router id
            last-router leaf Previous router
            next-router leaf Next router
            pd-route-id leaf PD route id
            requesting-router-id leaf Requesting router id
      relay-stats container Relay statistics
         cli-packet-rvd-count leaf Client packet received counter
         discarded-packet-count leaf Discarded packet counter
         packet-to-cli-count leaf Packet to client counter
         relay-for-rvd-count leaf Relay forward received counter
         relay-for-sent-count leaf Relay forward sent counter
         relay-rep-rvd-count leaf Relay reply received counter
         relay-rep-sent-count leaf Relay reply sent counter

Notifications

Notification Abstract
notifications DHCPv6 relay notification module