[PATCH v2] busybox: Update udhcpc.script for DHCPv6

Samuel Mendoza-Jonas sam at mendozajonas.com
Wed Jun 20 00:24:04 UTC 2018


On Tue, 2018-06-19 at 09:57 +0200, Peter Korsgaard wrote:
> > > > > > "Samuel" == Samuel Mendoza-Jonas <sam at mendozajonas.com> writes:
> 
> Hi,
> 
>  > udhcpc6 will call the default script with the address set in the "ipv6"
>  > variable. Set "ip" to this address if present.
> 
>  > Also from Rob, if handling a DHCPv6 address wait a moment for the IPv6
>  > route to be configured; this doesn't come from DHCPv6 but rather the
>  > IPv6 Router Advertisement (RA).
> 
>  > (wait for IPv6 route)
>  > From: Robert Lippert <rlippert at google.com>
>  > Signed-off-by: Samuel Mendoza-Jonas <sam at mendozajonas.com>
>  > ---
>  > v2: Avoid bashisms
> 
>  >  package/busybox/udhcpc.script | 14 ++++++++++++++
>  >  1 file changed, 14 insertions(+)
> 
>  > diff --git a/package/busybox/udhcpc.script b/package/busybox/udhcpc.script
> 
> You are sending this to the busybox list, but it looks to be a Buildroot
> patch?

Ugh, thank you for noticing - must have fat-fingered the --to option.

> 
> > index ad110d3a7f..65114b6cd0 100755
> 
>  > --- a/package/busybox/udhcpc.script
>  > +++ b/package/busybox/udhcpc.script
>  > @@ -8,6 +8,16 @@ RESOLV_CONF="/etc/resolv.conf"
>  >  [ -e $RESOLV_CONF ] || touch $RESOLV_CONF
>  >  [ -n "$broadcast" ] && BROADCAST="broadcast $broadcast"
>  >  [ -n "$subnet" ] && NETMASK="netmask $subnet"
>  > +[ -n "$ipv6" ] && ip="$ipv6/128"
> 
> Why /128?
> 
> I'm far from an IPv6 expert, but I take it this is for stateful DHCPv6,
> right? Please mention that in the commit message.

Yes this is stateful DHCPv6 - I'll update the commit message since I need to
send it to the correct list anyway :)
I can hardly claim the title of IPv6 expert either, but my understanding is
that a DHCPv6 server will not supply a subnet mask like a DHCPv4 server would,
but rather the address is implicitly a global '/128' address (and indeed udhcpc6
does not supply a subnet variable).

Cheers,
Sam

> 
> > +
> 
>  > +wait_for_ipv6_default_route() {
>  > +	attempts=10
>  > +	while [ $attempts != 0 ] && [ -z "$(ip -6 route list | grep default)" ] ; do
>  > +		sleep 1
>  > +		attempts=$(($attempts-1))
>  > +	done
>  > +	[ $attempts = 0 ] && echo "failed to get default ipv6 route"
>  > +}
>  
>  >  case "$1" in
>  >  	deconfig)
>  > @@ -37,6 +47,10 @@ case "$1" in
>  >  			/usr/sbin/avahi-autoipd -k $interface
>  >  		fi
>  >  		/sbin/ifconfig $interface $ip $BROADCAST $NETMASK
>  > +		if [ -n "$ipv6" ] ; then
>  > +			echo "waiting for default ipv6 route set"
>  > +			wait_for_ipv6_default_route
>  > +		fi
>  
>  >  		if [ -n "$router" ] ; then
>  >  			echo "deleting routers"
>  > -- 
>  > 2.17.1
> 
>  > _______________________________________________
>  > busybox mailing list
>  > busybox at busybox.net
>  > http://lists.busybox.net/mailman/listinfo/busybox
> 



More information about the busybox mailing list