Subject: Re: [PATCH v2 00/10] Low-level Ethernet debugging features.

From: Jeff Kirsher <[email-masked]>
Date: Thu, 09 Feb 2012 20:31:44 -0800

On 02/08/2012 11:54 AM, [email-masked] wrote:
> From: Ben Greear <[email-masked]>
>
> This patch series enables some features designed to make
> testing ethernet devices and debugging link-level errors
> easier.
>
> First, support is added for receiving the Ethernet FCS.  This
> allows stock wireshark to show you the actual Ethernet FCS.
>
> Second, allow sending packets with user-specified Ethernet
> FCS.  The user can specify bad FCS in order to test network
> equipments' handling of FCS errors, or, in strange cases,
> users might want to implement their own FCS scheme.
>
> Third, allow configuring a NIC to receive errored (and possibly
> other types of packets not normally passed up the stack).  This
> allows sniffers to show packets with bad FCS, for instance.
>
> These features have been tested on e100 and e1000e.  The
> e1000 patch has not been tested yet.
>
> Changes from first posting:
>
> *  Ensure nic reset when changing the rx-fcs and rx-all
>    logic in e100 (e1000e already did this).
>
> *  Use priv-flag for the 'send customized CRC' logic and
>    make it non configurable (if NIC supports it, feature is
>    enabled)  Please note that this will only be used when the
>    SKB is specifically flagged as wanting this behaviour.
>
> *  Use EPROTONOSUPPORT error to indicate the packet-socket's bound
>    NIC does not support the 'send customized CRC' feature.
>
> *  Some general cleanup, and patch re-ordering.
>
>
> There was a suggestion to throw away packets flagged as bad by
> the NIC.  I did not add any additional logic to do this.  I think
> it is not needed, but I am open to other opinions.
>
>
> Ben Greear (10):
>   net: Support RXFCS feature flag.
>   e100: Support RXFCS feature flag.
>   e1000e:  Support RXFCS feature flag.
>   net: Add framework to allow sending packets with customized CRC.
>   e100: Support sending custom Ethernet CRC
>   e1000e:  Support sending custom Ethernet CRC.
>   net:  Support RX-ALL feature flag.
>   e1000e:  Support RXALL feature flag.
>   e100:  Support RXALL feature flag.
>   e1000: Support sending custom Ethernet CRC.
>
>  Documentation/networking/netdev-features.txt  |   13 ++++
>  arch/alpha/include/asm/socket.h               |    3 +
>  arch/arm/include/asm/socket.h                 |    3 +
>  arch/avr32/include/asm/socket.h               |    3 +
>  arch/cris/include/asm/socket.h                |    3 +
>  arch/frv/include/asm/socket.h                 |    3 +
>  arch/h8300/include/asm/socket.h               |    3 +
>  arch/ia64/include/asm/socket.h                |    3 +
>  arch/m32r/include/asm/socket.h                |    3 +
>  arch/m68k/include/asm/socket.h                |    3 +
>  arch/mips/include/asm/socket.h                |    3 +
>  arch/mn10300/include/asm/socket.h             |    3 +
>  arch/parisc/include/asm/socket.h              |    4 +
>  arch/powerpc/include/asm/socket.h             |    3 +
>  arch/s390/include/asm/socket.h                |    3 +
>  arch/sparc/include/asm/socket.h               |    4 +
>  arch/xtensa/include/asm/socket.h              |    3 +
>  drivers/net/ethernet/intel/e100.c             |   66 +++++++++++++++++++-
>  drivers/net/ethernet/intel/e1000/e1000_main.c |   13 ++++
>  drivers/net/ethernet/intel/e1000e/defines.h   |    1 +
>  drivers/net/ethernet/intel/e1000e/e1000.h     |    1 +
>  drivers/net/ethernet/intel/e1000e/netdev.c    |   80 +++++++++++++++++++++---
>  drivers/net/ethernet/intel/e1000e/param.c     |    5 +-
>  include/asm-generic/socket.h                  |    4 +
>  include/linux/if.h                            |    2 +
>  include/linux/netdev_features.h               |    4 +
>  include/linux/netdevice.h                     |    8 ++-
>  include/linux/skbuff.h                        |    4 +-
>  include/net/sock.h                            |    4 +
>  net/core/ethtool.c                            |    2 +
>  net/core/skbuff.c                             |    1 +
>  net/core/sock.c                               |    4 +
>  net/packet/af_packet.c                        |   32 +++++++++-
>  33 files changed, 273 insertions(+), 21 deletions(-)
>
Thanks Ben!

I have applied the series of 10 patches to my queue.  I would like to
have our validation team validate the e100, e1000 and e1000e patches
(and in-directly the net patches).

Cheers,
Jeff