Unable to add multiple sub options to vivso-suboptions (DHCPv4)
Describe the bug
I'm trying to configure the Kea Dhcp4 server to send option 125 vivso-suboptions with multiple suboptions (with different enterprise ids).
I've tried to configure the option and sub option according to the documentation, but then it only sends the last option (the server correctly sends each of the sub options if they are configured separately)
When I tried to "hard code" the option data trying to avoid a possible parsing problem when each sub options is configured separately only the first sub option in the data string is then returned. I configured this version by setting csv-format to false and provided the hex string in the data field according to the second example below
To Reproduce (regular configuration with sub options)
Steps to reproduce the behavior:
- Run Kea dhcpv4 with the following config
{
"Dhcp4": {
...
"option-data": [ {
"always-send": true,
"name": "vivso-suboptions",
"space": "dhcp4"
},{
"always-send": true,
"code": 22,
"csv-format": true,
"data": "untagged",
"name": "tag",
"space": "vendor-2234"
},{
"always-send": true,
"name": "vivso-suboptions",
"data": "3561"
}, {
"name": "url",
"space": "vendor-3561",
"data": "https://rgw.teliacompany.com:7575/ACS-server/ACS",
"always-send": true
}
],
"option-def": [
{
"code": 22,
"name": "tag",
"space": "vendor-2234",
"type": "string"
},
{
"code": 11,
"name": "url",
"space": "vendor-3561",
"type": "string"
}
]
...
}
- Client does a DHCPDISCOVER
- Server then responds with
TIME: 2020-11-02 15:55:40.497
IP: 192.168.x.x (0:50:56:8b:46:66) > 255.255.255.255 (0:50:56:8b:93:86)
OP: 2 (BOOTPREPLY)
..
OPTION: 53 ( 1) DHCP message type 2 (DHCPOFFER)
..
OPTION: 125 ( 55) ??? 00000de9320b3068 ....2.0h
747470733a2f2f72 ttps://r
67772e74656c6961 gw.telia
636f6d70616e792e company.
636f6d3a37353735 com:7575
2f4143532d736572 /ACS-ser
7665722f414353 ver/ACS
To Reproduce (full packet data configuration) Steps to reproduce the behavior:
- Run Kea dhcpv4 with the following config
{
"Dhcp4": {
...
"option-data": [ {
"always-send": true,
"code": 125,
"csv-format": false,
"data": "000008ba0a1608756e74616767656400000de9320b3068747470733a2f2f7267772e74656c6961636f6d70616e792e636f6d3a373537352f4143532d7365727665722f414353",
"name": "vivso-suboptions",
"space": "dhcp4"
}
],
"option-def": [
]
...
}
- Client does a DHCPDISCOVER
- Server then responds with
TIME: 2020-11-02 15:57:56.178
IP: 192.168.x.x (0:50:56:8b:46:66) > 255.255.255.255 (0:50:56:8b:93:86)
OP: 2 (BOOTPREPLY)
..
OPTION: 53 ( 1) DHCP message type 2 (DHCPOFFER)
..
OPTION: 125 ( 15) ??? 000008ba0a160875 .......u
6e746167676564 ntagged
Expected behavior The server should send a response with the two sub options in the vivso option (the complete hex string)
received DHCP Boot Reply on Interface to-DHCP-server Port 68
H/W Type: Ethernet(10Mb) H/W Address Length: 6
ciaddr: 0.0.0.0 yiaddr: x.x.x.x
siaddr: x.x.x.x giaddr: 0.0.0.0
chaddr: x:x:x:x:x:x xid: 0xfd9d3a20
DHCP options:
..
[53] Message type: Ack
..
[125] Unknown option: len = 70, value = 00 00 08 ba 0a 16 08 75 6e 74 61
67 67 65 64 00 00 0d e9 32 0b 30 68 74 74 70 73 3a 2f 2f 72 67 77 2e 74 65
6c 69 61 63 6f 6d 70 61 6e 79 2e 63 6f 6d 3a 37 35 37 35 2f 41 43 53 2d 73
65 72 76 65 72 2f 41 43 53
[255] End
Environment:
- Kea version: 1.6.2
- OS: Ubuntu 20.04.1 x64
- Hooks: libdhcp_lease_cmds, libdhcp_ha