net/mlx5: Ethernet Datapath files
authorAmir Vadai <amirv@mellanox.com>
Thu, 28 May 2015 19:28:46 +0000 (22:28 +0300)
committerDavid S. Miller <davem@davemloft.net>
Sun, 31 May 2015 01:24:20 +0000 (18:24 -0700)
commite586b3b0baee89f4998efd9cc97001c63e3bc744
tree2d17b74bed756d1953f57d4f316b625fb62900e0
parente725440e75da8c4d617a31c4e38216acc55c24e3
net/mlx5: Ethernet Datapath files

en_[rt]x.c contains the data path related code specific to tx or rx.
en_txrx.c contains data path code which is common for both the rx and
tx, this is mainly napi related code.

Below are the objects that are being used by the hardware and the driver
in the data path:

Channel - one channel per IRQ. Every channel object contains:
  RQ  - describes the rx queue
  TIR - One TIR (Transport Interface Receive) object per flow type. TIR
        contains attributes for a type of rx flow (e.g IPv4, IPv6 etc).
        A flow is defined in the Flow Table.
        Currently TIR describes the RSS hash parameters if exists and LRO
        attributes.
  SQ  - describes the a tx queue. There is one SQ (Send Queue) per
        TC (traffic class).
  TIS - There is one TIS (Transport Interface Send) per TC.  It
        describes the TC and may later be extended to describe more
transport properties.

Both RQ and SQ inherit from the object WQ (work queue). This common code
to describe the layout of CQE's WQE's in memory is in the files wq.[cj]

For every channel there is one NAPI context that is used for RX and
for TX.

Driver is using netdev_alloc_skb() to allocate skb's.

Signed-off-by: Amir Vadai <amirv@mellanox.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/mellanox/mlx5/core/en_rx.c [new file with mode: 0644]
drivers/net/ethernet/mellanox/mlx5/core/en_tx.c [new file with mode: 0644]
drivers/net/ethernet/mellanox/mlx5/core/en_txrx.c [new file with mode: 0644]
drivers/net/ethernet/mellanox/mlx5/core/wq.c [new file with mode: 0644]
drivers/net/ethernet/mellanox/mlx5/core/wq.h [new file with mode: 0644]