; /****************************************************************************
; ** 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=06/13/2013,4.40.14223
CatalogFile=mlx4eth62.cat

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

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

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

; Mellanox CX Based PCI VPI Adapter 

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


;-----------------------------------------------------------------------------
; ConnectX-2 and ConnectX
;
; Windows NT specific entry
[mlx4eth62_CX2.ndi.ntx86]
Characteristics = 0x81
AddReg          = cx.reg, mlx4eth62.reg, WinCtxTune_reg, cx2.reg
DelReg          = cx_del.reg
CopyFiles       = mlx4eth62.CopyFiles, Wctxtune.CopyFiles
*IfType         = 6		; IF_TYPE_ETHERNET_CSMACD 
*MediaType      = 0		; NdisMedium802_3
*PhysicalMediaType = 14		; NdisPhysicalMedium802_3

[mlx4eth62_CX2.ndi.ntamd64]
Characteristics = 0x81
AddReg          = cx.reg, mlx4eth62.reg, WinCtxTune_reg, cx2.reg
DelReg          = cx_del.reg
CopyFiles       = mlx4eth62.CopyFiles, Wctxtune.CopyFiles
*IfType         = 6		; IF_TYPE_ETHERNET_CSMACD 
*MediaType      = 0		; NdisMedium802_3
*PhysicalMediaType = 14		; NdisPhysicalMedium802_3

[mlx4eth62_CX2.ndi.ntia64]
Characteristics = 0x81
AddReg          = cx.reg, mlx4eth62.reg, WinCtxTune_reg, cx2.reg
DelReg          = cx_del.reg
CopyFiles       = mlx4eth62.CopyFiles, Wctxtune.CopyFiles
*IfType         = 6		; IF_TYPE_ETHERNET_CSMACD 
*MediaType      = 0		; NdisMedium802_3
*PhysicalMediaType = 14		; NdisPhysicalMedium802_3

[mlx4eth62_CX2.ndi.ntx86.Services]
AddService = mlx4eth62, 2, mlx4eth62.Service, common.EventLog

[mlx4eth62_CX2.ndi.ntamd64.Services]
AddService = mlx4eth62, 2, mlx4eth62.Service, common.EventLog

[mlx4eth62_CX2.ndi.ntia64.Services]
AddService = mlx4eth62, 2, mlx4eth62.Service, common.EventLog

;-----------------------------------------------------------------------------
; ConnectX-3
;
; Windows NT specific entry
[mlx4eth62_CX3.ndi.ntx86]
Characteristics = 0x81
AddReg          = cx.reg, mlx4eth62.reg, WinCtxTune_reg
DelReg          = cx_del.reg
CopyFiles       = mlx4eth62.CopyFiles, Wctxtune.CopyFiles
*IfType         = 6		; IF_TYPE_ETHERNET_CSMACD 
*MediaType      = 0		; NdisMedium802_3
*PhysicalMediaType = 14		; NdisPhysicalMedium802_3

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

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

[mlx4eth62_CX3.ndi.ntx86.Services]
AddService = mlx4eth62, 2, mlx4eth62.Service, common.EventLog

[mlx4eth62_CX3.ndi.ntamd64.Services]
AddService = mlx4eth62, 2, mlx4eth62.Service, common.EventLog

[mlx4eth62_CX3.ndi.ntia64.Services]
AddService = mlx4eth62, 2, mlx4eth62.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,     %FLG_ADDREG_NOCLOBBER%, "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, %FLG_ADDREG_NOCLOBBER%, "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, %FLG_ADDREG_NOCLOBBER%, "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, %FLG_ADDREG_NOCLOBBER%, "1"


HKR, NDI\Params\SendCompletionMethod,  ParamDesc, 0, "%SendCompletionMethod%" 
HKR, NDI\Params\SendCompletionMethod,  Type,      0, "enum"
HKR, NDI\Params\SendCompletionMethod,  Default,   0, "1"
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, "1"

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, "1514"
HKR, NDI\Params\*JumboPacket ,         min,        0, "614"
HKR, NDI\Params\*JumboPacket ,         max,        0, "00009614"
HKR, NDI\Params\*JumboPacket ,         step,       0, "1"
HKR, NDI\Params\*JumboPacket ,         Base,       0, "10"
HKR, NDI\Params\*JumboPacket ,         type,       0, "int"
HKR, "", *JumboPacket ,  %FLG_ADDREG_NOCLOBBER%, "1514"    

HKR, NDI\Params\*ReceiveBuffers,  ParamDesc, 0, "%RecvRingSize%"
HKR, NDI\Params\*ReceiveBuffers,  default,    0, "512"
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,  %FLG_ADDREG_NOCLOBBER%, "512"	  
	
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,  %FLG_ADDREG_NOCLOBBER%, "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, %FLG_ADDREG_NOCLOBBER%, "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, %FLG_ADDREG_NOCLOBBER%, "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\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,  %FLG_ADDREG_NOCLOBBER%, "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,  %FLG_ADDREG_NOCLOBBER%, "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,  %FLG_ADDREG_NOCLOBBER%, "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,%FLG_ADDREG_NOCLOBBER%, "2"

HKR, NDI\Params\RxIntModerationProfile,  ParamDesc, 0, "%RxIntModerationProfile%"
HKR, NDI\Params\RxIntModerationProfile,  Type,      0, "enum"
HKR, NDI\Params\RxIntModerationProfile,  Default,   0, "2"
HKR, NDI\Params\RxIntModerationProfile,  Optional,  0, "0"
HKR, NDI\Params\RxIntModerationProfile\enum,  "1",  0, "%LowLatency%"
HKR, NDI\Params\RxIntModerationProfile\enum,  "2",  0, "%Moderate%"
HKR, NDI\Params\RxIntModerationProfile\enum,  "3",  0, "%Aggressive%"
HKR, "", RxIntModerationProfile,%FLG_ADDREG_NOCLOBBER%, "2"

HKR, NDI\Params\TxIntModerationProfile,  ParamDesc, 0, "%TxIntModerationProfile%"
HKR, NDI\Params\TxIntModerationProfile,  Type,      0, "enum"
HKR, NDI\Params\TxIntModerationProfile,  Default,   0, "2"
HKR, NDI\Params\TxIntModerationProfile,  Optional,  0, "0"
HKR, NDI\Params\TxIntModerationProfile\enum,  "1",  0, "%LowLatency%"
HKR, NDI\Params\TxIntModerationProfile\enum,  "2",  0, "%Moderate%"
HKR, NDI\Params\TxIntModerationProfile\enum,  "3",  0, "%Aggressive%"
HKR, "", TxIntModerationProfile,%FLG_ADDREG_NOCLOBBER%, "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, %FLG_ADDREG_NOCLOBBER%, "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, %FLG_ADDREG_NOCLOBBER%, "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, %FLG_ADDREG_NOCLOBBER%, "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, %FLG_ADDREG_NOCLOBBER%, "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, %FLG_ADDREG_NOCLOBBER%, "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, %FLG_ADDREG_NOCLOBBER%, "3"

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

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

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 ,  %FLG_ADDREG_NOCLOBBER%, "0"     

HKR, NDI\Params\NumRSSQueues,  ParamDesc, 0, "%NumRSSQueues%"
HKR, NDI\Params\NumRSSQueues,  Type,      0, "int"
HKR, NDI\Params\NumRSSQueues,  Default,   0, "4"
HKR, NDI\Params\NumRSSQueues,  min,       0, "1"
HKR, NDI\Params\NumRSSQueues,  max,       0, "512"
HKR, NDI\Params\NumRSSQueues,  step,      0, "1"
HKR, NDI\Params\NumRSSQueues,  Base,      0, "10"
HKR, "", NumRSSQueues, 0, "8"

; *MaxRssProcessors
HKR, Ndi\Params\*MaxRssProcessors,	ParamDesc, 0, %MaxRssProcessors%
HKR, Ndi\Params\*MaxRssProcessors,  default, 0, "8"
HKR, Ndi\Params\*MaxRssProcessors,  type,    0, "int"
HKR, NDI\Params\*MaxRssProcessors,  min,     0, "1"
HKR, NDI\Params\*MaxRssProcessors,  max,     0, "64"
HKR, NDI\Params\*MaxRssProcessors,  step,        0, "1"
HKR, NDI\Params\*MaxRssProcessors,  Base,        0, "10"
HKR, "", *MaxRssProcessors,  0, "8"   

;-----------------------------------------------------------------------------
; ConnectX-2 specefic registry keys
;

; There is no FW support for CQ2EQ feature in ConnectX-2  
; Maximum number of RSS Processors, need it for WHQL RSS test
[cx2.reg]
HKR,"","*RssBaseProcNumber"	  ,0,0


;-----------------------------------------------------------------------------
; delete unused keys
;

[cx_del.reg]
HKR, Ndi\Params\TxRingNum
HKR, "", TxRingNum 
 
HKR, NDI\Params\SendIntModCount
HKR, "", SendIntModCount

HKR, NDI\Params\SendIntModTime
HKR, "", SendIntModTime

HKR, NDI\Params\RecvIntModCount
HKR, "", RecvIntModCount

HKR, NDI\Params\RecvIntModTime
HKR, "", RecvIntModTime

HKR, "", MaxNumberOfPacketsToIndicateThread
HKR, "", MaxNumberOfPacketsToIndicateDPC
HKR, "", InterupptToThreadThreshold
HKR, "", rx_usecs_low
HKR, "", rx_usecs_high


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

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

HKR,"","pkt_rate_low"                       ,%FLG_ADDREG_NOCLOBBER%,150000
HKR,"","pkt_rate_high"                      ,%FLG_ADDREG_NOCLOBBER%,170000
HKR,"","LSOSize"                            ,%FLG_ADDREG_NOCLOBBER%,64000
HKR,"","BlueFlame"                          ,%FLG_ADDREG_NOCLOBBER%,1
HKR,"","SingleStream"                       ,%FLG_ADDREG_NOCLOBBER%,0
HKR,"","RxSmallPacketBypass"                ,%FLG_ADDREG_NOCLOBBER%,0
HKR,"","TxHashDisrtibution" 				,%FLG_ADDREG_NOCLOBBER%,3
HKR,"","*PriorityVLANTag"					,%FLG_ADDREG_NOCLOBBER%,3

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

HKR,"","VlanId"					,%FLG_ADDREG_NOCLOBBER%,0
HKR,"","MaxNumOfMCList"		,%FLG_ADDREG_NOCLOBBER%,128


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

[mlx4eth62.Service]
DisplayName     = %mlx4eth62.Service.DispName%
ServiceType     = 1 ;%SERVICE_KERNEL_DRIVER%
StartType       = 0 ;%SERVICE_BOOT_START%
ErrorControl    = 1 ;%SERVICE_ERROR_NORMAL%
ServiceBinary   = %12%\mlx4eth62.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\mlx4eth62.sys;%%SystemRoot%%\System32\netevent.dll"
HKR, , TypesSupported,   0x00010001, 7

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

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


[mlx4eth62.CopyFiles]
mlx4eth62.sys,,,2

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

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

;
; filename_on_source = diskID[, [subdir][, size]]
;
[SourceDisksFiles.x86]
mlx4eth62.sys  = 1,, ; on distribution disk 1
winctxtune.dll = 1,,


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


[SourceDisksFiles.ia64]
mlx4eth62.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"
ThreadPoll				 = "Number of Polls on Receive" 
SendPollingModCount 	 = "Polling Moderation TX Packet Count"
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"

VMQ 					 = "Virtual Machine Queues"
VMQLookaheadSplit		 = "VMQ Lookahead Split"
VMQVlanFiltering		 = "VMQ VLAN Filtering"
RoceMaxFrameSize         = "R/RoCE Max Frame Size"  
MaxSizeWithinMaxFramSize = "Auto"
NumRSSQueues			 = "Maximum Number of RSS Queues"
MaxRssProcessors         = "Maximum number of RSS Processors"


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

RxIntModerationProfile         = "Rx Interrupt Moderation Profile"
TxIntModerationProfile         = "Tx Interrupt Moderation Profile" 
LowLatency                = "Low Latency"
Moderate                  = "Moderate"
Aggressive                = "Aggressive"

mlx4eth62.Service.DispName = "Mellanox ConnectX based Ethernet Adapter (NDIS 6.2) Driver"
DiskDescription 	  = "Mellanox Driver Disk 1"
REG_DWORD                 = 0x00010001
REG_DWORD_NO_CLOBBER = 0x00010003
FLG_ADDREG_NOCLOBBER      = 0x00000002
FLG_ADDREG_DELVAL         = 0x00000004

