]> xenbits.xensource.com Git - xen-guest-agent.git/log
xen-guest-agent.git
16 months agoci: cross-build Linux aarch64 binary
Yann Dirson [Thu, 16 Nov 2023 08:46:43 +0000 (09:46 +0100)]
ci: cross-build Linux aarch64 binary

Testbuilding only, as we don't have an obvious use-case to support.

Builds against glibc in a Debian chroot to be able to check
the xenstore build feature.

16 months agoci: more consistency on parallel specification
Yann Dirson [Fri, 22 Dec 2023 11:24:30 +0000 (12:24 +0100)]
ci: more consistency on parallel specification

16 months agoMerge branch 'ci-images-full-path' into 'main'
Yann Dirson [Wed, 20 Dec 2023 16:50:37 +0000 (16:50 +0000)]
Merge branch 'ci-images-full-path' into 'main'

ci: use full path for container images

See merge request xen-project/xen-guest-agent!50

16 months agoMerge branch 'ci-cross-windows' into 'main'
Yann Dirson [Wed, 20 Dec 2023 16:50:23 +0000 (16:50 +0000)]
Merge branch 'ci-cross-windows' into 'main'

Windows CI support

See merge request xen-project/xen-guest-agent!51

16 months agoci: cross-build Windows binary
Yann Dirson [Mon, 20 Nov 2023 11:13:18 +0000 (12:13 +0100)]
ci: cross-build Windows binary

Mostly a PoC, since we're missing crucial bits:
- Xenstore works differently on WIndows, and we don't have a crate
  supporting it yet
- pnet will not build with mingw, needs msvc, and it seems there are
  things to be done before we can use that

16 months agoUse panic!() not abort!()
Yann Dirson [Mon, 18 Dec 2023 15:24:12 +0000 (16:24 +0100)]
Use panic!() not abort!()

Hopefully we won't really need that safeguard, but it's still nice to be
able to compile non non-unix platforms.

Signed-off-by: Yann Dirson <yann.dirson@vates.fr>
16 months agoci: use full path for container images
Yann Dirson [Wed, 20 Dec 2023 16:31:14 +0000 (17:31 +0100)]
ci: use full path for container images

Much easier to copy-paste them on a podman command-line, alias files
are not always up to date.

Signed-off-by: Yann Dirson <yann.dirson@vates.fr>
16 months agoMerge branch 'ci-no-scheduled-pkg-source' into 'main'
Yann Dirson [Mon, 18 Dec 2023 09:53:37 +0000 (09:53 +0000)]
Merge branch 'ci-no-scheduled-pkg-source' into 'main'

ci: don't run source packaging when scheduled

See merge request xen-project/xen-guest-agent!49

16 months agoci: don't run source packaging when scheduled
Yann Dirson [Mon, 18 Dec 2023 09:47:30 +0000 (10:47 +0100)]
ci: don't run source packaging when scheduled

Signed-off-by: Yann Dirson <yann.dirson@vates.fr>
16 months agoMerge branch 'scheduled-freebsd' into 'main'
Yann Dirson [Mon, 18 Dec 2023 09:17:07 +0000 (09:17 +0000)]
Merge branch 'scheduled-freebsd' into 'main'

ci/freebsd: use proper before_script template

See merge request xen-project/xen-guest-agent!48

16 months agoci/freebsd: use proper before_script template
Yann Dirson [Mon, 18 Dec 2023 08:43:17 +0000 (09:43 +0100)]
ci/freebsd: use proper before_script template

Fixes 27fb1ae87b512efc2c55657108fa27531a26f3ea, should really
investigate why I was not able to test this scheduled job on the PR
first <sigh>.

Signed-off-by: Yann Dirson <yann.dirson@vates.fr>
16 months agoMerge branch 'scheduled-freebsd' into 'main'
Yann Dirson [Fri, 15 Dec 2023 16:54:34 +0000 (16:54 +0000)]
Merge branch 'scheduled-freebsd' into 'main'

scheduled ci jobs for FreeBSD

See merge request xen-project/xen-guest-agent!47

16 months agoci: add a scheduled job for checking freebsd build
Yann Dirson [Fri, 15 Dec 2023 16:47:54 +0000 (17:47 +0100)]
ci: add a scheduled job for checking freebsd build

Signed-off-by: Yann Dirson <yann.dirson@vates.fr>
16 months agoci: resync un/scheduled Linux job definitions
Yann Dirson [Fri, 15 Dec 2023 16:47:22 +0000 (17:47 +0100)]
ci: resync un/scheduled Linux job definitions

Signed-off-by: Yann Dirson <yann.dirson@vates.fr>
16 months agoMerge branch 'ci-fix-scheduled' into 'main'
Yann Dirson [Fri, 15 Dec 2023 16:26:46 +0000 (16:26 +0000)]
Merge branch 'ci-fix-scheduled' into 'main'

ci/deb: don't attempt to run deploy job when scheduled

See merge request xen-project/xen-guest-agent!46

16 months agoci/deb: don't attempt to run deploy job when scheduled
Yann Dirson [Fri, 15 Dec 2023 16:01:17 +0000 (17:01 +0100)]
ci/deb: don't attempt to run deploy job when scheduled

This caused a "yaml error" since dependencies were already disabled in
scheduled jobs.

Signed-off-by: Yann Dirson <yann.dirson@vates.fr>
16 months agoMerge branch 'post-release-0.3.0' into 'main'
Yann Dirson [Fri, 15 Dec 2023 15:03:33 +0000 (15:03 +0000)]
Merge branch 'post-release-0.3.0' into 'main'

Bump version to 0.4.0-dev

See merge request xen-project/xen-guest-agent!45

16 months agoBump version to 0.4.0-dev
Yann Dirson [Fri, 15 Dec 2023 14:47:37 +0000 (15:47 +0100)]
Bump version to 0.4.0-dev

Signed-off-by: Yann Dirson <yann.dirson@vates.fr>
16 months agoMerge branch 'release-0.3.0' into 'main' 0.3.0
Yann Dirson [Fri, 15 Dec 2023 14:45:24 +0000 (14:45 +0000)]
Merge branch 'release-0.3.0' into 'main'

Release v0.3.0

See merge request xen-project/xen-guest-agent!44

16 months agoRelease version 0.3.0
Yann Dirson [Thu, 16 Nov 2023 16:43:38 +0000 (17:43 +0100)]
Release version 0.3.0

16 months agoTextual clarification and fixes
Yann Dirson [Fri, 15 Dec 2023 13:48:28 +0000 (14:48 +0100)]
Textual clarification and fixes

Signed-off-by: Yann Dirson <yann.dirson@vates.fr>
16 months agoMerge branch 'deb-file-index' into 'main'
Yann Dirson [Thu, 14 Dec 2023 16:34:13 +0000 (16:34 +0000)]
Merge branch 'deb-file-index' into 'main'

ci/deb: provide uncompressed Contents file

See merge request xen-project/xen-guest-agent!43

16 months agoci/deb: provide uncompressed Contents file
Yann Dirson [Thu, 14 Dec 2023 15:54:20 +0000 (16:54 +0100)]
ci/deb: provide uncompressed Contents file

The uncompressed *checksum* is needed.

Signed-off-by: Yann Dirson <yann.dirson@vates.fr>
16 months agoMerge branch 'ci-package-repo' into 'main'
Yann Dirson [Thu, 14 Dec 2023 15:37:08 +0000 (15:37 +0000)]
Merge branch 'ci-package-repo' into 'main'

ci/pkg: fix handing of git-describe version for deb and rpm

See merge request xen-project/xen-guest-agent!42

16 months agoci/rpm: replace - with + in git-describe version
Yann Dirson [Thu, 14 Dec 2023 15:02:09 +0000 (16:02 +0100)]
ci/rpm: replace - with + in git-describe version

Signed-off-by: Yann Dirson <yann.dirson@vates.fr>
16 months agoci/deb: don't attempt package renaming if version did not need mangling
Yann Dirson [Thu, 14 Dec 2023 14:57:36 +0000 (15:57 +0100)]
ci/deb: don't attempt package renaming if version did not need mangling

Signed-off-by: Yann Dirson <yann.dirson@vates.fr>
16 months agoMerge branch 'ci-package-repo' into 'main'
Yann Dirson [Thu, 14 Dec 2023 14:48:40 +0000 (14:48 +0000)]
Merge branch 'ci-package-repo' into 'main'

ci: fix apk-add invocation

See merge request xen-project/xen-guest-agent!41

16 months agoci: fix apk-add invocation
Yann Dirson [Thu, 14 Dec 2023 14:10:02 +0000 (15:10 +0100)]
ci: fix apk-add invocation

Really fixes breakage from e651f8fae5c49bb1301a9b38fb047eba78d941dc.

So much for trusting search results on CLI syntax :/

Signed-off-by: Yann Dirson <yann.dirson@vates.fr>
16 months agoMerge branch 'ci-package-repo' into 'main'
Yann Dirson [Thu, 14 Dec 2023 13:55:12 +0000 (13:55 +0000)]
Merge branch 'ci-package-repo' into 'main'

ci: make sure env-setup job has git available when needed

See merge request xen-project/xen-guest-agent!40

16 months agoci: make sure env-setup job has git available when needed
Yann Dirson [Thu, 14 Dec 2023 13:46:41 +0000 (14:46 +0100)]
ci: make sure env-setup job has git available when needed

Fixes breakage from e651f8fae5c49bb1301a9b38fb047eba78d941dc.

CI in PR kinda sucks when using main-specific actions :/

Signed-off-by: Yann Dirson <yann.dirson@vates.fr>
16 months agoMerge branch 'ci-package-repo' into 'main'
Yann Dirson [Thu, 14 Dec 2023 13:40:44 +0000 (13:40 +0000)]
Merge branch 'ci-package-repo' into 'main'

Make package repo usable

See merge request xen-project/xen-guest-agent!39

16 months agoci: use git-describe to set version for main branch builds
Yann Dirson [Thu, 14 Dec 2023 10:37:47 +0000 (11:37 +0100)]
ci: use git-describe to set version for main branch builds

This will ensure not all builds share the same version string, and let
package update mechanism do their job.

Signed-off-by: Yann Dirson <yann.dirson@vates.fr>
16 months agoci: rename VERSION to TILDEVERSION for less ambiguity
Yann Dirson [Thu, 14 Dec 2023 10:33:35 +0000 (11:33 +0100)]
ci: rename VERSION to TILDEVERSION for less ambiguity

Signed-off-by: Yann Dirson <yann.dirson@vates.fr>
16 months agoci: set VERSION and UPSTREAMVERSION once in env-setup
Yann Dirson [Thu, 14 Dec 2023 10:32:15 +0000 (11:32 +0100)]
ci: set VERSION and UPSTREAMVERSION once in env-setup

Similarly to UPDATE_CHANNEL, we want a more complex heuristic to set
it in the end.

Signed-off-by: Yann Dirson <yann.dirson@vates.fr>
16 months agoci: use "release" and "testing" update channels for tags
Yann Dirson [Thu, 14 Dec 2023 09:48:58 +0000 (10:48 +0100)]
ci: use "release" and "testing" update channels for tags

Signed-off-by: Yann Dirson <yann.dirson@vates.fr>
16 months agoci: setup packaging update channel once
Yann Dirson [Thu, 14 Dec 2023 09:37:48 +0000 (10:37 +0100)]
ci: setup packaging update channel once

Prepares introduction of more complex choice of update channel.

Signed-off-by: Yann Dirson <yann.dirson@vates.fr>
16 months agoci: activate pipelines for tags
Yann Dirson [Thu, 14 Dec 2023 09:51:36 +0000 (10:51 +0100)]
ci: activate pipelines for tags

Those are intended to produce the release artifacts.

Signed-off-by: Yann Dirson <yann.dirson@vates.fr>
16 months agoci/deb: remove unused dotenv report
Yann Dirson [Thu, 14 Dec 2023 09:36:23 +0000 (10:36 +0100)]
ci/deb: remove unused dotenv report

Leftover from abandoned work.

Signed-off-by: Yann Dirson <yann.dirson@vates.fr>
16 months agoci: disable curl progress meter for more readability
Yann Dirson [Thu, 14 Dec 2023 12:27:12 +0000 (13:27 +0100)]
ci: disable curl progress meter for more readability

Signed-off-by: Yann Dirson <yann.dirson@vates.fr>
16 months agoMerge branch 'cargo-lock' into 'main'
Yann Dirson [Thu, 14 Dec 2023 09:23:58 +0000 (09:23 +0000)]
Merge branch 'cargo-lock' into 'main'

bump dependencies

See merge request xen-project/xen-guest-agent!38

16 months agoCargo.lock: update outdated deps
Yann Dirson [Thu, 14 Dec 2023 09:17:47 +0000 (10:17 +0100)]
Cargo.lock: update outdated deps

Signed-off-by: Yann Dirson <yann.dirson@vates.fr>
16 months agoMerge branch 'more-ci-artifacts' into 'main'
Yann Dirson [Thu, 14 Dec 2023 08:59:41 +0000 (08:59 +0000)]
Merge branch 'more-ci-artifacts' into 'main'

CI source artifact, package repositories

See merge request xen-project/xen-guest-agent!37

16 months agoci/deb: post-process Packages to use branch-name as component
Yann Dirson [Wed, 13 Dec 2023 11:34:49 +0000 (12:34 +0100)]
ci/deb: post-process Packages to use branch-name as component

This avoids the problem seen with HTTP 400 errors.

The sources.list entry for latest dev snapshot will be:

 deb [trusted=yes] https://gitlab.com/api/v4/projects/xen-project%252Fxen-guest-agent/packages/generic/deb-amd64/ main/

Signed-off-by: Yann Dirson <yann.dirson@vates.fr>
16 months agoci/deb: publish APT repository as a gitlab "generic package"
Yann Dirson [Tue, 12 Dec 2023 16:21:32 +0000 (17:21 +0100)]
ci/deb: publish APT repository as a gitlab "generic package"

This ought to be used as sources.list entry to access the repo, but
for some reason `apt-get update` gets HTTP 400 on Packages file,
whereas curl fetches it all right.

 deb [trusted=yes] https://gitlab.com/api/v4/projects/xen-project%252Fxen-guest-agent/packages/generic/deb-amd64/ci/ ./

Signed-off-by: Yann Dirson <yann.dirson@vates.fr>
16 months agoci/deb: let deb job generate files for an APT repository
Yann Dirson [Mon, 11 Dec 2023 17:02:20 +0000 (18:02 +0100)]
ci/deb: let deb job generate files for an APT repository

For some reason, while we can fetch the artifact files with curl,
apt-get gets told they do not exist.

Signed-off-by: Yann Dirson <yann.dirson@vates.fr>
16 months agoci: add source-tarball generation
Yann Dirson [Mon, 11 Dec 2023 16:49:45 +0000 (17:49 +0100)]
ci: add source-tarball generation

Signed-off-by: Yann Dirson <yann.dirson@vates.fr>
16 months agoci: use "pkg-" prefix for packaging jobs
Yann Dirson [Thu, 14 Dec 2023 08:46:19 +0000 (09:46 +0100)]
ci: use "pkg-" prefix for packaging jobs

Signed-off-by: Yann Dirson <yann.dirson@vates.fr>
16 months agobuild(deps): bump github/codeql-action from 2 to 3
dependabot[bot] [Thu, 14 Dec 2023 00:14:45 +0000 (00:14 +0000)]
build(deps): bump github/codeql-action from 2 to 3

Bumps [github/codeql-action](https://github.com/github/codeql-action) from 2 to 3.
- [Release notes](https://github.com/github/codeql-action/releases)
- [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md)
- [Commits](https://github.com/github/codeql-action/compare/v2...v3)

---
updated-dependencies:
- dependency-name: github/codeql-action
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
16 months agoci/rpm: avoid confusing nesting of quotation marks
Yann Dirson [Wed, 13 Dec 2023 17:29:54 +0000 (18:29 +0100)]
ci/rpm: avoid confusing nesting of quotation marks

Although valid shell syntax, this confuses some editors.

Signed-off-by: Yann Dirson <yann.dirson@vates.fr>
16 months agodoc/release: acknowledge that CI builds are now there
Yann Dirson [Mon, 11 Dec 2023 16:33:40 +0000 (17:33 +0100)]
doc/release: acknowledge that CI builds are now there

Signed-off-by: Yann Dirson <yann.dirson@vates.fr>
16 months agoFix typo in --help
Yann Dirson [Mon, 11 Dec 2023 16:35:52 +0000 (17:35 +0100)]
Fix typo in --help

Signed-off-by: Yann Dirson <yann.dirson@vates.fr>
16 months agoMerge branch 'netlink-packet-route-0.18' into 'main'
Yann Dirson [Mon, 11 Dec 2023 10:39:36 +0000 (10:39 +0000)]
Merge branch 'netlink-packet-route-0.18' into 'main'

netlink: upgrade to netlink-packet-route 0.18

See merge request xen-project/xen-guest-agent!36

16 months agonetlink: upgrade to netlink-packet-route 0.18
Yann Dirson [Mon, 11 Dec 2023 10:22:35 +0000 (11:22 +0100)]
netlink: upgrade to netlink-packet-route 0.18

16 months agoMerge branch 'cargo-lock' into 'main'
Yann Dirson [Mon, 11 Dec 2023 09:43:07 +0000 (09:43 +0000)]
Merge branch 'cargo-lock' into 'main'

Cargo.lock: update outdated deps

See merge request xen-project/xen-guest-agent!35

16 months agoCargo.lock: update outdated deps
Yann Dirson [Mon, 11 Dec 2023 09:31:52 +0000 (10:31 +0100)]
Cargo.lock: update outdated deps

Signed-off-by: Yann Dirson <yann.dirson@vates.fr>
16 months agoInclude VIF bugfixes in relnotes
Yann Dirson [Mon, 11 Dec 2023 09:29:34 +0000 (10:29 +0100)]
Include VIF bugfixes in relnotes

Signed-off-by: Yann Dirson <yann.dirson@vates.fr>
16 months agoMerge branch 'relnotes' into 'main'
Yann Dirson [Mon, 11 Dec 2023 09:27:40 +0000 (09:27 +0000)]
Merge branch 'relnotes' into 'main'

Introduce a file for release notes

See merge request xen-project/xen-guest-agent!31

16 months agoIntroduce a CHANGELOG.md file for release notes
Yann Dirson [Fri, 1 Dec 2023 15:21:54 +0000 (16:21 +0100)]
Introduce a CHANGELOG.md file for release notes

Signed-off-by: Yann Dirson <yann.dirson@vates.fr>
16 months agoMerge branch 'index-iface-by-number' into 'main'
Yann Dirson [Fri, 8 Dec 2023 16:33:38 +0000 (16:33 +0000)]
Merge branch 'index-iface-by-number' into 'main'

Index network interfaces by their numeric index, not by their name

Closes #13

See merge request xen-project/xen-guest-agent!23

16 months agonetlink: handle iface renaming
Yann Dirson [Fri, 24 Nov 2023 11:02:34 +0000 (12:02 +0100)]
netlink: handle iface renaming

Signed-off-by: Yann Dirson <yann.dirson@vates.fr>
16 months agonet: prepare interface cache for name changing
Yann Dirson [Fri, 24 Nov 2023 11:00:52 +0000 (12:00 +0100)]
net: prepare interface cache for name changing

While name changes do not necessarily have external impact (eg.
xenstore_schema_std does not expose those names), they are necessary
on Linux to know whether an iface is a VIF.  This requires
NetInterface objects in the cache to be mutable.

Signed-off-by: Yann Dirson <yann.dirson@vates.fr>
16 months agonetlink: properly behave if link event has no MAC
Yann Dirson [Thu, 23 Nov 2023 16:28:08 +0000 (17:28 +0100)]
netlink: properly behave if link event has no MAC

Should never happen, but not a reason to have bad code.

And we can do that without worrying, because now we have separate Add/RmIface
events.

Signed-off-by: Yann Dirson <yann.dirson@vates.fr>
16 months agonet: separate add/rm of interface and add/rm of MAC address
Yann Dirson [Tue, 21 Nov 2023 13:55:17 +0000 (14:55 +0100)]
net: separate add/rm of interface and add/rm of MAC address

The current code would do nothing on interface removal, as we only
emit a `RmMac` event, with which xenstore_schema_std does nothing (we did
not add them in the first place).

An explicit `RmIface` allows for the removal of the full iface tree in
Xenstore, since there is no need to expose a mostly-empty tree.

Signed-off-by: Yann Dirson <yann.dirson@vates.fr>
16 months agonetlink: prepare to generate more NetEvent's from a RtnlMessage
Yann Dirson [Tue, 21 Nov 2023 14:30:16 +0000 (15:30 +0100)]
netlink: prepare to generate more NetEvent's from a RtnlMessage

This will allow to separate handling of interfaces and MAC addresses.

Signed-off-by: Yann Dirson <yann.dirson@vates.fr>
16 months agoDrop unix_helper
Yann Dirson [Wed, 22 Nov 2023 16:11:57 +0000 (17:11 +0100)]
Drop unix_helper

We finally don't have a need for separately querying for an interface name
from its index, since we don't need to fetch this information every time a
packet arrives, netlink already gives us everything we need.

Signed-off-by: Yann Dirson <yann.dirson@vates.fr>
16 months agopnet: keep a note on InterfaceInfo::name
Yann Dirson [Thu, 23 Nov 2023 17:27:41 +0000 (18:27 +0100)]
pnet: keep a note on InterfaceInfo::name

Storage of interface name in pnet::InterfaceInfo would seem redundant
now, but we still need it stored temporarily, and this still looks
like the best place to do so.

Signed-off-by: Yann Dirson <yann.dirson@vates.fr>
16 months agonet: keep a cache of network interfaces
Yann Dirson [Thu, 30 Nov 2023 16:45:00 +0000 (17:45 +0100)]
net: keep a cache of network interfaces

Collects in a central place a map of iface indices, their names, and their
toolstack interface if any.

Finally replaces add_vif_info() calls with get_toolstack_interface()
called once to populate the cache.

Finally the RmIp events can be applied when an interface disappears, which
essentially fixes #13.

Though this makes a new problem apparent: recreating the VIF sometimes
does not get caught on Linux, when the iface is created as eth0 and
then renamed by udev as enX0 in a subsequent Newlink message: since we
are now only attempting to identify the toolkit-interface once, if
when we try to access the /sys node for eth0 the renaming already
occured the toolkit-interface is frozen as None.

Signed-off-by: Yann Dirson <yann.dirson@vates.fr>
16 months agonetlink: refactor private funcs as methods
Yann Dirson [Thu, 30 Nov 2023 16:42:26 +0000 (17:42 +0100)]
netlink: refactor private funcs as methods

While there is no use for `self` today in there, we're going to need to
refer to an iface_cache in next commits, which gets much simplified if we
never have to borrow across method boundaries.

Signed-off-by: Yann Dirson <yann.dirson@vates.fr>
16 months agopnet: reword network_view as current_addresses
Yann Dirson [Thu, 23 Nov 2023 10:52:07 +0000 (11:52 +0100)]
pnet: reword network_view as current_addresses

Makes wording consistent with addresses_cache, easier reading.

Signed-off-by: Yann Dirson <yann.dirson@vates.fr>
16 months agopnet: reword cache as addresses_cache
Yann Dirson [Thu, 23 Nov 2023 10:39:05 +0000 (11:39 +0100)]
pnet: reword cache as addresses_cache

We're going to have an interface cache too, let's be clear.

Signed-off-by: Yann Dirson <yann.dirson@vates.fr>
16 months agopnet: reword NetworkView as AddressesState
Yann Dirson [Thu, 23 Nov 2023 10:36:20 +0000 (11:36 +0100)]
pnet: reword NetworkView as AddressesState

Prepares renaming of "cache" member.

Signed-off-by: Yann Dirson <yann.dirson@vates.fr>
16 months agonet: rework toolstack-interface detection
Yann Dirson [Wed, 22 Nov 2023 11:42:27 +0000 (12:42 +0100)]
net: rework toolstack-interface detection

Detection of toolstack-interface (and not only VIF) does not have to
be done on every NetEvent, but only once.  To prepare for this,
introduce a new functional API that can be used instead of mutating a
NetEvent - this does not change call sites, which still make use of
the legacy API.

Signed-off-by: Yann Dirson <yann.dirson@vates.fr>
16 months agonetlink: use name from NLA in Link events
Yann Dirson [Mon, 20 Nov 2023 14:29:47 +0000 (15:29 +0100)]
netlink: use name from NLA in Link events

We were always calling `if_indextoname()` to get the interface name when
receiving a New/DelLink message.  Just use the data we already received
instead.

On NewLink messages we just received the interface name, so we don't need
to make another query to get the information; on DelLink the sycall cannot
even give us this information any more.

Note at this point we still use "" to denote the lack of a name - it
seems unlikely to happen there anyway, and will be made cleaner next.

Signed-off-by: Yann Dirson <yann.dirson@vates.fr>
16 months agoxenstore_schema_rfc: propose using iface number as key
Yann Dirson [Tue, 21 Nov 2023 09:40:51 +0000 (10:40 +0100)]
xenstore_schema_rfc: propose using iface number as key

This is more stable than names, and requires less bookkeeping in the
agent.

Signed-off-by: Yann Dirson <yann.dirson@vates.fr>
16 months agoxenstore_schema_std: index the iface address cache with OS index
Yann Dirson [Tue, 21 Nov 2023 09:11:29 +0000 (10:11 +0100)]
xenstore_schema_std: index the iface address cache with OS index

Iface name is not always part of a Netlink message, as opposed to the
OS index of the interface, and looking up the name following reception of
an interface removal notification just does not work.

All supported and prospective platforms seem to have a concept of
interface OS index, so this should cause no problem and be more efficient.

Signed-off-by: Yann Dirson <yann.dirson@vates.fr>
16 months agopnet: index NetworkView by interface index, not name
Yann Dirson [Mon, 20 Nov 2023 15:26:13 +0000 (16:26 +0100)]
pnet: index NetworkView by interface index, not name

Current structure made us fill NetInterface with a dummy interface
number, and we want to use interface number in xenstore_schema_std to
fix #13.

Iface name becomes part of the associated data, bundle it into
InterfaceInfo for now (it will get redundant with introduction of a more
global interface cache).

Signed-off-by: Yann Dirson <yann.dirson@vates.fr>
16 months agopnet: use a NetworkView type alias to reduce redundancy
Yann Dirson [Mon, 20 Nov 2023 14:52:07 +0000 (15:52 +0100)]
pnet: use a NetworkView type alias to reduce redundancy

Signed-off-by: Yann Dirson <yann.dirson@vates.fr>
17 months agoMerge branch 'cargo-lock' into 'main'
Yann Dirson [Tue, 5 Dec 2023 14:15:22 +0000 (14:15 +0000)]
Merge branch 'cargo-lock' into 'main'

Cargo.lock: update outdated deps

See merge request xen-project/xen-guest-agent!34

17 months agoCargo.lock: update outdated deps
Yann Dirson [Tue, 5 Dec 2023 13:54:47 +0000 (14:54 +0100)]
Cargo.lock: update outdated deps

Signed-off-by: Yann Dirson <yann.dirson@vates.fr>
17 months agoMerge branch 'ci-everycommit-catch-failures' into 'main'
Yann Dirson [Fri, 1 Dec 2023 11:34:20 +0000 (11:34 +0000)]
Merge branch 'ci-everycommit-catch-failures' into 'main'

ci: fix everycommit regression

See merge request xen-project/xen-guest-agent!29

17 months agoci: make sure collapsed-section footer is always printed
Yann Dirson [Fri, 1 Dec 2023 09:57:38 +0000 (10:57 +0100)]
ci: make sure collapsed-section footer is always printed

In case of error the lack of footer would fool gitlab log display into
thinking error summary from git-rebase was part of the collapsible section,
which is confusing to the reader.

Signed-off-by: Yann Dirson <yann.dirson@vates.fr>
17 months agoci: fix handling of build errors
Yann Dirson [Fri, 1 Dec 2023 09:33:46 +0000 (10:33 +0100)]
ci: fix handling of build errors

When using the "! command" shell syntax, $? returns the status of the
negated command, so the script was reporting success in all cases.

Just avoid using that syntax.

#TestsNeedTesting

Signed-off-by: Yann Dirson <yann.dirson@vates.fr>
17 months agoci: use stderr not stdout in build wrapper
Yann Dirson [Fri, 24 Nov 2023 11:03:04 +0000 (12:03 +0100)]
ci: use stderr not stdout in build wrapper

The "Executing ..." lines from gitlab-ci occasionally got captured before
the footer of previous collapsed section, so hidden when said section is
collapsed.

Signed-off-by: Yann Dirson <yann.dirson@vates.fr>
17 months agoMerge branch 'general-improvements-from-mr23' into 'main'
Yann Dirson [Thu, 30 Nov 2023 11:21:40 +0000 (11:21 +0000)]
Merge branch 'general-improvements-from-mr23' into 'main'

General improvements from !23

See merge request xen-project/xen-guest-agent!28

17 months agopnet: use or_insert_with to avoid useless allocations in nominal path
Yann Dirson [Thu, 23 Nov 2023 15:00:24 +0000 (16:00 +0100)]
pnet: use or_insert_with to avoid useless allocations in nominal path

Signed-off-by: Yann Dirson <yann.dirson@vates.fr>
17 months agoxenstore_schema_std: refuse publish_netevent calls with no toolstack iface
Yann Dirson [Thu, 23 Nov 2023 10:18:54 +0000 (11:18 +0100)]
xenstore_schema_std: refuse publish_netevent calls with no toolstack iface

This is already filtered at a more general level, in main.

Signed-off-by: Yann Dirson <yann.dirson@vates.fr>
17 months agoxenstore_schema_std: more idiomatic String to &str conversion
Yann Dirson [Thu, 23 Nov 2023 17:04:09 +0000 (18:04 +0100)]
xenstore_schema_std: more idiomatic String to &str conversion

Signed-off-by: Yann Dirson <yann.dirson@vates.fr>
17 months agopublisher: let compiler tell us of missing enum values
Yann Dirson [Wed, 29 Nov 2023 09:16:26 +0000 (10:16 +0100)]
publisher: let compiler tell us of missing enum values

Signed-off-by: Yann Dirson <yann.dirson@vates.fr>
17 months agonet: add some debug-level traces
Yann Dirson [Tue, 21 Nov 2023 13:03:43 +0000 (14:03 +0100)]
net: add some debug-level traces

Should help digging precisely why a given event gets dropped.

Signed-off-by: Yann Dirson <yann.dirson@vates.fr>
17 months agonetlink: remove redundant traces
Yann Dirson [Tue, 21 Nov 2023 12:31:14 +0000 (13:31 +0100)]
netlink: remove redundant traces

* separately logging header+nlas just duplicates with less info the
  full message log
* the full message itself is already available from netlink crate, as now
  described in the README

Signed-off-by: Yann Dirson <yann.dirson@vates.fr>
17 months agoREADME: update usage doc to include recently-added logging
Yann Dirson [Thu, 30 Nov 2023 10:38:47 +0000 (11:38 +0100)]
README: update usage doc to include recently-added logging

Signed-off-by: Yann Dirson <yann.dirson@vates.fr>
17 months agoMerge branch 'ci-everycommit-nofail-on-wip' into 'main'
Yann Dirson [Wed, 29 Nov 2023 17:43:02 +0000 (17:43 +0000)]
Merge branch 'ci-everycommit-nofail-on-wip' into 'main'

ci: don't fail an `everycommit` pipeline when the failure is on a WIP commit

See merge request xen-project/xen-guest-agent!27

17 months agoci: don't fail the pipeline when a WIP commit does not build
Yann Dirson [Wed, 29 Nov 2023 14:17:30 +0000 (15:17 +0100)]
ci: don't fail the pipeline when a WIP commit does not build

17 months agoci: avoid useless "collapsed" flag on "section_end"
Yann Dirson [Wed, 29 Nov 2023 17:12:01 +0000 (18:12 +0100)]
ci: avoid useless "collapsed" flag on "section_end"

Signed-off-by: Yann Dirson <yann.dirson@vates.fr>
17 months agoci: use a dedicated script to isolate complexity of running commands
Yann Dirson [Wed, 29 Nov 2023 16:04:28 +0000 (17:04 +0100)]
ci: use a dedicated script to isolate complexity of running commands

We're making the build logic more complicated, better have a real
script file to read it in good conditions.

Will also less the log look better, showing build args instead of printf
before the collapsed section.

Signed-off-by: Yann Dirson <yann.dirson@vates.fr>
17 months agoMerge branch 'cargo-lock' into 'main'
Yann Dirson [Wed, 29 Nov 2023 11:52:10 +0000 (11:52 +0000)]
Merge branch 'cargo-lock' into 'main'

Cargo.lock: update outdated deps

See merge request xen-project/xen-guest-agent!26

17 months agoCargo.lock: update outdated deps
Yann Dirson [Wed, 29 Nov 2023 11:46:36 +0000 (12:46 +0100)]
Cargo.lock: update outdated deps

Signed-off-by: Yann Dirson <yann.dirson@vates.fr>
17 months agoMerge branch 'ci-everycommit' into 'main'
Yann Dirson [Wed, 29 Nov 2023 11:41:14 +0000 (11:41 +0000)]
Merge branch 'ci-everycommit' into 'main'

ci: in merge requests, build every commit (on Linux only)

See merge request xen-project/xen-guest-agent!25

17 months agoci: let everycommit before_script be also timed and collapsed-by-default
Yann Dirson [Wed, 29 Nov 2023 11:37:18 +0000 (12:37 +0100)]
ci: let everycommit before_script be also timed and collapsed-by-default

Consistency, nitpicking, and playing with my new toy ;)

Signed-off-by: Yann Dirson <yann.dirson@vates.fr>
17 months agoci: in merge requests, build every commit (on Linux only)
Yann Dirson [Wed, 29 Nov 2023 09:43:27 +0000 (10:43 +0100)]
ci: in merge requests, build every commit (on Linux only)

Signed-off-by: Yann Dirson <yann.dirson@vates.fr>