qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [RFC PATCH 29/34] net: add Hyper-V/VMBus network protoc


From: Paolo Bonzini
Subject: Re: [Qemu-devel] [RFC PATCH 29/34] net: add Hyper-V/VMBus network protocol definitions
Date: Wed, 7 Feb 2018 13:00:14 +0100
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.5.2

On 06/02/2018 21:30, Roman Kagan wrote:
> +/* NdisInitialize message */
> +struct rndis_initialize_request {
> +    uint32_t req_id;
> +    uint32_t major_ver;
> +    uint32_t minor_ver;
> +    uint32_t max_xfer_size;
> +};
> +
> +/* Response to NdisInitialize */
> +struct rndis_initialize_complete {
> +    uint32_t req_id;
> +    uint32_t status;
> +    uint32_t major_ver;
> +    uint32_t minor_ver;
> +    uint32_t dev_flags;
> +    uint32_t medium;
> +    uint32_t max_pkt_per_msg;
> +    uint32_t max_xfer_size;
> +    uint32_t pkt_alignment_factor;
> +    uint32_t af_list_offset;
> +    uint32_t af_list_size;
> +};
> +
> +/* Call manager devices only: Information about an address family */
> +/* supported by the device is appended to the response to NdisInitialize. */
> +struct rndis_co_address_family {
> +    uint32_t address_family;
> +    uint32_t major_ver;
> +    uint32_t minor_ver;
> +};
> +
> +/* NdisHalt message */
> +struct rndis_halt_request {
> +    uint32_t req_id;
> +};
> +
> +/* NdisQueryRequest message */
> +struct rndis_query_request {
> +    uint32_t req_id;
> +    uint32_t oid;
> +    uint32_t info_buflen;
> +    uint32_t info_buf_offset;
> +    uint32_t dev_vc_handle;
> +};
> +
> +/* Response to NdisQueryRequest */
> +struct rndis_query_complete {
> +    uint32_t req_id;
> +    uint32_t status;
> +    uint32_t info_buflen;
> +    uint32_t info_buf_offset;
> +};
> +
> +/* NdisSetRequest message */
> +struct rndis_set_request {
> +    uint32_t req_id;
> +    uint32_t oid;
> +    uint32_t info_buflen;
> +    uint32_t info_buf_offset;
> +    uint32_t dev_vc_handle;
> +};
> +
> +/* Response to NdisSetRequest */
> +struct rndis_set_complete {
> +    uint32_t req_id;
> +    uint32_t status;
> +};
> +
> +/* NdisReset message */
> +struct rndis_reset_request {
> +    uint32_t reserved;
> +};
> +
> +/* Response to NdisReset */
> +struct rndis_reset_complete {
> +    uint32_t status;
> +    uint32_t addressing_reset;
> +};
> +
> +/* NdisMIndicateStatus message */
> +struct rndis_indicate_status {
> +    uint32_t status;
> +    uint32_t status_buflen;
> +    uint32_t status_buf_offset;
> +};
> +
> +/* Diagnostic information passed as the status buffer in */
> +/* struct rndis_indicate_status messages signifying error conditions. */
> +struct rndis_diagnostic_info {
> +    uint32_t diag_status;
> +    uint32_t error_offset;
> +};
> +
> +/* NdisKeepAlive message */
> +struct rndis_keepalive_request {
> +    uint32_t req_id;
> +};
> +
> +/* Response to NdisKeepAlive */
> +struct rndis_keepalive_complete {
> +    uint32_t req_id;
> +    uint32_t status;
> +};
> +

Hmm, these are a bit harder to unify with hw/usb/dev-network.c.  Still
not _that_ hard, just that the USB version has two fields for message
type/length at the beginning.  Probably worth it even if we keep two
versions of the core RNDIS code.

Paolo



reply via email to

[Prev in Thread] Current Thread [Next in Thread]