design for BOOTP hook
We want to implement BOOTP support in 1.7. There is a business need for it. On the other hand, we don't want to scatter the code for it all around Kea, so the code can be removed.
This ticket covers writing bootp desgin.
Requirements:
- need to be implemented as a hook
- need to explain how to handle infinite leases (there are no lease lifetimes in bootp)
- need to explain how to handle 2 packet exchanges
- bootp does not have any options (to be confirmed)
One proposal that came up is to have a pkt4_receive hook that would insert absolute minimum necessary for the Kea engine to think it's a DHCPREQUEST (insert magic cookie, dhcp message type option) and another hook at pkt4_send that would remove those and other options being assigned.
The major benefit of this approach is that we could use host reservations, client classification and other Kea features.
Another thing to consider is that maybe we could introduce special class BOOTP, so it would be easy to understand which addresses will be assigned.