Commit Graph

529 Commits

Author SHA1 Message Date
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
Viresh Kumar
eef4025e70
Merge pull request #220 from rust-vmm/dependabot/cargo/virtio-queue-0.6.1
build(deps): bump virtio-queue from 0.6.0 to 0.6.1
2022-10-04 08:35:26 +05:30
Viresh Kumar
3477b05e73
Merge branch 'main' into dependabot/cargo/libc-0.2.134 2022-10-04 08:29:29 +05:30
Viresh Kumar
f920bf8ba6
Merge branch 'main' into dependabot/cargo/virtio-queue-0.6.1 2022-10-04 08:29:04 +05:30
Viresh Kumar
a1ff4cd2fe
Merge pull request #219 from rust-vmm/dependabot/cargo/proc-macro2-1.0.46
build(deps): bump proc-macro2 from 1.0.44 to 1.0.46
2022-10-04 08:22:12 +05:30
Viresh Kumar
f66d4b8b36
Merge branch 'main' into dependabot/cargo/libc-0.2.134 2022-10-04 08:17:53 +05:30
dependabot[bot]
9e8f2f8109
build(deps): bump libc from 0.2.133 to 0.2.134
Bumps [libc](https://github.com/rust-lang/libc) from 0.2.133 to 0.2.134.
- [Release notes](https://github.com/rust-lang/libc/releases)
- [Commits](https://github.com/rust-lang/libc/compare/0.2.133...0.2.134)

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

Signed-off-by: dependabot[bot] <support@github.com>
2022-10-04 02:47:00 +00:00
Viresh Kumar
84ce44a697
Merge branch 'main' into dependabot/cargo/virtio-queue-0.6.1 2022-10-04 08:16:34 +05:30
Viresh Kumar
5eb37c0d80
Merge branch 'main' into dependabot/cargo/clap-4.0.8 2022-10-04 08:16:24 +05:30
Viresh Kumar
421567b0f4
Merge branch 'main' into dependabot/cargo/proc-macro2-1.0.46 2022-10-04 08:16:17 +05:30