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