There is a branch passive-refresh which contains this feature. It is mostly implemented however needs:
- rebasing against current tollgate
- testing under load
- rate limiting for duplicated events (as lots of ARP traffic can quickly overwhelm the application)
This feature implements a feature in the backend which causes it to generate DBus events whenever it recieves ARP packets.
This is then listened to by a frontend management command (listen_arp) which will cause NetworkHosts to be onlined automatically as soon as any traffic is received, and offline a host in case of recycling.
This has the upshot of eliminating some of the need for manual scanning of hosts, but makes it much more difficult to offline a host in the event of IP recycling.
The reason for this was primarily to deal with broken Apple DHCP client behaviour (on recent versions of iOS and Mac OS X) which deliberately violate DHCP standards by using an IP without requesting a lease if it is detected an IP is available for use. The reason for this is to "improve the experience" when connecting to networks with slow embedded DHCP servers, by breaking good, fast DHCP servers.
At the moment I'm a bit torn about whether to encourage broken Apple behaviour by patching around it, or if there is a way to make the DHCP client in Apple devices actually follow standards.
More background on this:
There is a branch
passive-refreshwhich contains this feature. It is mostly implemented however needs:This feature implements a feature in the backend which causes it to generate DBus events whenever it recieves ARP packets.
This is then listened to by a frontend management command (
listen_arp) which will cause NetworkHosts to be onlined automatically as soon as any traffic is received, and offline a host in case of recycling.This has the upshot of eliminating some of the need for manual scanning of hosts, but makes it much more difficult to offline a host in the event of IP recycling.
The reason for this was primarily to deal with broken Apple DHCP client behaviour (on recent versions of iOS and Mac OS X) which deliberately violate DHCP standards by using an IP without requesting a lease if it is detected an IP is available for use. The reason for this is to "improve the experience" when connecting to networks with slow embedded DHCP servers, by breaking good, fast DHCP servers.
At the moment I'm a bit torn about whether to encourage broken Apple behaviour by patching around it, or if there is a way to make the DHCP client in Apple devices actually follow standards.
More background on this: