#include <linux/indirect_call_wrapper.h>
#include <linux/skbuff.h>
#include <net/gro.h>
#include <net/gso.h>
#include <net/tcp.h>
#include <net/protocol.h>
static void tcp_gso_tstamp(struct sk_buff *skb, unsigned int ts_seq,
unsigned int seq, unsigned int mss)
{ … }
static void __tcpv4_gso_segment_csum(struct sk_buff *seg,
__be32 *oldip, __be32 newip,
__be16 *oldport, __be16 newport)
{ … }
static struct sk_buff *__tcpv4_gso_segment_list_csum(struct sk_buff *segs)
{ … }
static struct sk_buff *__tcp4_gso_segment_list(struct sk_buff *skb,
netdev_features_t features)
{ … }
static struct sk_buff *tcp4_gso_segment(struct sk_buff *skb,
netdev_features_t features)
{ … }
struct sk_buff *tcp_gso_segment(struct sk_buff *skb,
netdev_features_t features)
{ … }
struct sk_buff *tcp_gro_lookup(struct list_head *head, struct tcphdr *th)
{ … }
struct tcphdr *tcp_gro_pull_header(struct sk_buff *skb)
{ … }
struct sk_buff *tcp_gro_receive(struct list_head *head, struct sk_buff *skb,
struct tcphdr *th)
{ … }
void tcp_gro_complete(struct sk_buff *skb)
{ … }
EXPORT_SYMBOL(…);
static void tcp4_check_fraglist_gro(struct list_head *head, struct sk_buff *skb,
struct tcphdr *th)
{ … }
INDIRECT_CALLABLE_SCOPE
struct sk_buff *tcp4_gro_receive(struct list_head *head, struct sk_buff *skb)
{ … }
INDIRECT_CALLABLE_SCOPE int tcp4_gro_complete(struct sk_buff *skb, int thoff)
{ … }
int __init tcpv4_offload_init(void)
{ … }