Suspend vs Network Traffic - blockers

John Gilmore gnu at toad.com
Tue Aug 12 17:01:20 EDT 2008


> Though I agree now, as I agreed in the past, that the filter is not
> easy to use, I would say that it was a mechanism already in place
> (and the filter would not be used by an end user anyway).

Setting up the filter to wake the machine on EVERY arp packet would be
trivial.  These occur pretty often on an active network, though; I
think they're the most common broadcast packets.  So we'd get a fair
number of useless wakeups, almost equivalent to "wake on all
broadcasts".  It would be more power efficient to set the filter to
only wake on every arp that's addressed to our own IPv4 address.
(Doing this for the general case of multiple IPv4 addresses on the
same interface is also possible, just harder to test.  I don't think
NetworkManager ever puts two IPv4 addresses on either eth0 or msh0;
doing so requires manual configuration, so we could skip that in the
short term and file a bug report for the long term.)

(On the other hand, IPv6 requires support for multiple IPv6 addresses
on the same interface, to support automatic renumbering without 
dropping existing TCP connections, but see below.)

> If I recall
> correctly, the filter was compatible with IPv6, it was just terribly
> inneficient in doing so.

If we have multicast wakeup working, then IPv6 takes care of itself.
All ethernet-like kernel drivers already configure the multicast
filter to have the right set of MAC addresses to receive IPv6 "arps",
which are called Neighbor Discovery packets, and which arrive in
multicast packets, not in broadcast packets.  There's no need for an
additional filter beyond the existing multicast filter.  We hashed
this out painfully over many months in #4616 (which is still not
closed).

In joyride-2263, wake on multicast did not appear to be enabled by the
driver by default.  This should be fixed.  You can manually set it
with ethtool.  Caveat: I haven't yet rerun the tests for the
half-dozen existing TRAC bugs that deal with suspend and libertas.  I
just quickly looked at what the ethtool command reported.

	John



More information about the Devel mailing list