summaryrefslogtreecommitdiffstats
path: root/src/share/yang/modules/ietf-dhcpv6-relay@2018-09-04.yang
diff options
context:
space:
mode:
Diffstat (limited to 'src/share/yang/modules/ietf-dhcpv6-relay@2018-09-04.yang')
-rw-r--r--src/share/yang/modules/ietf-dhcpv6-relay@2018-09-04.yang476
1 files changed, 476 insertions, 0 deletions
diff --git a/src/share/yang/modules/ietf-dhcpv6-relay@2018-09-04.yang b/src/share/yang/modules/ietf-dhcpv6-relay@2018-09-04.yang
new file mode 100644
index 0000000..b480ff4
--- /dev/null
+++ b/src/share/yang/modules/ietf-dhcpv6-relay@2018-09-04.yang
@@ -0,0 +1,476 @@
+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";
+ }
+
+ /*
+ * Data Nodes
+ */
+
+ 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 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";
+ }
+ }
+ uses dhcpv6-types:vendor-infor;
+ }
+
+ 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 relay-if {
+ // if - This should reference an entry in ietf-interfaces
+ 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 fulfil the configfuration. 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 enable {
+ type boolean;
+ mandatory true;
+ description "whether this interface is enabled";
+ }
+ */
+
+ 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";
+ }
+ }
+ }
+ }
+
+
+ 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 fulfil the configfuration. 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 {
+ // if - need to look at if/how we model these. If they are
+ // going to be modelled, then they should be ro state
+ // entries (we're not trying to configure routes here)
+ 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 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 recevied 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 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 recevied 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";
+ }
+ }
+ }
+ }
+
+ /*
+ * Notifications
+ */
+
+ 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";
+ }
+ }
+ }
+ }
+}