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>
75 lines
1.3 KiB
Plaintext
75 lines
1.3 KiB
Plaintext
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.*
|