// This is an example configuration file for the DHCPv6 server in Kea.
// It is a basic scenario with one IPv6 subnet configured. It demonstrates
// how to configure Kea to use CQL (Cassandra) backend.

{ "Dhcp6":

{
// Kea is told to listen on ethX interface only.
  "interfaces-config": {
    "interfaces": [ "ethX" ]
  },

// CQL (Cassandra) backend. Leases will be stored in Cassandra database. Make
// sure it is up, running and properly initialized. See kea-admin documentation
// for details on how to initialize the database. The only strictly required
// parameters are type, keyspace and contact-points. At least one contact point
// must be specified, but more than one is required for redundancy. Make sure
// you specify the contact points without spaces. Kea must be compiled with
// --with-cql option to use this backend.
  "lease-database": {
      "type": "cql",
      "keyspace": "keatest",
      "contact-points": "192.0.2.1,192.0.2.2,192.0.2.3",
      "port": 9042,

      // Cassandra supports many additonal parameters that are typically
      // not needed, but may be used to tweak your deployment.

      // This parameter governs how long Kea waits before attempting
      // to reconnect. Expressed in milliseconds. The default is 2000 [ms].
      "reconnect-wait-time": 2000,

      // This parameter sets the timeout for connecting to a node. Expressed
      // in milliseconds. The default is 5000 [ms].
      "connect-timeout": 5000,

      // This parameter sets the timeout for waiting for a response
      // from a node. Expressed in milliseconds. The default is 12000 [ms].
      "request-timeout": 12000,

      // This parameter governs the TCP keep-alive mechanism. Expressed
      // in seconds of delay. The default is disabled. In this example it is
      // set to 20 minutes.
      "tcp-keepalive": 1200,

      // This parameter enables/disables Nagle's algorithm on connections.
      // The default is true.
      "tcp-nodelay": true
  },

// Addresses will be assigned with preferred and valid lifetimes
// being 3000 and 4000, respectively. Client is told to start
// renewing after 1000 seconds. If the server does not respond
// after 2000 seconds since the lease was granted, client is supposed
// to start REBIND procedure (emergency renewal that allows switching
// to a different server).
  "preferred-lifetime": 3000,
  "valid-lifetime": 4000,
  "renew-timer": 1000,
  "rebind-timer": 2000,

// The following list defines subnets. Each subnet consists of at
// least subnet and pool entries.
  "subnet6": [
    {
      "pools": [ { "pool": "2001:db8:1::/80" } ],
      "subnet": "2001:db8:1::/64",
      "interface": "ethX"
    }
  ]
},

// The following configures logging. It assumes that messages with at
// least informational level (info, warn, error and fatal) should be
// logged to stdout.
"Logging": {
    "loggers": [
        {
            "name": "kea-dhcp6",
            "output_options": [
                {
                    "output": "stdout"
                }
            ],
            "debuglevel": 0,
            "severity": "INFO"
        }
    ]
}

}
