Commit Graph

522 Commits

Author SHA1 Message Date
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
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
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
Viresh Kumar
95b34fd2f1
Merge pull request #218 from rust-vmm/dependabot/cargo/syn-1.0.101
build(deps): bump syn from 1.0.100 to 1.0.101
2022-10-04 08:16:06 +05:30
dependabot[bot]
74f77abc90
build(deps): bump clap from 3.2.22 to 4.0.8
Bumps [clap](https://github.com/clap-rs/clap) from 3.2.22 to 4.0.8.
- [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/v3.2.22...v4.0.8)

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

Signed-off-by: dependabot[bot] <support@github.com>
2022-10-03 04:07:26 +00:00
dependabot[bot]
40628be43a
build(deps): bump virtio-queue from 0.6.0 to 0.6.1
Bumps [virtio-queue](https://github.com/rust-vmm/vm-virtio) from 0.6.0 to 0.6.1.
- [Release notes](https://github.com/rust-vmm/vm-virtio/releases)
- [Commits](https://github.com/rust-vmm/vm-virtio/compare/virtio-queue-v0.6.0...virtio-queue-v0.6.1)

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

Signed-off-by: dependabot[bot] <support@github.com>
2022-10-03 04:07:19 +00:00
dependabot[bot]
d067474164
build(deps): bump proc-macro2 from 1.0.44 to 1.0.46
Bumps [proc-macro2](https://github.com/dtolnay/proc-macro2) from 1.0.44 to 1.0.46.
- [Release notes](https://github.com/dtolnay/proc-macro2/releases)
- [Commits](https://github.com/dtolnay/proc-macro2/compare/1.0.44...1.0.46)

---
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-03 04:07:15 +00:00
dependabot[bot]
a253237f29
build(deps): bump syn from 1.0.100 to 1.0.101
Bumps [syn](https://github.com/dtolnay/syn) from 1.0.100 to 1.0.101.
- [Release notes](https://github.com/dtolnay/syn/releases)
- [Commits](https://github.com/dtolnay/syn/compare/1.0.100...1.0.101)

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

Signed-off-by: dependabot[bot] <support@github.com>
2022-10-03 04:07:11 +00:00
Viresh Kumar
352db5ccdd
Merge branch 'main' into use-frontend-backend 2022-09-28 21:36:05 +05:30
Viresh Kumar
92b8dfa414
Merge pull request #217 from rust-vmm/dependabot/cargo/thiserror-1.0.37
build(deps): bump thiserror from 1.0.35 to 1.0.37
2022-09-28 21:35:49 +05:30