1 /* SPDX-License-Identifier: GPL-2.0 */ 2 #ifndef _TSO_H 3 #define _TSO_H 4 5 #include <net/ip.h> 6 7 #define TSO_HEADER_SIZE 256 8 9 struct tso_t { 10 int next_frag_idx; 11 int size; 12 void *data; 13 u16 ip_id; 14 u8 tlen; /* transport header len */ 15 bool ipv6; 16 u32 tcp_seq; 17 }; 18 19 int tso_count_descs(const struct sk_buff *skb); 20 void tso_build_hdr(const struct sk_buff *skb, char *hdr, struct tso_t *tso, 21 int size, bool is_last); 22 void tso_build_data(const struct sk_buff *skb, struct tso_t *tso, int size); 23 int tso_start(struct sk_buff *skb, struct tso_t *tso); 24 25 #endif /* _TSO_H */ 26