Wind River Support Network

HomeDefectsLIN7-1204
Fixed

LIN7-1204 : CLONE - Broadcast address is not assigned when invoking udhcpc along with ip command

Created: Oct 23, 2014    Updated: Mar 31, 2016
Resolved Date: Oct 26, 2014
Found In Version: 7.0
Fix Version: 7.0
Severity: Standard
Applicable for: Wind River Linux 7
Component/s: Networking

Description

When using udhcpc along with ip command(/sbin/ip), broadcast address is not assigned.
Broadcast address is successfully assigned when using udhcpc without ip command existence.

- w ip command
eth0      Link encap:Ethernet  HWaddr 00:01:AF:30:9D:28  
          inet addr:128.224.232.234  Bcast:0.0.0.0  Mask:255.255.254.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:74582 errors:0 dropped:18682 overruns:0 frame:0
          TX packets:531 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:6893150 (6.5 MiB)  TX bytes:125727 (122.7 KiB)
          Interrupt:20 Memory:e8a00000-e8a20000 

- w/o ip command
eth0      Link encap:Ethernet  HWaddr 00:01:AF:30:9D:28  
          inet addr:128.224.232.234  Bcast:128.224.233.255  Mask:255.255.254.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:75036 errors:0 dropped:18764 overruns:0 frame:0
          TX packets:536 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:6936329 (6.6 MiB)  TX bytes:127107 (124.1 KiB)
          Interrupt:20 Memory:e8a00000-e8a20000 


I checked the "50default" shell and found that broadcast address is not fed in case ip command or ifconfig neither when invoking "udhcpc" command.
Always nothing to be contained in BROADCAST although this shell seems to expect..

/etc/udhcp.d/50default
L8
[ -n "$broadcast" ] && BROADCAST="broadcast $broadcast"
[ -n "$subnet" ] && NETMASK="netmask $subnet"

In case of ifconfig, it doesn't care of it's existence because it will automatically calculate broadcast address then assign it if there is no broadcast option.
However in case of ip command, it requires broadcast address statically.

L38
                if [ $have_bin_ip -eq 1 ]; then
                        ip addr add dev $interface local $ip/$mask $BROADCAST
                else
                        /sbin/ifconfig $interface $ip $BROADCAST $NETMASK
                fi

This seems an issue in busybox package.
Please address to get broadcast address when ip command is enabled.

Steps to Reproduce

1. Create a project.
Here is my configuration.
$ configure --enable-board=intel-xeon-core --enable-build=profiling --enable-kernel=standard --enable-rootfs=glibc-small+initramfs-integrated --enable-target-installer=yes --enable-jobs=4 --enable-parallel-pkgbuilds=4 --enable-reconfig --with-rcpl-version=0016

2. Execute busybox menuconfig to enable "udhcpc" and "ip".
$ make -C build busybox.menuconfig

Networking Utilities  --->
[*]ip
[*] udhcp client (udhcpc) 

3. Build the target system.
$ make fs

4. Start the target system to ensure that network address is assigned through dhcp.

5. Check the assigned network address by using ifconfig etc..
$ ifconfig eth0

eth0      Link encap:Ethernet  HWaddr 00:01:AF:30:9D:28  
          inet addr:128.224.232.234  Bcast:0.0.0.0  Mask:255.255.254.0 <===(*1)
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:74582 errors:0 dropped:18682 overruns:0 frame:0
          TX packets:531 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:6893150 (6.5 MiB)  TX bytes:125727 (122.7 KiB)
          Interrupt:20 Memory:e8a00000-e8a20000 

(*1) "Bcast" field results "0.0.0.0" i.e. broadcast address is not assigned.
Live chat
Online