Skip to content

Latest commit

 

History

History
62 lines (38 loc) · 3.9 KB

README.md

File metadata and controls

62 lines (38 loc) · 3.9 KB

GSoC 2016: Work Product

QEMU project: AF_VSOCK packet capture in Linux and Wireshark

This repository contains the work done for the Google Summer of Code 2016 program with the QEMU organization.

Each folder contains the patches sent to each of the projects.

Repository overview

Project proposal

http://qemu-project.org/Google_Summer_of_Code_2016#AF_VSOCK_packet_capture_in_Linux_and_Wireshark

Project summary

QEMU is an open source machine emulator and virtualizer. As a virtualizer, it achieves nearly native performance using the Kernel-based Virtual Machine (KVM) hypervisor.

Zero-configuration communication between the hypervisor and its guests can be achieved using the virtio-serial device. The virtio-serial device sits on top of the VirtIO API, which allows the para-virtualization of devices in the guest system independently of the hypervisor.

Virtio-serial has several limitations though. For example, it does not allow multiple connections to the same port, the number of ports is quite limited and it is implemented as a character device (which are not usually used as communication mechanisms). To overcome this limitations the driver virtio-vsock is being developed.

The virtio-vsock device supports the POSIX Sockets API, which is more familiar to developers since it is the mechanism usually used for interprocess communication. The use of sockets have several advantages: N:1 communication, block and stream protocols, API widely known... Furthermore, programs that already use sockets can easily transition to use the virtio-vsock device without major changes in their code.

However, the traffic sent through virtio-vsock is hidden to the outside world, as it is internally managed by the hypervisor and the driver. And being able to snoop this traffic is very important when debugging.

The goal of this project is to expose the traffic exchanged through the virtio-vsock socket interface so that programs like Wireshark or tcpdump can capture it. This will help developers wanting to make use of the virtio-vsock device and will contribute to its adoption by the community.

To achieve this, it would be necessary to implement a device driver that exposes the traffic and a Wireshark dissector to parse it.

Development notes and related work: