1 /* SPDX-License-Identifier: GPL-2.0 */ 2 #ifndef __NETWORK_HELPERS_H 3 #define __NETWORK_HELPERS_H 4 #include <sys/socket.h> 5 #include <sys/types.h> 6 #include <linux/types.h> 7 typedef __u16 __sum16; 8 #include <linux/if_ether.h> 9 #include <linux/if_packet.h> 10 #include <linux/ip.h> 11 #include <linux/ipv6.h> 12 #include <netinet/tcp.h> 13 #include <bpf/bpf_endian.h> 14 15 #define MAGIC_VAL 0x1234 16 #define NUM_ITER 100000 17 #define VIP_NUM 5 18 #define MAGIC_BYTES 123 19 20 /* ipv4 test vector */ 21 struct ipv4_packet { 22 struct ethhdr eth; 23 struct iphdr iph; 24 struct tcphdr tcp; 25 } __packed; 26 extern struct ipv4_packet pkt_v4; 27 28 /* ipv6 test vector */ 29 struct ipv6_packet { 30 struct ethhdr eth; 31 struct ipv6hdr iph; 32 struct tcphdr tcp; 33 } __packed; 34 extern struct ipv6_packet pkt_v6; 35 36 int start_server(int family, int type, const char *addr, __u16 port, 37 int timeout_ms); 38 int connect_to_fd(int server_fd, int timeout_ms); 39 int connect_fd_to_fd(int client_fd, int server_fd, int timeout_ms); 40 int fastopen_connect(int server_fd, const char *data, unsigned int data_len, 41 int timeout_ms); 42 int make_sockaddr(int family, const char *addr_str, __u16 port, 43 struct sockaddr_storage *addr, socklen_t *len); 44 45 #endif 46