2
0
mirror of https://gitlab.isc.org/isc-projects/kea synced 2025-08-29 21:18:02 +00:00

[65-libyang-models-update] Updated models and doc, tentative models distrib

This commit is contained in:
Francis Dupont 2018-09-14 11:31:59 +02:00
parent a388c647b3
commit 38e44e9939
9 changed files with 147 additions and 144 deletions

View File

@ -121,8 +121,8 @@ src/lib/libyang/models. To install Kea models, do the following:
<screen> <screen>
cd src/lib/yang/models cd src/lib/yang/models
sudo sysrepoctl -i -g kea-dhcpv4-server.yang -s /home/thomson/devel/sysrepo-0.7.4/build/repository/yang/ -s ./ sudo sysrepoctl -i -g kea-dhcp4-server.yang -s /home/thomson/devel/sysrepo-0.7.4/build/repository/yang/ -s ./
sudo sysrepoctl -i -g ietf-dhcpv6-server.yang -s /home/thomson/devel/sysrepo-0.7.4/build/repository/yang/ -s ./ sudo sysrepoctl -i -g ietf-dhcp6-server.yang -s /home/thomson/devel/sysrepo-0.7.4/build/repository/yang/ -s ./
</screen> </screen>
Note the first -s parameter specifies the location of your YANG schema Note the first -s parameter specifies the location of your YANG schema
@ -132,25 +132,25 @@ configured during sysrepo compilation.
The installation should look similar to the following: The installation should look similar to the following:
<screen> <screen>
$ sudo sysrepoctl -i -g ietf-dhcpv4-server.yang -s /home/thomson/devel/sysrepo-0.7.4/build/repository/yang/ -s ./ $ sudo sysrepoctl -i -g ietf-dhcp6-server.yang -s /home/thomson/devel/sysrepo-0.7.4/build/repository/yang/ -s ./
Installing a new module from file 'ietf-dhcpv4-server.yang'... Installing a new module from file 'ietf-dhcp6-server.yang'...
Installing the YANG file to '/home/thomson/devel/sysrepo-0.7.4/build/repository/yang/ietf-dhcpv4-server@2018-07-14.yang'... Installing the YANG file to '/home/thomson/devel/sysrepo-0.7.4/build/repository/yang/ietf-dhcp6-server@2018-07-14.yang'...
Resolving dependency: 'ietf-dhcpv4-server' imports 'ietf-dhcpv4-options'... Resolving dependency: 'ietf-dhcp6-server' imports 'ietf-dhcp6-options'...
Installing the YANG file to '/home/thomson/devel/sysrepo-0.7.4/build/repository/yang/ietf-dhcpv4-options@2018-07-14.yang'... Installing the YANG file to '/home/thomson/devel/sysrepo-0.7.4/build/repository/yang/ietf-dhcp6-options@2018-07-14.yang'...
Resolving dependency: 'ietf-dhcpv4-options' imports 'ietf-dhcpv4-types'... Resolving dependency: 'ietf-dhcp6-options' imports 'ietf-dhcp6-types'...
Installing the YANG file to '/home/thomson/devel/sysrepo-0.7.4/build/repository/yang/ietf-dhcpv4-types@2018-07-14.yang'... Installing the YANG file to '/home/thomson/devel/sysrepo-0.7.4/build/repository/yang/ietf-dhcp6-types@2018-07-14.yang'...
Resolving dependency: 'ietf-dhcpv4-server' imports 'ietf-dhcpv4-types'... Resolving dependency: 'ietf-dhcp6-server' imports 'ietf-dhcp6-types'...
Installing the YANG file to '/home/thomson/devel/sysrepo-0.7.4/build/repository/yang/ietf-dhcpv4-types@2018-07-14.yang'... Installing the YANG file to '/home/thomson/devel/sysrepo-0.7.4/build/repository/yang/ietf-dhcp6-types@2018-07-14.yang'...
Resolving dependency: 'ietf-dhcpv4-server' imports 'ietf-interfaces'... Resolving dependency: 'ietf-dhcp6-server' imports 'ietf-interfaces'...
Schema of the module ietf-interfaces is already installed, skipping... Schema of the module ietf-interfaces is already installed, skipping...
Installing data files for module 'ietf-dhcpv4-server'... Installing data files for module 'ietf-dhcp6-server'...
Resolving dependency: 'ietf-dhcpv4-server' imports 'ietf-dhcpv4-options'... Resolving dependency: 'ietf-dhcp6-server' imports 'ietf-dhcp6-options'...
Skipping installation of data files for module 'ietf-dhcpv4-options'... Skipping installation of data files for module 'ietf-dhcp6-options'...
Resolving dependency: 'ietf-dhcpv4-options' imports 'ietf-dhcpv4-types'... Resolving dependency: 'ietf-dhcp6-options' imports 'ietf-dhcp6-types'...
Skipping installation of data files for module 'ietf-dhcpv4-types'... Skipping installation of data files for module 'ietf-dhcp6-types'...
Resolving dependency: 'ietf-dhcpv4-server' imports 'ietf-dhcpv4-types'... Resolving dependency: 'ietf-dhcp6-server' imports 'ietf-dhcp6-types'...
Skipping installation of data files for module 'ietf-dhcpv4-types'... Skipping installation of data files for module 'ietf-dhcp6-types'...
Resolving dependency: 'ietf-dhcpv4-server' imports 'ietf-interfaces'... Resolving dependency: 'ietf-dhcp6-server' imports 'ietf-interfaces'...
Installing data files for module 'ietf-interfaces'... Installing data files for module 'ietf-interfaces'...
Notifying sysrepo about the change... Notifying sysrepo about the change...
Install operation completed successfully. Install operation completed successfully.
@ -175,9 +175,7 @@ turing-machine | 2013-12-27 | Installed | root:root | 66
iana-if-type | 2014-05-08 | Installed | | | | iana-if-type | 2014-05-08 | Installed | | | |
ietf-interfaces | 2014-05-08 | Installed | root:root | 666 | | ietf-interfaces | 2014-05-08 | Installed | root:root | 666 | |
ietf-ip | 2014-06-16 | Installed | | | | ietf-ip | 2014-06-16 | Installed | | | |
kea-dhcpv4-server | 2018-07-14 | Installed | root:root | 666 | | kea-dhcp4-server | 2018-07-14 | Installed | root:root | 666 | |
ietf-dhcpv4-options | 2018-07-14 | Imported | | | |
ietf-dhcpv4-types | 2018-07-14 | Imported | | | |
ietf-dhcpv6-server | 2018-03-04 | Installed | root:root | 666 | | ietf-dhcpv6-server | 2018-03-04 | Installed | root:root | 666 | |
ietf-dhcpv6-options | 2018-03-04 | Imported | | | | ietf-dhcpv6-options | 2018-03-04 | Imported | | | |
ietf-dhcpv6-types | 2018-01-30 | Imported | | | | ietf-dhcpv6-types | 2018-01-30 | Imported | | | |

View File

@ -1,9 +1,22 @@
SUBDIRS = . tests SUBDIRS = . tests
AM_CPPFLAGS = -I$(top_srcdir)/src/lib -I$(top_builddir)/src/lib AM_CPPFLAGS = -I$(top_srcdir)/src/lib -I$(top_builddir)/src/lib
AM_CPPFLAGS += $(BOOST_INCLUDES) $(SYSREPO_CPPFLAGS) AM_CPPFLAGS += $(BOOST_INCLUDES) $(SYSREPO_CPPFLAGS)
AM_CXXFLAGS = $(KEA_CXXFLAGS) AM_CXXFLAGS = $(KEA_CXXFLAGS)
nobase_dist_pkgdata_DATA = models/ietf-dhcpv6-client.yang
nobase_dist_pkgdata_DATA += models/ietf-dhcpv6-options.yang
nobase_dist_pkgdata_DATA += models/ietf-dhcpv6-relay.yang
nobase_dist_pkgdata_DATA += models/etf-dhcpv6-server.yang
nobase_dist_pkgdata_DATA += models/ietf-dhcpv6-types.yang
nobase_dist_pkgdata_DATA += models/kea-ctrl-agent.yang
nobase_dist_pkgdata_DATA += models/kea-dhcp-ddns.yang
nobase_dist_pkgdata_DATA += models/kea-dhcp-types.yang
nobase_dist_pkgdata_DATA += models/kea-dhcp4-server.yang
nobase_dist_pkgdata_DATA += models/kea-dhcp6-server.yang
nobase_dist_pkgdata_DATA += models/kea-logging.yang
nobase_dist_pkgdata_DATA += models/kea-types.yang
lib_LTLIBRARIES = libkea-yang.la lib_LTLIBRARIES = libkea-yang.la
libkea_yang_la_SOURCES = adaptor.cc adaptor.h libkea_yang_la_SOURCES = adaptor.cc adaptor.h
libkea_yang_la_SOURCES += sysrepo_error.h libkea_yang_la_SOURCES += sysrepo_error.h

View File

@ -18,7 +18,7 @@ module kea-ctrl-agent {
description "This model defines a YANG data model that can be description "This model defines a YANG data model that can be
used to configure and manage a Kea control agent."; used to configure and manage a Kea control agent.";
revision 2018-08-20 { revision 2018-09-14 {
description "Initial revision"; description "Initial revision";
reference ""; reference "";
} }

View File

@ -18,7 +18,7 @@ module kea-dhcp-ddns {
description "This model defines a YANG data model that can be description "This model defines a YANG data model that can be
used to configure and manage a Kea DHCP-DDNS server."; used to configure and manage a Kea DHCP-DDNS server.";
revision 2018-08-20 { revision 2018-09-14 {
description "Initial revision"; description "Initial revision";
reference ""; reference "";
} }

View File

@ -14,7 +14,7 @@ module kea-dhcp-types {
contact "kea-dev@lists.isc.org"; contact "kea-dev@lists.isc.org";
description "This file defines some commonly used Kea DHCP types and description "This file defines some commonly used Kea DHCP types and
groupings."; groupings.";
revision 2018-08-20 { revision 2018-09-14 {
description "Initial revision"; description "Initial revision";
reference ""; reference "";
} }
@ -499,33 +499,6 @@ module kea-dhcp-types {
} }
} }
// To move to DHCPv6.
grouping interface-id {
description "Interface ID grouping.";
leaf interface-id {
type string;
description "Interface ID entry.";
}
}
grouping subnet-interface-id {
description "Interface ID grouping for a subnet.";
uses interface-id {
refine interface-id {
description "Subnet interface-id option.";
}
}
}
grouping network-interface-id {
description "Interface ID grouping for a shared network.";
uses interface-id {
refine interface-id {
description "Shared network interface-id option.";
}
}
}
grouping subnet-id { grouping subnet-id {
description "Subnet ID grouping."; description "Subnet ID grouping.";
leaf id { leaf id {

View File

@ -21,7 +21,7 @@ module kea-dhcp4-server {
description "This model defines a YANG data model that can be description "This model defines a YANG data model that can be
used to configure and manage a Kea DHCPv4 server."; used to configure and manage a Kea DHCPv4 server.";
revision 2018-08-20 { revision 2018-09-14 {
description "Initial revision"; description "Initial revision";
reference ""; reference "";
} }
@ -96,6 +96,39 @@ module kea-dhcp4-server {
} }
} }
grouping host {
description "Host grouping.";
leaf identifier-type {
type host-identifier-type;
mandatory true;
description "Host identifier type.";
}
uses dhcp:host-identifier;
leaf ip-address {
type inet:ipv4-address;
description "Host reserved IPv4 address.";
}
uses dhcp:host-hostname;
uses dhcp:host-client-classes;
uses option-data-list;
uses next-server;
uses server-hostname;
uses boot-file-name;
uses dhcp:host-user-context;
}
grouping reservations {
description "Host reservations grouping.";
container reservations {
description "Host reservations container.";
list host {
key "identifier-type identifier";
description "Host reservation entry.";
uses host;
}
}
}
grouping subnet4-list { grouping subnet4-list {
description "Subnet4 list grouping."; description "Subnet4 list grouping.";
list subnet4 { list subnet4 {
@ -139,32 +172,12 @@ module kea-dhcp4-server {
description "IPv4 subnet prefix."; description "IPv4 subnet prefix.";
} }
uses dhcp:subnet-interface; uses dhcp:subnet-interface;
uses dhcp:subnet-interface-id;
uses dhcp:subnet-id; uses dhcp:subnet-id;
uses dhcp:subnet-client-class; uses dhcp:subnet-client-class;
uses dhcp:subnet-require-client-classes; uses dhcp:subnet-require-client-classes;
container reservations { uses reservations {
description "A container with host reservations specific to refine reservations {
this IPv4 subnet."; description "Subnet host reservations.";
list host {
key "identifier-type identifier";
description "Host reservation entry.";
leaf identifier-type {
type host-identifier-type;
description "Host identifier type.";
}
uses dhcp:host-identifier;
leaf ip-address {
type inet:ipv4-address;
description "Host reserved IPv4 address.";
}
uses dhcp:host-hostname;
uses dhcp:host-client-classes;
uses option-data-list;
uses next-server;
uses server-hostname;
uses boot-file-name;
uses dhcp:host-user-context;
} }
} }
uses dhcp:subnet-reservation-mode; uses dhcp:subnet-reservation-mode;
@ -387,6 +400,11 @@ module kea-dhcp4-server {
} }
} }
uses dhcp:sanity-checks; uses dhcp:sanity-checks;
uses reservations {
refine reservations {
description "Global host reservations.";
}
}
} }
container logging { container logging {
@ -498,24 +516,8 @@ module kea-dhcp4-server {
list host { list host {
key "subnet-id identifier-type identifier"; key "subnet-id identifier-type identifier";
description "List of Kea DHCPv4 hosts."; description "List of Kea DHCPv4 hosts.";
leaf identifier-type { uses host;
type host-identifier-type;
mandatory true;
description "Host identifier type.";
}
uses dhcp:host-identifier;
uses dhcp:host-subnet-id; uses dhcp:host-subnet-id;
leaf ip-address {
type inet:ipv4-address;
description "Host reserved IP address.";
}
uses dhcp:host-hostname;
uses dhcp:host-client-classes;
uses option-data-list;
uses next-server;
uses server-hostname;
uses boot-file-name;
uses dhcp:host-user-context;
leaf auth-key { leaf auth-key {
type string; type string;
description "Host authentication key (unused in DHCPv4)."; description "Host authentication key (unused in DHCPv4).";

View File

@ -22,7 +22,7 @@ module kea-dhcp6-server {
description "This model defines a YANG data model that can be description "This model defines a YANG data model that can be
used to configure and manage a Kea DHCPv6 server."; used to configure and manage a Kea DHCPv6 server.";
revision 2018-08-20 { revision 2018-09-14 {
description "Initial revision"; description "Initial revision";
reference ""; reference "";
} }
@ -57,6 +57,14 @@ module kea-dhcp6-server {
} }
} }
grouping interface-id {
description "Interface ID grouping.";
leaf interface-id {
type string;
description "Interface ID entry.";
}
}
grouping relay { grouping relay {
description "Relay grouping."; description "Relay grouping.";
leaf-list ip-addresses { leaf-list ip-addresses {
@ -74,6 +82,40 @@ module kea-dhcp6-server {
} }
} }
grouping host {
description "Host grouping.";
leaf identifier-type {
type host-identifier-type;
mandatory true;
description "Host identifier type.";
}
uses dhcp:host-identifier;
leaf-list ip-addresses {
type inet:ipv6-address;
description "Host reserved IP addresses.";
}
leaf-list prefixes {
type inet:ipv6-prefix;
description "Host reserved IP prefixes.";
}
uses dhcp:host-hostname;
uses dhcp:host-client-classes;
uses option-data-list;
uses dhcp:host-user-context;
}
grouping reservations {
description "Host reservations grouping.";
container reservations {
description "Host reservations container.";
list host {
key "identifier-type identifier";
description "Host reservation entry.";
uses host;
}
}
}
grouping subnet6-list { grouping subnet6-list {
description "Subnet6 list grouping."; description "Subnet6 list grouping.";
list subnet6 { list subnet6 {
@ -157,7 +199,11 @@ module kea-dhcp6-server {
description "IPv6 subnet prefix."; description "IPv6 subnet prefix.";
} }
uses dhcp:subnet-interface; uses dhcp:subnet-interface;
uses dhcp:subnet-interface-id; uses interface-id {
refine interface-id {
description "Subnet interface-id option.";
}
}
uses dhcp:subnet-id; uses dhcp:subnet-id;
uses rapid-commit { uses rapid-commit {
refine rapid-commit { refine rapid-commit {
@ -166,30 +212,9 @@ module kea-dhcp6-server {
} }
uses dhcp:subnet-client-class; uses dhcp:subnet-client-class;
uses dhcp:require-client-classes; uses dhcp:require-client-classes;
container reservations { uses reservations {
description "A container with host reservations specific to refine reservations {
this IPv6 subnet."; description "Subnet host reservations.";
list host {
key "identifier-type identifier";
description "Host reservation entry.";
leaf identifier-type {
type host-identifier-type;
mandatory true;
description "Host identifier type.";
}
uses dhcp:host-identifier;
leaf-list ip-addresses {
type inet:ipv6-address;
description "Host reserved IP addresses.";
}
leaf-list prefixes {
type inet:ipv6-prefix;
description "Host reserved IP prefixes.";
}
uses dhcp:host-hostname;
uses dhcp:host-client-classes;
uses option-data-list;
uses dhcp:host-user-context;
} }
} }
uses dhcp:subnet-reservation-mode; uses dhcp:subnet-reservation-mode;
@ -294,7 +319,11 @@ module kea-dhcp6-server {
uses subnet6-list; uses subnet6-list;
} }
uses dhcp:network-interface; uses dhcp:network-interface;
uses dhcp:network-interface-id; uses interface-id {
refine interface-id {
description "Shared network interface-id option.";
}
}
uses dhcp:renew-timer; uses dhcp:renew-timer;
uses dhcp:rebind-timer; uses dhcp:rebind-timer;
uses option-data-list; uses option-data-list;
@ -412,6 +441,11 @@ module kea-dhcp6-server {
} }
} }
uses dhcp:sanity-checks; uses dhcp:sanity-checks;
uses reservations {
refine reservations {
description "Global host reservations.";
}
}
} }
container logging { container logging {
@ -565,25 +599,8 @@ module kea-dhcp6-server {
list host { list host {
key "subnet-id identifier-type identifier"; key "subnet-id identifier-type identifier";
description "List of Kea DHCPv6 hosts."; description "List of Kea DHCPv6 hosts.";
leaf identifier-type { uses host;
type host-identifier-type;
mandatory true;
description "Host identifier type.";
}
uses dhcp:host-identifier;
uses dhcp:host-subnet-id; uses dhcp:host-subnet-id;
leaf-list ip-addresses {
type inet:ipv6-address;
description "Host reserved IP addresses.";
}
leaf-list prefixes {
type inet:ipv6-prefix;
description "Host reserved prefixes.";
}
uses dhcp:host-hostname;
uses dhcp:host-client-classes;
uses option-data-list;
uses dhcp:host-user-context;
leaf auth-key { leaf auth-key {
type string; type string;
description "Host authentication key."; description "Host authentication key.";

View File

@ -12,7 +12,7 @@ module kea-logging {
description "This model defines a YANG data model that can be description "This model defines a YANG data model that can be
used to configure and manage logging of a Kea server."; used to configure and manage logging of a Kea server.";
revision 2018-08-20 { revision 2018-09-14 {
description "Initial revision"; description "Initial revision";
reference ""; reference "";
} }

View File

@ -7,7 +7,7 @@ module kea-types {
contact "kea-dev@lists.isc.org"; contact "kea-dev@lists.isc.org";
description "This file defines some commonly used Kea types and groupings."; description "This file defines some commonly used Kea types and groupings.";
revision 2018-08-20 { revision 2018-09-14 {
description "Initial revision"; description "Initial revision";
reference ""; reference "";
} }