; /*****************************************************************************
; ** 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=mlx4eth63.cat

[Manufacturer]
%Mellanox%     = Mellanox,NTamd64.6.2

; Mellanox CX Based PCI VPI Adapter 

[Mellanox.NTamd64.6.2]
; DisplayName           Section       DeviceID
; -----------           -------       --------
%mlx4eth63_CX.DeviceDesc%   = mlx4eth63_CX2.ndi,   MLX4\ConnectX_Eth 	 ; Mellanox ConnectX Ethernet Adapter
%mlx4eth63_CX2.DeviceDesc%  = mlx4eth63_CX2.ndi,   MLX4\ConnectX-2_Eth   ; Mellanox ConnectX Ethernet Adapter
%mlx4eth63_CX3.DeviceDesc%  = mlx4eth63_CX3.ndi,   MLX4\ConnectX-3_Eth   ; Mellanox ConnectX-3 Ethernet Adapter


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

;-----------------------------------------------------------------------------
; ConnectX-3
;
[mlx4eth63_CX2.ndi.NT.Services]
AddService = mlx4eth63, 2, mlx4eth63.Service, common.EventLog

[mlx4eth63_CX3.ndi.NT]
Characteristics = 0x81
AddReg          = cx.reg, mlx4eth63.reg, WinCtxTune_reg, cx3.reg
DelReg          = cx_del.reg
CopyFiles       = mlx4eth63.CopyFiles, Wctxtune.CopyFiles
*IfType         = 6		; IF_TYPE_ETHERNET_CSMACD 
*MediaType      = 0		; NdisMedium802_3
*PhysicalMediaType = 14		; NdisPhysicalMedium802_3

[mlx4eth63_CX3.ndi.NT.Services]
AddService = mlx4eth63, 2, mlx4eth63.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\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\*NetworkDirect,            ParamDesc,  0, %ND_STR%
HKR, NDI\Params\*NetworkDirect,            Type,       0, "enum"
HKR, NDI\Params\*NetworkDirect,            Default,   0, "1"
HKR, NDI\Params\*NetworkDirect\enum,       "0",        0, "%Disabled%"
HKR, NDI\Params\*NetworkDirect\enum,       "1",        0, "%Enabled%"
HKR, "", *NetworkDirect, %FLG_ADDREG_NOCLOBBER%, "1"

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"

;*RSS
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"   

; *NumaNodeId
HKR, Ndi\params\*NumaNodeId, ParamDesc, 0, %NumaNodeId%
HKR, Ndi\params\*NumaNodeId, default, 0, "65535"
HKR, Ndi\params\*NumaNodeId, type, 0, "enum"
HKR, Ndi\params\*NumaNodeId\Enum, "65535", 0, %NumaNodeId_default%
HKR, Ndi\params\*NumaNodeId\Enum, "0", 0, %node0%
HKR, Ndi\params\*NumaNodeId\Enum, "1", 0, %node1%
HKR, Ndi\params\*NumaNodeId\Enum, "2", 0, %node2%
HKR, Ndi\params\*NumaNodeId\Enum, "3", 0, %node3%
HKR, Ndi\params\*NumaNodeId\Enum, "4", 0, %node4%
HKR, Ndi\params\*NumaNodeId\Enum, "5", 0, %node5%
HKR, Ndi\params\*NumaNodeId\Enum, "6", 0, %node6%
HKR, Ndi\params\*NumaNodeId\Enum, "7", 0, %node7%
HKR, "", *NumaNodeId,  0, "65535"

; *RssBaseProcNumber
HKR, Ndi\params\*RssBaseProcNumber, ParamDesc, 0, %RssBaseProcNumber%
HKR, Ndi\params\*RssBaseProcNumber, default, 0, "0"
HKR, Ndi\params\*RssBaseProcNumber, min, 0, "0"
HKR, Ndi\params\*RssBaseProcNumber, max, 0, "63"
HKR, Ndi\params\*RssBaseProcNumber, step, 0, "1"
HKR, Ndi\params\*RssBaseProcNumber, Optional, 0, "0"
HKR, Ndi\params\*RssBaseProcNumber, type, 0, "int"
HKR, "", *RssBaseProcNumber,  0, "0"

; *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"   

; *RssMaxProcNumber
HKR, Ndi\params\*RssMaxProcNumber, ParamDesc, 0, %RssMaxProcNumber%
HKR, Ndi\params\*RssMaxProcNumber, default, 0, "63"
HKR, Ndi\params\*RssMaxProcNumber, min, 0, "0"
HKR, Ndi\params\*RssMaxProcNumber, max, 0, "63"
HKR, Ndi\params\*RssMaxProcNumber, step, 0, "1"
HKR, Ndi\params\*RssMaxProcNumber, Optional, 0, "0"
HKR, Ndi\params\*RssMaxProcNumber, type, 0, "int"
HKR, "", *RssMaxProcNumber,  0, "63" 

;*NumRSSQueues
HKR, NDI\Params\*NumRSSQueues,  ParamDesc, 0, "%NumRSSQueues%"
HKR, NDI\Params\*NumRSSQueues,  Type,      0, "int"
HKR, NDI\Params\*NumRSSQueues,  Default,   0, "8"
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"

; *RSSProfile
HKR, NDI\Params\*RSSProfile,  ParamDesc, 0, "%RssProfile%"
HKR, NDI\Params\*RSSProfile,  Type,  0, "enum"
HKR, NDI\Params\*RSSProfile,  Default, 0, "1"
HKR, NDI\Params\*RSSProfile\enum,  "1", 0, "%Closest_Processor%"
HKR, NDI\Params\*RSSProfile\enum,  "2", 0, "%Closest_Processor_Static%"
HKR, NDI\Params\*RSSProfile\enum,  "3", 0, "%Numa_Scaling%"
HKR, NDI\Params\*RSSProfile\enum,  "4", 0, "%Numa_Scaling_Static%"
HKR, NDI\Params\*RSSProfile\enum,  "5", 0, "%Conservative_Scaling%"
HKR, "", *RSSProfile,  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\*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\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\*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\*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,%FLG_ADDREG_NOCLOBBER%, "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\*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\*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\VlanID,  ParamDesc, 0, "%VlanID%"
HKR, NDI\Params\VlanID,  default,	  0, "0"
HKR, NDI\Params\VlanID,  min,	   0, "0"
HKR, NDI\Params\VlanID,  max,	   0, "4095"
HKR, NDI\Params\VlanID,  step,    0, "1"
HKR, NDI\Params\VlanID,  Base,    0, "10"
HKR, NDI\Params\VlanID,  type,    0, "int"
HKR, "", VlanID,  %FLG_ADDREG_NOCLOBBER%, "0"	  

;-----------------------------------------------------------------------------
; ConnectX-3 specefic registry keys
;
[cx3.reg]
HKR, NDI\Params\*QOS,  ParamDesc, 0, "%QOS%"
HKR, NDI\Params\*QOS,  Type,      0, "enum"
HKR, NDI\Params\*QOS,  Default,   0, "1"
HKR, NDI\Params\*QOS,  Optional,  0, "0"
HKR, NDI\Params\*QOS\enum,  "0",  0, "%Disabled%"
HKR, NDI\Params\*QOS\enum,  "1",  0, "%Enabled%"
HKR, "", *QOS, %FLG_ADDREG_NOCLOBBER%, "1"


;-----------------------------------------------------------------------------
; 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
;

[mlx4eth63.reg]
; use ndis5 as the upper bound because NT supports it
HKR, Ndi,                       Service,    0, "mlx4eth63"
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,"","TxForwardingProcessor"	,%FLG_ADDREG_NOCLOBBER%,-1
HKR,"","DefaultRecvRingProcessor"	,%FLG_ADDREG_NOCLOBBER%,-1
HKR,"","TxInterruptProcessor"	        ,%FLG_ADDREG_NOCLOBBER%,-1


HKR,"","MaxNumOfMCList"   ,%FLG_ADDREG_NOCLOBBER%,128

;*NetworkDirect shadow value
HKR, "", NetworkDirectShadow,%FLG_ADDREG_NOCLOBBER%, "1"

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

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

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


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

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

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

[DestinationDirs]
mlx4eth63.CopyFiles    = 12
Wctxtune.CopyFiles     = 11
[mlx4eth63.CopyFiles]
mlx4eth63.sys,,,2

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


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

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

[Strings]
Mellanox                 = "Mellanox Technologies Ltd."
MSFT                     = "Microsoft Corporation"
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"
ND_STR                   = "NetworkDirect Functionality"


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"
NumaNodeId               = "Preferred NUMA node"
NumaNodeId_default       = "Default Settings"
node0                    = "Node 0"
node1                    = "Node 1"
node2                    = "Node 2"
node3                    = "Node 3"
node4                    = "Node 4"
node5                    = "Node 5"
node6                    = "Node 6"
node7                    = "Node 7"
RssBaseProcNumber        = "RSS Base Processor Number"
MaxRssProcessors         = "Maximum number of RSS Processors"
RssMaxProcNumber         = "RSS Maximum Processor Number"
NumRSSQueues             = "Maximum Number of RSS Queues"
RssProfile                = "RSS load balancing Profile"
Closest_Processor         = "ClosestProcessor"
Closest_Processor_Static  = "ClosestProcessorStatic"
Numa_Scaling              = "NumaScaling"
Numa_Scaling_Static       = "NumaScalingStatic"
Conservative_Scaling      = "ConservativeScaling"
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 Version 1 (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"
VlanID			 = "VLAN ID"

QOS                      = "Quality Of Service"
VMQ 					 = "Virtual Machine Queues"
VMQVlanFiltering		 = "VMQ VLAN Filtering"
RoceMaxFrameSize         = "R/RoCE Max Frame Size"  
MaxSizeWithinMaxFramSize = "Auto"

mlx4eth63_CX.DeviceDesc    = "Mellanox ConnectX Ethernet Adapter"
mlx4eth63_CX2.DeviceDesc   = "Mellanox ConnectX-2 Ethernet Adapter"
mlx4eth63_CX3.DeviceDesc   = "Mellanox ConnectX-3 Ethernet Adapter"

mlx4eth63.Service.DispName = "Mellanox ConnectX based Ethernet Adapter (NDIS 6.3) Driver"
DiskDescription 	  = "Mellanox Driver Disk 1"

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

REG_DWORD                 = 0x00010001
REG_DWORD_NO_CLOBBER	  = 0x00010003
FLG_ADDREG_NOCLOBBER      = 0x00000002
FLG_ADDREG_DELVAL         = 0x00000004
