Opened 7 years ago

Closed 6 years ago

Last modified 5 years ago

#13904 closed bug (fixed)

DHCP doesn't works at all

Reported by: Giova84 Owned by: axeld
Priority: normal Milestone: R1/beta2
Component: Servers/net_server Version: R1/Development
Keywords: Cc:
Blocked By: Blocking: #14027
Platform: All

Description

Haiku hrev51700 gcc2_h (but this issue was always present, also on Alpha 4)

I installed Haiku on an old laptop, which have a SiS 900 network card (recognized as SiS900 PCI Fast Ethernet); well: DHCP never worked for me: whenever I start Haiku, in the network preflet i just see "configuring..." for ever; I tried to quit net_server (which is automatically restarted by launch_daemon) I tried ifconfig /dev/net/sis900/0 down and then up, but nothing help. To have a connection I have to go with static addresses, but is not always possible, eg when I wish to connect on another router (eg when I go in another places).

I attach syslogs, output of listdev and ifconfig and screenshots: here we'll see that the net card results connected (and there is activity in sent), and that the settings network folder is not populated.

Attachments (9)

syslog (158.0 KB ) - added by Giova84 7 years ago.
previous_syslog (98.2 KB ) - added by Giova84 7 years ago.
ifconfig_output.txt (643 bytes ) - added by Giova84 7 years ago.
listdev_output.txt (1.9 KB ) - added by Giova84 7 years ago.
net_screenshot.png (164.1 KB ) - added by Giova84 7 years ago.
al_xv-screenshot1.png (60.6 KB ) - added by al_xv 7 years ago.
screenshot of network graph/activity
al_xv-listdev.txt (2.2 KB ) - added by al_xv 7 years ago.
listdev and listusb
al_xv-syslog.txt (506.2 KB ) - added by al_xv 7 years ago.
syslog - search for 'Send DHCP_REQUEST to 255.255.255.255:67'
al_xv-Network-434-debug-01-03-2018-22-09-13.report (10.2 KB ) - added by al_xv 7 years ago.
Network - report file generated first time Network crashed on me.

Download all attachments as: .zip

Change History (25)

by Giova84, 7 years ago

Attachment: syslog added

comment:1 by Giova84, 7 years ago

patch: 01

by Giova84, 7 years ago

Attachment: previous_syslog added

by Giova84, 7 years ago

Attachment: ifconfig_output.txt added

by Giova84, 7 years ago

Attachment: listdev_output.txt added

by Giova84, 7 years ago

Attachment: net_screenshot.png added

comment:2 by Giova84, 7 years ago

patch: 10
Version 0, edited 7 years ago by Giova84 (next)

comment:3 by bruno, 7 years ago

Hello Giova... If configuring is showing... open network preferences and choose static ip there and switch back to DHCP... click static... click DHCP... works for me...

comment:4 by Giova84, 7 years ago

Hi Bruno, I was aware of this "trick/workaround", but unfortunately doesn't works for me :-[

I noticed that if I do these steps, most of the time wrong IP addresses are assigned to the ethernet card, or if are correctly assigned, i cannot even ping my router.

comment:5 by Giova84, 7 years ago

Well, seems that I found a temporary solution (is a dirty workaround),thanks to the suggestions of Bruno.

I made a bash script that I run at startup (added in /boot/home/config/settings/boot/launch folder)

#!/bin/sh


sleep 4
ifconfig /dev/net/sis900/0 127.0.0.1 255.0.0.0 up
route add /dev/net/sis900/0 default gw 127.0.0.1
ifconfig /dev/net/sis900/0 auto-config up
sleep 2
echo $'nameserver 8.8.8.8\nnameserver 8.8.4.4'  > /boot/system/settings/network/resolv.conf
Time --update

Firstly, I assign dummy ip addresses (also netmask and gateway) to my net card, then I run ifconfig /dev/net/sis900/0 auto-config;

I see that, then, are assigned correct IP addresses from my router; as "bonus" I also change the DNS addresses and I sync the clock.

comment:6 by Giova84, 7 years ago

I spoke too soon.

When I connect my ethernet card to another router (which gives differents IP addresses and class), the file /boot/system/settings/network/interface doesn't update IP adresses.

In facts, if I open this config file, I still see old addresses instead of

interface	/dev/net/sis900/0 {
	address	inet {
		auto_config	true
	}

I edit this comment to avoid to spam this page :-)

I changed the script: kill net_server > edit auto_config true to auto_config false (by using sed) > ifconfig /dev/net/sis900/0 down > ifconfig /dev/net/sis900/0 up and switch back auto_config false to true: in this way I get addresses from another router and the interfaces config file mantains auto_config true instead of old IP addresses.

Last edited 7 years ago by Giova84 (previous) (diff)

comment:7 by al_xv, 7 years ago

I have what appears to be the same issue.

Just installed HREV51808 and on first boot I noticed the network TX/RX ActivityMonitor graph (see screenshot) going crazy. I tried to open up the Network prefs and received a crash (report attached). I tried opening it again and it didn't crash. I tried to change settings, but the ActivityMonitor graph was still showing lots of activity. Additionally I have my ethernet switch infront of me and can see lots of activity on my network from this machine.

I rebooted to see if it was a fluke and the activity continued as before. I then unplugged the ethernet cable and noticed the ActivityMonitor graph still showing activity.

I tried changing settings to Static with a manual IP address and making those changes did not stop the constant network activity. I opened my syslog file and found the most recent entries were a repetition of these two lines: (I also noticed these two lines repeating in the syslog attached by Giova84 on this original ticket, so I thought they might be the same issue.)

DAEMON 'DHCP': /dev/net/ipro100/0: Send DHCP_REQUEST to 255.255.255.255:67
DAEMON 'DHCP': /dev/net/ipro100/0: Send DHCP_DISCOVER to 255.255.255.255:67

...As I went to close Network, it locked up, so I decided to reboot.

On the following startup, my network activity graph showed no constant activity and I found my static configuration settings were saved. From here I re-connected my ethernet and didn't have any problems connecting to external servers. Now I'm using it to report this bug.

by al_xv, 7 years ago

Attachment: al_xv-screenshot1.png added

screenshot of network graph/activity

by al_xv, 7 years ago

Attachment: al_xv-listdev.txt added

listdev and listusb

by al_xv, 7 years ago

Attachment: al_xv-syslog.txt added

syslog - search for 'Send DHCP_REQUEST to 255.255.255.255:67'

by al_xv, 7 years ago

Network - report file generated first time Network crashed on me.

comment:8 by diver, 7 years ago

I don't think this bug is related as your NIC is different. So I would suggest you to open a new ticket and another one for Network preflet crash as it'a also unrelated.

Anyway, the only problem I see in your syslog is this line:

KERN: [ipro100] (fxp) EEPROM checksum mismatch! (0x9a57 -> 0x1a57)

https://git.haiku-os.org/haiku/tree/src/add-ons/kernel/drivers/network/ipro100/dev/fxp/if_fxp.c#n1321 https://github.com/freebsd/freebsd/blob/master/sys/dev/fxp/if_fxp.c#L596

It looks like one of two cores is busy with something, unfortunately you didn't attach ProcessController screenshot so we don't know what it is. I can only guess that it's either net_server using one core to send DHCP requests or syslog_daemon writing them to syslog (but that is unlikely giving small amount of repeated lines).

Another possibility is that ipro100 doesn't handle interrupts correctly. To check this you can drop to KDL with kernel_debuggger command and typing ints there followed by co to exit KDL. A few seconds later KDL output should appear in syslog.

Finally, you can blacklist your ipro100 driver and see if that fixes CPU activity.

in reply to:  8 comment:9 by korli, 7 years ago

Replying to diver:

Finally, you can blacklist your ipro100 driver and see if that fixes CPU activity.

You can also try to blacklist the uhci and auich drivers to see whether this changes anything (both share an IRQ with the NIC)

in reply to:  8 comment:10 by al_xv, 7 years ago

Replying to diver:

I don't think this bug is related as your NIC is different. So I would suggest you to open a new ticket and another one for Network preflet crash as it'a also unrelated.

OK, I have opened a new ticket for the Network Preflet crash. See https://dev.haiku-os.org/ticket/14014. I'll open another ticket for the DHCP issue, but have a couple questions below:

It looks like one of two cores is busy with something,

As far as I know, this is just a single core Pentium 4, but the CPU usage was not my issue. I was reporting the issue of DHCP settings resulting in packets being broadcast endlessly from the NIC every second. The attached screencapture was to show the network behavior, not CPU.

unfortunately you didn't attach ProcessController screenshot so we don't know what it is. I can only guess that it's either net_server using one core to send DHCP requests or syslog_daemon writing them to syslog (but that is unlikely giving small amount of repeated lines).

It seemed like a significant amount of lines in the syslog. The network activity and syslog entries were non-stop until I made an effort to stop it by changing to a static IP. Please let me know what you would need for a screenshot of ProcessController. I'm going to try to reproduce this so I can try to get a screenshot for the new ticket I will open. Just let me know what you need to see.

Another possibility is that ipro100 doesn't handle interrupts correctly. To check this you can drop to KDL with kernel_debuggger command and typing ints there followed by co to exit KDL. A few seconds later KDL output should appear in syslog.

I will try this when I try to reproduce and report results.

Finally, you can blacklist your ipro100 driver and see if that fixes CPU activity.

Won't this disable my NIC?

comment:11 by diver, 7 years ago

Ah, yeah. it was using 50% CPU and not a separate core.

WRT ProcessController, just open it and find what team/thread is using CPU the most then take a screenshot.

Yes, blacklisting will disable your NIC.

Just a though, maybe you can extract ipro100 driver from R1A4 and see if it still works?

comment:12 by waddlesplash, 6 years ago

Probably related to #13789.

comment:13 by waddlesplash, 6 years ago

Blocking: 14027 added

comment:14 by waddlesplash, 6 years ago

Please retest with a recent nightly; the SiS 900 driver was completely replaced.

comment:15 by waddlesplash, 6 years ago

Resolution: fixed
Status: newclosed

No reply; and remaining issues likely fixed after hrev53000. Closing.

comment:16 by nielx, 5 years ago

Milestone: UnscheduledR1/beta2

Assign tickets with status=closed and resolution=fixed within the R1/beta2 development window to the R1/beta2 Milestone

Note: See TracTickets for help on using tickets.