Commit Graph

538 Commits

Author SHA1 Message Date
dependabot[bot]
d3b4f8d595 build(deps): bump proc-macro2 from 1.0.46 to 1.0.47
Bumps [proc-macro2](https://github.com/dtolnay/proc-macro2) from 1.0.46 to 1.0.47.
- [Release notes](https://github.com/dtolnay/proc-macro2/releases)
- [Commits](https://github.com/dtolnay/proc-macro2/compare/1.0.46...1.0.47)

---
updated-dependencies:
- dependency-name: proc-macro2
  dependency-type: indirect
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-10-18 13:42:00 +05:30
Stefano Garzarella
4f7ffd7d0b vsock: serialize tests as workaround
As pointed out in the issue #232, vsock tests fail randomly.
From an initial analysis, it appears that using `--test-threads=1`
never happens, but using a value greater than 1, the tests fails
after a while and almost always with the creation of UDS,
or EpollFD, or on epoll_ctl.

There should be something wrong with FDs when there are multiple
threads running tests (not sure if related to O_CLOEXEC).

This is just a workaround, we will revert this commit when we
identify the root cause.

Signed-off-by: Stefano Garzarella <sgarzare@redhat.com>
2022-10-18 13:29:08 +05:30
Viresh Kumar
f509782ec6
Merge pull request #230 from vireshk/cleanups
Cleanups
2022-10-14 14:41:02 +05:30
Viresh Kumar
20819e5284 Run cargo update
Run cargo update to automatically upgrade dependencies.

Signed-off-by: Viresh Kumar <viresh.kumar@linaro.org>
2022-10-13 16:32:17 +05:30
Viresh Kumar
5005c96c3a vsock: Minor cleanups
Minor cleanups.

Signed-off-by: Viresh Kumar <viresh.kumar@linaro.org>
2022-10-13 16:28:11 +05:30
Viresh Kumar
5e83d0c93f Move all crates in crates directory
Based on what other rust-vmm workspaces do, move all crates to crates
directory.

Signed-off-by: Viresh Kumar <viresh.kumar@linaro.org>
2022-10-13 16:28:11 +05:30
Viresh Kumar
3b1c32244e
Merge pull request #231 from stefano-garzarella/codeowners
CODEOWNERS: add stefano-garzarella
2022-10-13 16:14:13 +05:30
Stefano Garzarella
d9e4262316 CODEOWNERS: add stefano-garzarella
Add myself to CODEOWNERS to help with reviews and maintaining
this workspace especially vhost-user-vsock.

Signed-off-by: Stefano Garzarella <sgarzare@redhat.com>
2022-10-13 09:41:24 +02:00
Viresh Kumar
947dbe904d
Merge pull request #228 from vireshk/cleanups
Cleanups
2022-10-12 22:00:18 +05:30
Viresh Kumar
da3ad14d2c
Merge branch 'main' into cleanups 2022-10-12 20:56:53 +05:30
Viresh Kumar
1f77465d3b
Merge pull request #216 from stefano-garzarella/vsock-stefano
add vhost-user-vsock device emulation
2022-10-12 20:43:06 +05:30
Stefano Garzarella
e6a85ffd5e vsock: reorder use declarations
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>
2022-10-12 15:17:45 +02:00
Stefano Garzarella
a76f9ebe16 vsock: remove "vsock_" prefix where is redundant
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>
2022-10-12 15:17:45 +02:00
Stefano Garzarella
c452d1c2f9 vsock: move VsockArgs in main.rs
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>
2022-10-12 15:17:45 +02:00
Stefano Garzarella
f7f239e390 vsock: use pub(crate) for types used only by our binary
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>
2022-10-12 15:17:45 +02:00
Stefano Garzarella
a6d157f5e5 vsock: add more tests and update coverage_score
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>
2022-10-12 15:17:45 +02:00
Stefano Garzarella
498c7490e1 vsock: fix VhostUserVsockBackend::get_config
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>
2022-10-12 15:17:45 +02:00
Stefano Garzarella
167206dea3 vsock: try to avoid panic as much as we can
Instead of panic, let's propagate errors or print warnings
where we can't.

Signed-off-by: Stefano Garzarella <sgarzare@redhat.com>
2022-10-12 15:17:14 +02:00
Stefano Garzarella
1605f54fab vsock: send credit update only when needed
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>
2022-10-12 14:39:27 +02:00
Stefano Garzarella
5986155c8a vsock: don't panic if "connect PORT\n" is malformed
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>
2022-10-12 14:39:27 +02:00
Stefano Garzarella
d6775cd90d vsock: clean up comments and fix log messages
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>
2022-10-12 14:39:27 +02:00
Stefano Garzarella
8fa597e941 vsock: add SPDX-License-Identifier in each file
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>
2022-10-12 14:21:54 +02:00
Stefano Garzarella
df1073bf2e vsock: use VsockPacket from the virtio-vsock crate
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>
2022-10-12 14:21:54 +02:00
Stefano Garzarella
896d346135 vsock: replace the deprecated App::from_yaml
clap::App::from_yaml() is deprecated since clap-3.0.0, let's
switch to clap::Parser.

Signed-off-by: Stefano Garzarella <sgarzare@redhat.com>
2022-10-12 14:21:54 +02:00
Stefano Garzarella
a1daeec3bc vsock: update Cargo.toml dependencies
Update the dependencies aligning with the other crates
in this workspace.

Signed-off-by: Stefano Garzarella <sgarzare@redhat.com>
2022-10-12 14:21:54 +02:00
Stefano Garzarella
69882e1dfc vsock: fix clippy warnings
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>
2022-10-12 14:21:54 +02:00
Harshavardhan Unnibhavi
e20698695b vhost-user-vsock: virtio-vsock device emulation
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>
2022-10-12 14:21:54 +02:00
Viresh Kumar
127113c0e9
Merge branch 'main' into cleanups 2022-10-11 16:41:03 +05:30
Viresh Kumar
b9f8d4e88f
Merge pull request #225 from rust-vmm/dependabot/cargo/syn-1.0.102
build(deps): bump syn from 1.0.101 to 1.0.102
2022-10-11 16:40:40 +05:30
Viresh Kumar
a0b0d96578
Merge branch 'main' into dependabot/cargo/syn-1.0.102 2022-10-11 16:31:28 +05:30
Viresh Kumar
427c011ef4
Merge pull request #224 from rust-vmm/dependabot/cargo/clap-4.0.11
build(deps): bump clap from 4.0.9 to 4.0.11
2022-10-11 16:29:59 +05:30
Viresh Kumar
2f27f73e58 Use std::io::Result instead of defining new type
Directly use std::io::Result instead of redefining it.

Signed-off-by: Viresh Kumar <viresh.kumar@linaro.org>
2022-10-11 16:09:20 +05:30
Viresh Kumar
d1ac89588c rng: Rename daemon to align with rest of the crate
Make daemon name follow what's used for i2c and gpio.

Signed-off-by: Viresh Kumar <viresh.kumar@linaro.org>
2022-10-11 15:42:45 +05:30
Viresh Kumar
57162428cb Remove unused types
Started getting warnings for unused definitions as soon as the types are
made private to the crate. Remove them now.

Signed-off-by: Viresh Kumar <viresh.kumar@linaro.org>
2022-10-11 15:39:56 +05:30
Viresh Kumar
1fb0e441a7 Make types private to crate
These are binary crates and their types aren't required to be exposed
out of the crates. Make them private to the crate.

Signed-off-by: Viresh Kumar <viresh.kumar@linaro.org>
2022-10-11 15:37:30 +05:30
Viresh Kumar
af2bc114b1
Merge branch 'main' into dependabot/cargo/clap-4.0.11 2022-10-11 09:55:24 +05:30
Viresh Kumar
b972efccd7
Merge branch 'main' into dependabot/cargo/syn-1.0.102 2022-10-11 09:55:21 +05:30
Viresh Kumar
d6f3a9e146
Merge pull request #226 from rust-vmm/dependabot/cargo/unicode-ident-1.0.5
build(deps): bump unicode-ident from 1.0.4 to 1.0.5
2022-10-11 09:55:11 +05:30
dependabot[bot]
cf8f5ca5a8
build(deps): bump unicode-ident from 1.0.4 to 1.0.5
Bumps [unicode-ident](https://github.com/dtolnay/unicode-ident) from 1.0.4 to 1.0.5.
- [Release notes](https://github.com/dtolnay/unicode-ident/releases)
- [Commits](https://github.com/dtolnay/unicode-ident/compare/1.0.4...1.0.5)

---
updated-dependencies:
- dependency-name: unicode-ident
  dependency-type: indirect
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-10-10 04:07:16 +00:00
dependabot[bot]
758c6d9de5
build(deps): bump syn from 1.0.101 to 1.0.102
Bumps [syn](https://github.com/dtolnay/syn) from 1.0.101 to 1.0.102.
- [Release notes](https://github.com/dtolnay/syn/releases)
- [Commits](https://github.com/dtolnay/syn/compare/1.0.101...1.0.102)

---
updated-dependencies:
- dependency-name: syn
  dependency-type: indirect
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-10-10 04:07:11 +00:00
dependabot[bot]
92e3a8ca2f
build(deps): bump clap from 4.0.9 to 4.0.11
Bumps [clap](https://github.com/clap-rs/clap) from 4.0.9 to 4.0.11.
- [Release notes](https://github.com/clap-rs/clap/releases)
- [Changelog](https://github.com/clap-rs/clap/blob/master/CHANGELOG.md)
- [Commits](https://github.com/clap-rs/clap/compare/v4.0.9...v4.0.11)

---
updated-dependencies:
- dependency-name: clap
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-10-10 04:07:06 +00:00
Viresh Kumar
ef7e315531
Merge pull request #215 from stefano-garzarella/use-frontend-backend
README: replace master with frontend
2022-10-05 21:44:13 +05:30
Mathieu Poirier
14be53d8fc
Merge branch 'main' into use-frontend-backend 2022-10-05 09:50:14 -06:00
Viresh Kumar
1cdc247614
Merge pull request #223 from rust-vmm/dependabot/cargo/clap-4.0.9
build(deps): bump clap from 4.0.8 to 4.0.9
2022-10-05 07:43:43 +05:30
dependabot[bot]
ff45d48450
build(deps): bump clap from 4.0.8 to 4.0.9
Bumps [clap](https://github.com/clap-rs/clap) from 4.0.8 to 4.0.9.
- [Release notes](https://github.com/clap-rs/clap/releases)
- [Changelog](https://github.com/clap-rs/clap/blob/master/CHANGELOG.md)
- [Commits](https://github.com/clap-rs/clap/compare/v4.0.8...v4.0.9)

---
updated-dependencies:
- dependency-name: clap
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-10-04 20:19:37 +00:00
Viresh Kumar
2dfd379c4c
Merge pull request #222 from rust-vmm/dependabot/cargo/libc-0.2.134
build(deps): bump libc from 0.2.133 to 0.2.134
2022-10-05 01:47:35 +05:30
Viresh Kumar
624a7f8372
Merge branch 'main' into dependabot/cargo/libc-0.2.134 2022-10-04 09:28:44 +05:30
Viresh Kumar
94e6ef7335
Merge pull request #221 from rust-vmm/dependabot/cargo/clap-4.0.8
build(deps): bump clap from 3.2.22 to 4.0.8
2022-10-04 09:28:15 +05:30
Viresh Kumar
1f5641bef1
Merge branch 'main' into dependabot/cargo/clap-4.0.8 2022-10-04 09:18:54 +05:30
Viresh Kumar
d3e45f9a68
Merge branch 'main' into dependabot/cargo/libc-0.2.134 2022-10-04 09:03:48 +05:30