Neterion’s (Formerly S2io) X3100 Series 10GbE PCIe Server Adapter Linux driver

1. Introduction

This Linux driver supports all Neterion’s X3100 series 10 GbE PCIe I/O Virtualized Server adapters.

The X3100 series supports four modes of operation, configurable via firmware:

  • Single function mode

  • Multi function mode

  • SRIOV mode

  • MRIOV mode

The functions share a 10GbE link and the pci-e bus, but hardly anything else inside the ASIC. Features like independent hw reset, statistics, bandwidth/ priority allocation and guarantees, GRO, TSO, interrupt moderation etc are supported independently on each function.

(See below for a complete list of features supported for both IPv4 and IPv6)

2. Features supported

  1. Single function mode (up to 17 queues)

  2. Multi function mode (up to 17 functions)

  3. PCI-SIG’s I/O Virtualization

    • Single Root mode: v1.0 (up to 17 functions)

    • Multi-Root mode: v1.0 (up to 17 functions)

  4. Jumbo frames

    X3100 Series supports MTU up to 9600 bytes, modifiable using ip command.

  5. Offloads supported: (Enabled by default)

    • Checksum offload (TCP/UDP/IP) on transmit and receive paths

    • TCP Segmentation Offload (TSO) on transmit path

    • Generic Receive Offload (GRO) on receive path

  6. MSI-X: (Enabled by default)

    Resulting in noticeable performance improvement (up to 7% on certain platforms).

  7. NAPI: (Enabled by default)

    For better Rx interrupt moderation.

viii)RTH (Receive Traffic Hash): (Enabled by default)

Receive side steering for better scaling.

  1. Statistics

    Comprehensive MAC-level and software statistics displayed using “ethtool -S” option.

  2. Multiple hardware queues: (Enabled by default)

    Up to 17 hardware based transmit and receive data channels, with multiple steering options (transmit multiqueue enabled by default).

3) Configurable driver parameters:

  1. max_config_dev

    Specifies maximum device functions to be enabled.

    Valid range: 1-8

  2. max_config_port

    Specifies number of ports to be enabled.

    Valid range: 1,2

    Default: 1

  3. max_config_vpath

    Specifies maximum VPATH(s) configured for each device function.

    Valid range: 1-17

  4. vlan_tag_strip

    Enables/disables vlan tag stripping from all received tagged frames that are not replicated at the internal L2 switch.

    Valid range: 0,1 (disabled, enabled respectively)

    Default: 1

  5. addr_learn_en

    Enable learning the mac address of the guest OS interface in virtualization environment.

    Valid range: 0,1 (disabled, enabled respectively)

    Default: 0