summaryrefslogtreecommitdiffstats
path: root/doc/examples/netconf
diff options
context:
space:
mode:
Diffstat (limited to 'doc/examples/netconf')
-rw-r--r--doc/examples/netconf/comments.json36
-rw-r--r--doc/examples/netconf/kea-dhcp6-operations/boot.json8
-rw-r--r--doc/examples/netconf/kea-dhcp6-operations/logging.xml26
-rw-r--r--doc/examples/netconf/kea-dhcp6-operations/netconf.json31
-rw-r--r--doc/examples/netconf/kea-dhcp6-operations/startup.xml18
-rw-r--r--doc/examples/netconf/kea-dhcp6-operations/twopools.xml23
-rw-r--r--doc/examples/netconf/kea-dhcp6-operations/twosubnets.xml27
-rw-r--r--doc/examples/netconf/simple-dhcp4.json119
-rw-r--r--doc/examples/netconf/simple-dhcp6.json121
9 files changed, 409 insertions, 0 deletions
diff --git a/doc/examples/netconf/comments.json b/doc/examples/netconf/comments.json
new file mode 100644
index 0000000..99014e7
--- /dev/null
+++ b/doc/examples/netconf/comments.json
@@ -0,0 +1,36 @@
+// This is a example of a configuration for Netconf.
+// It uses embedded (i.e., which will be included in configuration objects
+// and not stripped by at lexical analysis) comments.
+
+{
+ "Netconf":
+ {
+ // Global scope
+ "comment": "The Netconf Agent",
+
+ // In servers
+ "managed-servers":
+ {
+ "dhcp4":
+ {
+ "comment": "the model is mandatory",
+ "model": "kea-dhcp4-server",
+ // In control socket.
+ "control-socket":
+ {
+ "comment": "using unix/local socket",
+ "socket-type": "unix",
+ "socket-name": "/tmp/kea4-ctrl-socket"
+ }
+ }
+ },
+
+ // In loggers
+ "loggers": [
+ {
+ "comment": "A logger",
+ "name": "kea-ctrl-agent"
+ }
+ ]
+ }
+}
diff --git a/doc/examples/netconf/kea-dhcp6-operations/boot.json b/doc/examples/netconf/kea-dhcp6-operations/boot.json
new file mode 100644
index 0000000..18d1da8
--- /dev/null
+++ b/doc/examples/netconf/kea-dhcp6-operations/boot.json
@@ -0,0 +1,8 @@
+{
+ "Dhcp6": {
+ "control-socket": {
+ "socket-type": "unix",
+ "socket-name": "/tmp/kea6-ctrl-socket"
+ }
+ }
+}
diff --git a/doc/examples/netconf/kea-dhcp6-operations/logging.xml b/doc/examples/netconf/kea-dhcp6-operations/logging.xml
new file mode 100644
index 0000000..7ce04e4
--- /dev/null
+++ b/doc/examples/netconf/kea-dhcp6-operations/logging.xml
@@ -0,0 +1,26 @@
+<config xmlns="urn:ietf:params:xml:ns:yang:kea-dhcp6-server">
+ <interfaces-config>
+ <interfaces>eth1</interfaces>
+ </interfaces-config>
+ <subnet6>
+ <id>1</id>
+ <pool>
+ <start-address>2001:db8::1:0</start-address>
+ <end-address>2001:db8::1:ffff</end-address>
+ <prefix>2001:db8::1:0/112</prefix>
+ </pool>
+ <subnet>2001:db8::/64</subnet>
+ </subnet6>
+ <control-socket>
+ <socket-name>/tmp/kea6-ctrl-socket</socket-name>
+ <socket-type>unix</socket-type>
+ </control-socket>
+ <logger>
+ <name>kea-dhcp6</name>
+ <output-option>
+ <output>stderr</output>
+ </output-option>
+ <debuglevel>99</debuglevel>
+ <severity>DEBUG</severity>
+ </logger>
+</config>
diff --git a/doc/examples/netconf/kea-dhcp6-operations/netconf.json b/doc/examples/netconf/kea-dhcp6-operations/netconf.json
new file mode 100644
index 0000000..1a8cd21
--- /dev/null
+++ b/doc/examples/netconf/kea-dhcp6-operations/netconf.json
@@ -0,0 +1,31 @@
+{
+ "Netconf":
+ {
+ "managed-servers":
+ {
+ "dhcp6":
+ {
+ "control-socket":
+ {
+ "socket-type": "unix",
+ "socket-name": "/tmp/kea6-ctrl-socket"
+ }
+ }
+ },
+
+ "loggers":
+ [
+ {
+ "name": "kea-netconf",
+ "output_options":
+ [
+ {
+ "output": "stderr"
+ }
+ ],
+ "severity": "DEBUG",
+ "debuglevel": 99
+ }
+ ]
+ }
+}
diff --git a/doc/examples/netconf/kea-dhcp6-operations/startup.xml b/doc/examples/netconf/kea-dhcp6-operations/startup.xml
new file mode 100644
index 0000000..b085833
--- /dev/null
+++ b/doc/examples/netconf/kea-dhcp6-operations/startup.xml
@@ -0,0 +1,18 @@
+<config xmlns="urn:ietf:params:xml:ns:yang:kea-dhcp6-server">
+ <subnet6>
+ <id>1</id>
+ <pool>
+ <start-address>2001:db8::1:0</start-address>
+ <end-address>2001:db8::1:ffff</end-address>
+ <prefix>2001:db8::1:0/112</prefix>
+ </pool>
+ <subnet>2001:db8::/64</subnet>
+ </subnet6>
+ <interfaces-config>
+ <interfaces>eth1</interfaces>
+ </interfaces-config>
+ <control-socket>
+ <socket-name>/tmp/kea6-ctrl-socket</socket-name>
+ <socket-type>unix</socket-type>
+ </control-socket>
+</config>
diff --git a/doc/examples/netconf/kea-dhcp6-operations/twopools.xml b/doc/examples/netconf/kea-dhcp6-operations/twopools.xml
new file mode 100644
index 0000000..8fb32c9
--- /dev/null
+++ b/doc/examples/netconf/kea-dhcp6-operations/twopools.xml
@@ -0,0 +1,23 @@
+<config xmlns="urn:ietf:params:xml:ns:yang:kea-dhcp6-server">
+ <subnet6>
+ <id>1</id>
+ <pool>
+ <start-address>2001:db8::1:0</start-address>
+ <end-address>2001:db8::1:ffff</end-address>
+ <prefix>2001:db8::1:0/112</prefix>
+ </pool>
+ <pool>
+ <start-address>2001:db8::2:0</start-address>
+ <end-address>2001:db8::2:ffff</end-address>
+ <prefix>2001:db8::2:0/112</prefix>
+ </pool>
+ <subnet>2001:db8::/64</subnet>
+ </subnet6>
+ <interfaces-config>
+ <interfaces>eth1</interfaces>
+ </interfaces-config>
+ <control-socket>
+ <socket-name>/tmp/kea6-ctrl-socket</socket-name>
+ <socket-type>unix</socket-type>
+ </control-socket>
+</config>
diff --git a/doc/examples/netconf/kea-dhcp6-operations/twosubnets.xml b/doc/examples/netconf/kea-dhcp6-operations/twosubnets.xml
new file mode 100644
index 0000000..ba68a06
--- /dev/null
+++ b/doc/examples/netconf/kea-dhcp6-operations/twosubnets.xml
@@ -0,0 +1,27 @@
+<config xmlns="urn:ietf:params:xml:ns:yang:kea-dhcp6-server">
+ <subnet6>
+ <id>1</id>
+ <pool>
+ <start-address>2001:db8:1::</start-address>
+ <end-address>2001:db8:1::ffff</end-address>
+ <prefix>2001:db8:1::/112</prefix>
+ </pool>
+ <subnet>2001:db8:1::/64</subnet>
+ </subnet6>
+ <subnet6>
+ <id>2</id>
+ <pool>
+ <start-address>2001:db8:2::</start-address>
+ <end-address>2001:db8:2::ffff</end-address>
+ <prefix>2001:db8:2::/112</prefix>
+ </pool>
+ <subnet>2001:db8:2::/64</subnet>
+ </subnet6>
+ <interfaces-config>
+ <interfaces>eth1</interfaces>
+ </interfaces-config>
+ <control-socket>
+ <socket-name>/tmp/kea6-ctrl-socket</socket-name>
+ <socket-type>unix</socket-type>
+ </control-socket>
+</config>
diff --git a/doc/examples/netconf/simple-dhcp4.json b/doc/examples/netconf/simple-dhcp4.json
new file mode 100644
index 0000000..56407b2
--- /dev/null
+++ b/doc/examples/netconf/simple-dhcp4.json
@@ -0,0 +1,119 @@
+// This is a simple example of a configuration for Netconf that handles
+// DHCPv4 configuration. This example provides YANG interface for
+// DHCPv4 server only.
+{
+ "Netconf":
+ {
+ // Three flags control netconf (default values are true):
+ // - "boot-update" about the YANG configuration load when
+ // netconf boots.
+ // - "subscribe-changes" about the subscription to notifications
+ // when the running YANG module is changed.
+ // - "validate-changes" allows to validate changes or not.
+ "boot-update": true,
+ "subscribe-changes": true,
+ "validate-changes": true,
+
+ // This map specifies how each server is managed:
+ // the YANG model to use and the control channel.
+ "managed-servers":
+ {
+ // This is how Netconf can communicate with the DHCPv4 server.
+ "dhcp4":
+ {
+ // Eventually, the kea-netconf will be able to handle multiple
+ // models. However, for the time being the only choice for
+ // DHCPv4 server is kea-dhcp4-server model.
+ "model": "kea-dhcp4-server",
+
+ // The three control flags can be defined in this scope too
+ // and takes precedence over global and default values.
+ // boot-update determines whether the initial configuration
+ // should be retrieved from netconf during kea-netconf startup.
+ // You almost always want to set this to yes.
+ "boot-update": true,
+
+ // This flag control whether the kea-netconf daemon should
+ // subscribe to any changes. If set to true, kea-netconf will
+ // monitor sysrepo and will pick up any changes that may be
+ // introduced, either using netconf clients or sysrepocfg.
+ "subscribe-changes": true,
+
+ // This parameters specifies whether kea-netconf will attempt
+ // to verify if the upcoming NETCONF configuration is sane. The
+ // verification is done by calling config-test. Depending on
+ // Kea response, the new configuration is accepted or rejected.
+ "validate-changes": false,
+
+ // Currently three control channel types are supported:
+ // - "stdout" which output the configuration on the standard
+ // output (this is mainly for testing purposes, but you can
+ // use simple script (such as curl or socat) to pass that
+ // information to the server.
+ // - "unix" which uses the local control channel supported by
+ // "dhcp4" and "dhcp6" servers ("d2" support is coming in Kea 1.5)
+ // - "http" which uses the Control Agent (CA) to manage itself or
+ // to forward commands to "dhcp4" or "dhcp6".
+ "control-socket":
+ {
+ "socket-type": "unix",
+ "socket-name": "/tmp/kea4-ctrl-socket"
+ },
+
+ // Comment is optional. You can put some notes here.
+ "comment": "Kea DHCP4 server serving network on floor 13"
+ }
+
+ },
+
+ // Netconf is able to load hook libraries that augment its operation.
+ // The primary functionality is the ability to add new commands.
+ //
+ // Uncomment this section to load a hook library.
+ //
+ // "hooks-libraries": [
+ // // Hook libraries list may contain more than one library.
+ // {
+ // // The only necessary parameter is the library filename.
+ // "library": "/opt/local/netconf-commands.so",
+ //
+ // // Some libraries may support parameters. Make sure you
+ // // type this section carefully, as the CA does not validate
+ // // it (because the format is library specific).
+ // "parameters": {
+ // "param1": "foo"
+ // }
+ // }
+ //]
+
+ // Similar to other Kea components, Netconf also uses logging.
+ "loggers": [
+ {
+ "name": "kea-netconf",
+ "output_options": [
+ {
+ //"output": "/var/log/kea-netconf.log",
+ "output": "stdout",
+ // Several additional parameters are possible in addition
+ // to the typical output. Flush determines whether logger
+ // flushes output to a file. Maxsize determines maximum
+ // filesize before the file is being rotated. maxver
+ // specifies the maximum number of rotated files being
+ // kept.
+ "flush": true,
+ "maxsize": 204800,
+ "maxver": 4,
+ // We use pattern to specify custom log message layout
+ "pattern": "%d{%y.%m.%d %H:%M:%S.%q} %-5p [%c/%i] %m\n"
+ }
+ ],
+ // You can change the severity to DEBUG, INFO, WARN, ERROR or
+ // CRIT. For DEBUG level, you can also additionally specify
+ // debuglevel (0-99, higher = more verbose). All configurations
+ // are logged on DEBUG/55.
+ "severity": "INFO",
+ "debuglevel": 0
+ }
+ ]
+ }
+}
diff --git a/doc/examples/netconf/simple-dhcp6.json b/doc/examples/netconf/simple-dhcp6.json
new file mode 100644
index 0000000..ef07dd8
--- /dev/null
+++ b/doc/examples/netconf/simple-dhcp6.json
@@ -0,0 +1,121 @@
+// This is a simple example of a configuration for Netconf that handles
+// DHCPv6 configuration. This example provides YANG interface for
+// DHCPv6 server only.
+{
+ "Netconf":
+ {
+ // Three flags control netconf (default values are true):
+ // - "boot-update" about the YANG configuration load when
+ // netconf boots.
+ // - "subscribe-changes" about the subscription to notifications
+ // when the running YANG module is changed.
+ // - "validate-changes" allows to validate changes or not.
+ "boot-update": true,
+ "subscribe-changes": true,
+ "validate-changes": true,
+
+ // This map specifies how each server is managed:
+ // the YANG model to use and the control channel.
+ "managed-servers":
+ {
+ // This is how Netconf can communicate with the DHCPv6 server.
+ "dhcp6":
+ {
+ // Eventually, the kea-netconf will be able to handle multiple
+ // models. However, for the time being the choices for
+ // DHCPv6 server are kea-dhcp6-server and
+ /// ietf-dhcpv6-server models but only the first is usable.
+ "model": "kea-dhcp6-server",
+
+ // The three control flags can be defined in this scope too
+ // and takes precedence over global and default values.
+ // boot-update determines whether the initial configuration
+ // should be retrieved from netconf during kea-netconf startup.
+ // You almost always want to set this to yes.
+ "boot-update": true,
+
+ // This flag control whether the kea-netconf daemon should
+ // subscribe to any changes. If set to true, kea-netconf will
+ // monitor sysrepo and will pick up any changes that may be
+ // introduced, either using netconf clients or sysrepocfg.
+ "subscribe-changes": true,
+
+ // This parameters specifies whether kea-netconf will attempt
+ // to verify if the upcoming NETCONF configuration is sane. The
+ // verification is done by calling config-test. Depending on
+ // Kea response, the new configuration is accepted or rejected.
+ "validate-changes": false,
+
+ // Currently three control channel types are supported:
+ // - "stdout" which output the configuration on the standard
+ // output (this is mainly for testing purposes, but you can
+ // use simple script (such as curl or socat) to pass that
+ // information to the server.
+ // - "unix" which uses the local control channel supported by
+ // "dhcp4" and "dhcp6" servers ("d2" support is coming in Kea 1.5)
+ // - "http" which uses the Control Agent (CA) to manage itself or
+ // to forward commands to "dhcp4" or "dhcp6" (not yest supported).
+ "control-socket":
+ {
+ "socket-type": "unix",
+ "socket-name": "/tmp/kea6-ctrl-socket"
+ },
+
+ // Comment is optional. You can put some notes here.
+ "comment": "Kea DHCP6 server serving network on floor 13"
+ }
+
+ },
+
+ // Netconf is able to load hook libraries that augment its operation.
+ // The primary functionality is the ability to add new commands.
+ //
+ // Uncomment this section to load a hook library.
+ //
+ // "hooks-libraries": [
+ // // Hook libraries list may contain more than one library.
+ // {
+ // // The only necessary parameter is the library filename.
+ // "library": "/opt/local/netconf-commands.so",
+ //
+ // // Some libraries may support parameters. Make sure you
+ // // type this section carefully, as the CA does not validate
+ // // it (because the format is library specific).
+ // "parameters": {
+ // "param1": "foo"
+ // }
+ // }
+ //]
+
+ // Similar to other Kea components, Netconf also uses logging.
+ "loggers": [
+ {
+ "name": "kea-netconf",
+ "output_options": [
+ {
+ //"output": "/var/log/kea-netconf.log",
+ "output": "stdout",
+ // Several additional parameters are possible in addition
+ // to the typical output. Flush determines whether logger
+ // flushes output to a file. Maxsize determines maximum
+ // filesize before the file is being rotated. maxver
+ // specifies the maximum number of rotated files being
+ // kept.
+ "flush": true,
+ "maxsize": 204800,
+ "maxver": 4,
+ // We use pattern to specify custom log message layout
+ "pattern": "%d{%y.%m.%d %H:%M:%S.%q} %-5p [%c/%i] %m\n"
+
+ }
+ ],
+ // You can change the severity to DEBUG, INFO, WARN, ERROR or
+ // CRIT. For DEBUG level, you can also additionally specify
+ // debuglevel (0-99, higher = more verbose). All configurations
+ // are logged on DEBUG/55.
+ "severity": "INFO",
+ "debuglevel": 0
+ }
+ ]
+ }
+}