summaryrefslogtreecommitdiffstats
path: root/src/lib/yang/models/kea-dhcpv4-server.yang
diff options
context:
space:
mode:
Diffstat (limited to 'src/lib/yang/models/kea-dhcpv4-server.yang')
-rw-r--r--src/lib/yang/models/kea-dhcpv4-server.yang585
1 files changed, 0 insertions, 585 deletions
diff --git a/src/lib/yang/models/kea-dhcpv4-server.yang b/src/lib/yang/models/kea-dhcpv4-server.yang
deleted file mode 100644
index 9d6a7bbf22..0000000000
--- a/src/lib/yang/models/kea-dhcpv4-server.yang
+++ /dev/null
@@ -1,585 +0,0 @@
-module ietf-dhcpv4-server {
- yang-version 1.1;
- namespace "urn:ietf:params:xml:ns:yang:ietf-dhcpv4-server";
- prefix "dhcpv4-server";
-
- import ietf-inet-types {
- prefix inet;
- }
- import ietf-yang-types {
- prefix yang;
- }
- import ietf-dhcpv4-options {
- prefix dhcpv4-options;
- }
- import ietf-dhcpv4-types {
- prefix dhcpv4-types;
- }
- import ietf-interfaces {
- prefix if;
- }
-
- organization "ISC";
-
- contact
- "The Kea DHCPv4 model is now maitained by ISC, please send
- your comments to the kea-dev@lists.isc.org mailing list.
-
- The original author was Piotr Strzyżewski
- piotr.strzyzewski@polsl.pl";
-
- description
- "This model defines a YANG data model that can be
- used to configure and manage Kea DHCPv4 server.";
-
- revision 2018-07-14 {
- description "Initial revision; mostly based on DHCPv6 version";
- reference "";
- }
-
- /*
- * Typedef
- */
- typedef threshold {
- type union {
- type uint16 {
- range 0..100;
- }
- type enumeration {
- enum "disabled" {
- description "No threshold";
- }
- }
- }
- description "Threshold value in percent";
- }
-
- /*
- * Data Nodes
- */
- container server {
- presence "Enables the server";
- description "DHCPv4 server portion";
-
- /*
- * Configuration data
- */
- container server-config {
- description "This container contains the configuration data
- of a server.";
- container serv-attributes {
- description
- "This container contains basic attributes of a DHCPv4 server
- such as IPv4 address, server name and so on. Some optional
- functions that can be provided by the server are also included.";
- leaf name {
- type string;
- description "server's name";
- }
- leaf description {
- type string;
- description "description of the server.";
- }
- leaf-list ipv4-address {
- type inet:ipv4-address;
- description "server's IPv4 address.";
- }
- leaf-list interfaces-config {
- // Note - this should probably be references to
- // entries in the ietf-interfaces model
- type if:interface-ref;
- description "A leaf list to denote which one or more interfaces
- the server should listen on. The default value is to listen
- on all the interfaces. This node is also used to set a unicast
- address for the server to listen with a specific interface.
- For example, if someone want the server to listen on a unicast
- address with a specific interface, she/he can use the format
- like 'eth0/192.0.2.1'.";
- }
- uses dhcpv4-types:vendor-infor;
- }
-
- container option-sets {
- description "DHCPv4 employs various options to carry additional
- information and parameters in DHCP messages. This container defines
- all the possible options that need to be configured at the server
- side.";
- list option-set {
- key option-set-id;
- description "A server may allow different option sets to be
- configured for different conditions (i.e. different networks,
- clients and etc). This 'option-set' list enables various sets of
- options being defined and configured in a single server. Different
- sets are distinguished by the key called 'option-set-id'. All the
- possible options discussed above are defined in the list and each
- option is corresponding to a container. Since all the options in
- the list are optional, each container in this list has a 'presence'
- statement to indicate whether this option (container) will be
- included in the current option set or not. In addition, each container
- also has a 'if-feature' statement to indicate whether the server
- supports this option (container).";
- leaf option-set-id {
- type uint32;
- description "option set id";
- }
- uses dhcpv4-options:server-option-definitions;
- }
- }
-
- container network-ranges {
- description "This model supports a hierarchy to achieve dynamic
- configuration. This level represents IPv4 subnets. The top level is a global
- level which is defined as the container 'network-ranges'. The following
- levels are defined as sub-containers under it. The 'network-ranges'
- (which reprents pools within subnets) contains the parameters
- (e.g. option-sets) that would be allocated to all the clients served by
- this server.";
-
- leaf option-set-id {
- type leafref {
- path "/server/server-config/option-sets/option-set/option-set-id";
- }
- description
- "The ID field of relevant global option-set to be provisioned to
- clients.";
- }
- list network-range {
- key network-range-id;
- description
- "Under the 'network-ranges' container, a 'network-range' list
- is defined to configure the server at a network level which is also
- considered as the second level. Different network are identified by the
- key 'network-range-id'. This is because a server may have different
- configuration parameters (e.g. option sets) for different networks.";
- leaf network-range-id {
- type uint32;
- mandatory true;
- description "equivalent to subnet id";
- }
- leaf network-description {
- type string;
- description "description of the subnet";
- }
- leaf network-prefix {
- type inet:ipv4-prefix;
- mandatory true;
- description "subnet prefix";
- }
- leaf option-set-id {
- type leafref {
- path "/server/server-config/option-sets/option-set/option-set-id";
- }
- description "The ID field of relevant option-set to be provisioned to
- clients of this network-range.";
- }
-
- container address-pools {
- description
- "A container that describes the DHCPv4 server's
- address pools.";
- list address-pool {
- key pool-id;
- description "A DHCPv4 server can be configured with
- several address pools. This list defines such address pools
- which are distinguished by the key called 'pool-id'.";
- leaf pool-id {
- type uint32;
- mandatory true;
- description "pool id";
- }
- leaf pool-prefix {
- type inet:ipv4-prefix;
- mandatory true;
- description "pool prefix";
- }
- leaf start-address {
- type inet:ipv4-address-no-zone;
- mandatory true;
- description "start address";
- }
- leaf end-address {
- type inet:ipv4-address-no-zone;
- mandatory true;
- description "end address";
- }
- leaf renew-time {
- type uint32;
- units "seconds";
- description "renew time";
- }
- leaf rebind-time {
- type uint32;
- units "seconds";
- description "rebind time";
- }
-// leaf rapid-commit {
-// type boolean;
-// mandatory false;
-// description "A boolean value specifies whether the pool
-// supports client-server exchanges involving two messages.";
-// }
- leaf client-class {
- type string;
- description
- "If this leaf is specified, this pool will only serve
- the clients belonging to this class.";
- }
- leaf max-address-count {
- type threshold;
- description "maximum count of addresses that can
- be allocated in this pool. This value may be
- less than count of total addresses.";
- }
- leaf option-set-id {
- type leafref {
- path "/server/server-config/option-sets/option-set/option-set-id";
- }
- description "The ID field of relevant option-set to be
- provisioned to clients of this address-pool.";
- }
- }
- }
-
- container host-reservations {
- description
- "This container allows the server to make reservations at host level.";
- list host-reservation {
- key cli-id;
- description "This list allows the server to reserve addresses,
- prefixes, hostname and options for different clients.";
- leaf cli-id {
- type uint32;
- mandatory true;
- description "client id";
- }
-
- choice client-identifier {
- description "When making reservations, the server needs to choose a
- identifier to identify the client. Currently 'Client ID' and
- 'hardware address' are supported.";
- case client-id {
- description "Client ID";
- leaf client-ident {
- type string;
- description "Client ID";
- }
- }
- case hw-address {
- description "hardware address";
- leaf hardware-address {
- type yang:mac-address;
- description "MAC address of client";
- }
- }
- }
-
- leaf-list reserv-addr {
- type inet:ipv4-address-no-zone;
- description "reserved addr";
- }
-
- leaf hostname {
- type string;
- description "reserved hostname";
- }
-
- leaf option-set-id {
- type leafref {
- path "/server/server-config/option-sets/option-set/option-set-id";
- }
- description "The ID field of relevant option-set to be provisioned
- in the host reservation.";
- }
- }
- }
-
- }
- }
-
-/*
- container relay-opaque-paras {
- description "This container contains some opaque values in Relay Agent
- options that need to be configured on the server side only for value
- match. Such Relay Agent options include Interface-Id option,
- Remote-Id option and Subscriber-Id option.";
- list relays {
- key relay-name;
- description "relay agents";
- leaf relay-name {
- type string;
- mandatory true;
- description "relay agent name";
- }
- list interface-info {
- key if-name;
- description "interface info";
- leaf if-name {
- type string;
- mandatory true;
- description "interface name";
- }
- leaf interface-id {
- type string;
- mandatory true;
- description "interface id";
- }
- }
- list subscribers {
- key subscriber;
- description "subscribers";
- leaf subscriber {
- type uint32;
- 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";
- }
- }
- }
- }
-*/
- }
-
- /*
- * State data
- */
- container server-state {
- config "false";
- description "states of server";
- container network-ranges {
- description "This model supports a hierarchy to achieve dynamic configuration.
- That is to say we could configure the server at different levels through
- this model. The top level is a global level which is defined as the container
- 'network-ranges'. The following levels are defined as sub-containers under it.
- The 'network-ranges' contains the parameters (e.g. option-sets) that would be
- allocated to all the clients served by this server.";
- list network-range {
- key network-range-id;
- description "The ID field of relevant option-set to be provisioned
- to clients of this network-range.";
- leaf network-range-id {
- type uint32;
- mandatory true;
- description "equivalent to subnet id";
- }
- container address-pools {
- description "A container that describes the DHCPv4 server's address pools";
- list address-pool {
- key pool-id;
- description "A DHCPv4 server can be configured with
- several address pools. This list defines such address pools
- which are distinguished by the key called 'pool-id'.";
- leaf pool-id {
- type uint32;
- mandatory true;
- description "pool id";
- }
- leaf total-address-count {
- type uint32;
- mandatory true;
- description "count of total addresses in the pool";
- }
- leaf allocated-address-conut {
- type uint32;
- mandatory true;
- description "count of allocated addresses in the pool";
- }
- }
- list binding-info {
- key cli-id;
- description "A list that records a binding information for each DHCPv4
- client that has already been allocated IPv4 addresses.";
- leaf cli-id {
- type uint32;
- mandatory true;
- description "client id";
- }
- list cli-hw {
- key hw-address;
- description "client host id";
- leaf hw-address {
- type yang:mac-address;
- mandatory true;
- description "HW address";
- }
- leaf-list cli-addr {
- type inet:ipv4-address;
- description "client addr";
- }
- leaf pool-id {
- type uint32;
- mandatory true;
- description "pool id";
- }
- }
- }
- }
-
- container host-reservations {
- description "This container provides host reservations in the host level.";
- list binding-info {
- key cli-id;
- description
- "A list records a binding information for each DHCPv4
- client that has already been alloated IPv4 addresses or prefixes
- by host reservations.";
- leaf cli-id {
- type uint32;
- mandatory true;
- description "client id";
- }
- list cli-hw {
- key hw-address;
- description "client host id";
- leaf hw-address {
- type yang:mac-address;
- mandatory true;
- description "HW address";
- }
- leaf-list cli-addr {
- type inet:ipv4-address;
- description "client addr";
- }
- }
- }
- }
-
- }
- }
-
- container packet-stats {
- description "A container presents the packet statistics related to
- the DHCPv4 server.";
- leaf request-count {
- type uint32;
- mandatory true;
- description "request counter";
- }
- leaf renew-count {
- type uint32;
- mandatory true;
- description "renew counter";
- }
- leaf rebind-count {
- type uint32;
- mandatory true;
- description "rebind counter";
- }
- leaf decline-count {
- type uint32;
- mandatory true;
- description "decline count";
- }
- leaf release-count {
- type uint32;
- mandatory true;
- description "release counter";
- }
- leaf info-req-count {
- type uint32;
- mandatory true;
- description "information request counter";
- }
- leaf advertise-count {
- type uint32;
- mandatory true;
- description "advertise counter";
- }
- leaf confirm-count {
- type uint32;
- mandatory true;
- description "confirm counter";
- }
- leaf reconfigure-count {
- type uint32;
- mandatory true;
- description "reconfigure counter";
- }
- leaf relay-forward-count {
- type uint32;
- mandatory true;
- description "relay forward counter";
- }
- leaf relay-reply-count {
- type uint32;
- mandatory true;
- description "relay reply counter";
- }
- }
- }
- }
-
- /*
- * Notifications
- */
-
- notification notifications {
- description "dhcpv4 server notification module";
- container dhcpv4-server-event {
- description "dhcpv4 server event";
- container address-pool-running-out {
- description "Raised when the address pool is going to
- run out. A threshold for utilization ratio of the pool has
- been defined in the server feature so that it will notify the
- administrator when the utilization ratio reaches the
- threshold, and such threshold is a settable parameter.";
- leaf total-address-count {
- type uint32;
- mandatory true;
- description "Count of total addresses in the pool.";
- }
- leaf max-address-count {
- type uint32;
- mandatory true;
- description "Maximum count of addresses that can be allocated
- in the pool. This value may be less than count of total
- addresses.";
- }
- leaf allocated-address-conut {
- type uint32;
- mandatory true;
- description "Count of allocated addresses in the pool.";
- }
- leaf serv-name {
- type string;
- description "server name";
- }
- leaf pool-name {
- type string;
- mandatory true;
- description "pool name";
- }
- }
- container invalid-client-detected {
- description "Raised when the server has found a client which
- can be regarded as a potential attacker. Some description
- could also be included.";
- leaf hw {
- type yang:mac-address;
- description "HW address";
- }
- leaf description {
- type string;
- description "description of the event";
- }
- }
- }
- }
-}