|
Bugzilla – Full Text Bug Listing |
| Summary: | roaming with wired NIC does not work | ||
|---|---|---|---|
| Product: | [openSUSE] SUSE LINUX 10.0 | Reporter: | Lars Müller <lmuelle> |
| Component: | Mobile Devices | Assignee: | Forgotten User ZhJd0F0L3x <forgotten_ZhJd0F0L3x> |
| Status: | RESOLVED WONTFIX | QA Contact: | E-mail List <qa-bugs> |
| Severity: | Normal | ||
| Priority: | P5 - None | CC: | suse-beta |
| Version: | Final | ||
| Target Milestone: | --- | ||
| Hardware: | Other | ||
| OS: | Other | ||
| Whiteboard: | |||
| Found By: | Development | Services Priority: | |
| Business Priority: | Blocker: | --- | |
| Marketing QA Status: | --- | IT Deployment: | --- |
| Attachments: | New powersave action | ||
|
Description
Lars Müller
2005-10-17 20:50:30 UTC
More usage details: I suspend the system, close the lid, unplug the network cable, move to the other network, plug the network cable, open the lid, resume the system. And the IO address range between home and work is different, ok. For this usage scenario you need to add "network" to the "services to restart" list in /etc/sysconfig/powersave/sleep. The reason is, that ifplugd never sees the cable unplug event, and if it does, only for a second but not for the 5 or 10 seconds needed to trigger ifdown/up. If we had a /etc/init.d/network trigger that would do a "recheck dhcp, but only if dhcp is configured and non-destructive (means: do not get a new ip if not absolutely necessary)", we could add this as a default action on resume, but i am not sure if we have such a beast. Christian? But of course, NetworkManager will solve this problem (and world hunger, too). Lars, you say that "a network restart even does not change anything". But i expect that rcnetwork restart does restart the network and therefore get the right lease from current dhcp server. If that does not happen, this is a bug. Seife, if we had a reliable means to renew the lease, i had added this already. But as Lars already said, you have to send dhcpcd three times a signal until it renews the lease completely. It seems to rotate in 3 states every time one sends this signal (dhcpcd -n). And only if in state 3 it does what we want. Therefore we had to change dhcpcd first. Or use dhclient, _if_ this is possible there. (And this is not roaming) Sending SIGALRM manually works fine here. Maybe just the -n option is broken? SUSPEND2DISK_RESTART_SERVICES was /etc/sysconfig/powersave/sleep set to "hotplug network". I've now reduced it to "network". I'll inform you as soon as I switch the network the next time. Regarding comment #4: It's the same while sending dhcpcd SIGALRM. I had to send the siganl three times. Regarding comment #5: No difference if I set SUSPEND2DISK_RESTART_SERVICES only to network. Anything missing? Lars, if you call rcnetwork restart manually after resume, does that set up interfaces properly? To comment 4: Peter, i have my notebook connected to SUSE net using dhcpcd. Now i set up a local dhcpd on another notebook with a different subnet. Then i just switch the cable from hub to dhcpd-notebook. No automatic detection (is ok). Then 1) dhcpcd -n --> sending DHCP_REQUEST for <old address> to <old server> 2) dhcpcd -n --> broadcasting DHCP_REQUEST for <old address> 3) dhcpcd -n --> broadcasting DHCP_DISCOVER Now i get the lease from my local dhcpd What we need is a means to trigger 'broadcasting DHCP_DISCOVER' immediately. To comment #7: Yes. Restarting the network - rcnetwork restart - brings the interface up properly. Created attachment 55859 [details]
New powersave action
Store this to /usr/lib/powersave/scripts/network_restart.
Then add 'network_restart' to /etc/sysconfig/powersave/events:EVENT_GLOBAL_RESUME_* and remove 'network' from services to restart.
To comment #8: > What we need is a means to trigger 'broadcasting DHCP_DISCOVER' immediately. This is possible by removing the .cache file of that interface, and restarting dhcpcd for it. Lars, any news here? |