159509ec1SZhang Chen /* 259509ec1SZhang Chen * COarse-grain LOck-stepping Virtual Machines for Non-stop Service (COLO) 359509ec1SZhang Chen * (a.k.a. Fault Tolerance or Continuous Replication) 459509ec1SZhang Chen * 559509ec1SZhang Chen * Copyright (c) 2016 HUAWEI TECHNOLOGIES CO., LTD. 659509ec1SZhang Chen * Copyright (c) 2016 FUJITSU LIMITED 759509ec1SZhang Chen * Copyright (c) 2016 Intel Corporation 859509ec1SZhang Chen * 959509ec1SZhang Chen * Author: Zhang Chen <zhangchen.fnst@cn.fujitsu.com> 1059509ec1SZhang Chen * 1159509ec1SZhang Chen * This work is licensed under the terms of the GNU GPL, version 2 or 1259509ec1SZhang Chen * later. See the COPYING file in the top-level directory. 1359509ec1SZhang Chen */ 1459509ec1SZhang Chen 1559509ec1SZhang Chen #ifndef QEMU_COLO_PROXY_H 1659509ec1SZhang Chen #define QEMU_COLO_PROXY_H 1759509ec1SZhang Chen 1859509ec1SZhang Chen #include "slirp/slirp.h" 19*ccf0426cSZhang Chen #include "qemu/jhash.h" 2059509ec1SZhang Chen 2159509ec1SZhang Chen #define HASHTABLE_MAX_SIZE 16384 2259509ec1SZhang Chen 2359509ec1SZhang Chen typedef struct Packet { 2459509ec1SZhang Chen void *data; 2559509ec1SZhang Chen union { 2659509ec1SZhang Chen uint8_t *network_header; 2759509ec1SZhang Chen struct ip *ip; 2859509ec1SZhang Chen }; 2959509ec1SZhang Chen uint8_t *transport_header; 3059509ec1SZhang Chen int size; 3159509ec1SZhang Chen } Packet; 3259509ec1SZhang Chen 3359509ec1SZhang Chen int parse_packet_early(Packet *pkt); 3459509ec1SZhang Chen void connection_hashtable_reset(GHashTable *connection_track_table); 3559509ec1SZhang Chen Packet *packet_new(const void *data, int size); 3659509ec1SZhang Chen void packet_destroy(void *opaque, void *user_data); 3759509ec1SZhang Chen 3859509ec1SZhang Chen #endif /* QEMU_COLO_PROXY_H */ 39