summaryrefslogtreecommitdiffstats
path: root/src/share/yang/modules/kea-dhcp-ddns@2022-07-27.yang
diff options
context:
space:
mode:
Diffstat (limited to 'src/share/yang/modules/kea-dhcp-ddns@2022-07-27.yang')
-rw-r--r--src/share/yang/modules/kea-dhcp-ddns@2022-07-27.yang184
1 files changed, 184 insertions, 0 deletions
diff --git a/src/share/yang/modules/kea-dhcp-ddns@2022-07-27.yang b/src/share/yang/modules/kea-dhcp-ddns@2022-07-27.yang
new file mode 100644
index 0000000..bafa6a3
--- /dev/null
+++ b/src/share/yang/modules/kea-dhcp-ddns@2022-07-27.yang
@@ -0,0 +1,184 @@
+module kea-dhcp-ddns {
+ yang-version 1.1;
+ namespace "urn:ietf:params:xml:ns:yang:kea-dhcp-ddns";
+ prefix "kea-dhcp-ddns";
+
+ import ietf-inet-types {
+ prefix inet;
+ }
+ import kea-types {
+ prefix kea;
+ revision-date 2019-08-12;
+ }
+
+ organization "Internet Systems Consortium";
+ contact "kea-dev@lists.isc.org";
+ description "This model defines a YANG data model that can be
+ used to configure and manage a Kea DHCP-DDNS server.";
+
+ revision 2022-07-27 {
+ description "Added GSS-TSIG key-name configration parameter for DNS
+ servers";
+ }
+
+ revision 2019-08-12 {
+ description "Initial revision";
+ reference "";
+ }
+
+ /*
+ * Groupings
+ */
+
+ grouping managed-domains {
+ description "Contains parameters for forward or reverse DDNS managed
+ domains.";
+
+ container ddns-domains {
+ description "DDNS domains.";
+ list ddns-domain {
+ key name;
+ description "List of DDNS domains.";
+ leaf name {
+ type string;
+ mandatory true;
+ description "DDNS domain name.";
+ }
+ leaf key-name {
+ type string;
+ description "TSIG key to use. Blank means no TSIG.";
+ }
+ container dns-servers {
+ description "DNS servers.";
+ list server {
+ key ip-address;
+ description "List of DNS servers.";
+ leaf hostname {
+ type string;
+ description "DNS server hostname.";
+ }
+ leaf ip-address {
+ type inet:ip-address;
+ mandatory true;
+ description "DNS server IP address.";
+ }
+ leaf port {
+ type uint16;
+ description "DNS server port.";
+ }
+ leaf key-name {
+ type string;
+ description "Name of the TSIG key used to protect DNS updates for
+ this server.";
+ }
+ leaf user-context {
+ type kea:user-context;
+ description "DNS server user context.";
+ }
+ }
+ }
+ leaf user-context {
+ type kea:user-context;
+ description "DDNS domain user context.";
+ }
+ }
+ }
+ }
+
+ /*
+ * Data Nodes
+ */
+
+ container config {
+ // config true;
+ description "Contains DHCP-DDNS server configuration.";
+
+ leaf ip-address {
+ type inet:ip-address;
+ description "IP address on which the server listens for requests.";
+ }
+
+ leaf port {
+ type uint16;
+ description "Port on which the server listens for requests.";
+ }
+
+ leaf dns-server-timeout {
+ type uint32;
+ units "milliseconds";
+ description "Maximum amount of time that the server will wait for
+ a response from a DNS server to a single DNS update message.";
+ }
+
+ leaf ncr-protocol {
+ type enumeration {
+ enum "UDP" {
+ description "UDP transport";
+ }
+ enum "TCP" {
+ description "TCP transport";
+ }
+ }
+ description "Protocol to use when sending requests to the server.";
+ }
+
+ leaf ncr-format {
+ type enumeration {
+ enum "JSON" {
+ description "JSON format";
+ }
+ }
+ description "Packet format to use when sending requests to the server.";
+ }
+
+ uses kea:control-socket;
+
+ container forward-ddns {
+ description "Forward DNS zones.";
+ uses managed-domains;
+ }
+
+ container reverse-ddns {
+ description "Reverse DNS zones.";
+ uses managed-domains;
+ }
+
+ container tsig-keys {
+ description "Keys to use with TSIG.";
+ list key {
+ key name;
+ description "List of TSIG keys.";
+ leaf name {
+ type string;
+ mandatory true;
+ description "Key name.";
+ }
+ leaf algorithm {
+ type string;
+ mandatory true;
+ description "Hashing algorithm to use with the key.";
+ }
+ leaf digest-bits {
+ type uint16;
+ units "bits";
+ description "Minimum truncated length. 0 means no truncation.";
+ }
+ leaf secret {
+ type string;
+ mandatory true;
+ description "Shared secret for the key.";
+ }
+ leaf user-context {
+ type kea:user-context;
+ description "Key user context.";
+ }
+ }
+ }
+ leaf user-context {
+ type kea:user-context;
+ description "DHCP-DDNS server user context.";
+ }
+
+ uses kea:loggers;
+ }
+}