ipv4: update comment to document GSO fragmentation cases.
This is a follow-up to commit 9ee6c5dc81
("ipv4: allow local
fragmentation in ip_finish_output_gso()"), updating the comment
documenting cases in which fragmentation is needed for egress
GSO packets.
Suggested-by: Shmulik Ladkani <shmulik.ladkani@gmail.com>
Reviewed-by: Shmulik Ladkani <shmulik.ladkani@gmail.com>
Signed-off-by: Lance Richardson <lrichard@redhat.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
Родитель
9b6c14d51b
Коммит
0ace81ec71
|
@ -244,12 +244,18 @@ static int ip_finish_output_gso(struct net *net, struct sock *sk,
|
|||
if (skb_gso_validate_mtu(skb, mtu))
|
||||
return ip_finish_output2(net, sk, skb);
|
||||
|
||||
/* Slowpath - GSO segment length is exceeding the dst MTU.
|
||||
/* Slowpath - GSO segment length exceeds the egress MTU.
|
||||
*
|
||||
* This can happen in two cases:
|
||||
* 1) TCP GRO packet, DF bit not set
|
||||
* 2) skb arrived via virtio-net, we thus get TSO/GSO skbs directly
|
||||
* from host network stack.
|
||||
* This can happen in several cases:
|
||||
* - Forwarding of a TCP GRO skb, when DF flag is not set.
|
||||
* - Forwarding of an skb that arrived on a virtualization interface
|
||||
* (virtio-net/vhost/tap) with TSO/GSO size set by other network
|
||||
* stack.
|
||||
* - Local GSO skb transmitted on an NETIF_F_TSO tunnel stacked over an
|
||||
* interface with a smaller MTU.
|
||||
* - Arriving GRO skb (or GSO skb in a virtualized environment) that is
|
||||
* bridged to a NETIF_F_TSO tunnel stacked over an interface with an
|
||||
* insufficent MTU.
|
||||
*/
|
||||
features = netif_skb_features(skb);
|
||||
BUILD_BUG_ON(sizeof(*IPCB(skb)) > SKB_SGO_CB_OFFSET);
|
||||
|
|
Загрузка…
Ссылка в новой задаче