e2e: virtio: net: add e2e cases for virtio-net

Add e2e cases to test virtio-net connection.
6 cases are added as following:
- virtio_net_ping_test
- virtio_net_ping_test_with_mrg_rxbuf
- vhost_user_net_ping_test
- vhost_user_net_ping_test_with_mrg_rxbuf
- vhost_user_net_ncat_test_with_mrg_rxbuf_guest2host
- vhost_user_net_ncat_test_with_mrg_rxbuf_host2guest

These cases will firstly start a guest vm
with virtio-net device.
First four test following scenarios:
- regular virtio-net without mrg_rxbuf
- regular virtio-net with mrg_rxbuf
- vhost-user-net without mrg_rxbuf
- vhost-user-net with mrg_rxbuf
After vm start, it will configured network in guest,
and then do ping operation in two directions.

Last two test cases will use ncat to
transfer a random file between guest and host via
vhost-user virtio-net with MRG_RXBUF feature.

TEST=tools/run_tests --dut=vm -vv -E \
'package(e2e_tests) & (test(vhost_user_net) | test(virtio_net))'

Change-Id: I76dd1390ece75dee1d5d92b506537ca26c849615
Signed-off-by: Junnan Wu <junnan01.wu@samsung.com>
Reviewed-on: https://chromium-review.googlesource.com/c/crosvm/crosvm/+/6545141
Reviewed-by: David Stevens <stevensd@chromium.org>
Commit-Queue: David Stevens <stevensd@chromium.org>
Reviewed-by: Zihan Chen <zihanchen@google.com>
1 file changed
tree: 2270f84d73c95a4f48415101684173627a8f9081
  1. .cargo/
  2. .config/
  3. .devcontainer/
  4. .github/
  5. .vscode/
  6. aarch64/
  7. aarch64_sys_reg/
  8. acpi_tables/
  9. android_audio/
  10. arch/
  11. argh_helpers/
  12. audio_streams_conformance_test/
  13. audio_util/
  14. base/
  15. base_tokio/
  16. bit_field/
  17. broker_ipc/
  18. common/
  19. cros_async/
  20. cros_fdt/
  21. cros_tracing/
  22. cros_tracing_types/
  23. crosvm_cli/
  24. crosvm_control/
  25. crosvm_plugin/
  26. devices/
  27. disk/
  28. docs/
  29. e2e_tests/
  30. ext2/
  31. fuse/
  32. fuzz/
  33. gpu_display/
  34. hypervisor/
  35. infra/
  36. io_uring/
  37. jail/
  38. kernel_cmdline/
  39. kernel_loader/
  40. kvm/
  41. kvm_sys/
  42. libcras_stub/
  43. linux_input_sys/
  44. logo/
  45. media/
  46. metrics/
  47. metrics_events/
  48. net_sys/
  49. net_util/
  50. perfetto/
  51. power_monitor/
  52. prebuilts/
  53. proto_build_tools/
  54. protos/
  55. resources/
  56. riscv64/
  57. rutabaga_gfx/
  58. sandbox/
  59. serde_keyvalue/
  60. snapshot/
  61. src/
  62. swap/
  63. system_api/
  64. tests/
  65. third_party/
  66. tools/
  67. tube_transporter/
  68. usb_sys/
  69. usb_util/
  70. vendor/
  71. vfio_sys/
  72. vhost/
  73. virtio_sys/
  74. vm_control/
  75. vm_memory/
  76. win_audio/
  77. win_util/
  78. x86_64/
  79. .dockerignore
  80. .envrc
  81. .gitattributes
  82. .gitignore
  83. .gitmodules
  84. .rustfmt.toml
  85. ARCHITECTURE.md
  86. Cargo.lock
  87. Cargo.toml
  88. CONTRIBUTING.md
  89. DIR_METADATA
  90. LICENSE
  91. mypy.ini
  92. OWNERS
  93. OWNERS_COUNCIL
  94. PRESUBMIT.cfg
  95. pyproject.toml
  96. README.chromeos.md
  97. README.md
  98. rust-toolchain
README.md

crosvm - The ChromeOS Virtual Machine Monitor

crosvm is a virtual machine monitor (VMM) based on Linux’s KVM hypervisor, with a focus on simplicity, security, and speed. crosvm is intended to run Linux guests, originally as a security boundary for running native applications on the ChromeOS platform. Compared to QEMU, crosvm doesn’t emulate architectures or real hardware, instead concentrating on paravirtualized devices, such as the virtio standard.

crosvm is currently used to run Linux/Android guests on ChromeOS devices.

Logo