; /****************************************************************************
; ** COPYRIGHT (C) 2008-2009 Mellanox                                        **
; ****************************************************************************/

[version]
;Layoutfile parameter is reserved for internal Microsoft use only
;LayoutFile = layout.inf
Signature   = "$Chicago$"
Class       = Net
ClassGUID   = {4d36e972-e325-11ce-bfc1-08002be10318}
Provider    = %Mellanox%
Compatible  = 1
DriverVer=12/23/2012,4.3.11897
CatalogFile=mlx4eth61.cat

[Manufacturer]
%Mellanox%     = Mellanox,NTx86,NTia64,NTamd64

[Mellanox.NTx86]
; DisplayName           Section       DeviceID
; -----------           -------       --------
%mlx4eth61_CX2.3349.DeviceDesc% = mlx4eth61_CX2.ndi,  MLX4\ConnectX-2_Eth&3349103C
%mlx4eth61_CX2.1781.DeviceDesc%	= mlx4eth61_CX2.ndi,  MLX4\ConnectX-2_Eth&1781103C
%mlx4eth61_CX2.3313.DeviceDesc% = mlx4eth61_CX2.ndi,  MLX4\ConnectX-2_Eth&3313103C
%mlx4eth61_CX.DeviceDesc%		= mlx4eth61_CX2.ndi,  MLX4\ConnectX_Eth	     ; Mellanox ConnectX Ethernet Adapter
%mlx4eth61_CX2.DeviceDesc%      = mlx4eth61_CX2.ndi,  MLX4\ConnectX-2_Eth    ; Mellanox ConnectX-2 Ethernet Adapter
%mlx4eth61_CX3.DeviceDesc%	    = mlx4eth61_CX3.ndi,  MLX4\ConnectX-3_Eth	 ; Mellanox ConnectX-3 Ethernet Adapter


[Mellanox.NTia64]
; DisplayName           Section       DeviceID
; -----------           -------       --------
%mlx4eth61_CX2.3349.DeviceDesc% = mlx4eth61_CX2.ndi,  MLX4\ConnectX-2_Eth&3349103C
%mlx4eth61_CX2.1781.DeviceDesc%	= mlx4eth61_CX2.ndi,  MLX4\ConnectX-2_Eth&1781103C
%mlx4eth61_CX2.3313.DeviceDesc% = mlx4eth61_CX2.ndi,  MLX4\ConnectX-2_Eth&3313103C
%mlx4eth61_CX.DeviceDesc%		= mlx4eth61_CX2.ndi,  MLX4\ConnectX_Eth 	 ; Mellanox ConnectX Ethernet Adapter
%mlx4eth61_CX2.DeviceDesc%		= mlx4eth61_CX2.ndi,  MLX4\ConnectX-2_Eth	 ; Mellanox ConnectX-2 Ethernet Adapter
%mlx4eth61_CX3.DeviceDesc%		= mlx4eth61_CX3.ndi,  MLX4\ConnectX-3_Eth	 ; Mellanox ConnectX-3 Ethernet Adapter


; Mellanox CX Based PCI VPI Adapter 

[Mellanox.NTamd64]
; DisplayName           Section       DeviceID
; -----------           -------       --------
%mlx4eth61_CX2.3349.DeviceDesc% = mlx4eth61_CX2.ndi,  MLX4\ConnectX-2_Eth&3349103C
%mlx4eth61_CX2.1781.DeviceDesc%	= mlx4eth61_CX2.ndi,  MLX4\ConnectX-2_Eth&1781103C
%mlx4eth61_CX2.3313.DeviceDesc% = mlx4eth61_CX2.ndi,  MLX4\ConnectX-2_Eth&3313103C
%mlx4eth61_CX.DeviceDesc%		= mlx4eth61_CX2.ndi,  MLX4\ConnectX_Eth 	 ; Mellanox ConnectX Ethernet Adapter
%mlx4eth61_CX2.DeviceDesc%		= mlx4eth61_CX2.ndi,  MLX4\ConnectX-2_Eth	 ; Mellanox ConnectX-2 Ethernet Adapter
%mlx4eth61_CX3.DeviceDesc%		= mlx4eth61_CX3.ndi,  MLX4\ConnectX-3_Eth	 ; Mellanox ConnectX-3 Ethernet Adapter


;-----------------------------------------------------------------------------
; ConnectX-2 and ConnectX
;

; Windows NT specific entry
[mlx4eth61_CX2.ndi.ntx86]
Characteristics = 0x81
AddReg          = cx.reg, mlx4eth61.reg, WinCtxTune_reg
CopyFiles       = mlx4eth61.CopyFiles, Wctxtune.CopyFiles
*IfType         = 6		; IF_TYPE_ETHERNET_CSMACD 
*MediaType      = 0		; NdisMedium802_3
*PhysicalMediaType = 14		; NdisPhysicalMedium802_3

[mlx4eth61_CX2.ndi.ntamd64]
Characteristics = 0x81
AddReg          = cx.reg, mlx4eth61.reg, WinCtxTune_reg
CopyFiles       = mlx4eth61.CopyFiles, Wctxtune.CopyFiles
*IfType         = 6		; IF_TYPE_ETHERNET_CSMACD 
*MediaType      = 0		; NdisMedium802_3
*PhysicalMediaType = 14		; NdisPhysicalMedium802_3

[mlx4eth61_CX2.ndi.ntia64]
Characteristics = 0x81
AddReg          = cx.reg, mlx4eth61.reg, WinCtxTune_reg
CopyFiles       = mlx4eth61.CopyFiles, Wctxtune.CopyFiles
*IfType         = 6		; IF_TYPE_ETHERNET_CSMACD 
*MediaType      = 0		; NdisMedium802_3
*PhysicalMediaType = 14		; NdisPhysicalMedium802_3

[mlx4eth61_CX2.ndi.ntx86.Services]
AddService = mlx4eth61, 2, mlx4eth61.Service, common.EventLog

[mlx4eth61_CX2.ndi.ntamd64.Services]
AddService = mlx4eth61, 2, mlx4eth61.Service, common.EventLog

[mlx4eth61_CX2.ndi.ntia64.Services]
AddService = mlx4eth61, 2, mlx4eth61.Service, common.EventLog

;-----------------------------------------------------------------------------
; ConnectX-3
;

; Windows NT specific entry
[mlx4eth61_CX3.ndi.ntx86]
Characteristics = 0x81
AddReg          = cx.reg, mlx4eth61.reg, WinCtxTune_reg
CopyFiles       = mlx4eth61.CopyFiles, Wctxtune.CopyFiles
*IfType         = 6		; IF_TYPE_ETHERNET_CSMACD 
*MediaType      = 0		; NdisMedium802_3
*PhysicalMediaType = 14		; NdisPhysicalMedium802_3

[mlx4eth61_CX3.ndi.ntamd64]
Characteristics = 0x81
AddReg          = cx.reg, mlx4eth61.reg, WinCtxTune_reg
CopyFiles       = mlx4eth61.CopyFiles, Wctxtune.CopyFiles
*IfType         = 6		; IF_TYPE_ETHERNET_CSMACD 
*MediaType      = 0		; NdisMedium802_3
*PhysicalMediaType = 14		; NdisPhysicalMedium802_3

[mlx4eth61_CX3.ndi.ntia64]
Characteristics = 0x81
AddReg          = cx.reg, mlx4eth61.reg, WinCtxTune_reg
CopyFiles       = mlx4eth61.CopyFiles, Wctxtune.CopyFiles
*IfType         = 6		; IF_TYPE_ETHERNET_CSMACD 
*MediaType      = 0		; NdisMedium802_3
*PhysicalMediaType = 14		; NdisPhysicalMedium802_3

[mlx4eth61_CX3.ndi.ntx86.Services]
AddService = mlx4eth61, 2, mlx4eth61.Service, common.EventLog

[mlx4eth61_CX3.ndi.ntamd64.Services]
AddService = mlx4eth61, 2, mlx4eth61.Service, common.EventLog

[mlx4eth61_CX3.ndi.ntia64.Services]
AddService = mlx4eth61, 2, mlx4eth61.Service, common.EventLog

;-----------------------------------------------------------------------------
; cx common
;
[cx.reg]
HKR, NDI\Params\NumTcb,         ParamDesc,  0, "%TransmitControlBlocks%"
HKR, NDI\Params\NumTcb,         default,    0, "16"
HKR, NDI\Params\NumTcb,         min,        0, "1"
HKR, NDI\Params\NumTcb,         max,        0, "00000064"
HKR, NDI\Params\NumTcb,         step,       0, "1"
HKR, NDI\Params\NumTcb,         Base,       0, "10"
HKR, NDI\Params\NumTcb,         type,       0, "int" 
HKR, "",                        NumTcb,     0, "16"

HKR, NDI\Params\LargeSendOffload,  ParamDesc,0, "%LargeSendOffload%"
HKR, NDI\Params\LargeSendOffload,  Type,     0, "enum" 
HKR, NDI\Params\LargeSendOffload,  Default,  0, "1"
HKR, NDI\Params\LargeSendOffload,  Optional, 0, "0"
HKR, NDI\Params\LargeSendOffload\enum, "0",  0, "%Disabled%"
HKR, NDI\Params\LargeSendOffload\enum, "1",  0, "%Enabled%"
HKR,  "", LargeSendOffload, 0, "1"     

HKR, NDI\Params\*LsoV1IPv4,  ParamDesc, 0, "%LsoV1IPv4%"
HKR, NDI\Params\*LsoV1IPv4,  Type,      0, "enum"
HKR, NDI\Params\*LsoV1IPv4,  Default,   0, "1"
HKR, NDI\Params\*LsoV1IPv4,  Optional,  0, "0"
HKR, NDI\Params\*LsoV1IPv4\enum,  "0",  0, "%Disabled%"
HKR, NDI\Params\*LsoV1IPv4\enum,  "1",  0, "%Enabled%"
HKR, "", *LsoV1IPv4, 0, "1"

HKR, NDI\Params\*LsoV2IPv4,  ParamDesc, 0, "%LsoV2IPv4%"
HKR, NDI\Params\*LsoV2IPv4,  Type,      0, "enum"
HKR, NDI\Params\*LsoV2IPv4,  Default,   0, "1"
HKR, NDI\Params\*LsoV2IPv4,  Optional,  0, "0"
HKR, NDI\Params\*LsoV2IPv4\enum,  "0",  0, "%Disabled%"
HKR, NDI\Params\*LsoV2IPv4\enum,  "1",  0, "%Enabled%"
HKR, "", *LsoV2IPv4, 0, "1"

HKR, NDI\Params\*LsoV2IPv6,  ParamDesc, 0, "%LsoV2IPv6%"
HKR, NDI\Params\*LsoV2IPv6,  Type,      0, "enum"
HKR, NDI\Params\*LsoV2IPv6,  Default,   0, "1"
HKR, NDI\Params\*LsoV2IPv6,  Optional,  0, "0"
HKR, NDI\Params\*LsoV2IPv6\enum,  "0",  0, "%Disabled%"
HKR, NDI\Params\*LsoV2IPv6\enum,  "1",  0, "%Enabled%"
HKR, "", *LsoV2IPv6, 0, "1"


HKR, NDI\Params\SendCompletionMethod,  ParamDesc, 0, "%SendCompletionMethod%" 
HKR, NDI\Params\SendCompletionMethod,  Type,      0, "enum"
HKR, NDI\Params\SendCompletionMethod,  Default,   0, "0"
HKR, NDI\Params\SendCompletionMethod,  Optional,  0, "0"
HKR, NDI\Params\SendCompletionMethod\enum,  "0",  0, "%Polling%"
HKR, NDI\Params\SendCompletionMethod\enum,  "1",  0, "%Interrupts%"
HKR, "", SendCompletionMethod,  0, "0"

HKR, NDI\Params\RecvCompletionMethod,  ParamDesc, 0, "%RecvCompletionMethod%" 
HKR, NDI\Params\RecvCompletionMethod,  Type,  0, "enum"
HKR, NDI\Params\RecvCompletionMethod,  Default, 0, "2"
HKR, NDI\Params\RecvCompletionMethod,  Optional, 0, "0"
HKR, NDI\Params\RecvCompletionMethod\enum,  "1", 0, "%Polling%"
HKR, NDI\Params\RecvCompletionMethod\enum,  "2", 0, "%Adaptive%"
HKR, "", RecvCompletionMethod, 0, "2"

HKR, NDI\Params\*JumboPacket ,         ParamDesc,  0, "%MaxFrameSize%"
HKR, NDI\Params\*JumboPacket ,         default,    0, "1500"
HKR, NDI\Params\*JumboPacket ,         min,        0, "600"
HKR, NDI\Params\*JumboPacket ,         max,        0, "00009600"
HKR, NDI\Params\*JumboPacket ,         step,       0, "1"
HKR, NDI\Params\*JumboPacket ,         Base,       0, "10"
HKR, NDI\Params\*JumboPacket ,         type,       0, "int"
HKR, "", *JumboPacket ,  0, "1500"    

HKR, NDI\Params\*ReceiveBuffers,  ParamDesc, 0, "%RecvRingSize%"
HKR, NDI\Params\*ReceiveBuffers,  default,    0, "1024"
HKR, NDI\Params\*ReceiveBuffers,  min, 	   0, "256"
HKR, NDI\Params\*ReceiveBuffers,  max, 	   0, "4096"
HKR, NDI\Params\*ReceiveBuffers,  step,	   0, "1"
HKR, NDI\Params\*ReceiveBuffers,  Base,	   0, "10"
HKR, NDI\Params\*ReceiveBuffers,  type,	   0, "int"
HKR, "", *ReceiveBuffers,  0, "1024"	  
	
HKR, NDI\Params\*TransmitBuffers,  ParamDesc, 0, "%SendRingSize%"
HKR, NDI\Params\*TransmitBuffers,  default,	  0, "2048"
HKR, NDI\Params\*TransmitBuffers,  min,	   0, "256"
HKR, NDI\Params\*TransmitBuffers,  max,	   0, "4096"
HKR, NDI\Params\*TransmitBuffers,  step,    0, "1"
HKR, NDI\Params\*TransmitBuffers,  Base,    0, "10"
HKR, NDI\Params\*TransmitBuffers,  type,    0, "int"
HKR, "", *TransmitBuffers,  0, "2048"	  

HKR, NDI\Params\UseDma,  ParamDesc, 0, "%UseDma%"
HKR, NDI\Params\UseDma,  Type,      0, "enum"
HKR, NDI\Params\UseDma,  Default,   0, "1"
HKR, NDI\Params\UseDma,  Optional,  0, "0"
HKR, NDI\Params\UseDma\enum,  "0",  0, "%Disabled%"
HKR, NDI\Params\UseDma\enum,  "1",  0, "%Enabled%" 
HKR, "", UseDma, 0, "1"


HKR, NDI\Params\*HeaderDataSplit,  ParamDesc, 0, "%HeaderDataSplit%"
HKR, NDI\Params\*HeaderDataSplit,  Type,      0, "enum"
HKR, NDI\Params\*HeaderDataSplit,  Default,   0, "0"
HKR, NDI\Params\*HeaderDataSplit,  Optional,  0, "0"
HKR, NDI\Params\*HeaderDataSplit\enum,  "0",  0, "%Disabled%"
HKR, NDI\Params\*HeaderDataSplit\enum,  "1",  0, "%Enabled%" 
HKR, "", *HeaderDataSplit, 0, "0"


HKR, NDI\Params\*RSS,  ParamDesc, 0, "%RssMode%" 
HKR, NDI\Params\*RSS,  Type,  0, "enum"
HKR, NDI\Params\*RSS,  Default, 0, "1"
HKR, NDI\Params\*RSS,  Optional, 0, "0"
HKR, NDI\Params\*RSS\enum,  "0", 0, "%No_rebalnce%"
HKR, NDI\Params\*RSS\enum,  "1", 0, "%NDIS_RSS%"
HKR, "", *RSS,  0, "1"   

HKR, NDI\Params\SendIntModCount,         ParamDesc,  0, "%SendIntModCount%"
HKR, NDI\Params\SendIntModCount,         default,    0, "0"
HKR, NDI\Params\SendIntModCount,         min,        0, "0"
HKR, NDI\Params\SendIntModCount,         max,        0, "00000100"
HKR, NDI\Params\SendIntModCount,         step,       0, "1"
HKR, NDI\Params\SendIntModCount,         Base,       0, "10"
HKR, NDI\Params\SendIntModCount,         type,       0, "int" 
HKR, "", SendIntModCount,  0, "0"

HKR, NDI\Params\SendIntModTime,         ParamDesc,  0, "%SendIntModTime%"
HKR, NDI\Params\SendIntModTime,         default,    0, "0"
HKR, NDI\Params\SendIntModTime,         min,        0, "0"
HKR, NDI\Params\SendIntModTime,         max,        0, "00000100"
HKR, NDI\Params\SendIntModTime,         step,       0, "1"
HKR, NDI\Params\SendIntModTime,         Base,       0, "10"
HKR, NDI\Params\SendIntModTime,         type,       0, "int" 
HKR, "", SendIntModTime,  0, "0"

HKR, NDI\Params\RecvIntModCount,         ParamDesc,  0, "%RecvIntModCount%"
HKR, NDI\Params\RecvIntModCount,         default,    0, "5"
HKR, NDI\Params\RecvIntModCount,         min,        0, "0"
HKR, NDI\Params\RecvIntModCount,         max,        0, "00000200"
HKR, NDI\Params\RecvIntModCount,         step,       0, "1"
HKR, NDI\Params\RecvIntModCount,         Base,       0, "10"
HKR, NDI\Params\RecvIntModCount,         type,       0, "int"
HKR, "", RecvIntModCount,  0, "5"

HKR, NDI\Params\RecvIntModTime,         ParamDesc,  0, "%RecvIntModTime%"
HKR, NDI\Params\RecvIntModTime,         default,    0, "10"
HKR, NDI\Params\RecvIntModTime,         min,        0, "0"
HKR, NDI\Params\RecvIntModTime,         max,        0, "00000200"
HKR, NDI\Params\RecvIntModTime,         step,       0, "1"
HKR, NDI\Params\RecvIntModTime,         Base,       0, "10"
HKR, NDI\Params\RecvIntModTime,         type,       0, "int"
HKR, "", RecvIntModTime,  0, "10"

HKR, NDI\Params\SendPollingModCount,         ParamDesc,  0, "%SendPollingModCount%"
HKR, NDI\Params\SendPollingModCount,         Default,    0, "1"
HKR, NDI\Params\SendPollingModCount,         min,        0, "1"
HKR, NDI\Params\SendPollingModCount,         max,        0, "100"
HKR, NDI\Params\SendPollingModCount,         step,       0, "1"
HKR, NDI\Params\SendPollingModCount,         Base,       0, "10"
HKR, NDI\Params\SendPollingModCount,         type,       0, "int" 
HKR, "", SendPollingModCount,  0, "1"

HKR, NDI\Params\SendPollingModTime,         ParamDesc,  0, "%SendPollingModTime%"
HKR, NDI\Params\SendPollingModTime,         Default,    0, "20"
HKR, NDI\Params\SendPollingModTime,         min,        0, "10"
HKR, NDI\Params\SendPollingModTime,         max,        0, "100"
HKR, NDI\Params\SendPollingModTime,         step,       0, "10"
HKR, NDI\Params\SendPollingModTime,         Base,       0, "10"
HKR, NDI\Params\SendPollingModTime,         type,       0, "int" 
HKR, "", SendPollingModTime,  0, "20"

HKR, NDI\Params\ThreadPoll,         ParamDesc,  0, "%ThreadPoll%"
HKR, NDI\Params\ThreadPoll,         Default,    0, "10000"
HKR, NDI\Params\ThreadPoll,         min,        0, "1"
HKR, NDI\Params\ThreadPoll,         max,        0, "20000"
HKR, NDI\Params\ThreadPoll,         step,       0, "1"
HKR, NDI\Params\ThreadPoll,         Base,       0, "10"
HKR, NDI\Params\ThreadPoll,         type,       0, "int" 
HKR, "", ThreadPoll,  0, "10000"

HKR, NDI\Params\RxIntModeration,  ParamDesc, 0, "%RxIntModeration%"
HKR, NDI\Params\RxIntModeration,  Type,		0, "enum" 
HKR, NDI\Params\RxIntModeration,  Default,	0, "2"
HKR, NDI\Params\RxIntModeration,  Optional,	0, "0"
HKR, NDI\Params\RxIntModeration\enum, "1",	0, "%Static%"
HKR, NDI\Params\RxIntModeration\enum, "2",	0, "%Adaptive%"
HKR, "", RxIntModeration,0, "2"

HKR, NDI\Params\*FlowControl,  ParamDesc, 0, "%FlowControl%"
HKR, NDI\Params\*FlowControl,  Type,      0, "enum" 
HKR, NDI\Params\*FlowControl,  Default,   0, "3"
HKR, NDI\Params\*FlowControl,  Optional,  0, "0"
HKR, NDI\Params\*FlowControl\enum,  "0",  0, "%Disabled%"
HKR, NDI\Params\*FlowControl\enum,  "1",  0, "%TxEnabled%"
HKR, NDI\Params\*FlowControl\enum,  "2",  0, "%RxEnabled%"
HKR, NDI\Params\*FlowControl\enum,  "3",  0, "%TxRxEnabled%"
HKR, "", *FlowControl, 0, "3"

HKR, NDI\Params\*InterruptModeration,  ParamDesc, 0, "%InterruptModeration%"
HKR, NDI\Params\*InterruptModeration,  Type,      0, "enum" 
HKR, NDI\Params\*InterruptModeration,  Default,   0, "1"
HKR, NDI\Params\*InterruptModeration,  Optional,  0, "0"
HKR, NDI\Params\*InterruptModeration\enum,  "0",  0, "%Disabled%"
HKR, NDI\Params\*InterruptModeration\enum,  "1",  0, "%Enabled%"
HKR, "", *InterruptModeration, 0, "1"

HKR, NDI\Params\*IPChecksumOffloadIPv4,  ParamDesc, 0, "%IPChecksumOffloadIPv4%"
HKR, NDI\Params\*IPChecksumOffloadIPv4,  Type,      0, "enum" 
HKR, NDI\Params\*IPChecksumOffloadIPv4,  Default,   0, "3"
HKR, NDI\Params\*IPChecksumOffloadIPv4,  Optional,  0, "0"
HKR, NDI\Params\*IPChecksumOffloadIPv4\enum,	"0",  0, "%Disabled%"
HKR, NDI\Params\*IPChecksumOffloadIPv4\enum,	"1",  0, "%TxEnabled%"
HKR, NDI\Params\*IPChecksumOffloadIPv4\enum,	"2",  0, "%RxEnabled%"
HKR, NDI\Params\*IPChecksumOffloadIPv4\enum,	"3",  0, "%TxRxEnabled%"
HKR, "", *IPChecksumOffloadIPv4, 0, "3"

HKR, NDI\Params\*TCPUDPChecksumOffloadIPv4,  ParamDesc, 0, "%TCPUDPChecksumOffloadIPv4%"
HKR, NDI\Params\*TCPUDPChecksumOffloadIPv4,  Type,      0, "enum" 
HKR, NDI\Params\*TCPUDPChecksumOffloadIPv4,  Default,   0, "3"
HKR, NDI\Params\*TCPUDPChecksumOffloadIPv4,  Optional,  0, "0"
HKR, NDI\Params\*TCPUDPChecksumOffloadIPv4\enum,	"0",  0, "%Disabled%"
HKR, NDI\Params\*TCPUDPChecksumOffloadIPv4\enum,	"1",  0, "%TxEnabled%"
HKR, NDI\Params\*TCPUDPChecksumOffloadIPv4\enum,	"2",  0, "%RxEnabled%"
HKR, NDI\Params\*TCPUDPChecksumOffloadIPv4\enum,	"3",  0, "%TxRxEnabled%"
HKR, "", *TCPUDPChecksumOffloadIPv4, 0, "3"

HKR, NDI\Params\*TCPUDPChecksumOffloadIPv6,  ParamDesc, 0, "%TCPUDPChecksumOffloadIPv6%"
HKR, NDI\Params\*TCPUDPChecksumOffloadIPv6,  Type,      0, "enum" 
HKR, NDI\Params\*TCPUDPChecksumOffloadIPv6,  Default,   0, "3"
HKR, NDI\Params\*TCPUDPChecksumOffloadIPv6,  Optional,  0, "0"
HKR, NDI\Params\*TCPUDPChecksumOffloadIPv6\enum,	"0",  0, "%Disabled%"
HKR, NDI\Params\*TCPUDPChecksumOffloadIPv6\enum,	"1",  0, "%TxEnabled%"
HKR, NDI\Params\*TCPUDPChecksumOffloadIPv6\enum,	"2",  0, "%RxEnabled%"
HKR, NDI\Params\*TCPUDPChecksumOffloadIPv6\enum,	"3",  0, "%TxRxEnabled%"
HKR, "", *TCPUDPChecksumOffloadIPv6, 0, "3"

HKR, NDI\Params\*PriorityVLANTag,  ParamDesc, 0, "%PriorityVLANTag%"
HKR, NDI\Params\*PriorityVLANTag,  Type,      0, "enum" 
HKR, NDI\Params\*PriorityVLANTag,  Default,   0, "3"
HKR, NDI\Params\*PriorityVLANTag\enum,        "0",  0, "%PriorityVlanDisabled%"
HKR, NDI\Params\*PriorityVLANTag\enum,        "1",  0, "%PriorityEnabled%"
HKR, NDI\Params\*PriorityVLANTag\enum,        "2",  0, "%VlanEnabled%"
HKR, NDI\Params\*PriorityVLANTag\enum,        "3",  0, "%PriorityVlanEnabled%"
HKR, "", *PriorityVLANTag, 0, "3"

HKR, NDI\Params\RoceMaxFrameSize ,         ParamDesc,  0, "%RoceMaxFrameSize%"
HKR, NDI\Params\RoceMaxFrameSize ,		   type,	   0, "enum" 
HKR, NDI\Params\RoceMaxFrameSize ,         default,    0, "0"
HKR, NDI\Params\RoceMaxFrameSize\enum,		  "0",		0, "%MaxSizeWithinMaxFramSize%"
HKR, NDI\Params\RoceMaxFrameSize\enum,		  "256",	0, "256"
HKR, NDI\Params\RoceMaxFrameSize\enum,		  "512",	0, "512"
HKR, NDI\Params\RoceMaxFrameSize\enum,		  "1024",	0, "1024"
HKR, NDI\Params\RoceMaxFrameSize\enum,		  "2048",	0, "2048"
HKR, "", RoceMaxFrameSize ,  0, "0"    

HKR, NDI\Params\TxRingNum,         	ParamDesc,  0, "%TxRingNum%"
HKR, NDI\Params\TxRingNum ,		type,	   0, "enum" 
HKR, NDI\Params\TxRingNum ,         	default,    0, "4"
HKR, NDI\Params\TxRingNum\enum,		"1",	0, "1"
HKR, NDI\Params\TxRingNum\enum,		"2",	0, "2"
HKR, NDI\Params\TxRingNum\enum,		"4",	0, "4"
HKR, NDI\Params\TxRingNum\enum,		"8",	0, "8"
HKR, "", TxRingNum ,  0, "4"    

 
;-----------------------------------------------------------------------------
; mlx4eth NT specific
;

[mlx4eth61.reg]
; use ndis5 as the upper bound because NT supports it
HKR, Ndi,                       Service,    0, "mlx4eth61"
HKR, Ndi\Interfaces,            UpperRange, 0, "ndis5"
HKR, Ndi\Interfaces,            LowerRange, 0, "ethernet"
HKR,"","AverageFactor"                      ,,"16"
HKR,"","AveragePollThreshold"               ,,"10"
HKR,"","ThisPollThreshold"                  ,,100
HKR,"","MaxNumberOfPacketsToIndicateThread" ,,"128"
HKR,"","InterupptToThreadThreshold"         ,,200

HKR,"","rx_usecs_low"                       ,,0
HKR,"","rx_usecs_high"                      ,,20
HKR,"","pkt_rate_low"                       ,,150000
HKR,"","pkt_rate_high"                      ,,170000
HKR,"","LSOSize"                            ,,64000
HKR,"","BlueFlame"                          ,,1
HKR,"","SingleStream"                       ,,0
HKR,"","RxSmallPacketBypass"                ,,0
HKR,"","TxHashDisrtibution" 				,,3
HKR,"","*PriorityVLANTag"					,,3

HKR,"","TxForwardingProcessor"	,,-1
HKR,"","DefaultRecvRingProcessor"	,,-1
HKR,"","TxInterruptProcessor"	        ,,-1

HKR,"","VlanId"					,,0
HKR,"","MaxNumOfMCList"		,,128

;Maximum number of RSS Processors, need it for WHQL RSS test
HKR,"","*MaxRssProcessors"    ,,4
HKR,"","*RssBaseProcNumber"	  ,,0


[WinCtxTune_reg]
HKR,,icon,,"-5"
HKR,,EnumPropPages32,,"winctxtune.dll,WinCtxTunePropPageProvider"

[mlx4eth61.Service]
DisplayName     = %mlx4eth61.Service.DispName%
ServiceType     = 1 ;%SERVICE_KERNEL_DRIVER%
StartType       = 0 ;%SERVICE_BOOT_START%
ErrorControl    = 1 ;%SERVICE_ERROR_NORMAL%
ServiceBinary   = %12%\mlx4eth61.sys
LoadOrderGroup  = NDIS
AddReg          = Ibbus.ParamsReg

[Ibbus.ParamsReg]
HKR,"Parameters","NdkDebugLevel",%REG_DWORD_NO_CLOBBER%,0x00000002
HKR,"Parameters","NdkDebugFlags",%REG_DWORD_NO_CLOBBER%,0x00000fff


[common.EventLog]
AddReg = common.AddEventLog.reg

[common.AddEventLog.reg]
HKR, , EventMessageFile, 0x00020000, "%%SystemRoot%%\System32\drivers\mlx4eth61.sys;%%SystemRoot%%\System32\netevent.dll"
HKR, , TypesSupported,   0x00010001, 7

;-----------------------------------------------------------------------------
; DestinationDirs
;

[DestinationDirs]
mlx4eth61.CopyFiles    = 12     ;DIRID_DRIVERS 
Wctxtune.CopyFiles     = 11     ;DIRID_SYSTEM

[mlx4eth61.CopyFiles]
mlx4eth61.sys,,,2

[Wctxtune.CopyFiles]
winctxtune.dll,,,2




[SourceDisksNames]
;
; diskid = description[, [tagfile] [, <unused>, subdir]]
;
1 = %DiskDescription%,mlx4eth61.sys,,

;
; filename_on_source = diskID[, [subdir][, size]]
;
[SourceDisksFiles.x86]
mlx4eth61.sys  = 1,, ; on distribution disk 1
winctxtune.dll = 1,,
mlx4u.dll      = 1,,
complib.dll    = 1,,
ibal.dll       = 1,,
ibndprov.dll   = 1,,
wvndprov.dll   = 1,,

[SourceDisksFiles.amd64]
mlx4eth61.sys  = 1,, ; on distribution disk 1
winctxtune.dll = 1,,


[SourceDisksFiles.ia64]
mlx4eth61.sys  = 1,, ; on distribution disk 1
winctxtune.dll = 1,,


[Strings]
Mellanox                 = "Mellanox Technologies Ltd."

ReceiveFrameDescriptors  = "Receive Frame Descriptors"
TransmitControlBlocks    = "Transmit Control Blocks"
Disabled                 = "Disabled"
Enabled                  = "Enabled"
LargeSendOffload         = "Large Send Offload (LSO)"
MaxFrameSize			 = "Jumbo Packet"
SendIntModCount 		 = "Interrupt Moderation TX Packet Count"
ThreadPoll				 = "Number of Polls on Receive" 
SendPollingModCount 	 = "Polling Moderation TX Packet Count"
SendIntModtime			 = "Interrupt Moderation TX Packet Time"
RecvIntModCount 		 = "Interrupt Moderation RX Packet Count"
RecvIntModtime			 = "Interrupt Moderation RX Packet Time"
SendPollingModTime		 = "Polling Moderation TX Packet Time"
UseDma                   = "Bus-master DMA Operations"


HeaderDataSplit          = "Header Data Split"
SendCompletionMethod     = "Send Completion Method"
RecvCompletionMethod	 = "Receive Completion Method"
RecvRingSize			 = "Receive Buffers"
SendRingSize			 = "Send Buffers"
Polling                  = "Polling"
Interrupts               = "Interrupts"
Adaptive                 = "Adaptive"
No_rebalnce              = "Disabled"
NDIS_RSS                 = "Enabled"
RssMode                  = "Receive Side Scaling"
FailOver                 = "Fail Over"
RxIntModeration		 	 = "Rx Interrupt Moderation Type"
Static                   = "Static"
FlowControl              = "Flow Control"
InterruptModeration      = "Interrupt Moderation"
TxEnabled				 = "Tx Enabled"
RxEnabled				 = "Rx Enabled"
TxRxEnabled				 = "Rx & Tx Enabled"
IPChecksumOffloadIPv4    = "IPV4 Checksum Offload"
TCPUDPChecksumOffloadIPv4= "TCP/UDP Checksum Offload (IPv4)"
TCPUDPChecksumOffloadIPv6= "TCP/UDP Checksum Offload (IPv6)"
LsoV1IPv4				 = "Large Send Offload V1 (IPv4)"
LsoV2IPv4				 = "Large Send Offload V2 (IPv4)"
LsoV2IPv6				 = "Large Send Offload V2 (IPv6)"
TxRingNum				 = "Tx Ring Number"

PriorityVLANTag          = "Priority & Vlan Tag"
PriorityVlanDisabled     = "Priority & VLAN Disabled"
PriorityEnabled          = "Priority Enabled"
VlanEnabled              = "VLAN Enabled"
PriorityVlanEnabled      = "Priority & VLAN Enabled"

RoceMaxFrameSize         = "R/RoCE Max Frame Size"  
MaxSizeWithinMaxFramSize = "Auto"

mlx4eth61_CX2.3349.DeviceDesc  = "HP NC543i 2-port 4x QDR IB/10Gb Adapter"
mlx4eth61_CX2.1781.DeviceDesc  = "HP NC543i 1-port 4x QDR IB/Flex-10 10Gb Adapter"
mlx4eth61_CX2.3313.DeviceDesc  = "HP NC542m Dual Port Flex-10 10GbE BL-c Adapter"
mlx4eth61_CX.DeviceDesc	       = "Mellanox ConnectX Ethernet Adapter"
mlx4eth61_CX2.DeviceDesc       = "Mellanox ConnectX-2 Ethernet Adapter"
mlx4eth61_CX3.DeviceDesc       = "Mellanox ConnectX-3 Ethernet Adapter"


mlx4eth61.Service.DispName = "Mellanox ConnectX based Ethernet Adapter (NDIS 6.1) Driver"
DiskDescription 	  = "Mellanox Driver Disk 1"
REG_DWORD                 = 0x00010001
REG_DWORD_NO_CLOBBER = 0x00010003

