Example #1
0
static int tcp4_gro_complete(struct sk_buff *skb, int thoff)
{
	const struct iphdr *iph = ip_hdr(skb);
	struct tcphdr *th = tcp_hdr(skb);

	th->check = ~tcp_v4_check(skb->len - thoff, iph->saddr,
				  iph->daddr, 0);
	skb_shinfo(skb)->gso_type = SKB_GSO_TCPV4;

	return tcp_gro_complete(skb);
}
Example #2
0
static int tcp4_gro_complete(struct sk_buff *skb, int thoff)
{
    const struct iphdr *iph = ip_hdr(skb);
    struct tcphdr *th = tcp_hdr(skb);

    th->check = ~tcp_v4_check(skb->len - thoff, iph->saddr,
                              iph->daddr, 0);
    skb_shinfo(skb)->gso_type |= SKB_GSO_TCPV4;

    if (NAPI_GRO_CB(skb)->is_atomic)
        skb_shinfo(skb)->gso_type |= SKB_GSO_TCP_FIXEDID;

    return tcp_gro_complete(skb);
}