Following the other crates, reorder the use declaration in 3 groups:
1. standard library
2. external crates
3. local crates
Signed-off-by: Stefano Garzarella <sgarzare@redhat.com>
In several places the "vsock_" prefix doesn't add much and makes
names longer, let's remove it where it's not needed.
Suggested-by: Viresh Kumar <viresh.kumar@linaro.org>
Signed-off-by: Stefano Garzarella <sgarzare@redhat.com>
VsockArgs is used only by main.rs, so we can move its definition
there. Let's also move the test.
Suggested-by: Viresh Kumar <viresh.kumar@linaro.org>
Signed-off-by: Stefano Garzarella <sgarzare@redhat.com>
This is a binary crate and most of the types shouldn't be visible
out of this crate. Change also documentation with ///.
If we would like to export some types as part of a library in the
future, we will adjust the visibility accordingly.
Suggested-by: Viresh Kumar <viresh.kumar@linaro.org>
Signed-off-by: Stefano Garzarella <sgarzare@redhat.com>
Add several tests to get good coverage. Unfortunately,
it's a lot of new code and not easy to test everything.
We may add more mocks and tests in the future.
Signed-off-by: Stefano Garzarella <sgarzare@redhat.com>
VIRTIO spec defines `guest_cid` in LE byte order.
Let's introduce VirtioVsockConfig based on the virtio-spec 1.2.
For now it contains only `guest_cid`, but in the future it could
contain other fields.
Let's also handle correctly `offset` and `size`, returning an empty
Vec if they are not valid.
Signed-off-by: Stefano Garzarella <sgarzare@redhat.com>
If we don't remove any bytes from the buffer, it's useless to
send a credit update since the credit hasn't changed.
Signed-off-by: Stefano Garzarella <sgarzare@redhat.com>
Instead of panic if the local peer doesn't send "connect PORT\n"
correctly, let's print an error, ignoring the command.
Print an error message also when allocating local port fails.
Reported-by: Alex Bennée <alex.bennee@linaro.org>
Signed-off-by: Stefano Garzarella <sgarzare@redhat.com>
Remove old comments, useless code, and code commented.
Avoid println!() to print messages and replaced with dbg!(), info!(),
or error!().
Also init `env_logger` like other daemons in the main().
Signed-off-by: Stefano Garzarella <sgarzare@redhat.com>
Harsha specified `license = "Apache-2.0 OR BSD-3-Clause"` in
vsock/Cargo.toml, so let's add a properly SPDX tag in the
vsock files.
Signed-off-by: Stefano Garzarella <sgarzare@redhat.com>
Replace our VsockPacket with the new one implemented in the
virtio-vsock crate.
Based on Alex Bennée and Laura Loghin commit:
https://github.com/stsquad/vhost-device/commit/6752266608dd
To achieve this the following changes where made:
- deleted the internal packet.rs
- convert the send_pkt/recv_pkt helpers to be BitmapSlice aware
- update push from LocalTxBuf
- tweak a few API calls due to minor diffs
Fixed tests and moved some helpers from the removed
vsock/src/packet.rs file.
Co-developed-by: Laura Loghin <lauralg@amazon.com>
Co-developed-by: Alex Bennée <alex.bennee@linaro.org>
Signed-off-by: Stefano Garzarella <sgarzare@redhat.com>
clippy complains of some minor issues, probably because the
new version has been improved. Let's fix them.
Signed-off-by: Stefano Garzarella <sgarzare@redhat.com>
This commit introduces a vhost-user-vsock device that enables
communicaton between an application running in the guest i.e
inside a VM and an application running on the host i.e outside
the VM. The device exposes unix sockets to which the VMM and
host-side applications connect to. Applications in the guest
communicate over VM sockets. Applicaitons on the host connect to
the unix socket i.e communicate over AF_UNIX sockets.
Signed-off-by: Harshavardhan Unnibhavi <harshanavkis@gmail.com>
[sgarzare: rebased, updated Cargo.lock, updated clap version to
avoid build issues, and fixed clap issues with the new version]
Signed-off-by: Stefano Garzarella <sgarzare@redhat.com>