1*59509ec1SZhang Chen /* 2*59509ec1SZhang Chen * COarse-grain LOck-stepping Virtual Machines for Non-stop Service (COLO) 3*59509ec1SZhang Chen * (a.k.a. Fault Tolerance or Continuous Replication) 4*59509ec1SZhang Chen * 5*59509ec1SZhang Chen * Copyright (c) 2016 HUAWEI TECHNOLOGIES CO., LTD. 6*59509ec1SZhang Chen * Copyright (c) 2016 FUJITSU LIMITED 7*59509ec1SZhang Chen * Copyright (c) 2016 Intel Corporation 8*59509ec1SZhang Chen * 9*59509ec1SZhang Chen * Author: Zhang Chen <zhangchen.fnst@cn.fujitsu.com> 10*59509ec1SZhang Chen * 11*59509ec1SZhang Chen * This work is licensed under the terms of the GNU GPL, version 2 or 12*59509ec1SZhang Chen * later. See the COPYING file in the top-level directory. 13*59509ec1SZhang Chen */ 14*59509ec1SZhang Chen 15*59509ec1SZhang Chen #ifndef QEMU_COLO_PROXY_H 16*59509ec1SZhang Chen #define QEMU_COLO_PROXY_H 17*59509ec1SZhang Chen 18*59509ec1SZhang Chen #include "slirp/slirp.h" 19*59509ec1SZhang Chen 20*59509ec1SZhang Chen #define HASHTABLE_MAX_SIZE 16384 21*59509ec1SZhang Chen 22*59509ec1SZhang Chen typedef struct Packet { 23*59509ec1SZhang Chen void *data; 24*59509ec1SZhang Chen union { 25*59509ec1SZhang Chen uint8_t *network_header; 26*59509ec1SZhang Chen struct ip *ip; 27*59509ec1SZhang Chen }; 28*59509ec1SZhang Chen uint8_t *transport_header; 29*59509ec1SZhang Chen int size; 30*59509ec1SZhang Chen } Packet; 31*59509ec1SZhang Chen 32*59509ec1SZhang Chen int parse_packet_early(Packet *pkt); 33*59509ec1SZhang Chen void connection_hashtable_reset(GHashTable *connection_track_table); 34*59509ec1SZhang Chen Packet *packet_new(const void *data, int size); 35*59509ec1SZhang Chen void packet_destroy(void *opaque, void *user_data); 36*59509ec1SZhang Chen 37*59509ec1SZhang Chen #endif /* QEMU_COLO_PROXY_H */ 38