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> 7typedef __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 */ 21struct ipv4_packet { 22 struct ethhdr eth; 23 struct iphdr iph; 24 struct tcphdr tcp; 25} __packed; 26extern struct ipv4_packet pkt_v4; 27 28/* ipv6 test vector */ 29struct ipv6_packet { 30 struct ethhdr eth; 31 struct ipv6hdr iph; 32 struct tcphdr tcp; 33} __packed; 34extern struct ipv6_packet pkt_v6; 35 36int start_server(int family, int type, const char *addr, __u16 port, 37 int timeout_ms); 38int connect_to_fd(int server_fd, int timeout_ms); 39int connect_fd_to_fd(int client_fd, int server_fd, int timeout_ms); 40int fastopen_connect(int server_fd, const char *data, unsigned int data_len, 41 int timeout_ms); 42int make_sockaddr(int family, const char *addr_str, __u16 port, 43 struct sockaddr_storage *addr, socklen_t *len); 44 45#endif 46