mirror of
https://github.com/Motorhead1991/qemu.git
synced 2026-02-20 03:12:18 -07:00
In this unit test,we will test the filter redirector function.
Case 1, tx traffic flow:
qemu side | test side
|
+---------+ | +-------+
| backend <---------------+ sock0 |
+----+----+ | +-------+
| |
+----v----+ +-------+ |
| rd0 +->+chardev| |
+---------+ +---+---+ |
| |
+---------+ | |
| rd1 <------+ |
+----+----+ |
| |
+----v----+ | +-------+
| rd2 +--------------->sock1 |
+---------+ | +-------+
+
a. we(sock0) inject packet to qemu socket backend
b. backend pass packet to filter redirector0(rd0)
c. rd0 redirect packet to out_dev(chardev) which is connected with
filter redirector1's(rd1) in_dev
d. rd1 read this packet from in_dev, and pass to next filter redirector2(rd2)
e. rd2 redirect packet to rd2's out_dev which is connected with an opened socketed(sock1)
f. we read packet from sock1 and compare to what we inject
Start qemu with:
"-netdev socket,id=qtest-bn0,fd=%d "
"-device rtl8139,netdev=qtest-bn0,id=qtest-e0 "
"-chardev socket,id=redirector0,path=%s,server,nowait "
"-chardev socket,id=redirector1,path=%s,server,nowait "
"-chardev socket,id=redirector2,path=%s,nowait "
"-object filter-redirector,id=qtest-f0,netdev=qtest-bn0,"
"queue=tx,outdev=redirector0 "
"-object filter-redirector,id=qtest-f1,netdev=qtest-bn0,"
"queue=tx,indev=redirector2 "
"-object filter-redirector,id=qtest-f2,netdev=qtest-bn0,"
"queue=tx,outdev=redirector1 "
--------------------------------------
Case 2, rx traffic flow
qemu side | test side
|
+---------+ | +-------+
| backend +---------------> sock1 |
+----^----+ | +-------+
| |
+----+----+ +-------+ |
| rd0 +<-+chardev| |
+---------+ +---+---+ |
^ |
+---------+ | |
| rd1 +------+ |
+----^----+ |
| |
+----+----+ | +-------+
| rd2 <---------------+sock0 |
+---------+ | +-------+
a. we(sock0) insert packet to filter redirector2(rd2)
b. rd2 pass packet to filter redirector1(rd1)
c. rd1 redirect packet to out_dev(chardev) which is connected with
filter redirector0's(rd0) in_dev
d. rd0 read this packet from in_dev, and pass ti to qemu backend which is
connected with an opened socketed(sock1)
e. we read packet from sock1 and compare to what we inject
Start qemu with:
"-netdev socket,id=qtest-bn0,fd=%d "
"-device rtl8139,netdev=qtest-bn0,id=qtest-e0 "
"-chardev socket,id=redirector0,path=%s,server,nowait "
"-chardev socket,id=redirector1,path=%s,server,nowait "
"-chardev socket,id=redirector2,path=%s,nowait "
"-object filter-redirector,id=qtest-f0,netdev=qtest-bn0,"
"queue=rx,outdev=redirector0 "
"-object filter-redirector,id=qtest-f1,netdev=qtest-bn0,"
"queue=rx,indev=redirector2 "
"-object filter-redirector,id=qtest-f2,netdev=qtest-bn0,"
"queue=rx,outdev=redirector1 "
Signed-off-by: Zhang Chen <zhangchen.fnst@cn.fujitsu.com>
Signed-off-by: Wen Congyang <wency@cn.fujitsu.com>
Signed-off-by: Li Zhijian <lizhijian@cn.fujitsu.com>
Signed-off-by: Jason Wang <jasowang@redhat.com>
74 lines
1.3 KiB
Text
74 lines
1.3 KiB
Text
check-qdict
|
|
check-qfloat
|
|
check-qint
|
|
check-qjson
|
|
check-qlist
|
|
check-qstring
|
|
check-qom-interface
|
|
check-qom-proplist
|
|
rcutorture
|
|
test-aio
|
|
test-base64
|
|
test-bitops
|
|
test-blockjob-txn
|
|
test-coroutine
|
|
test-crypto-afsplit
|
|
test-crypto-block
|
|
test-crypto-cipher
|
|
test-crypto-hash
|
|
test-crypto-ivgen
|
|
test-crypto-pbkdf
|
|
test-crypto-secret
|
|
test-crypto-tlscredsx509
|
|
test-crypto-tlscredsx509-work/
|
|
test-crypto-tlscredsx509-certs/
|
|
test-crypto-tlssession
|
|
test-crypto-tlssession-work/
|
|
test-crypto-tlssession-client/
|
|
test-crypto-tlssession-server/
|
|
test-crypto-xts
|
|
test-cutils
|
|
test-hbitmap
|
|
test-int128
|
|
test-iov
|
|
test-io-channel-buffer
|
|
test-io-channel-command
|
|
test-io-channel-command.fifo
|
|
test-io-channel-file
|
|
test-io-channel-file.txt
|
|
test-io-channel-socket
|
|
test-io-channel-tls
|
|
test-io-task
|
|
test-mul64
|
|
test-opts-visitor
|
|
test-qapi-event.[ch]
|
|
test-qapi-types.[ch]
|
|
test-qapi-visit.[ch]
|
|
test-qdev-global-props
|
|
test-qemu-opts
|
|
test-qga
|
|
test-qmp-commands
|
|
test-qmp-commands.h
|
|
test-qmp-event
|
|
test-qmp-input-strict
|
|
test-qmp-input-visitor
|
|
test-qmp-introspect.[ch]
|
|
test-qmp-marshal.c
|
|
test-qmp-output-visitor
|
|
test-rcu-list
|
|
test-rfifolock
|
|
test-string-input-visitor
|
|
test-string-output-visitor
|
|
test-thread-pool
|
|
test-throttle
|
|
test-timed-average
|
|
test-visitor-serialization
|
|
test-vmstate
|
|
test-write-threshold
|
|
test-x86-cpuid
|
|
test-xbzrle
|
|
test-netfilter
|
|
test-filter-mirror
|
|
test-filter-redirector
|
|
*-test
|
|
qapi-schema/*.test.*
|