Pool level DHCP options are ignored while returning ACK to client's INFORM
Bug Description
For a client's DHCPINFORM message that requests (option 55) for a set of DHCP options, Kea ignores DHCP options in the pool configuration and only returns options specified in the subnet configuration while returning the DHCPACK
To Reproduce
For the example below, randomly selected option 67 (bootfile name) to test
- Run Kea dhcpv4 with the following subnet config
"subnet4": [
{
"subnet": "192.168.5.0/24",
"pools": [
{
"pool": "192.168.5.111 - 192.168.5.222",
"option-data": [
{
"name": "boot-file-name",
"data": "poolLevel"
}]
}],
"option-data": [
{
"name": "boot-file-name",
"data": "subnetLevel"
}]
}
]
- Client sends DHCPDISCOVER wherein client requests for Bootfile name (option 67) in the Parameter Request List (option 55)
- Kea responds with DHCPOFFER that includes Bootfile name (option 67) with value
poolLevel
from pool configuration - Client follows up with DHCPREQUEST with the same list of options and Kea returns DHCPACK with the OFFER'd values.
- Client sends DHCPINFORM requesting for Bootfile name (option 67) in the Parameter Request List (option 55)
- Kea returns DHCPACK including Bootfile name (option 67) with unexpected value
subnetLevel
Expected behavior
Server must respond to DHCPINFORM with values from the client's matching pool configuration in the DHCPACK, unless no such option is defined in the pool configuration.
In context of the example above, at step 6, server must return DHCPACK with value of Bootfile name (option 67) as poolLevel
Environment:
- Kea version: 1.7.1-git git cf6a766d
- OS: Ubuntu 18.04.2