mirror of
https://github.com/Motorhead1991/qemu.git
synced 2026-01-31 21:30:38 -07:00
In this patch we use kernel jhash table to track
connection, and then enqueue net packet like this:
+ CompareState ++
| |
+---------------+ +---------------+ +---------------+
|conn list +--->conn +--------->conn |
+---------------+ +---------------+ +---------------+
| | | | | |
+---------------+ +---v----+ +---v----+ +---v----+ +---v----+
|primary | |secondary |primary | |secondary
|packet | |packet + |packet | |packet +
+--------+ +--------+ +--------+ +--------+
| | | |
+---v----+ +---v----+ +---v----+ +---v----+
|primary | |secondary |primary | |secondary
|packet | |packet + |packet | |packet +
+--------+ +--------+ +--------+ +--------+
| | | |
+---v----+ +---v----+ +---v----+ +---v----+
|primary | |secondary |primary | |secondary
|packet | |packet + |packet | |packet +
+--------+ +--------+ +--------+ +--------+
We use conn_list to record connection info.
When we want to enqueue a packet, firstly get the
connection from connection_track_table. then push
the packet to g_queue(pri/sec) in it's own conn.
Signed-off-by: Zhang Chen <zhangchen.fnst@cn.fujitsu.com>
Signed-off-by: Li Zhijian <lizhijian@cn.fujitsu.com>
Signed-off-by: Wen Congyang <wency@cn.fujitsu.com>
Signed-off-by: Jason Wang <jasowang@redhat.com>
|
||
|---|---|---|
| .. | ||
| checksum.c | ||
| clients.h | ||
| colo-compare.c | ||
| colo.c | ||
| colo.h | ||
| dump.c | ||
| eth.c | ||
| filter-buffer.c | ||
| filter-mirror.c | ||
| filter.c | ||
| hub.c | ||
| hub.h | ||
| l2tpv3.c | ||
| Makefile.objs | ||
| net.c | ||
| netmap.c | ||
| queue.c | ||
| slirp.c | ||
| socket.c | ||
| tap-aix.c | ||
| tap-bsd.c | ||
| tap-haiku.c | ||
| tap-linux.c | ||
| tap-linux.h | ||
| tap-solaris.c | ||
| tap-win32.c | ||
| tap.c | ||
| tap_int.h | ||
| trace-events | ||
| util.c | ||
| util.h | ||
| vde.c | ||
| vhost-user.c | ||