// This is an example configuration file for the DHCPv4 server in Kea.
// The purpose of this example is to showcase how to configure
// DHCP option for the Discovery of Network-designated Resolvers (DNR)
// (code 162) draft-ietf-add-dnr.


{
  "Dhcp4": {
    // Option data defined globally
    "option-data": [
      /*
       0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      | OPTION_V4_DNR |     Length    |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      ~      DNR Instance Data #1     ~
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+   ---
      .              ...              .    |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ optional
      ~      DNR Instance Data #n     ~    |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+   ---

      DNR Instance Data Format:
       0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |    DNR Instance Data Length   |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |       Service Priority        |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |   ADN Length  |               |
      +-+-+-+-+-+-+-+-+               |
      ~  authentication-domain-name   ~
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |  Addr Length  |               |
      +-+-+-+-+-+-+-+-+               |
      ~        IPv4 Address(es)       ~
      |               +-+-+-+-+-+-+-+-+
      |               |               |
      +-+-+-+-+-+-+-+-+               |
      ~Service Parameters (SvcParams) ~
      |                               |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      */
      // Type: uint16, uint16, uint8, FQDN, binary
      {
        // 2 DNR instances with IP address(es) and SvcParams included as binary type.
        "code": 162,
        "name": "v4-dnr",           // addresses len=8   |  IPv4 1   |  IPv4 2   |             SvcParams "key1=val1 key2=val2"            |Len2 |Prio2|  | ADN with Len=21=15hex myhost1.example.com                    |  |  IPv4 1   |  IPv4 2   |             SvcParams "key3=val3 key4=val4"            |
        "data": "54, 3234, 23, example.some.host.org., 08 c0 a8 00 01 c0 a8 00 02 6b 65 79 31 3d 76 61 6c 31 20 6b 65 79 32 3d 76 61 6c 32 00 34 10 e1 15 07 6D 79 68 6F 73 74 31 07 65 78 61 6D 70 6C 65 03 63 6F 6D 00 08 c0 a9 00 01 c0 a9 00 02 6b 65 79 33 3d 76 61 6c 33 20 6b 65 79 34 3d 76 61 6c 34"
      }
    ],
    // Kea is told to listen on eth0 interface only.
    "interfaces-config": {
      "interfaces": [
        "eth0"
      ]
    },
    // We need to specify the database used to store leases.
    "lease-database": {
      "type": "memfile"
    },
    // The following list defines subnets. We have only one subnet
    // here. We tell Kea that it is directly available over local interface.
    "subnet4": [
      {
        "id": 1,
        "interface": "eth0",
        "pools": [
          {
            "pool": "192.0.2.50-192.0.2.50"
          }
        ],
        "subnet": "192.0.2.0/24"
      }
    ]
  }
}
