include/net/tso.h
0 → 100644
+20
−0
+1
−1
net/core/tso.c
0 → 100644
+72
−0
Loading
Gitlab 现已全面支持 git over ssh 与 git over https。通过 HTTPS 访问请配置带有 read_repository / write_repository 权限的 Personal access token。通过 SSH 端口访问请使用 22 端口或 13389 端口。如果使用CAS注册了账户但不知道密码,可以自行至设置中更改;如有其他问题,请发邮件至 service@cra.moe 寻求协助。
Ezequiel Garcia says:
====================
net: Introduce a software TSO helper API
Here's a first proposal for a generic software TSO helper API, following
David's suggestion.
There are at least two drivers that currently implement some form of software
TSO: Solarflare network driver (drivers/net/ethernet/sfc) and Tilera GX
network driver (drivers/net/ethernet/tile/tilegx.c).
The rationale behind adding a generic API is to provide a boiler plate with the
segmentation and other common tasks, making this support easier to add in other
drivers.
When designing the API, I've considered mainly two design choices:
1. Implement a series of callbacks that each driver would implement
and the net core code would call to fill in descriptors and egress
that data.
2. Implement an API for drivers to use in a driver's specific tx_tso
function. This functions would exhaust a sk_buff payload, and use the
API as helper for building the headers and segmented data.
I've chosen (2), to avoid function pointers (which was Willy's concern) and
because it seemed less fragile. Of course, this is argueable.
The API is by no means complete, and lacks some features, however it allows
to support TSO in mv643xx_eth and mvneta network drivers with some very
good performance results. I've added this support as an example of the API
in action.
In particular the following needs some revisiting:
1. IPv6 support is lacking.
2. The required descriptor counting needs some verification. The current
implementation might be too "sketchy". The tilegx one can be a good
starting point.
3. The implemenation assumes the hardware can compute the TCP and IP
checksums for the built headers. However, some controllers may need
some initial calculation (such as tilegx, for instance).
Despite this, I hope this proposal is good enough to trigger some discussion
and to check if I'm on the right track. Feedback is much appreciated!
====================
Signed-off-by:
David S. Miller <davem@davemloft.net>
CRA Git | Maintained and supported by SUSTech CRA and CCSE