diff options
author | Yunsheng Lin <linyunsheng@huawei.com> | 2021-03-29 06:57:51 +0300 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2021-03-29 23:21:01 +0300 |
commit | 811c0830eb4ca8811ed80fe40378f622b9844835 (patch) | |
tree | b4a8ecda23e35dd0e655fe85a24333ea03d4b3aa /drivers/net/ethernet/hisilicon/hns3/hns3_enet.h | |
parent | d5d5e0193ee8f88efbbc7f1471087255657bc19a (diff) | |
download | linux-811c0830eb4ca8811ed80fe40378f622b9844835.tar.xz |
net: hns3: add tx send size handling for tso skb
The actual size on wire for tso skb should be (gso_segs - 1) *
hdr + skb->len instead of skb->len, which can be seen by user using
'ethtool -S ethX' cmd, and 'Byte Queue Limit' also use the send size
stat to do the queue limiting, so add send_bytes in the desc_cb to
record the actual send size for a skb. And send_bytes is only for tx
desc_cb and page_offset is only for rx desc, so reuse the same space
for both of them.
Signed-off-by: Yunsheng Lin <linyunsheng@huawei.com>
Signed-off-by: Huazhong Tan <tanhuazhong@huawei.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net/ethernet/hisilicon/hns3/hns3_enet.h')
-rw-r--r-- | drivers/net/ethernet/hisilicon/hns3/hns3_enet.h | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/drivers/net/ethernet/hisilicon/hns3/hns3_enet.h b/drivers/net/ethernet/hisilicon/hns3/hns3_enet.h index e44224e23315..daa04aeb0942 100644 --- a/drivers/net/ethernet/hisilicon/hns3/hns3_enet.h +++ b/drivers/net/ethernet/hisilicon/hns3/hns3_enet.h @@ -298,7 +298,12 @@ struct hns3_desc_cb { /* priv data for the desc, e.g. skb when use with ip stack */ void *priv; - u32 page_offset; + + union { + u32 page_offset; /* for rx */ + u32 send_bytes; /* for tx */ + }; + u32 length; /* length of the buffer */ u16 reuse_flag; |