freebsd-nq/sys/dev/usb/net
Pyun YongHyeon cdc2a5ec78 Implement TX/RX checksum offloading support for ASIX AX88772B
controller.

AX88772B data sheet does not show detailed information about
checksum offloading related things. It seems the controller has
lots of options to support checksum offloading but I failed to
understand why this feature requires so much complex controller
configuration and status bits.
One of major difference between AX88772B and its predecessor is
AX88772B uses a new RX header format when RX checksum offloading is
enabled.  It also requires the received length of a frame should be
multiple of 4.  Controller will pad necessary bytes to make the
length of received frame to be multiple of 4.  It is driver's
responsibility to offset this pad bytes.
Note, AX88772B could be configured to get partial checksum value in
in RX header. This mode uses different RX header format and
currently we don't use that fature.

This change makes axe(4) use driver specific MII attach handler to
override uether(9)'s default MII attach and announce flow-control
capability for AX88178/AX88772A/AX88772B to PHY drivers.  It seems
original AX88772 also supports flow-control but I didn't enable it
due to lack of test/access to the controller.  The flow-control
threshold parameter is loaded from EEPROM and there is no way to
override this value without reprogramming EEPROM. For AX88772B,
TX/RX IP/TCP/UDP checksum offloading is announced to network stack.
IPv6 and PPPoE checksum offloading is also supported by controller
but we have no way to take advantage of these features.
Driver already knows PHY address so make PHY driver know that
information and remove unnecessary PHY address check used in
miibus_readreg/miibus_writereg callbacks.  Also announce AX88178,
AX88772A and AX88772B support VLAN over-sized frame.

While I'm here clean up headers and remove axe_start() in
axe_init() because the link wouldn't be available right after media
change.
2011-10-25 18:36:18 +00:00
..
if_aue.c Close a race where SIOCGIFMEDIA ioctl get inconsistent link status. 2011-10-17 19:51:38 +00:00
if_auereg.h
if_axe.c Implement TX/RX checksum offloading support for ASIX AX88772B 2011-10-25 18:36:18 +00:00
if_axereg.h Implement TX/RX checksum offloading support for ASIX AX88772B 2011-10-25 18:36:18 +00:00
if_cdce.c - Move all USB device ID arrays into so-called sections, 2011-06-24 02:30:02 +00:00
if_cdcereg.h The maximum NCM frame size must be so that it 2011-04-26 19:40:37 +00:00
if_cue.c - Move all USB device ID arrays into so-called sections, 2011-06-24 02:30:02 +00:00
if_cuereg.h
if_ipheth.c - Move all USB device ID arrays into so-called sections, 2011-06-24 02:30:02 +00:00
if_iphethvar.h USB Network: 2010-10-13 21:36:42 +00:00
if_kue.c - Move all USB device ID arrays into so-called sections, 2011-06-24 02:30:02 +00:00
if_kuefw.h
if_kuereg.h
if_mos.c Close a race where SIOCGIFMEDIA ioctl get inconsistent link status. 2011-10-17 19:51:38 +00:00
if_mosreg.h Add support for new USB to ethernet controller: 2011-02-16 08:33:30 +00:00
if_rue.c Close a race where SIOCGIFMEDIA ioctl get inconsistent link status. 2011-10-17 19:51:38 +00:00
if_ruereg.h Remove unused struct rue_type 2010-11-15 06:04:25 +00:00
if_udav.c Close a race where SIOCGIFMEDIA ioctl get inconsistent link status. 2011-10-17 19:51:38 +00:00
if_udavreg.h
if_usie.c Remove reviewed line from copyright header. 2011-07-09 20:16:52 +00:00
if_usievar.h Add new USB 3G driver. 2011-07-08 10:58:56 +00:00
ruephy.c - Follow the lead of dcphy(4) and pnphy(4) and move the reminder of the PHY 2011-10-08 12:33:10 +00:00
ruephyreg.h - Follow the lead of dcphy(4) and pnphy(4) and move the reminder of the PHY 2011-10-08 12:33:10 +00:00
uhso.c Add new USB ID. 2011-08-20 14:21:32 +00:00
usb_ethernet.c This change makes it possible to define driver specific attach 2011-10-24 23:38:11 +00:00
usb_ethernet.h This change makes it possible to define driver specific attach 2011-10-24 23:38:11 +00:00