got it. Thanks for the explanation. On Tue, Feb 27, 2024 at 7:47 AM Simon Kelley <si...@thekelleys.org.uk> wrote: > > > > On 25/02/2024 23:24, Carl Karsten wrote: > > Either dhcp-script isn't doing what it is expected, or I'd like it to do > > more. > > > > I am netbooting raspberry pi. so some dhcp client in the pi firmware > > get's an IP and netboot params, then tftp client gets files. > > > > the dhcp traffic happens and is shown in the logs, but not dhcp-script: > > > > sudo journalctl --follow -u dnsmasq.service > > Feb 25 16:49:44 base dnsmasq-dhcp[47924]: DHCPDISCOVER(eth-local) > > b8:27:eb:2f:5d:08 > > Feb 25 16:49:44 base dnsmasq-dhcp[47924]: DHCPOFFER(eth-local) > > 10.21.0.102 b8:27:eb:2f:5d:08 > > Feb 25 16:49:50 base dnsmasq-tftp[47924]: file /srv/tftp/bootsig.bin > > not found for 10.21.0.102 > > Feb 25 16:49:50 base dnsmasq-tftp[47924]: sent /srv/tftp/bootcode.bin > > to 10.21.0.102 > > Feb 25 16:49:50 base dnsmasq-dhcp[47924]: DHCPDISCOVER(eth-local) > > b8:27:eb:2f:5d:08 > > Feb 25 16:49:50 base dnsmasq-dhcp[47924]: DHCPOFFER(eth-local) > > 10.21.0.102 b8:27:eb:2f:5d:08 > > Feb 25 16:49:50 base dnsmasq-tftp[47924]: error 0 Early terminate > > received from 10.21.0.102 > > Feb 25 16:49:50 base dnsmasq-tftp[47924]: failed sending > > /srv/tftp/042f5d08/start.elf to 10.21.0.102 > > Feb 25 16:49:50 base dnsmasq-tftp[47924]: file > > /srv/tftp/042f5d08/autoboot.txt not found for 10.21.0.102 > > Feb 25 16:49:50 base dnsmasq-tftp[47924]: error 0 Early terminate > > received from 10.21.0.102 > > Feb 25 16:49:50 base dnsmasq-tftp[47924]: failed sending > > /srv/tftp/042f5d08/start.elf to 10.21.0.102 > > Feb 25 16:49:50 base dnsmasq-tftp[47924]: sent > > /srv/tftp/042f5d08/config.txt to 10.21.0.102 > > > > log from > > https://github.com/CarlFK/pici/blob/main/ansible/roles/site/files/pib/pistat/scripts/send_stat.py#L83 > > > > Namespace(action='tftp', mac='52476', ip='10.21.0.102', > > hostname='/srv/tftp/bootcode.bin') dsh='(none)' > > Namespace(action='tftp', mac='2545', ip='10.21.0.102', > > hostname='/srv/tftp/042f5d08/config.txt') dsh='(none)' > > Namespace(action='tftp', mac='2979264', ip='10.21.0.102', > > hostname='/srv/tftp/042f5d08/start.elf') dsh='(none)' > > > > I suspect the problem is with the client not DHCPREQUEST and so the > > server doesn't ACK and thus I guess an IP hasn't actually be > > allocated, thus no "add" event has happened which calls the script. > > if this is the case, can we add an "offer" action? > > > > You're right that the script actions are triggered by changes in the > DHCP lease database, and DISCOVER/OFFER doesn't change the database so > there's no action. Because of the link with the lease database and the > lack of a lease at OFFER stage, adding a new action there is severely > non trivial. > > I'd suggest that the the Pi netboot code is pretty buggy: a client > shouldn't use IP address until it gets a lease, and it doesn't get the > lease until it gets a DHCPACK message. It's perfectly possible to have a > two-message interaction: just set the rapid-commit option in the > DISCOVER packet and the server will go straight to DHCPACK and > committing a lease. Buggy netboot code is far from uncommon, in my > experience. > > Simon. > > > _______________________________________________ > Dnsmasq-discuss mailing list > Dnsmasq-discuss@lists.thekelleys.org.uk > https://lists.thekelleys.org.uk/cgi-bin/mailman/listinfo/dnsmasq-discuss
-- Carl K _______________________________________________ Dnsmasq-discuss mailing list Dnsmasq-discuss@lists.thekelleys.org.uk https://lists.thekelleys.org.uk/cgi-bin/mailman/listinfo/dnsmasq-discuss