timeout()/untimeout() API:
- Clients supply callout handle storage, thus eliminating problems of
resource allocation.
- Insertion and removal of callouts is constant time, important as
this facility is used quite a lot in the kernel.
The old timeout()/untimeout() API has been removed from the kernel.
ETHERTYPE_IPV6 packets are encapsulated by RFC1042 encap.
Tested with Japanese card, with WaveLan bridge (wiconfig -p 1).
NOTE: I dunno if encapsulating IPv6 packets by RFC1042 is the correct way,
as RFC1042 only defines behavior for ETHERTYPE_{IP,ARP,REVARP} packets.
Since WaveLan bridge encapsulates IPv6 packets with RFC1042, we have no
choice.
Gather joined multicast addresses via SIOCADDMULTI, and configure multicast
filter properly. This is also required for IPv6 support
(which heavily depends on multicast).
Fix IFF_RUNNING management
- to prevent IFF_RUNNING from raised on "wiconfig", before "ifconfig up"
- to prevent the driver from occupying extra interrupts on "ifconfig up",
then "down", then "up".