Proto commits in unikraft/kraftkit

These 6 commits are when the Protocol Buffers files have changed:

Commit:25b9859
Author:Alexander Jung
Committer:Alexander Jung

feat: Upgrade QEMU from v7.1.0 to v7.2.4 This is the latest version of the v7 series. At the same time, set the QMP version such that it is reflected via the import. We are setting `v7alpha2` here instead of `v7` because the QMP implementation is incomplete. If it is fully populated we can rename to `v7`, representing a complete API that can then be referenced. Signed-off-by: Alexander Jung <alex@unikraft.io>

The documentation is generated from this commit.

Commit:73bb42f
Author:Alexander Jung
Committer:Alexander Jung

feat(v1alpha1): Introduce QMP-specific protobuf for network devices Signed-off-by: Alexander Jung <alex@unikraft.io>

Commit:a6c7267
Author:Alexander Jung
Committer:Alexander Jung

fix(v1alpha1): Fix use of empty/Any return for `Capabilities` The QMP return structure for the `qmp_capabilities` RPC does not return a populated structure. Align with existing RPC methods and return the `google.protobuf.Any` structure. Signed-off-by: Alexander Jung <alex@unikraft.io>

Commit:cf2fd73
Author:Alexander Jung
Committer:Alexander Jung

docs(v1alpha1): Squash the license and copyright notice preamble This commit "squashes" the license and copyright preamble in files associated with this sign off. The preamble already includes the SPDX license identifier which essentially duplicates the text in question. Additionally, this license, in accordance with the license, is distributed with the source code via the `LICENSE.md` file which is accompanied in this repository. Additionally, copyright notice is provided to The KraftKit Authors, which entitles new developers who contribute commits to the project an associated copyright with regard to their contributions without having to specifically update the license and copyright preamble. Signed-off-by: Alexander Jung <alex@unikraft.io>

Commit:4b10969
Author:Alexander Jung

machine/qemu/qmp/v1alpha: Add system powerdown, reset and wakeup calls Signed-off-by: Alexander Jung <alex@unikraft.io>

Commit:23d1a18
Author:Alexander Jung

machine/qemu{/qmp}: Introduce QEMU QMP Protobuf definitions This commit introduces serialized definition of a limited set of method calls and events from QEMU's "QAPI" known as QMP. The definitions are defined as Google Protobuf files and generated using the previously introduced tool `protoc-gen-go-netconn`. The QAPI protocol is relatively simple and is defined within QEMU's source code in the `qapi/` folder. The protocol is enabled by invoking `-qmp` during the instantiation of the `qemu-system-*` binary. In server mode, the interface sends and receives JSON terminated by a newline (`\n`). The interface first expets a simple handshake which is used to indicate the version of QEMU followed immediately by a "capabilities" request: this is serialized in the "greeting" service. By defining QAPI via Protobuf and with the associated tool, we are able to maintain future additions to QAPI by providing the relevant service. It is also easy to add existing interactions via Request-Response format which is defined within `services.proto`. This commit also includes the generated artifacts from the protoc definitions which is done using `buf`[0]. In the future, these files should be checked by the CI and also relevant generation of said files should be added to the project's build system as a preparation step before building the `kraft` binary. Further on, it would be nice to automatically generate the QAPI interface by directly parsing the source files from QEMU as they are defiend in a relatively standard fashion. [0]: https://buf.build/ Signed-off-by: Alexander Jung <alex@unikraft.io>