svn commit: r304256 - head/sys/dev/hyperv/netvsc

Sepherosa Ziehau sephe at FreeBSD.org
Wed Aug 17 05:57:11 UTC 2016


Author: sephe
Date: Wed Aug 17 05:57:10 2016
New Revision: 304256
URL: https://svnweb.freebsd.org/changeset/base/304256

Log:
  hyperv/hn: Get rid of unused bits
  
  MFC after:	1 week
  Sponsored by:	Microsoft
  Differential Revision:	https://reviews.freebsd.org/D7518

Modified:
  head/sys/dev/hyperv/netvsc/hv_net_vsc.c
  head/sys/dev/hyperv/netvsc/hv_net_vsc.h

Modified: head/sys/dev/hyperv/netvsc/hv_net_vsc.c
==============================================================================
--- head/sys/dev/hyperv/netvsc/hv_net_vsc.c	Wed Aug 17 05:45:57 2016	(r304255)
+++ head/sys/dev/hyperv/netvsc/hv_net_vsc.c	Wed Aug 17 05:57:10 2016	(r304256)
@@ -690,8 +690,6 @@ hv_nv_on_device_add(struct hn_softc *sc,
 
 	/* Initialize the NetVSC channel extension */
 
-	sema_init(&net_dev->channel_init_sema, 0, "netdev_sema");
-
 	/*
 	 * Open the channel
 	 */
@@ -722,7 +720,6 @@ cleanup:
 	 * Free the packet buffers on the netvsc device packet queue.
 	 * Release other resources.
 	 */
-	sema_destroy(&net_dev->channel_init_sema);
 	free(net_dev, M_NETVSC);
 
 	return (NULL);
@@ -747,7 +744,6 @@ hv_nv_on_device_remove(struct hn_softc *
 
 	vmbus_chan_close(sc->hn_prichan);
 
-	sema_destroy(&net_dev->channel_init_sema);
 	free(net_dev, M_NETVSC);
 
 	return (0);

Modified: head/sys/dev/hyperv/netvsc/hv_net_vsc.h
==============================================================================
--- head/sys/dev/hyperv/netvsc/hv_net_vsc.h	Wed Aug 17 05:45:57 2016	(r304255)
+++ head/sys/dev/hyperv/netvsc/hv_net_vsc.h	Wed Aug 17 05:57:10 2016	(r304256)
@@ -177,834 +177,6 @@ typedef struct rndis_recv_scale_param_ {
         uint32_t processor_masks_entry_size;
 } rndis_recv_scale_param;
 
-typedef enum nvsp_msg_type_ {
-	nvsp_msg_type_none                      = 0,
-
-	/*
-	 * Init Messages
-	 */
-	nvsp_msg_type_init                      = 1,
-	nvsp_msg_type_init_complete             = 2,
-
-	nvsp_version_msg_start                  = 100,
-
-	/*
-	 * Version 1 Messages
-	 */
-	nvsp_msg_1_type_send_ndis_vers          = nvsp_version_msg_start,
-
-	nvsp_msg_1_type_send_rx_buf,
-	nvsp_msg_1_type_send_rx_buf_complete,
-	nvsp_msg_1_type_revoke_rx_buf,
-
-	nvsp_msg_1_type_send_send_buf,
-	nvsp_msg_1_type_send_send_buf_complete,
-	nvsp_msg_1_type_revoke_send_buf,
-
-	nvsp_msg_1_type_send_rndis_pkt,
-	nvsp_msg_1_type_send_rndis_pkt_complete,
-    
-	/*
-	 * Version 2 Messages
-	 */
-	nvsp_msg_2_type_send_chimney_delegated_buf,
-	nvsp_msg_2_type_send_chimney_delegated_buf_complete,
-	nvsp_msg_2_type_revoke_chimney_delegated_buf,
-
-	nvsp_msg_2_type_resume_chimney_rx_indication,
-
-	nvsp_msg_2_type_terminate_chimney,
-	nvsp_msg_2_type_terminate_chimney_complete,
-
-	nvsp_msg_2_type_indicate_chimney_event,
-
-	nvsp_msg_2_type_send_chimney_packet,
-	nvsp_msg_2_type_send_chimney_packet_complete,
-
-	nvsp_msg_2_type_post_chimney_rx_request,
-	nvsp_msg_2_type_post_chimney_rx_request_complete,
-
-	nvsp_msg_2_type_alloc_rx_buf,
-	nvsp_msg_2_type_alloc_rx_buf_complete,
-
-	nvsp_msg_2_type_free_rx_buf,
-
-	nvsp_msg_2_send_vmq_rndis_pkt,
-	nvsp_msg_2_send_vmq_rndis_pkt_complete,
-
-	nvsp_msg_2_type_send_ndis_config,
-
-	nvsp_msg_2_type_alloc_chimney_handle,
-	nvsp_msg_2_type_alloc_chimney_handle_complete,
-
-	nvsp_msg2_max = nvsp_msg_2_type_alloc_chimney_handle_complete,
-
-	/*
-	 * Version 4 Messages
-	 */
-	nvsp_msg4_type_send_vf_association,
-	nvsp_msg4_type_switch_data_path,
-	nvsp_msg4_type_uplink_connect_state_deprecated,
-
-	nvsp_msg4_max = nvsp_msg4_type_uplink_connect_state_deprecated,
-
-	/*
-	 * Version 5 Messages
-	 */
-	nvsp_msg5_type_oid_query_ex,
-	nvsp_msg5_type_oid_query_ex_comp,
-	nvsp_msg5_type_subchannel,
-	nvsp_msg5_type_send_indirection_table,
-
-	nvsp_msg5_max = nvsp_msg5_type_send_indirection_table,
-} nvsp_msg_type;
-
-typedef enum nvsp_status_ {
-	nvsp_status_none = 0,
-	nvsp_status_success,
-	nvsp_status_failure,
-	/* Deprecated */
-	nvsp_status_prot_vers_range_too_new,
-	/* Deprecated */
-	nvsp_status_prot_vers_range_too_old,
-	nvsp_status_invalid_rndis_pkt,
-	nvsp_status_busy,
-	nvsp_status_max,
-} nvsp_status;
-
-typedef struct nvsp_msg_hdr_ {
-	uint32_t                                msg_type;
-} __packed nvsp_msg_hdr;
-
-/*
- * Init Messages
- */
-
-/*
- * This message is used by the VSC to initialize the channel
- * after the channels has been opened. This message should 
- * never include anything other then versioning (i.e. this
- * message will be the same for ever).
- *
- * Forever is a long time.  The values have been redefined
- * in Win7 to indicate major and minor protocol version
- * number.
- */
-typedef struct nvsp_msg_init_ {
-	union {
-		struct {
-			uint16_t                minor_protocol_version;
-			uint16_t                major_protocol_version;
-		} s;
-		/* Formerly min_protocol_version */
-		uint32_t                        protocol_version;
-	} p1;
-	/* Formerly max_protocol_version */
-	uint32_t                                protocol_version_2;
-} __packed nvsp_msg_init;
-
-/*
- * This message is used by the VSP to complete the initialization
- * of the channel. This message should never include anything other 
- * then versioning (i.e. this message will be the same forever).
- */
-typedef struct nvsp_msg_init_complete_ {
-	/* Deprecated */
-	uint32_t                                negotiated_prot_vers;
-	uint32_t                                max_mdl_chain_len;
-	uint32_t                                status;
-} __packed nvsp_msg_init_complete;
-
-typedef union nvsp_msg_init_uber_ {
-	nvsp_msg_init                           init;
-	nvsp_msg_init_complete                  init_compl;
-} __packed nvsp_msg_init_uber;
-
-/*
- * Version 1 Messages
- */
-
-/*
- * This message is used by the VSC to send the NDIS version
- * to the VSP.  The VSP can use this information when handling
- * OIDs sent by the VSC.
- */
-typedef struct nvsp_1_msg_send_ndis_version_ {
-	uint32_t                                ndis_major_vers;
-	/* Deprecated */
-	uint32_t                                ndis_minor_vers;
-} __packed nvsp_1_msg_send_ndis_version;
-
-/*
- * This message is used by the VSC to send a receive buffer
- * to the VSP. The VSP can then use the receive buffer to
- * send data to the VSC.
- */
-typedef struct nvsp_1_msg_send_rx_buf_ {
-	uint32_t                                gpadl_handle;
-	uint16_t                                id;
-} __packed nvsp_1_msg_send_rx_buf;
-
-typedef struct nvsp_1_rx_buf_section_ {
-	uint32_t                                offset;
-	uint32_t                                sub_allocation_size;
-	uint32_t                                num_sub_allocations;
-	uint32_t                                end_offset;
-} __packed nvsp_1_rx_buf_section;
-
-/*
- * This message is used by the VSP to acknowledge a receive 
- * buffer send by the VSC.  This message must be sent by the 
- * VSP before the VSP uses the receive buffer.
- */
-typedef struct nvsp_1_msg_send_rx_buf_complete_ {
-	uint32_t                                status;
-	uint32_t                                num_sections;
-
-	/*
-	 * The receive buffer is split into two parts, a large
-	 * suballocation section and a small suballocation
-	 * section. These sections are then suballocated by a 
-	 * certain size.
-	 *
-	 * For example, the following break up of the receive
-	 * buffer has 6 large suballocations and 10 small
-	 * suballocations.
-	 *
-	 * |            Large Section          |  |   Small Section   |
-	 * ------------------------------------------------------------
-	 * |     |     |     |     |     |     |  | | | | | | | | | | |
-	 * |                                      |  
-	 * LargeOffset                            SmallOffset
-	 */
-	nvsp_1_rx_buf_section                   sections[1];
-
-} __packed nvsp_1_msg_send_rx_buf_complete;
-
-/*
- * This message is sent by the VSC to revoke the receive buffer.
- * After the VSP completes this transaction, the VSP should never
- * use the receive buffer again.
- */
-typedef struct nvsp_1_msg_revoke_rx_buf_ {
-	uint16_t                                id;
-} __packed nvsp_1_msg_revoke_rx_buf;
-
-/*
- * This message is used by the VSC to send a send buffer
- * to the VSP. The VSC can then use the send buffer to
- * send data to the VSP.
- */
-typedef struct nvsp_1_msg_send_send_buf_ {
-	uint32_t                                gpadl_handle;
-	uint16_t                                id;
-} __packed nvsp_1_msg_send_send_buf;
-
-/*
- * This message is used by the VSP to acknowledge a send 
- * buffer sent by the VSC. This message must be sent by the 
- * VSP before the VSP uses the sent buffer.
- */
-typedef struct nvsp_1_msg_send_send_buf_complete_ {
-	uint32_t                                status;
-
-	/*
-	 * The VSC gets to choose the size of the send buffer and
-	 * the VSP gets to choose the sections size of the buffer.
-	 * This was done to enable dynamic reconfigurations when
-	 * the cost of GPA-direct buffers decreases.
-	 */
-	uint32_t                                section_size;
-} __packed nvsp_1_msg_send_send_buf_complete;
-
-/*
- * This message is sent by the VSC to revoke the send buffer.
- * After the VSP completes this transaction, the vsp should never
- * use the send buffer again.
- */
-typedef struct nvsp_1_msg_revoke_send_buf_ {
-	uint16_t                                id;
-} __packed nvsp_1_msg_revoke_send_buf;
-
-/*
- * This message is used by both the VSP and the VSC to send
- * an RNDIS message to the opposite channel endpoint.
- */
-typedef struct nvsp_1_msg_send_rndis_pkt_ {
-	/*
-	 * This field is specified by RNIDS.  They assume there's
-	 * two different channels of communication. However, 
-	 * the Network VSP only has one.  Therefore, the channel
-	 * travels with the RNDIS packet.
-	 */
-	uint32_t                                chan_type;
-
-	/*
-	 * This field is used to send part or all of the data
-	 * through a send buffer. This values specifies an 
-	 * index into the send buffer.  If the index is 
-	 * 0xFFFFFFFF, then the send buffer is not being used
-	 * and all of the data was sent through other VMBus
-	 * mechanisms.
-	 */
-	uint32_t                                send_buf_section_idx;
-	uint32_t                                send_buf_section_size;
-} __packed nvsp_1_msg_send_rndis_pkt;
-
-/*
- * This message is used by both the VSP and the VSC to complete
- * a RNDIS message to the opposite channel endpoint.  At this
- * point, the initiator of this message cannot use any resources
- * associated with the original RNDIS packet.
- */
-typedef struct nvsp_1_msg_send_rndis_pkt_complete_ {
-	uint32_t                                status;
-} __packed nvsp_1_msg_send_rndis_pkt_complete;
-
-
-/*
- * Version 2 Messages
- */
-
-/*
- * This message is used by the VSC to send the NDIS version
- * to the VSP.  The VSP can use this information when handling
- * OIDs sent by the VSC.
- */
-typedef struct nvsp_2_netvsc_capabilities_ {
-	union {
-		uint64_t                        as_uint64;
-		struct {
-			uint64_t                vmq           : 1;
-			uint64_t                chimney       : 1;
-			uint64_t                sriov         : 1;
-			uint64_t                ieee8021q     : 1;
-			uint64_t                correlationid : 1;
-			uint64_t                teaming       : 1;
-		} u2;
-	} u1;
-} __packed nvsp_2_netvsc_capabilities;
-
-typedef struct nvsp_2_msg_send_ndis_config_ {
-	uint32_t                                mtu;
-	uint32_t                                reserved;
-	nvsp_2_netvsc_capabilities              capabilities;
-} __packed nvsp_2_msg_send_ndis_config;
-
-/*
- * NvspMessage2TypeSendChimneyDelegatedBuffer
- */
-typedef struct nvsp_2_msg_send_chimney_buf_
-{
-	/*
-	 * On WIN7 beta, delegated_obj_max_size is defined as a uint32_t
-	 * Since WIN7 RC, it was split into two uint16_t.  To have the same
-	 * struct layout, delegated_obj_max_size shall be the first field.
-	 */
-	uint16_t                                delegated_obj_max_size;
-
-	/*
-	 * The revision # of chimney protocol used between NVSC and NVSP.
-	 *
-	 * This revision is NOT related to the chimney revision between
-	 * NDIS protocol and miniport drivers.
-	 */
-	uint16_t                                revision;
-
-	uint32_t                                gpadl_handle;
-} __packed nvsp_2_msg_send_chimney_buf;
-
-
-/* Unsupported chimney revision 0 (only present in WIN7 beta) */
-#define NVSP_CHIMNEY_REVISION_0                 0
-
-/* WIN7 Beta Chimney QFE */
-#define NVSP_CHIMNEY_REVISION_1                 1
-
-/* The chimney revision since WIN7 RC */
-#define NVSP_CHIMNEY_REVISION_2                 2
-
-
-/*
- * NvspMessage2TypeSendChimneyDelegatedBufferComplete
- */
-typedef struct nvsp_2_msg_send_chimney_buf_complete_ {
-	uint32_t                                status;
-
-	/*
-	 * Maximum number outstanding sends and pre-posted receives.
-	 *
-	 * NVSC should not post more than SendQuota/ReceiveQuota packets.
-	 * Otherwise, it can block the non-chimney path for an indefinite
-	 * amount of time.
-	 * (since chimney sends/receives are affected by the remote peer).
-	 *
-	 * Note: NVSP enforces the quota restrictions on a per-VMBCHANNEL
-	 * basis.  It doesn't enforce the restriction separately for chimney
-	 * send/receive.  If NVSC doesn't voluntarily enforce "SendQuota",
-	 * it may kill its own network connectivity.
-	 */
-	uint32_t                                send_quota;
-	uint32_t                                rx_quota;
-} __packed nvsp_2_msg_send_chimney_buf_complete;
-
-/*
- * NvspMessage2TypeRevokeChimneyDelegatedBuffer
- */
-typedef struct nvsp_2_msg_revoke_chimney_buf_ {
-	uint32_t                                gpadl_handle;
-} __packed nvsp_2_msg_revoke_chimney_buf;
-
-
-#define NVSP_CHIMNEY_OBJECT_TYPE_NEIGHBOR       0
-#define NVSP_CHIMNEY_OBJECT_TYPE_PATH4          1
-#define NVSP_CHIMNEY_OBJECT_TYPE_PATH6          2
-#define NVSP_CHIMNEY_OBJECT_TYPE_TCP            3
-
-/*
- * NvspMessage2TypeAllocateChimneyHandle
- */
-typedef struct nvsp_2_msg_alloc_chimney_handle_ {
-	uint64_t                                vsc_context;
-	uint32_t                                object_type;
-} __packed nvsp_2_msg_alloc_chimney_handle;
-
-/*
- * NvspMessage2TypeAllocateChimneyHandleComplete
- */
-typedef struct nvsp_2_msg_alloc_chimney_handle_complete_ {
-	uint32_t                                vsp_handle;
-} __packed nvsp_2_msg_alloc_chimney_handle_complete;
-
-
-/*
- * NvspMessage2TypeResumeChimneyRXIndication
- */
-typedef struct nvsp_2_msg_resume_chimney_rx_indication {
-	/*
-	 * Handle identifying the offloaded connection
-	 */
-	uint32_t                                vsp_tcp_handle;
-} __packed nvsp_2_msg_resume_chimney_rx_indication;
-
-
-#define NVSP_2_MSG_TERMINATE_CHIMNEY_FLAGS_FIRST_STAGE      (0x01u)
-#define NVSP_2_MSG_TERMINATE_CHIMNEY_FLAGS_RESERVED         (~(0x01u))
-
-/*
- * NvspMessage2TypeTerminateChimney
- */
-typedef struct nvsp_2_msg_terminate_chimney_ {
-	/*
-	* Handle identifying the offloaded object
-	*/
-	uint32_t                                vsp_handle;
-
-	/*
-	 * Terminate Offload Flags
-	 *     Bit 0:
-	 *         When set to 0, terminate the offload at the destination NIC
-	 *     Bit 1-31:  Reserved, shall be zero
-	 */
-	uint32_t                                flags;
-
-	union {
-		/*
-		 * This field is valid only when bit 0 of flags is clear.
-		 * It specifies the index into the premapped delegated
-		 * object buffer.  The buffer was sent through the
-		 * NvspMessage2TypeSendChimneyDelegatedBuffer
-		 * message at initialization time.
-		 *
-		 * NVSP will write the delegated state into the delegated
-		 * buffer upon upload completion.
-		 */
-		uint32_t                        index;
-
-		/*
-		 * This field is valid only when bit 0 of flags is set.
-		 *
-		 * The seqence number of the most recently accepted RX
-		 * indication when VSC sets its TCP context into
-		 * "terminating" state.
-		 *
-		 * This allows NVSP to determines if there are any in-flight
-		 * RX indications for which the acceptance state is still
-		 * undefined.
-		 */
-		uint64_t                        last_accepted_rx_seq_no;
-	} f0;
-} __packed nvsp_2_msg_terminate_chimney;
-
-
-#define NVSP_TERMINATE_CHIMNEY_COMPLETE_FLAG_DATA_CORRUPTED     0x0000001u
-
-/*
- * NvspMessage2TypeTerminateChimneyComplete
- */
-typedef struct nvsp_2_msg_terminate_chimney_complete_ {
-	uint64_t                                vsc_context;
-	uint32_t                                flags;
-} __packed nvsp_2_msg_terminate_chimney_complete;
-
-/*
- * NvspMessage2TypeIndicateChimneyEvent
- */
-typedef struct nvsp_2_msg_indicate_chimney_event_ {
-	/*
-	 * When VscTcpContext is 0, event_type is an NDIS_STATUS event code
-	 * Otherwise, EventType is an TCP connection event (defined in
-	 * NdisTcpOffloadEventHandler chimney DDK document).
-	 */
-	uint32_t                                event_type;
-
-	/*
-	 * When VscTcpContext is 0, EventType is an NDIS_STATUS event code
-	 * Otherwise, EventType is an TCP connection event specific information
-	 * (defined in NdisTcpOffloadEventHandler chimney DDK document).
-	 */
-	uint32_t                                event_specific_info;
-
-	/*
-	 * If not 0, the event is per-TCP connection event.  This field
-	 * contains the VSC's TCP context.
-	 * If 0, the event indication is global.
-	 */
-	uint64_t                                vsc_tcp_context;
-} __packed nvsp_2_msg_indicate_chimney_event;
-
-
-#define NVSP_1_CHIMNEY_SEND_INVALID_OOB_INDEX       0xffffu
-#define NVSP_1_CHIMNEY_SEND_INVALID_SECTION_INDEX   0xffffffff
-
-/*
- * NvspMessage2TypeSendChimneyPacket
- */
-typedef struct nvsp_2_msg_send_chimney_pkt_ {
-    /*
-     * Identify the TCP connection for which this chimney send is
-     */
-    uint32_t                                    vsp_tcp_handle;
-
-    /*
-     * This field is used to send part or all of the data
-     * through a send buffer. This values specifies an
-     * index into the send buffer. If the index is
-     * 0xFFFF, then the send buffer is not being used
-     * and all of the data was sent through other VMBus
-     * mechanisms.
-     */
-    uint16_t                                    send_buf_section_index;
-    uint16_t                                    send_buf_section_size;
-
-    /*
-     * OOB Data Index
-     * This an index to the OOB data buffer. If the index is 0xFFFFFFFF,
-     * then there is no OOB data.
-     *
-     * This field shall be always 0xFFFFFFFF for now. It is reserved for
-     * the future.
-     */
-    uint16_t                                    oob_data_index;
-
-    /*
-     * DisconnectFlags = 0
-     *      Normal chimney send. See MiniportTcpOffloadSend for details.
-     *
-     * DisconnectFlags = TCP_DISCONNECT_GRACEFUL_CLOSE (0x01)
-     *      Graceful disconnect. See MiniportTcpOffloadDisconnect for details.
-     *
-     * DisconnectFlags = TCP_DISCONNECT_ABORTIVE_CLOSE (0x02)
-     *      Abortive disconnect. See MiniportTcpOffloadDisconnect for details.
-     */
-    uint16_t                                    disconnect_flags;
-
-    uint32_t                                    seq_no;
-} __packed nvsp_2_msg_send_chimney_pkt;
-
-/*
- * NvspMessage2TypeSendChimneyPacketComplete
- */
-typedef struct nvsp_2_msg_send_chimney_pkt_complete_ {
-    /*
-     * The NDIS_STATUS for the chimney send
-     */
-    uint32_t                                    status;
-
-    /*
-     * Number of bytes that have been sent to the peer (and ACKed by the peer).
-     */
-    uint32_t                                    bytes_transferred;
-} __packed nvsp_2_msg_send_chimney_pkt_complete;
-
-
-#define NVSP_1_CHIMNEY_RECV_FLAG_NO_PUSH        0x0001u
-#define NVSP_1_CHIMNEY_RECV_INVALID_OOB_INDEX   0xffffu
-
-/*
- * NvspMessage2TypePostChimneyRecvRequest
- */
-typedef struct nvsp_2_msg_post_chimney_rx_request_ {
-	/*
-	 * Identify the TCP connection which this chimney receive request
-	 * is for.
-	 */
-	uint32_t                                vsp_tcp_handle;
-
-	/*
-	 * OOB Data Index
-	 * This an index to the OOB data buffer. If the index is 0xFFFFFFFF,
-	 * then there is no OOB data.
-	 *
-	 * This field shall be always 0xFFFFFFFF for now. It is reserved for
-	 * the future.
-	 */
-	uint32_t                                oob_data_index;
-
-	/*
-	 * Bit 0
-	 *      When it is set, this is a "no-push" receive.
-	 *      When it is clear, this is a "push" receive.
-	 *
-	 * Bit 1-15:  Reserved and shall be zero
-	 */
-	uint16_t                                flags;
-
-	/*
-	 * For debugging and diagnoses purpose.
-	 * The SeqNo is per TCP connection and starts from 0.
-	 */
-	uint32_t                                seq_no;
-} __packed nvsp_2_msg_post_chimney_rx_request;
-
-/*
- * NvspMessage2TypePostChimneyRecvRequestComplete
- */
-typedef struct nvsp_2_msg_post_chimney_rx_request_complete_ {
-	/*
-	 * The NDIS_STATUS for the chimney send
-	 */
-	uint32_t                                status;
-
-	/*
-	 * Number of bytes that have been sent to the peer (and ACKed by
-	 * the peer).
-	 */
-	uint32_t                                bytes_xferred;
-} __packed nvsp_2_msg_post_chimney_rx_request_complete;
-
-/*
- * NvspMessage2TypeAllocateReceiveBuffer
- */
-typedef struct nvsp_2_msg_alloc_rx_buf_ {
-	/*
-	 * Allocation ID to match the allocation request and response
-	 */
-	uint32_t                                allocation_id;
-
-	/*
-	 * Length of the VM shared memory receive buffer that needs to
-	 * be allocated
-	 */
-	uint32_t                                length;
-} __packed nvsp_2_msg_alloc_rx_buf;
-
-/*
- * NvspMessage2TypeAllocateReceiveBufferComplete
- */
-typedef struct nvsp_2_msg_alloc_rx_buf_complete_ {
-	/*
-	 * The NDIS_STATUS code for buffer allocation
-	 */
-	uint32_t                                status;
-
-	/*
-	 * Allocation ID from NVSP_2_MESSAGE_ALLOCATE_RECEIVE_BUFFER
-	 */
-	uint32_t                                allocation_id;
-
-	/*
-	 * GPADL handle for the allocated receive buffer
-	 */
-	uint32_t                                gpadl_handle;
-
-	/*
-	 * Receive buffer ID that is further used in
-	 * NvspMessage2SendVmqRndisPacket
-	 */
-	uint64_t                                rx_buf_id;
-} __packed nvsp_2_msg_alloc_rx_buf_complete;
-
-/*
- * NvspMessage2TypeFreeReceiveBuffer
- */
-typedef struct nvsp_2_msg_free_rx_buf_ {
-	/*
-	 * Receive buffer ID previous returned in
-	 * NvspMessage2TypeAllocateReceiveBufferComplete message
-	 */
-	uint64_t                                rx_buf_id;
-} __packed nvsp_2_msg_free_rx_buf;
-
-/*
- * This structure is used in defining the buffers in
- * NVSP_2_MESSAGE_SEND_VMQ_RNDIS_PACKET structure
- */
-typedef struct nvsp_xfer_page_range_ {
-	/*
-	 * Specifies the ID of the receive buffer that has the buffer. This
-	 * ID can be the general receive buffer ID specified in
-	 * NvspMessage1TypeSendReceiveBuffer or it can be the shared memory
-	 * receive buffer ID allocated by the VSC and specified in
-	 * NvspMessage2TypeAllocateReceiveBufferComplete message
-	 */
-	uint64_t                                xfer_page_set_id;
-
-	/*
-	 * Number of bytes
-	 */
-	uint32_t                                byte_count;
-
-	/*
-	 * Offset in bytes from the beginning of the buffer
-	 */
-	uint32_t                                byte_offset;
-} __packed nvsp_xfer_page_range;
-
-/*
- * NvspMessage2SendVmqRndisPacket
- */
-typedef struct nvsp_2_msg_send_vmq_rndis_pkt_ {
-	/*
-	 * This field is specified by RNIDS. They assume there's
-	 * two different channels of communication. However,
-	 * the Network VSP only has one. Therefore, the channel
-	 * travels with the RNDIS packet. It must be RMC_DATA
-	 */
-	uint32_t                                channel_type;
-
-	/*
-	 * Only the Range element corresponding to the RNDIS header of
-	 * the first RNDIS message in the multiple RNDIS messages sent
-	 * in one NVSP message.  Information about the data portions as well
-	 * as the subsequent RNDIS messages in the same NVSP message are
-	 * embedded in the RNDIS header itself
-	 */
-	nvsp_xfer_page_range                    range;
-} __packed nvsp_2_msg_send_vmq_rndis_pkt;
-
-/*
- * This message is used by the VSC to complete
- * a RNDIS VMQ message to the VSP.  At this point,
- * the initiator of this message can use any resources
- * associated with the original RNDIS VMQ packet.
- */
-typedef struct nvsp_2_msg_send_vmq_rndis_pkt_complete_
-{
-	uint32_t                                status;
-} __packed nvsp_2_msg_send_vmq_rndis_pkt_complete;
-
-/*
- * Version 5 messages
- */
-enum nvsp_subchannel_operation {
-        NVSP_SUBCHANNEL_NONE = 0,
-        NVSP_SUBCHANNE_ALLOCATE,
-        NVSP_SUBCHANNE_MAX
-};
-
-typedef struct nvsp_5_subchannel_request_
-{
-        uint32_t                                op;
-        uint32_t                                num_subchannels;
-} __packed nvsp_5_subchannel_request;
-
-typedef struct nvsp_5_subchannel_complete_
-{
-        uint32_t                                status;
-        /* Actual number of subchannels allocated */
-        uint32_t                                num_subchannels;
-} __packed nvsp_5_subchannel_complete;
-
-typedef struct nvsp_5_send_indirect_table_
-{
-        /* The number of entries in the send indirection table */
-        uint32_t                                count;
-        /*
-         * The offset of the send indireciton table from top of
-         * this struct. The send indirection table tells which channel
-         * to put the send traffic on. Each entry is a channel number.
-         */
-        uint32_t                                offset;
-} __packed nvsp_5_send_indirect_table;
-
-typedef union nvsp_1_msg_uber_ {
-	nvsp_1_msg_send_ndis_version            send_ndis_vers;
-
-	nvsp_1_msg_send_rx_buf                  send_rx_buf;
-	nvsp_1_msg_send_rx_buf_complete         send_rx_buf_complete;
-	nvsp_1_msg_revoke_rx_buf                revoke_rx_buf;
-
-	nvsp_1_msg_send_send_buf                send_send_buf;
-	nvsp_1_msg_send_send_buf_complete       send_send_buf_complete;
-	nvsp_1_msg_revoke_send_buf              revoke_send_buf;
-
-	nvsp_1_msg_send_rndis_pkt               send_rndis_pkt;
-	nvsp_1_msg_send_rndis_pkt_complete      send_rndis_pkt_complete;
-} __packed nvsp_1_msg_uber;
-
-
-typedef union nvsp_2_msg_uber_ {
-	nvsp_2_msg_send_ndis_config             send_ndis_config;
-
-	nvsp_2_msg_send_chimney_buf             send_chimney_buf;
-	nvsp_2_msg_send_chimney_buf_complete    send_chimney_buf_complete;
-	nvsp_2_msg_revoke_chimney_buf           revoke_chimney_buf;
-
-	nvsp_2_msg_resume_chimney_rx_indication resume_chimney_rx_indication;
-	nvsp_2_msg_terminate_chimney            terminate_chimney;
-	nvsp_2_msg_terminate_chimney_complete   terminate_chimney_complete;
-	nvsp_2_msg_indicate_chimney_event       indicate_chimney_event;
-
-	nvsp_2_msg_send_chimney_pkt             send_chimney_packet;
-	nvsp_2_msg_send_chimney_pkt_complete    send_chimney_packet_complete;
-	nvsp_2_msg_post_chimney_rx_request      post_chimney_rx_request;
-	nvsp_2_msg_post_chimney_rx_request_complete
-	                                       post_chimney_rx_request_complete;
-
-	nvsp_2_msg_alloc_rx_buf                 alloc_rx_buffer;
-	nvsp_2_msg_alloc_rx_buf_complete        alloc_rx_buffer_complete;
-	nvsp_2_msg_free_rx_buf                  free_rx_buffer;
-
-	nvsp_2_msg_send_vmq_rndis_pkt           send_vmq_rndis_pkt;
-	nvsp_2_msg_send_vmq_rndis_pkt_complete  send_vmq_rndis_pkt_complete;
-	nvsp_2_msg_alloc_chimney_handle         alloc_chimney_handle;
-	nvsp_2_msg_alloc_chimney_handle_complete alloc_chimney_handle_complete;
-} __packed nvsp_2_msg_uber;
-
-typedef union nvsp_5_msg_uber_
-{
-        nvsp_5_subchannel_request               subchannel_request;
-        nvsp_5_subchannel_complete              subchn_complete;
-        nvsp_5_send_indirect_table              send_table;
-} __packed nvsp_5_msg_uber;
-
-typedef union nvsp_all_msgs_ {
-	nvsp_msg_init_uber                      init_msgs;
-	nvsp_1_msg_uber                         vers_1_msgs;
-	nvsp_2_msg_uber                         vers_2_msgs;
-	nvsp_5_msg_uber				vers_5_msgs;
-} __packed nvsp_all_msgs;
-
-/*
- * ALL Messages
- */
-typedef struct nvsp_msg_ {
-	nvsp_msg_hdr                            hdr; 
-	nvsp_all_msgs                           msgs;
-} __packed nvsp_msg;
-
-
 /*
  * The following arguably belongs in a separate header file
  */
@@ -1061,13 +233,6 @@ typedef struct netvsc_dev_ {
 	uint32_t				rx_buf_gpadl_handle;
 	uint32_t				rx_section_count;
 
-	/* Used for NetVSP initialization protocol */
-	struct sema				channel_init_sema;
-	nvsp_msg				channel_init_packet;
-
-	nvsp_msg				revoke_packet;
-	/*uint8_t				hw_mac_addr[ETHER_ADDR_LEN];*/
-
 	/* Holds rndis device info */
 	void					*extension;
 
@@ -1079,7 +244,6 @@ typedef struct netvsc_dev_ {
 
 	struct hyperv_dma			rxbuf_dma;
 	struct hyperv_dma			txbuf_dma;
-	uint32_t                                vrss_send_table[VRSS_SEND_TABLE_SIZE];
 } netvsc_dev;
 
 struct vmbus_channel;


More information about the svn-src-all mailing list