From mboxrd@z Thu Jan 1 00:00:00 1970 Delivery-date: Tue, 29 Jun 2021 07:12:22 +0200 Received: from metis.ext.pengutronix.de ([2001:67c:670:201:290:27ff:fe1d:cc33]) by lore.white.stw.pengutronix.de with esmtp (Exim 4.92) (envelope-from ) id 1ly62o-0007G0-34 for lore@lore.pengutronix.de; Tue, 29 Jun 2021 07:12:22 +0200 Received: from localhost ([127.0.0.1] helo=metis.ext.pengutronix.de) by metis.ext.pengutronix.de with esmtp (Exim 4.92) (envelope-from ) id 1ly62n-0000fq-Rm; Tue, 29 Jun 2021 07:12:21 +0200 Received: from drehscheibe.grey.stw.pengutronix.de ([2a0a:edc0:0:c01:1d::a2]) by metis.ext.pengutronix.de with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1ly5zz-0005i1-Eo; Tue, 29 Jun 2021 07:09:27 +0200 Received: from [2a0a:edc0:0:1101:1d::39] (helo=dude03.red.stw.pengutronix.de) by drehscheibe.grey.stw.pengutronix.de with esmtp (Exim 4.92) (envelope-from ) id 1ly5zy-0005d8-V3; Tue, 29 Jun 2021 07:09:26 +0200 Received: from mol by dude03.red.stw.pengutronix.de with local (Exim 4.92) (envelope-from ) id 1ly5zy-00AakB-UL; Tue, 29 Jun 2021 07:09:26 +0200 From: Michael Olbrich To: ptxdist@pengutronix.de Date: Tue, 29 Jun 2021 07:09:26 +0200 Message-Id: <20210629050926.2524480-1-m.olbrich@pengutronix.de> X-Mailer: git-send-email 2.30.2 In-Reply-To: <20210620173954.5608-1-rhi@pengutronix.de> References: <20210620173954.5608-1-rhi@pengutronix.de> MIME-Version: 1.0 Subject: Re: [ptxdist] [APPLIED] busybox: update udhcp config files X-BeenThere: ptxdist@pengutronix.de X-Mailman-Version: 2.1.29 Precedence: list List-Id: PTXdist Development Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: ptxdist@pengutronix.de Cc: Roland Hieber Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Sender: "ptxdist" X-SA-Exim-Connect-IP: 127.0.0.1 X-SA-Exim-Mail-From: ptxdist-bounces@pengutronix.de X-SA-Exim-Scanned: No (on metis.ext.pengutronix.de); SAEximRunCond expanded to false Thanks, applied as 320816c70b01e6376ddf450fa55028ef2ff6fb06. Michael [sent from post-receive hook] On Tue, 29 Jun 2021 07:09:26 +0200, Roland Hieber wrote: > Copy the following files from busybox 1.33: > > * examples/udhcp/simple.script > * examples/udhcp/udhcpd.conf > > This teaches the DHCP client to use iproute2 tools instead of the > outdated iputils. > > Signed-off-by: Roland Hieber > Message-Id: <20210620173954.5608-1-rhi@pengutronix.de> > Signed-off-by: Michael Olbrich > > diff --git a/projectroot/etc/udhcpc.script b/projectroot/etc/udhcpc.script > index 130c37e0ce6a..f079ec8b849f 100644 > --- a/projectroot/etc/udhcpc.script > +++ b/projectroot/etc/udhcpc.script > @@ -1,38 +1,74 @@ > #!/bin/sh > +# udhcpc script edited by Tim Riker > > -# $Id$ > +RESOLV_CONF="/etc/resolv.conf" > > -[ -z "$1" ] && echo "Error: should be called from udhcpc" && exit 1 > +[ -n "$1" ] || { echo "Error: should be called from udhcpc"; exit 1; } > > -RESOLV_CONF="/etc/resolv.conf" > +NETMASK="" > +if command -v ip >/dev/null; then > + [ -n "$subnet" ] && NETMASK="/$subnet" > +else > + [ -n "$subnet" ] && NETMASK="netmask $subnet" > +fi > +BROADCAST="broadcast +" > [ -n "$broadcast" ] && BROADCAST="broadcast $broadcast" > -[ -n "$subnet" ] && NETMASK="netmask $subnet" > > case "$1" in > deconfig) > - /sbin/ifconfig $interface 0.0.0.0 > + echo "Clearing IP addresses on $interface, upping it" > + if command -v ip >/dev/null; then > + ip -4 addr flush dev $interface > + ip link set dev $interface up > + else > + ifconfig $interface 0.0.0.0 > + fi > ;; > > renew|bound) > - /sbin/ifconfig $interface $ip $BROADCAST $NETMASK > + echo "Setting IP address $ip on $interface" > + if command -v ip >/dev/null; then > + ip addr add $ip$NETMASK $BROADCAST dev $interface > + else > + ifconfig $interface $ip $NETMASK $BROADCAST > + fi > > if [ -n "$router" ] ; then > - echo "deleting routers" > + echo "Deleting routers" > while route del default gw 0.0.0.0 dev $interface ; do > : > done > > + metric=0 > for i in $router ; do > - route add default gw $i dev $interface > + echo "Adding router $i" > + if [ "$subnet" = "255.255.255.255" ]; then > + # special case for /32 subnets: > + # /32 instructs kernel to always use routing for all outgoing packets > + # (they can never be sent to local subnet - there is no local subnet for /32). > + # Used in datacenters, avoids the need for private ip-addresses between two hops. > + ip route add $i dev $interface > + fi > + route add default gw $i dev $interface metric $((metric++)) > done > fi > > - echo -n > $RESOLV_CONF > - [ -n "$domain" ] && echo search $domain >> $RESOLV_CONF > + # If the file is a symlink somewhere (like /etc/resolv.conf > + # pointing to /run/resolv.conf), make sure things work. > + if test -L "$RESOLV_CONF"; then > + # If it's a dangling symlink, try to create the target. > + test -e "$RESOLV_CONF" || touch "$RESOLV_CONF" > + fi > + realconf=$(readlink -f "$RESOLV_CONF" 2>/dev/null || echo "$RESOLV_CONF") > + echo "Recreating $realconf" > + tmpfile="$realconf-$$" > + > "$tmpfile" > + [ -n "$domain" ] && echo "search $domain" >> "$tmpfile" > for i in $dns ; do > - echo adding dns $i > - echo nameserver $i >> $RESOLV_CONF > + echo " Adding DNS server $i" > + echo "nameserver $i" >> "$tmpfile" > done > + mv "$tmpfile" "$realconf" > ;; > esac > > diff --git a/projectroot/etc/udhcpd.conf b/projectroot/etc/udhcpd.conf > index eca44c0ab41e..6eb10852e2e6 100644 > --- a/projectroot/etc/udhcpd.conf > +++ b/projectroot/etc/udhcpd.conf > @@ -44,7 +44,7 @@ interface eth0 > #notify_file # default: no script > #notify_file dumpleases # useful for debugging > > -# The following are bootp specific options > +# The following are BOOTP specific options > # next server to use in bootstrap > #siaddr 192.168.0.22 # default: 0.0.0.0 (none) > # tftp server name > @@ -52,9 +52,14 @@ interface eth0 > # tftp file to download (e.g. kernel image) > #boot_file /var/nfs_root # default: none > > +# NOTE: "boot_file FILE" and "opt bootfile FILE" are conceptually the same, > +# but "boot_file" goes into BOOTP-defined fixed-size field in the packet, > +# whereas "opt bootfile" goes into DHCP option 0x43. > +# Same for "sname HOST" and "opt tftp HOST". > + > # Static leases map > #static_lease 00:60:08:11:CE:4E 192.168.0.54 > -#static_lease 00:60:08:11:CE:3E 192.168.0.44 > +#static_lease 00:60:08:11:CE:3E 192.168.0.44 optional_hostname > > # The remainder of options are DHCP options and can be specified with the > # keyword 'opt' or 'option'. If an option can take multiple items, such > @@ -70,46 +75,56 @@ option domain local > option lease 864000 # default: 10 days > option msstaticroutes 10.0.0.0/8 10.127.0.1 # single static route > option staticroutes 10.0.0.0/8 10.127.0.1, 10.11.12.0/24 10.11.12.1 > -# Arbitrary option in hex form: > +# Arbitrary option in hex or string form: > option 0x08 01020304 # option 8: "cookie server IP addr: 1.2.3.4" > +option 14 "dumpfile" > > -# Currently supported options (for more info, see options.c): > -#opt lease NUM > -#opt subnet IP > -#opt broadcast IP > -#opt router IP_LIST > -#opt ipttl NUM > -#opt mtu NUM > -#opt hostname STRING # client's hostname > -#opt domain STRING # client's domain suffix > -#opt search STRING_LIST # search domains > -#opt nisdomain STRING > -#opt timezone NUM # (localtime - UTC_time) in seconds. signed > -#opt tftp STRING # tftp server name > -#opt bootfile STRING # tftp file to download (e.g. kernel image) > -#opt bootsize NUM # size of that file > -#opt rootpath STRING # (NFS) path to mount as root fs > -#opt wpad STRING > -#opt serverid IP # default: server's IP > -#opt message STRING # error message (udhcpd sends it on success too) > -#opt vlanid NUM # 802.1P VLAN ID > -#opt vlanpriority NUM # 802.1Q VLAN priority > +# Currently supported options [hex option value] (for more info, see common.c): > +#opt lease NUM # [0x33] > +#opt subnet IP # [0x01] > +#opt broadcast IP # [0x1c] > +#opt router IP_LIST # [0x03] > +#opt ipttl NUM # [0x17] > +#opt mtu NUM # [0x1a] > +#opt hostname STRING # [0x0c] client's hostname > +#opt domain STRING # [0x0f] client's domain suffix > +#opt search STRING_LIST # [0x77] search domains > +#opt nisdomain STRING # [0x28] > +#opt timezone NUM # [0x02] (localtime - UTC_time) in seconds. signed > +#opt tzstr STRING # [0x64] RFC 4833. IEEE 1003.1 TZ string > +#opt tzdbstr STRING # [0x65] RFC 4833. Reference to the TZ database string > +#opt tftp STRING # [0x42] tftp server name > +#opt bootfile STRING # [0x43] tftp file to download (e.g. kernel image) > +#opt bootsize NUM # [0x0d] size of that file > +#opt rootpath STRING # [0x11] (NFS) path to mount as root fs > +#opt wpad STRING # [0xfc] Web Proxy Auto Discovery Protocol > +#opt serverid IP # [0x36] default: server's IP > +#opt message STRING # [0x38] error message (if set, udhcpd would send it on success too) > +#opt vlanid NUM # [0x84] 802.1P VLAN ID > +#opt vlanpriority NUM # [0x85] 802.1Q VLAN priority > +#opt vendor STRING # [0x3c] client's vendor string, not intended to be sent by DHCP servers > +# RFC 5071: PXELINUX Options > +#opt 0xd0 F100747E # [0xd0] magic needed for other options to be recognized by clients > +#opt pxeconffile STRING # [0xd1] > +#opt pxepathprefix STRING # [0xd2] > +#opt reboottime NUM # [0xd3] bootstrap timeout > # Options specifying server(s) > -#opt dns IP_LIST > -#opt wins IP_LIST > -#opt nissrv IP_LIST > -#opt ntpsrv IP_LIST > -#opt lprsrv IP_LIST > -#opt swapsrv IP > +#opt dns IP_LIST # [0x06] > +#opt wins IP_LIST # [0x2c] > +#opt nissrv IP_LIST # [0x29] > +#opt ntpsrv IP_LIST # [0x2a] > +#opt lprsrv IP_LIST # [0x09] > +#opt swapsrv IP # [0x10] > # Options specifying routes > -#opt routes IP_PAIR_LIST > -#opt staticroutes STATIC_ROUTES # RFC 3442 classless static route option > -#opt msstaticroutes STATIC_ROUTES # same, using MS option number > +#opt routes IP_PAIR_LIST # [0x21] > +#opt staticroutes STATIC_ROUTES # [0x79] RFC 3442 classless static route option > +#opt msstaticroutes STATIC_ROUTES # [0xf9] same, using MS option number > # Obsolete options, no longer supported > -#opt logsrv IP_LIST # 704/UDP log server (not syslog!) > -#opt namesrv IP_LIST # IEN 116 name server, obsolete (August 1979!!!) > -#opt cookiesrv IP_LIST # RFC 865 "quote of the day" server, rarely (never?) used > -#opt timesrv IP_LIST # RFC 868 time server, rarely (never?) used > +#opt logsrv IP_LIST # [0x07] 704/UDP log server (not syslog!) > +#opt namesrv IP_LIST # [0x05] IEN 116 name server, obsolete (August 1979!!!) > +#opt cookiesrv IP_LIST # [0x08] RFC 865 "quote of the day" server, rarely (never?) used > +#opt timesrv IP_LIST # [0x04] RFC 868 time server, rarely (never?) used > # TODO: in development > -#opt userclass STRING # RFC 3004. set of LASCII strings. "I am a printer" etc > -#opt sipserv STRING LIST # RFC 3361. flag byte, then: 0: domain names, 1: IP addrs > +#opt userclass STRING # [0x4d] RFC 3004. set of LASCII strings. "I am a printer" etc > +#opt sipsrv STRING LIST # [0x78] RFC 3361. flag byte, then: 0: domain names, 1: IP addrs > +#opt ip6rd .... # [0xd4] IPv6 rapid deployment _______________________________________________ ptxdist mailing list ptxdist@pengutronix.de To unsubscribe, send a mail with subject "unsubscribe" to ptxdist-request@pengutronix.de