Client class option is not correctly assigned (boot-file-name for PXE)
name: Bug report
about: client class option mismatch
Describe the bug Client class option is not correctly assigned (boot-file-name for PXE) I'm unable to boot in UEFI as invalid boot-file-name is given.
To Reproduce Steps to reproduce the behavior:
- Run Kea dhcpv4with the following config
"client-classes": [
{...},
{
"name": "UEFI-64-1",
"test": "substring(option[60].hex,0,20) == 'PXEClient:Arch:00007'",
"boot-file-name": "efi64/syslinux.efi"
},
{...},
{
"name": "Legacy",
"test": "substring(option[60].hex,0,20) == 'PXEClient:Arch:00000'",
"boot-file-name": "pxelinux.0"
}
]
Please note that 'pxelinux.0' is only mentionned here in the config.
- Client boot and selects Network UEFI Boot. DHCP server is on the same network (no relay)
- Client send DHCP Discover packet with option 60/Vendor Class identifier set to "PXEClient:Arch:00007:UNDI:003016" (see tcpdump capture)
- Kea answer with "pxelinux.0" as Boot file name in its DHCP Offer
Expected behavior I would expect to get "efi64/syslinux.efi" as boot file name, as it matches the class test condition. It does not match the test condidition for legacy pxelinux.0.
Environment:
- Kea version:
2.0.1
tarball
linked with:
log4cplus 1.1.2
OpenSSL 1.1.1f 31 Mar 2020
database:
MySQL backend 12.0, library 8.0.27
PostgreSQL backend 6.2, library 120009
Memfile backend 2.1
- OS: [Ubuntu 20.04 x64]
- Which features were compiled in : unsing mysql backend
- If/which hooks where loaded in: not using hooks.
Additional Information
# tcpdump -ni eth0 ether host xx:xx:xx:xx:xx:xx and port bootpc -w dhcp.cap
# tcpdump -Ar dhcp.cap
reading from file dhcp.cap, link-type EN10MB (Ethernet)
17:03:45.684558 IP 0.0.0.0.bootpc > 255.255.255.255.bootps: BOOTP/DHCP, Request from xx:xx:xx:xx:xx:xx (oui Unknown), length 347
E..w."..@.`U.........D.C.c>Q.....dg.....................T../,...........................................................................................................................................................................................................c.Sc5..9...7#..............()*+236:;<BCa........a..L=.(J%...\..?...^....]...< PXEClient:Arch:00007:UNDI:003016.
17:03:45.687441 IP server-01.exmple.com.bootps > 255.255.255.255.bootpc: BOOTP/DHCP, Reply, length 334
E..j..@...A[.........C.D.V.......dg.....................T../,...........tftpserver.exemple.com..................................pxelinux.0......................................................................................................................c.Sc5......................client.exemple.com3.....6.....B.192.168.0.14.
Contacting you by gitlab/email