diff options
Diffstat (limited to 'src/lib/yang/models/kea-dhcpv4-server.yang')
-rw-r--r-- | src/lib/yang/models/kea-dhcpv4-server.yang | 585 |
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"; - } - } - } - } -} |