Nathan, Something like the below would work.
However, the test for being a member of office-printers or public-printers would need to be changed. I didn't know what parameter would cause that to be the case so I just used an example. Also, you shouldn't need member KNOWN in your test unless you are performing some reservations and only want clients in the office-printers / public-printers classes that you have given a reservation to. If so, you can assign special options during the reservation process. That might satisfy the JetDirect requirements in a simpler way. Have a look at: https://kea.readthedocs.io/en/kea-2.2.0/arm/dhcp4-srv.html?highlight=reservation#including-specific-dhcpv4-options-in-reservations avoiding the need for these other more complex classes. "client-classes": [ { "name": "office-printers", "test": "(substring(option[60].hex,0,9) == 'JetDirect')", "only-if-required": true }, { "name": "public-printers", "test": "(substring(option[60].hex,0,9) == 'JetDirect')", "only-if-required": true }, { "name": "jetdirect-office", "test": "(member('KNOWN')) and (member('office-printers')) and (substring(option[60].hex,0,9) == 'JetDirect')", "only-if-required": true }, { "name": "jetdirect-public", "test": "(member('KNOWN')) and (member('public-printers')) and (substring(option[60].hex,0,9) == 'JetDirect')", "only-if-required": true } ], "subnet4": [ { "subnet": "192.168.10.0/24", "id": 10, "option-data": [ { "name": "routers", "data": "192.168.10.1" } ], "pools": [ { "pool": "192.168.10.10 - 192.168.10.20" } ], "client-class": "jetdirect-office" }, { "subnet": "192.168.20.0/24", "id": 20, "option-data": [ { "name": "routers", "data": "192.168.20.1" } ], "pools": [ { "pool": "192.168.20.10 - 192.168.20.50" } ], "client-class": "jetdirect-office" }, On Sun, Dec 4, 2022 at 4:35 PM Nathan Neulinger <nn...@neulinger.org> wrote: > > I see this example in the docs: > > > https://kea.readthedocs.io/en/kea-2.2.0/arm/dhcp4-srv.html#reserving-client-classes-in-dhcpv4 > > Where it's assigning 'reserved-class1' and 'reserved-class2' to to a > reservation in the subnet. Is there some way to do this in conjunction with a > 'test'? > > i.e. I'd like to say: > > For a host with class "reserved-class1" _AND_ VendorClassIdentifier "X" > -> these options > For a host with class "reserved-class2" _AND_ VendorClassIdentifier "X" > -> these other options > > If you need a more specific example (come up on the fly, so there may > certainly be better ways to do this, but I'm specifically wanting to do > something like the above): > > JetDirect printer devices with label "office printers" -> use boot server > A, filename X > JetDirect printer devices with label "public printers" -> use boot server > B, filename Y > > > Would it be something like (VCI likely wrong, just for example purposes: > > { > "client-classes": [ > { > "name": "jetdirect-office", > "test": "member('KNOWN') and member('office-printers') and > substring(option[60].hex,0,9) == 'JetDirect'", > "only-if-required": true > } > ] > } > > combined with setting in a host reservation? > > "client-class" : "office-printers" > > > -- Nathan > ------------------------------------------------------------ > Nathan Neulinger nn...@neulinger.org > Neulinger Consulting (573) 612-1412 > > -- > ISC funds the development of this software with paid support subscriptions. > Contact us at https://www.isc.org/contact/ for more information. > > To unsubscribe visit https://lists.isc.org/mailman/listinfo/kea-users. > > Kea-users mailing list > Kea-users@lists.isc.org > https://lists.isc.org/mailman/listinfo/kea-users -- ISC funds the development of this software with paid support subscriptions. Contact us at https://www.isc.org/contact/ for more information. To unsubscribe visit https://lists.isc.org/mailman/listinfo/kea-users. Kea-users mailing list Kea-users@lists.isc.org https://lists.isc.org/mailman/listinfo/kea-users