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