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		128
8 
9 struct tso_t {
10 	int next_frag_idx;
11 	void *data;
12 	size_t size;
13 	u16 ip_id;
14 	bool ipv6;
15 	u32 tcp_seq;
16 };
17 
18 int tso_count_descs(struct sk_buff *skb);
19 void tso_build_hdr(struct sk_buff *skb, char *hdr, struct tso_t *tso,
20 		   int size, bool is_last);
21 void tso_build_data(struct sk_buff *skb, struct tso_t *tso, int size);
22 void tso_start(struct sk_buff *skb, struct tso_t *tso);
23 
24 #endif	/* _TSO_H */
25