[OpenWrt-Devel] [PATCH] odhcpd: add network dependent start trigger
Hans Dedecker
dedeckeh at gmail.com
Wed Feb 27 07:38:36 EST 2019
Hi,
On Mon, Feb 25, 2019 at 8:46 AM Hans Dedecker <dedeckeh at gmail.com> wrote:
>
> Hi,
> On Sun, Feb 24, 2019 at 7:06 AM Eric Luehrsen <ericluehrsen at gmail.com> wrote:
> >
> > Recent (20190207) changes to odhcpd makee it dependent on OpenWrt
> > logical interfaces. Boot time race conditions may make odhcpd binding
>
> Even before the most recent changes odhcpd was dependent on OpenWRT logical
> interfaces nothing has changed in that sense
> > a challenge. Intermittent or inconsistent problems can occur with DHCP
> > requests until odhcpd is restarted. Change start up scripts to use
>
> Can you elaborate a bit more on what issues you're observing and provide odhcpd
> tracing (loglevel 7) when you observe issues ?
The issue you probably have observed is fixed in
https://git.openwrt.org/?p=project/odhcpd.git;a=commit;h=16c5b6c9bcb71bb67a6ab15bb458bf9ab5a8fe7e
Hans
> > procd interface triggers such as dnsmasq and others have already.
>
> This does not really make sense to me as odhcpd is subscribed to ubus
> network event
> messages triggering config reload logic in case the network state of
> an interface changes
>
> Hans
> >
> > Signed-off-by: Eric Luehrsen <ericluehrsen at gmail.com>
> > ---
> > .../network/services/odhcpd/files/odhcpd.init | 20 +++++++++++++++++--
> > 1 file changed, 18 insertions(+), 2 deletions(-)
> >
> > --- a/package/network/services/odhcpd/files/odhcpd.init
> > +++ b/package/network/services/odhcpd/files/odhcpd.init
> > @@ -1,10 +1,20 @@
> > #!/bin/sh /etc/rc.common
> >
> > -START=35
> > +START=19
> > STOP=85
> > USE_PROCD=1
> >
> > +boot() {
> > + ODHCPD_BOOT=1
> > + start "$@"
> > +}
> > +
> > start_service() {
> > + if [ -n "$ODHCPD_BOOT" ] ; then
> > + # odhcpd needs to wait for OpenWrt logical interfaces
> > + return 0
> > + fi
> > +
> > procd_open_instance
> > procd_set_param command /usr/sbin/odhcpd
> > procd_set_param respawn
> > @@ -17,6 +27,12 @@ reload_service() {
> >
> > service_triggers()
> > {
> > - procd_add_reload_trigger "dhcp"
> > + if [ -n "$ODHCPD_BOOT" ] ; then
> > + # one time trigger at boot to wait for logical interface setup
> > + procd_add_raw_trigger "interface.*.up" 3000 /etc/init.d/odhcpd restart
> > + else
> > + # reload odhcpd also for network reconfiguration
> > + procd_add_reload_trigger "dhcp" "network"
> > + fi
> > }
> >
> > --
> > 2.20.1
> >
> > _______________________________________________
> > openwrt-devel mailing list
> > openwrt-devel at lists.openwrt.org
> > https://lists.openwrt.org/mailman/listinfo/openwrt-devel
_______________________________________________
openwrt-devel mailing list
openwrt-devel at lists.openwrt.org
https://lists.openwrt.org/mailman/listinfo/openwrt-devel
More information about the openwrt-devel
mailing list