2 * Copyright (c) 2005 SilverStorm Technologies. All rights reserved.
\r
4 * This software is available to you under the OpenIB.org BSD license
\r
7 * Redistribution and use in source and binary forms, with or
\r
8 * without modification, are permitted provided that the following
\r
9 * conditions are met:
\r
11 * - Redistributions of source code must retain the above
\r
12 * copyright notice, this list of conditions and the following
\r
15 * - Redistributions in binary form must reproduce the above
\r
16 * copyright notice, this list of conditions and the following
\r
17 * disclaimer in the documentation and/or other materials
\r
18 * provided with the distribution.
\r
20 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
\r
21 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
\r
22 * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
\r
23 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
\r
24 * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
\r
25 * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
\r
26 * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
\r
32 #ifndef _VNIC_DRIVER_H_
\r
33 #define _VNIC_DRIVER_H_
\r
35 #include "vnic_adapter.h"
\r
36 #include "vnic_debug.h"
\r
39 #if defined(NDIS50_MINIPORT)
\r
40 #define MAJOR_NDIS_VERSION 5
\r
41 #define MINOR_NDIS_VERSION 0
\r
42 #elif defined (NDIS51_MINIPORT)
\r
43 #define MAJOR_NDIS_VERSION 5
\r
44 #define MINOR_NDIS_VERSION 1
\r
46 #error NDIS Version not defined, try defining NDIS50_MINIPORT or NDIS51_MINIPORT
\r
51 static const NDIS_OID SUPPORTED_OIDS[] =
\r
53 OID_GEN_SUPPORTED_LIST,
\r
54 OID_GEN_HARDWARE_STATUS,
\r
55 OID_GEN_MEDIA_SUPPORTED,
\r
56 OID_GEN_MEDIA_IN_USE,
\r
57 OID_GEN_MAXIMUM_LOOKAHEAD,
\r
58 OID_GEN_MAXIMUM_FRAME_SIZE,
\r
60 OID_GEN_TRANSMIT_BUFFER_SPACE,
\r
61 OID_GEN_RECEIVE_BUFFER_SPACE,
\r
62 OID_GEN_TRANSMIT_BLOCK_SIZE,
\r
63 OID_GEN_RECEIVE_BLOCK_SIZE,
\r
65 OID_GEN_VENDOR_DESCRIPTION,
\r
66 OID_GEN_CURRENT_PACKET_FILTER,
\r
67 OID_GEN_CURRENT_LOOKAHEAD,
\r
68 OID_GEN_DRIVER_VERSION,
\r
69 OID_GEN_MAXIMUM_TOTAL_SIZE,
\r
70 OID_GEN_PROTOCOL_OPTIONS, // ?
\r
71 OID_GEN_MAC_OPTIONS,
\r
72 OID_GEN_MEDIA_CONNECT_STATUS,
\r
73 OID_GEN_MAXIMUM_SEND_PACKETS,
\r
74 OID_GEN_VENDOR_DRIVER_VERSION,
\r
75 OID_GEN_PHYSICAL_MEDIUM,
\r
80 OID_GEN_RCV_NO_BUFFER,
\r
81 OID_GEN_DIRECTED_BYTES_XMIT,
\r
82 OID_GEN_DIRECTED_FRAMES_XMIT,
\r
83 OID_GEN_MULTICAST_BYTES_XMIT,
\r
84 OID_GEN_MULTICAST_FRAMES_XMIT,
\r
85 OID_GEN_BROADCAST_BYTES_XMIT,
\r
86 OID_GEN_BROADCAST_FRAMES_XMIT,
\r
87 OID_GEN_DIRECTED_BYTES_RCV,
\r
88 OID_GEN_DIRECTED_FRAMES_RCV,
\r
89 OID_GEN_MULTICAST_BYTES_RCV,
\r
90 OID_GEN_MULTICAST_FRAMES_RCV,
\r
91 OID_GEN_BROADCAST_BYTES_RCV,
\r
92 OID_GEN_BROADCAST_FRAMES_RCV,
\r
93 OID_802_3_PERMANENT_ADDRESS,
\r
94 OID_802_3_CURRENT_ADDRESS,
\r
95 OID_802_3_MULTICAST_LIST,
\r
96 OID_802_3_MAXIMUM_LIST_SIZE,
\r
97 OID_802_3_MAC_OPTIONS,
\r
98 OID_802_3_RCV_ERROR_ALIGNMENT,
\r
99 OID_802_3_XMIT_ONE_COLLISION,
\r
100 OID_802_3_XMIT_MORE_COLLISIONS,
\r
101 OID_TCP_TASK_OFFLOAD
\r
104 static const unsigned char VENDOR_ID[] = {0x00, 0x06, 0x6A, 0x00};
\r
105 #define VENDOR_DESCRIPTION "Virtual Ethernet over InfiniBand"
\r
106 #define DEFAULT_VNIC_NAME "VNIC"
\r
110 IN PDRIVER_OBJECT p_drv_obj,
\r
111 IN PUNICODE_STRING p_reg_path );
\r
115 IN PDRIVER_OBJECT p_drv_obj );
\r
119 OUT PNDIS_STATUS p_open_err_status,
\r
120 OUT PUINT p_selected_medium_index,
\r
121 IN PNDIS_MEDIUM medium_array,
\r
122 IN UINT medium_array_size,
\r
123 IN NDIS_HANDLE h_handle,
\r
124 IN NDIS_HANDLE wrapper_configuration_context );
\r
127 vnic_check_for_hang(
\r
128 IN NDIS_HANDLE adapter_context );
\r
132 IN NDIS_HANDLE adapter_context );
\r
135 vnic_oid_query_info(
\r
136 IN NDIS_HANDLE adapter_context,
\r
139 IN ULONG info_buf_len,
\r
140 OUT PULONG p_bytes_written,
\r
141 OUT PULONG p_bytes_needed );
\r
145 OUT PBOOLEAN p_addressing_reset,
\r
146 IN NDIS_HANDLE adapter_context );
\r
150 IN NDIS_HANDLE adapter_context,
\r
153 IN ULONG info_buf_length,
\r
154 OUT PULONG p_bytes_read,
\r
155 OUT PULONG p_bytes_needed );
\r
159 IN NDIS_HANDLE adapter_context,
\r
160 IN PPNDIS_PACKET packet_array,
\r
161 IN UINT num_packets );
\r
165 IN NDIS_HANDLE adapter_context,
\r
166 IN NDIS_DEVICE_PNP_EVENT pnp_event,
\r
168 IN ULONG info_buf_len );
\r
172 IN PVOID adapter_context );
\r
175 vnic_get_agapter_interface(
\r
176 IN NDIS_HANDLE h_handle,
\r
177 IN vnic_adapter_t *p_adapter);
\r
180 /* same as cl_timer_start() except it takes timeout param in usec */
\r
181 /* need to run kicktimer */
\r
184 IN cl_timer_t* const p_timer,
\r
185 IN const uint32_t time_usec );
\r
187 #endif /* _VNIC_DRIVER_H_ */