diff options
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.yang | 476 |
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"; + } + } + } + } +} |