mirror of
https://github.com/torvalds/linux.git
synced 2025-12-07 20:06:24 +00:00
s390/qeth: add IPv6 TX checksum offload support
Check if a qeth device supports IPv6 TX checksum offload, and advertise NETIF_F_IPV6_CSUM accordingly. Add support for setting the relevant bits in IPv6 packet descriptors. Currently this has only limited use (ie. UDP, or Jumbo Frames). For any TCP traffic with a standard MSS, the TCP checksum gets calculated as part of the linear GSO segmentation. Signed-off-by: Kittipon Meesompop <kmeesomp@linux.vnet.ibm.com> Signed-off-by: Julian Wiedmann <jwi@linux.vnet.ibm.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
committed by
David S. Miller
parent
a8155b009f
commit
571f9dd802
@@ -2281,7 +2281,7 @@ static netdev_tx_t qeth_l3_hard_start_xmit(struct sk_buff *skb,
|
||||
}
|
||||
|
||||
if (new_skb->ip_summed == CHECKSUM_PARTIAL) {
|
||||
qeth_tx_csum(new_skb, &hdr->hdr.l3.ext_flags);
|
||||
qeth_tx_csum(new_skb, &hdr->hdr.l3.ext_flags, ipv);
|
||||
if (card->options.performance_stats)
|
||||
card->perf_stats.tx_csum++;
|
||||
}
|
||||
@@ -2507,6 +2507,11 @@ static int qeth_l3_setup_netdev(struct qeth_card *card)
|
||||
card->dev->vlan_features |= NETIF_F_TSO |
|
||||
NETIF_F_RXCSUM | NETIF_F_IP_CSUM;
|
||||
}
|
||||
|
||||
if (qeth_is_supported6(card, IPA_OUTBOUND_CHECKSUM_V6)) {
|
||||
card->dev->hw_features |= NETIF_F_IPV6_CSUM;
|
||||
card->dev->vlan_features |= NETIF_F_IPV6_CSUM;
|
||||
}
|
||||
} else if (card->info.type == QETH_CARD_TYPE_IQD) {
|
||||
card->dev = alloc_netdev(0, "hsi%d", NET_NAME_UNKNOWN,
|
||||
ether_setup);
|
||||
|
||||
Reference in New Issue
Block a user