Fix promiscuous mode, taken from FreeBSD.
Fix to re-enable the card after suspend/resume.
Reflect current operational rate to if_media interface.
Avoid duplicate copy in transmit.
Move most of debug printfs into IFF_DEBUG.
Disable ANCACHE - designed for IPv4 only and no one use it.
Add IFF_ALLMULTI flags, as we don't have multicast filter.
Convert bzero/bcopy to memset/memcpy.
... sorry for jumbo commit.
Handle special case for IFF_PROMISC. If only IFF_PROMISC
flag is changed, do not call an_init() to avoid initiating
reassociation to another access point. It is really
helpful for tcpdump(8).
- strip unnecessary loop to get command result status
- ack command after clearing busy bit
XXX: it still sometimes get timeout to get status(0xff50) or statistics(0xff68)
probably due to heavy load of firmware in receiving.
timeouts).
stop driver after suspend.
XXX: should use command interrupt but no document...
XXX: status update sometimes failed perhaps due to collision.
(RID 0xff50 or 0xff68 access failed)
Though ifconfig -m no longer show 5Mbps/11Mbps for PC4500 by this fix,
I cannot find how to set fixed transmit speed to the firmware.
FreeBSD version of driver apparently ignore the value set by ancontrol(8).
This is very adhoc work for IETF meeting.
- Since it seems that 'an' and 'wi' have similar hardware, low level
functions should be shared.
- There are PCI/ISA cards of Aironet but not supported yet.
- The wiconfig interface is changed so that wiconfig cannot be used.
- 'ancontrol' of FreeBSD is not ported.
- Only infrastructure mode is tested.
- WEP is not supported.
Though I only have an Aironet card, Cisco card should be expected to work.