Solarflare Server Adapter User Guide SF 103837 CD 20 S

User Manual: Pdf

Open the PDF directly: View PDF PDF.
Page Count: 400 [warning: Documents this large are best viewed by clicking the View PDF Link!]

Issue20 ©SolarflareCommunications2017 i
SolarflarServerAdapterUserGuide
Informationinthisdocumentissubjecttochangewithoutnotice.
Copyright©20082017SOLARFLARE®Communications,Inc.Allrightsreserved.
TrademarksusedinthistextareregisteredtrademarksofSolarflarCommunicationsInc;AdobeisatrademarkofAdobeSystems.
Microsoft®andWindows®areregisteredtrademarksofMicrosoftCorporation.
Linux®istheregisteredtrademarkofLinusTorval dsintheU.S.andothercountries.
Othertrademarksandtradenamesmaybeusedinthisdocumenttorefertoeithertheentitiesclaimingthemarksandnamesor
theirproducts.SolarflareCommunicationsInc.disclaimsanyproprietaryinterestintrademarksandtradenamesotherthanits
own.
Thesoftwareandhardwareasapplicable(the“Product”)describedinthisdocument,andthisdocument,areprotectedby
copyrightlaws,patentsandotherintellectualpropertylawsandinternationaltreaties.TheProductdescribedinthisdocumentis
providedpursuanttoalicenseagreement,evaluationagreementand/ornondisclosureagreement.TheProductmaybeusedonly
inaccordancewiththetermsofsuchagreement.Thesoftwareasapplicablemaybecopiedonlyinaccordancewiththetermsof
suchagreement.
Thefurnishingofthisdocumenttoyoudoesnotgiveyouanyrightsorlicenses,expressorimplied,byestoppelorotherwise,with
respecttoanysuchProduct,oranycopyrights,patentsorotherintellectualpropertyrightscoveringsuchProduct,andthis
documentdoesnotcontainorrepresentanycommitmentofanykindonthepartofSOLARFLARECommunications,Inc.orits
affiliates.
TheonlywarrantiesgrantedbySOLARFLARECommunications,Inc.oritsaffiliatesinconnectionwiththeProductdescribedinthis
documentarethoseexpresslysetforthinthelicenseagreement,evaluationagreementand/ornondisclosureagreement
pursuanttowhichtheProductisprovided.EXCEPTASEXPRESSLYSETFORTHINSUCHAGREEMENT,NEITHERSOLARFLARE
COMMUNICATIONS,INC.NORITSAFFILIATESMAKEANYREPRESENTATIONSORWARRANTIESOFANYKIND(EXPRESSORIMPLIED)
REGARDINGTHEPRODUCTORTHISDOCUMENTATIONANDHEREBYDISCLAIMALLIMPLIEDWARRANTIESOFMERCHANTABILITY,
FITNESSFORAPARTICULARPURPOSEANDNONINFRINGEMENT,ANDANYWARRANTIESTHATMAYARISEFROMCOURSEOF
DEALING,COURSEOFPERFORMANCEORUSAGEOFTRADE.Unlessotherwiseexpresslysetforthinsuchagreement,totheextent
allowedbyapplicablelaw(a)innoeventshallSOLARFLARECommunications,Inc.oritsaffiliateshaveanyliabilityunderanylegal
theoryforanylossofrevenuesorprofits,lossofuseordata,orbusinessinterruptions,orforanyindirect,special,incidentalor
consequentialdamages,evenifadvisedofthepossibilityofsuchdamages;and(b)thetotalliabilityofSOLARFLARE
Communications,Inc.oritsaffiliatesarisingfromorrelatingtosuchagreementortheuseofthisdocumentshallnotexceedthe
amountreceivedbySOLARFLARECommunications,Inc.oritsaffiliatesforthatcopyoftheProductorthisdocumentwhichisthe
subjectofsuchliability.
TheProductisnotintendedforuseinmedical,lifesaving,lifesustaining,criticalcontrolorsafetysystems,orinnuclearfacility
applications.
Alistofpatentsassociatedwiththisproductisathttp://www.solarflare.com/patent
SF103837CD
Lastrevised:September2017
Issue20
SolarflareServerAdapterUserGuide
Issue20 ©SolarflareCommunications2017 ii
Trademarks
OpenOnload®,EnterpriseOnload®,XtremeScale™andFlareon™areregisteredtrademarks
ofSolarflareCommunicationsIncintheUnitedStatesandothercountries.
SolarflareServerAdapterUserGuide
Issue20 ©SolarflareCommunications2017 iii
   TableofContents
1Introduction........................................................1
1.1VirtualNICInterface..........................................1
1.2ProductSpecifications.........................................4
1.3SoftwareDriverSupport ......................................17
1.4SolarflareAppFlex™TechnologyLicensing........................18
1.5OpenSourceLicenses........................................18
1.6SupportandDownload .......................................19
1.7RegulatoryInformation.......................................20
1.8RegulatoryApproval.........................................22
2Installation........................................................31
2.1SolarflareNetworkAdapterProducts...........................32
2.2FittingaFullHeightBracket(optional) ..........................34
2.3InsertingtheAdapterinaPCIExpress(PCIe)Slot .................34
2.4AttachingaCable(RJ45) .....................................35
2.5AttachingaCable(SFP+) ......................................36
2.6SupportedSFP+Cables.......................................38
2.7SupportedSFP+10GSROpticalTransceivers .....................40
2.8SupportedSFP+10GLROpticalTransceivers .....................41
2.9QSFP+TransceiversandCables ................................42
2.10SupportedSFP1000BASETTransceivers .......................45
2.11Supported1GOpticalTransceivers ............................46
2.12SupportedSpeedandMode..................................46
2.13LEDStates.................................................48
2.14ConfigureQSFP+Adapter ....................................49
2.15SingleOpticalFiber‐RXConfiguration.........................51
2.16SolarflareMezzanineAdapter:SFN8722OCP ....................51
2.17SolarflareMezzanineAdapter:SFN581xH.......................52
2.18SolarflareMezzanineAdapterSFN6832FC61 ...................54
2.19SolarflareMezzanineAdapterSFN6832FC62 ...................56
2.20SolarflarePrecisionTimeSynchronizationAdapters ..............57
2.21SolarflareApplicationOnload™Engine .........................57
SolarflareServerAdapterUserGuide
TableofContents
Issue20 ©SolarflareCommunications2017 iv
3SolarflareAdaptersonLinux .........................................58
3.1SystemRequirements........................................59
3.2LinuxPlatformFeatureSet....................................59
3.3SolarflareRPMs .............................................61
3.4InstallingSolarflareDriversandUtilitiesonLinux .................63
3.5RedHatEnterpriseLinuxDistributions..........................63
3.6SUSELinuxEnterpriseServerDistributions.......................64
3.7InstallingDKMSDriverandUtilitiesonUbuntu/DebianServers......65
3.8UnattendedInstallations......................................66
3.9UnattendedInstallation‐RedHatEnterpriseLinux................68
3.10UnattendedInstallation‐SUSELinuxEnterpriseServer ...........69
3.11ConfiguringtheSolarflareAdapter ............................70
3.12SettingUpVLANs...........................................73
3.13SettingUpTeams ...........................................73
3.14NICPartitioning ............................................74
3.15NICPartitioningwithSRIOV .................................78
3.16ReceiveSideScaling(RSS)....................................81
3.17ReceiveFlowSteering(RFS)..................................83
3.18SolarflareAcceleratedRFS(SARFS) ............................84
3.19TransmitPacketSteering(XPS)................................85
3.20LinuxUtilitiesRPM .........................................87
3.21ConfiguringtheBootManagerwithsfboot .....................88
3.22UpgradingAdapterFirmwarewithsfupdate.....................96
3.23LicenseInstallwithsfkey ...................................100
3.24PerformanceTuningonLinux................................103
3.25WebServer‐DriverOptimization ............................110
3.26InterruptAffinity..........................................113
3.27ModuleParameters........................................123
3.28LinuxethtoolStatistics .....................................125
3.29DriverLoggingLevels ......................................134
3.30RunningAdapterDiagnostics ................................135
3.31RunningCableDiagnostics..................................136
SolarflareServerAdapterUserGuide
TableofContents
Issue20 ©SolarflareCommunications2017 v
4SolarflareAdaptersonWindows .....................................137
4.1SystemRequirements.......................................137
4.2WindowsFeatureSet .......................................138
4.3InstallingtheSolarflareDriverPackageonWindows..............140
4.4AdapterDriversOnlyInstallation ..............................141
4.5FullSolarflarePackageInstallation ............................142
4.6InstallDriversandOptionsFromaWindowsCommandPrompt....146
4.7UnattendedInstallation .....................................150
4.8ManagingAdapterswithSAM................................154
4.9ManagingAdaptersRemotelywithSAM........................156
4.10UsingSAM ...............................................156
4.11UsingSAMtoConfigureAdapterFeatures .....................160
4.12SegmentationOffload......................................165
4.13UsingSAMtoConfigureTeamsandVLANs .....................168
4.14UsingSAMtoViewStatisticsandStateInformation .............176
4.15UsingSAMtoRunAdapterandCableDiagnostics ...............177
4.16UsingSAMforBootROMConfiguration.......................181
4.17ManagingFirmwarewithSAM...............................183
4.18ConfiguringNetworkAdapterPropertiesinWindows............184
4.19WindowsCommandLineTools ..............................189
4.20Sfboot:BootROMConfigurationTool .........................190
4.21Sfupdate:FirmwareUpdateTool .............................198
4.22Sfteam:AdapterTeamingandVLANTool ......................200
4.23Sfcable:CableDiagnosticsTool ..............................205
4.24Sfkey:LicenseManagementTool .............................208
4.25Sfnet ....................................................211
4.26Completioncodes(%errorlevel%)............................215
4.27TeamingandVLANs........................................216
4.28PerformanceTuningonWindows............................228
4.29WindowsEventLogErrorMessages .........................244
5SolarflareAdaptersonVMware......................................264
5.1SystemRequirements.......................................264
5.2VMwareFeatureSet........................................265
5.3InstallingSolarflareDriversandUtilitiesonVMware..............266
5.4ConfiguringTeams ..........................................267
5.5ConfiguringVLANs..........................................268
5.6RunningAdapterDiagnostics .................................269
5.7SolarflareUtilitiesPackage ...................................270
5.8ConfiguringtheBootROMwithSfboot.........................271
5.9UpgradingAdapterFirmwarewithsfupdate.....................279
5.10PerformanceTuningonVMware .............................281
SolarflareServerAdapterUserGuide
TableofContents
Issue20 ©SolarflareCommunications2017 vi
6SolarflareAdaptersonFreeBSD ......................................289
6.1SystemRequirements.......................................289
6.2FreeBSDPlatformFeatureSet ................................290
6.3InstallingSolarflareDrivers...................................290
6.4UnattendedInstallation .....................................292
6.5ConfiguringtheSolarflareAdapter ............................294
6.6SettingUpVLANs...........................................295
6.7FreeBSDUtilitiesPackage ....................................296
6.8ConfiguringtheBootROMwithsfboot .........................297
6.9UpgradingAdapterFirmwarewithsfupdate.....................303
6.10PerformanceTuningonFreeBSD.............................305
6.11ModuleParameters........................................315
6.12KernelandNetworkAdapterStatistics........................317
7SRIOVVirtualizationUsingKVM .....................................326
7.1Introduction ...............................................326
7.2SRIOV....................................................331
7.3KVMNetworkArchitectures..................................333
7.4PFIOV....................................................346
7.5GeneralConfiguration.......................................348
7.6FeatureSummary ..........................................349
7.7Limitations................................................350
8SRIOVVirtualizationUsingESXi .....................................351
8.1Introduction ...............................................351
8.2ConfigurationProcedure‐SRIOV.............................354
8.3ConfigurationProcedure‐DirectPathI/O .......................354
8.4InstallSolarflareDriversintheGuest ..........................354
8.5InstalltheSolarflareDriverontheESXihost.....................354
8.6InstallSolarflareUtilitiesontheESXihost.......................355
8.7ConfigureVFsontheHost/Adapter ............................357
8.8VirtualMachine ............................................358
8.9ListAdapters‐WebClient....................................359
8.10vSwitchandPortGroupConfiguration ........................360
8.11VFPassthrough ...........................................364
8.12DirectPathI/O............................................370
SolarflareServerAdapterUserGuide
TableofContents
Issue20 ©SolarflareCommunications2017 vii
9SolarflareBootManager ........................................... 374
9.1Introduction ...............................................374
9.2SolarflareBootManager.....................................375
9.3iPXESupport ..............................................376
9.4sfupdateOptionsforPXEupgrade/downgrade ..................376
9.5StartingPXEBoot...........................................378
9.6iPXEImageCreate..........................................382
9.7MultiplePF‐PXEBoot ......................................384
9.8DefaultAdapterSettings.....................................387
Index .............................................................390
SolarflareServerAdapterUserGuide
Issue20 ©SolarflareCommunications2017 1
1Introduction
ThisistheUserGuideforSolarflare®ServerAdapters.Thischaptercoversthe
followingtopics:
VirtualNICInterfaceonpage1
AdvancedFeaturesandBenefitsonpage2
ProductSpecificationsonpage4
SoftwareDriverSupportonpage17
SolarflareAppFlex™TechnologyLicensing.onpage18
OpenSourceLicensesonpage18
SupportandDownloadonpage19
RegulatoryInformationonpage20
RegulatoryApprovalonpage22
NOTE:ThroughoutthisguidethetermOnloadreferstobothOpenOnload®and
EnterpriseOnload®unlessotherwisestated.UsersofOnloadshouldrefertothe
OnloadUserGuide,SF104474CD,whichdescribesproceduresfordownloadand
installationoftheOnloaddistribution,acceleratingandtuningtheapplication
usingOnloadtoachieveminimumlatencyandmaximumthroughput.
1.1VirtualNICInterface
Solarflare’sVNICarchitectureprovidesthekeytoefficientserverI/Oandisflexible
enoughtobeappliedtomultipleserverdeploymentscenarios.Thesedeployment
scenariosinclude:
KernelDriverThisdeploymentusesaninstanceofaVNICperCPUcorefor
standardoperatingsystemdrivers.Thisallowsnetworkprocessingtocontinue
overmultipleCPUcoresinparallel.Thevirtualinterfaceprovidesa
performanceoptimizedpathforthekernelTCP/IPstackandcontentionfree
accessfromthedriver,resultinginextremelylowlatencyandreducedCPU
utilization.
AcceleratedVirtualI/OTheseconddeploymentscenariogreatlyimproves
I/Oforvirtualizedplatforms.TheVNICarchitecturecanprovideaVNICper
VirtualMachine,givingoverathousandprotectedinterfacestothehost
system,grantinganyvirtualized(guest)operatingsystemdirectaccesstothe
networkhardware.Solarflare'shybridSRIOVtechnology,uniquetoSolarflare
SolarflareServerAdapterUserGuide
Introduction
Issue20 ©SolarflareCommunications2017 2
Ethernetcontrollers,istheonlywaytoprovidebaremetalI/Operformanceto
virtualizedguestoperatingsystemswhilstretainingtheabilitytolivemigrate
virtualmachines.
OpenOnloadThethirddeploymentscenarioaimstoleveragethehost
CPU(s)tofullcapacity,minimizingsoftwareoverheadsbyusingaVNICper
applicationtoprovideakernelbypasssolution.Solarflarehascreatedbothan
opensourceandEnterpriseclasshighperformanceapplicationaccelerator
thatdeliverslowerandmorepredictablelatencyandhighermessageratesfor
TCPandUDPbasedapplications,allwithnoneedtomodifyapplicationsor
changethenetworkinfrastructure.Tolearnmoreabouttheopensource
OpenOnloadprojectorEnterpriseOnload,downloadtheOnloaduserguide
(SF104474CD)orcontactyourreseller.
AdvancedFeaturesandBenefits
VirtualNICsupport ThecoreofSolarflaretechnology.ProtectedVNIC
interfacescanbeinstantiatedforeachrunningguest
operatingsystemorapplication,givingitadirect
pipelinetotheEthernetnetwork.Thisarchitecture
providesthemostefficientwaytomaximizenetwork
andCPUefficiency.TheSolarflareEthernetcontroller
supportsupto1024vNICinterfacesperport.
OnIBMSystempserversequippedwithSolarflare
adapters,eachadapterisassignedtoasingleLogical
Partition(LPAR)whereallVNICSareavailabletothe
LPAR.
PCIExpress ImplementsPCIExpress3.1.
HighPerformance Supportfor40GEthernetinterfacesandanew
internaldatapathmicroarchitecture.
HardwareSwitchFabric Fullhardwareswitchfabricinsiliconcapableof
steeringanyflowbasedonLayer2,Layer3or
applicationlevelprotocolsbetweenphysicaland
virtualinterfaces.Supportinganopensoftware
definednetworkcontrolplanewithfullPCIIOV
virtualizationaccelerationforhighperformanceguest
operatingsystemsandvirtualapplications.
Improvedflow
processing
Theadditionofdedicatedparsing,filtering,traffic
shapingandflowsteeringengineswhicharecapable
ofoperatingflexiblyandwithanoptimalcombination
ofafullhardwaredataplanewithsoftwarebased
controlplane.
SolarflareServerAdapterUserGuide
Introduction
Issue20 ©SolarflareCommunications2017 3
TXPIO TransmitProgrammedinput/outputisthedirect
transferofdatatotheadapterwithoutCPU
involvement.Asanalternativetotheusualbus
masterDMAmethod,TXPIOimproveslatencyandis
especiallyusefulforsmallerpackets.
MulticastReplication Receivedmulticastpacketsarereplicatedinhardware
anddeliveredtomultiplereceivequeues.
Sidebandmanagement NCSIRMIIinterfaceforbaseboardmanagement
integration.
SMBusinterfaceforlegacybaseboardmanagement
integration.
PCISingleRootIOV,SR
IOV,capable
16Physicalfunctionsandupto240Virtualfunctions
peradapter.
Flexibledeploymentof1024channelsbetween
VirtualandPhysicalFunctions.
SupportAlternateRoutingID(ARI).
SRIOVisnotsupportedforSolarflareadapterson
IBMSystempservers.
10GigabitEthernet Supportstheabilitytodesignacosteffective,high
performance10GigabitEthernetsolution.
ReceiveSideScaling
(RSS)
IPv4andIPv6RSSraisestheutilizationlevelsofmulti
coreserversdramaticallybydistributingI/Oload
acrossallCPUsandcores.
Statelessoffloads ThroughtheadditionofhardwarebasedTCP
segmentationandreassemblyoffloads,VLAN,VxLAN,
NVGREandGENEVEoffloads.
Jumboframesupport Supportforupto9216bytejumboframes.
MSIXsupport 2048MSIXinterruptsupportenableshigherlevelsof
performance.
CanalsoworkwithMSIorlegacylinebased
interrupts.
Ultralowlatency Cutthrougharchitecture.<sendtoendlatency
withstandardkerneldrivers,<3µswithOnload
drivers.
SolarflareServerAdapterUserGuide
Introduction
Issue20 ©SolarflareCommunications2017 4
1.2ProductSpecifications
SolarflareXtremeScaleNetworkAdapters
SolarflareXtremeScaleSFN8722DualPort10GbESFP+PCIe3.1OCP
ServerAdapter
Remoteboot SupportforPXEboot2.1andUEFIBootprovides
flexibilityinclusterdesignanddisklessservers(see
SolarflareBootManageronpage374).
NetworkbootisnotsupportedforSolarflareadapters
onIBMSystempservers.
MACaddressfiltering Enablesthehardwaretosteerpacketsbasedonthe
MACaddresstoaVNIC.
Hardwaretimestamps TheSolarflareFlareon™SFN7000andXtremeScale
SFN8000seriesadapterscansupporthardware
timestampingforallpackets,sentandreceived‐
includingPTP.
Theadaptersincorporateahighlyaccuratestratum3
compliantoscillatorwithdriftof0.37PPMperday(c.
32ms/day).
TheSFN6322Fadaptercangeneratehardware
timestampsofPTPpackets.
Partnumbers SFN8722
Controllersilicon SFC9240
Power 10.5Wtypical
PCIExpress 8lanesGen3.1(8.0GT/s)
PCIefeaturessupport Peradapter:16PF,240VF,2048VI,2048
MSIXInterrupts
SupportsOpenOnload Yes
PTPandhardwaretimestamps Yes
1PPSNo
SRIOV Yes
Networkports 2xSFP+(10G/1G)
SolarflareServerAdapterUserGuide
Introduction
Issue20 ©SolarflareCommunications2017 5
SolarflareXtremeScaleSFN8542DualPort40GbEQSFP+PCIe3.1Server
I/OAdapter
SolarflareXtremeScale™SFN8522MDualPort10GbESFP+PCIe3.1Server
I/OAdapter
Partnumbers SFN8542orSFN8542Plus
Controllersilicon SFC9240
Power 12.5Wtypical
PCIExpress 16lanesGen3.1(8.0GT/s),x16edge
connector
PCIefeaturessupport Peradapter:16PF,240VF,2048VI,2048
MSIXInterrupts
SupportsOpenOnload Yes(factoryenabledforthePlusversion)
PTPandhardwaretimestamps Yes(factoryenabledforthePlusversion)
1PPSOptionalbracketandcableassemblynot
factoryinstalled
SRIOV Yes
Networkports 2xQSFP+(40G/10G)
Partnumbers SFN8522M,SFN8522MOnload,or
SFN8522MPlus
Controllersilicon SFC9240
Power 10.5Wtypical
PCIExpress 8lanesGen3.1(8.0GT/s),x8edgeconnector
(usableinx8andx16slots)
PCIefeaturessupport Peradapter:16PF,240VF,2048VI,2048
MSIXInterrupts
SupportsOpenOnload Yes(factoryenabledfortheOnloadandPlus
versions)
PTPandhardwaretimestamps Yes(factoryenabledforthePlusversion)
1PPSOptionalbracketandcableassemblynot
factoryinstalled
SRIOV Yes
Networkports 2xSFP+(10G/1G)
SolarflareServerAdapterUserGuide
Introduction
Issue20 ©SolarflareCommunications2017 6
SolarflareXtremeScaleSFN8522DualPort10GbESFP+PCIe3.1Server
I/OAdapter
SolarflareXtremeScaleSFN8042DualPort40GbEQSFP+PCIe3.1Server
I/OAdapter
Partnumbers SFN8522,SFN8522Onload,orSFN8522Plus
Controllersilicon SFC9240
Power 10.5Wtypical
PCIExpress 8lanesGen3.1(8.0GT/s),x8edgeconnector
(usableinx8andx16slots)
PCIefeaturessupport Peradapter:16PF,240VF,2048VI,2048
MSIXInterrupts
SupportsOpenOnload Yes(factoryenabledfortheOnloadandPlus
versions)
PTPandhardwaretimestamps Yes(factoryenabledforthePlusversion)
1PPSOptionalbracketandcableassemblynot
factoryinstalled
SRIOV Yes
Networkports 2xSFP+(10G/1G)
Partnumbers SFN8042
Controllersilicon SFC9240
Power 12.5Wtypical
PCIExpress 8lanesGen3.1(8.0GT/s),x8edgeconnector
(usableinx8andx16slots)
PCIefeaturessupport Peradapter:16PF,240VF,2048VI,2048
MSIXInterrupts
SupportsOpenOnload Yes
PTPandhardwaretimestamps Yes
1PPSOptionalbracketandcableassemblynot
factoryinstalled
SRIOV Yes
Networkports 2xQSFP+(40G/10G)
SolarflareServerAdapterUserGuide
Introduction
Issue20 ©SolarflareCommunications2017 7
SolarflareFlareon™NetworkAdapters
SolarflareFlareon™UltraSFN7322FDualPort10GbEPCIe3.0ServerI/O
Adapter
SolarflareFlareon™UltraSFN7142QDualPort40GbEQSFP+PCIe3.0
ServerI/OAdapter
Partnumber SFN7322F
Controllersilicon SFC9120
Power 5.9Wtypical
PCIExpress 8lanesGen3(8.0GT/s),x8edgeconnector
(usableinx8andx16slots)
PCIefeaturessupport Peradapter:16PF,240VF,2048VI,2048
MSIXInterrupts
SupportsOpenOnload Yes(factoryenabled)
PTPandhardwaretimestamps Yes(factoryenabled)
1PPSOptionalbracketandcableassemblynot
factoryinstalled
SRIOV Yes
Networkports 2xSFP+(10G/1G)
Partnumber SFN7142Q
Controllersilicon SFC9140
Power 13Wtypical
PCIExpress 8lanesGen3(8.0GT/s),x8edgeconnector
(usableinx8andx16slots)
PCIefeaturessupport Peradapter:16PF,240VF,2048VI,2048
MSIXInterrupts
SupportsOpenOnload Yes(factoryenabled)
PTPandhardwaretimestamps EnabledbyinstallingAppFlexlicense
1PPSOptionalbracketandcableassemblynot
factoryinstalled
SRIOV Yes
Networkports 2xQSFP+(40G/10G)
SolarflareServerAdapterUserGuide
Introduction
Issue20 ©SolarflareCommunications2017 8
SolarflareFlareon™UltraSFN7124FQuadPort10GbESFP+PCIe3.0Server
I/OAdapter
SolarflareFlareon™UltraSFN7122FDualPort10GbEPCIe3.0ServerI/O
Adapter
Partnumber SFN7124F
Controllersilicon SFC9140
Power 13Wtypical
PCIExpress 8lanesGen3(8.0GT/s),x8edgeconnector
(usableinx8andx16slots)
PCIefeaturessupport Peradapter:16PF,240VF,2048VI,2048
MSIXInterrupts
SupportsOpenOnload Yes(factoryenabled)
PTPandhardwaretimestamps EnabledbyinstallingAppFlexlicense
1PPSOptionalbracketandcableassemblynot
factoryinstalled
SRIOV Yes
Networkports 4xSFP+(10G/1G)
Partnumber SFN7122F
Controllersilicon SFC9120
Power 5.9Wtypical
PCIExpress 8lanesGen3(8.0GT/s),x8edgeconnector
(usableinx8andx16slots)
PCIefeaturessupport 1Peradapter:16PF,240VF,2048VI,2048
MSIXInterrupts.
SupportsOpenOnload Yes(factoryenabled)
PTPandhardwaretimestamps AppFlex™licenserequired
1PPS Optionalbracketandcableassemblynot
factoryinstalled.
SRIOV Yes
Networkports 2xSFP+(10G/1G)
SolarflareServerAdapterUserGuide
Introduction
Issue20 ©SolarflareCommunications2017 9
SolarflareFlareon™SFN7042QDualPort40GbEQSFP+PCIe3.0ServerI/O
Adapter
SolarflareFlareon™UltraSFN7024FQuadPort10GbESFP+PCIe3.0Server
I/OAdapter
Partnumber SFN7042Q
Controllersilicon SFC9140
Power 13Wtypical
PCIExpress 8lanesGen3(8.0GT/s),x8edgeconnector
(usableinx8andx16slots)
PCIefeaturessupport Peradapter:16PF,240VF,2048VI,2048
MSIXInterrupts
SupportsOpenOnload EnabledbyinstallingAppFlexlicense
PTPandhardwaretimestamps EnabledbyinstallingAppFlexlicense
1PPSOptionalbracketandcableassemblynot
factoryinstalled
SRIOV Yes
Networkports 2xQSFP+(40G/10G)
Partnumber SFN7024F
Controllersilicon SFC9140
Power 13Wtypical
PCIExpress 8lanesGen3(8.0GT/s),x8edgeconnector
(usableinx8andx16slots)
PCIefeaturessupport Peradapter:16PF,240VF,2048VI,2048
MSIXInterrupts
SupportsOpenOnload EnabledbyinstallingAppFlexlicense
PTPandhardwaretimestamps EnabledbyinstallingAppFlexlicense
1PPSNo
SRIOV Yes
Networkports 4xSFP+(10G/1G)
SolarflareServerAdapterUserGuide
Introduction
Issue20 ©SolarflareCommunications2017 10
SolarflareFlareon™UltraSFN7022FDualPort10GbEPCIe3.0ServerI/O
Adapter
SolarflareFlareon™SFN7004FQuadPort10GbESFP+PCIe3.0ServerI/O
Adapter
Partnumber SFN7022F
Controllersilicon SFC9120
Power 5.9Wtypical
PCIExpress 8lanesGen3(8.0GT/s),x8edgeconnector
(usableinx8andx16slots)
PCIefeaturessupport Peradapter:16PF,240VF,2048VI,2048
MSIXInterrupts.
SupportsOpenOnload EnabledbyinstallingAppFlexlicense
PTPandhardwaretimestamps EnabledbyinstallingAppFlexlicense
1PPS Optionalbracketandcableassemblynot
factoryinstalled.
SRIOV Yes
Networkports 2xSFP+(10G/1G)
Partnumber SFN7004F
Controllersilicon SFC9140
Power 13Wtypical
PCIExpress 8lanesGen3(8.0GT/s),x8edgeconnector
(usableinx8andx16slots)
PCIefeaturessupport Peradapter:16PF,240VF,2048VI,2048
MSIXInterrupts
SupportsOpenOnload EnabledbyinstallingAppFlexlicense
PTPandhardwaretimestamps EnabledbyinstallingAppFlexlicense
1PPSNo
SRIOV Yes
Networkports 4xSFP+(10G/1G)
SolarflareServerAdapterUserGuide
Introduction
Issue20 ©SolarflareCommunications2017 11
SolarflareFlareon™SFN7002FDualPort10GbEPCIe3.0ServerI/OAdapter
SolarflareOnloadNetworkAdapters
SolarflareSFA6902FDualPort10GbESFP+ApplicationOnload™Engine
Partnumber SFN7002F
Controllersilicon SFC9120
Power 5.9Wtypical
PCIExpress 8lanesGen3(8.0GT/s),x8edgeconnector
(usableinx8andx16slots)
PCIefeaturessupport Peradapter:16PF,240VF,2048VI,2048
MSIXInterrupts.
SupportsOpenOnload EnabledbyinstallingAppFlexlicense
PTPandhardwaretimestamps EnabledbyinstallingAppFlexlicense
1PPS Optionalbracketandcableassemblynot
factoryinstalled.
SRIOV Yes
Networkports 2xSFP+(10G/1G)
Partnumber SFA6902F
Controllersilicon SFC9020
Power 25Wtypical
PCIExpress 8lanesGen2(5.0GT/s),x8edgeconnector
(usableinx8andx16slots),127SRIOV
virtualfunctionsperport
VirtualNICsupport 1024vNICinterfacesperport
SupportsOpenOnload Yes
SRIOV Yes
Networkports 2xSFP+(10G/1G)
SolarflareServerAdapterUserGuide
Introduction
Issue20 ©SolarflareCommunications2017 12
SolarflareSFN6322FDualPort10GbESFP+ServerAdapter
SolarflareSFN6122FDualPort10GbESFP+ServerAdapter
Partnumber SFN6122F
Controllersilicon SFC9020
Power 5.9Wtypical
PCIExpress 8lanesGen2(5.0GT/s),x8edgeconnector
(usableinx8andx16slots),127SRIOV
virtualfunctionsperport
VirtualNICsupport 1024vNICinterfacesperport
SupportsOpenOnload Yes
SRIOV Yes
Networkports 2xSFP+(10G/1G)
Partnumber SFN6122F
Controllersilicon SFC9020
Power 5.9Wtypical
PCIExpress 8lanesGen2(5.0GT/s),x8edgeconnector
(usableinx8andx16slots),127SRIOV
virtualfunctionsperport
VirtualNICsupport 1024vNICinterfacesperport
SupportsOpenOnload Yes
SRIOV Yes1
1. SRIOVisnotsupportedforSolarflareadaptersonIBMSystempservers.
Networkports 2xSFP+(10G/1G)
RegulatoryProductCode S6102
SolarflareServerAdapterUserGuide
Introduction
Issue20 ©SolarflareCommunications2017 13
SolarflareSFN5122FDualPort10GSFP+ServerAdapter
SolarflareSFN5121TDualPort10GBASETServerAdapter
Partnumber SFN5122F
Controllersilicon SFC9020
Power 4.9Wtypical
PCIExpress 8lanesGen2(5.0GT/s),x8edgeconnector
(usableinx8andx16slots),127SRIOV
virtualfunctionsperport
VirtualNICsupport 1024vNICinterfacesperport
SupportsOpenOnload Yes
SRIOV Yes
Networkports 2xSFP+(10G/1G)
Partnumber SFN5121T
Controllersilicon SFL9021
Power 12.9Wtypical
PCIExpress 8lanesGen2(5.0GT/s),x8edgeconnector
(usableinx8andx16slots),127SRIOV
virtualfunctionsperport
VirtualNICsupport 1024vNICinterfacesperport
SupportsOpenOnload Yes
SRIOV Yes
Networkports 2x10GBASET(10G/1G/100M)
SolarflareServerAdapterUserGuide
Introduction
Issue20 ©SolarflareCommunications2017 14
SolarflarePerformantNetworkAdapters
SolarflareSFN5162FDualPort10GSFP+ServerAdapter
SolarflareSFN5161TDualPort10GBASETServerAdapter
Partnumber SFN5162F
Controllersilicon SFC9020
Power 4.9Wtypical
PCIExpress 8lanesGen2(5.0GT/s),x8edgeconnector
(usableinx8andx16slots)
VirtualNICsupport 1024vNICinterfacesperport
SupportsOpenOnload No
SRIOV Yes1
1. SRIOVisnotsupportedforSolarflareadaptersonIBMSystempservers.
Networkports 2xSFP+(10G/1G)
Partnumber SFN5161T
Controllersilicon SFL9021
Power 12.9Wtypical
PCIExpress 8lanesGen2(5.0GT/s),x8edgeconnector
(usableinx8andx16slots)
VirtualNICsupport 1024vNICinterfacesperport
SupportsOpenOnload No
SRIOV Yes
Networkports 2x10GBASET(10G/1G/100M)
SolarflareServerAdapterUserGuide
Introduction
Issue20 ©SolarflareCommunications2017 15
SolarflareMezzanineAdapters
SolarflareSFN6832FDualPort10GbESFP+MezzanineAdapter
SolarflareSFN6822FDualPort10GbESFP+FlexibleLOMOnloadServer
Adapter
Partnumber SFN6832FC61forDELLPowerEdgeC6100
series
SFN6832FC62forDELLPowerEdgeC6200
series
Controllersilicon SFC9020
Power 5.9Wtypical
PCIExpress 8lanesGen2(5.0GT/s),x8edgeconnector
(usableinx8andx16slots),127SRIOV
virtualfunctionsperport
VirtualNICsupport 1024vNICinterfacesperport
SupportsOpenOnload Yes
SRIOV Yes
Ports 2xSFP+(10G/1G)
RegulatoryProductCode S6930
Partnumber SFN6822F
Controllersilicon SFC9020
Power 5.9Wtypical
PCIExpress 8lanesGen2(5.0GT/s),x8edgeconnector
(usableinx8andx16slots),127SRIOV
virtualfunctionsperport
VirtualNICsupport 1024vNICinterfacesperport
SupportsOpenOnload Yes
SRIOV Yes
Ports 2xSFP+(10G/1G)
SolarflareServerAdapterUserGuide
Introduction
Issue20 ©SolarflareCommunications2017 16
SolarflareSFN5814HQuadPort10GEthernetMezzanineAdapter
SolarflareSFN5812HDualPort10GEthernetMezzanineAdapter
Partnumber SFN5814H
Controllersilicon 2xSFC9020
Power 7.9Wtypical
PCIExpress 8lanesGen2(5.0GT/s),x8edgeconnector
(usableinx8andx16slots),127SRIOV
virtualfunctionsperport
VirtualNICsupport 1024vNICinterfacesperport
SupportsOpenOnload Yes
SRIOV Yes
Ports 4x10GBASEKX4backplanetransmission
Partnumber SFN5812H
Controllersilicon SFC9020
Power 3.9Wtypical
PCIExpress 8lanesGen2(5.0GT/s),x8edgeconnector
(usableinx8andx16slots),127SRIOV
virtualfunctionsperport
VirtualNICsupport 1024vNICinterfacesperport
SupportsOpenOnload Yes
SRIOV Yes
Ports 2x10GBASEKX4backplanetransmission
SolarflareServerAdapterUserGuide
Introduction
Issue20 ©SolarflareCommunications2017 17
1.3SoftwareDriverSupport
Thesoftwaredriveriscurrentlysupportedonthefollowingdistributions:
• Windows®Server2008,R2only.
• Windows®Server2012,includingR2.
•RedHatEnterpriseLinux6(6.5orlater)
•RedHatMessagingRealtimeandGrid2update5
•RedHatEnterpriseLinux7.x
•RedHatEnterpriseLinuxforRealtime7.x
•SUSELinuxEnterpriseServer11(SP3orlater),and12(baserelease).
•SUSELinuxEnterpriseRealTime11(SP3orlater).
•Ubuntu14.04LTS,14.10,15.04,15.10and16.04LTS.
• Debian7.xand8.x.
•FreeBSD10.x.
•VMware®ESX5.0,ESXi™5.1,5.5and6.0.
• Linux®KVM.
Supportincludesallminorupdates/releases/servicepacksoftheabovemajor
releases,forwhichthedistributorhasnotyetdeclaredendoflife/support.
Solarflarearenotawareofanyissuespreventingbuildingandinstallingthedriver
onotherLinuxvariantsthatusekernelversions2.6.18‐4.11inclusive.
SolarflareSFN6122FandSFN5162FadaptersaresupportedontheIBMPOWER
architecture(PPC64)runningRHEL6.4onIBMSystempservers.
TheSolarflareacceleratednetworkmiddleware,OpenOnloadand
EnterpriseOnload,issupportedonallLinux,Ubuntu,andDebianvariantslisted
above,andisavailableforallSolarflareOnloadnetworkadapters.Solarflarearenot
awareofanyissuespreventingOpenOnloadinstallationonotherLinuxvariantssuch
asCentosandFedora.
SolarflareServerAdapterUserGuide
Introduction
Issue20 ©SolarflareCommunications2017 18
1.4SolarflareAppFlex™TechnologyLicensing.
SolarflareAppFlextechnologyallowsSolarflareserveradapterstobeselectively
configuredtoenableonboardapplications.AppFlexlicensesarerequiredtoenable
selectedfunctionalityontheSolarflareXtremeScaleandFlareon™adaptersand
ontheAOEApplicationOnload™Engine.
CustomerscanobtainaccesstoAppFlexapplicationsviatheirSolarflaresales
channelbyobtainingthecorrespondingAppFlexauthorizationcode.The
authorizationcodeallowsthecustomertogeneratelicensesattheMyAppFlexpage
athttps://support.solarflare.com/myappflex.
Thesfkeyutilityapplicationisusedtoinstallthegeneratedlicensekeyfileon
selectedadapters.Fordetailedinstructionsforsfkeyandlicenseinstallationreferto
LicenseInstallwithsfkeyonpage100.
1.5OpenSourceLicenses
SolarflareBootManager
TheSolarflareBootManagerisinstalledintheadapter'sflashmemory.This
programisfreesoftware;youcanredistributeitand/ormodifyitundertheterms
oftheGNUGeneralPublicLicenseaspublishedbytheFreeSoftwareFoundation;
eitherversion2oftheLicense,or(atyouroption)anylaterversion.
Thisprogramisdistributedinthehopethatitwillbeuseful,butWITHOUTANY
WARRANTY;withouteventheimpliedwarrantyofMERCHANTABILITYorFITNESS
FORAPARTICULARPURPOSE.SeetheGNUGeneralPublicLicenseformoredetails.
SolarflareServerAdapterUserGuide
Introduction
Issue20 ©SolarflareCommunications2017 19
ControllerFirmware
ThefirmwarerunningontheSFC9xxxcontrollerincludesamodifiedversionof
libcoroutine.ThissoftwareisfreesoftwarepublishedunderaBSDlicense
reproducedbelow:
Copyright(c)2002,2003SteveDekorte
Allrightsreserved.
Redistributionanduseinsourceandbinaryforms,withorwithoutmodification,are
permittedprovidedthatthefollowingconditionsaremet:
Redistributionsofsourcecodemustretaintheabovecopyrightnotice,thislistof
conditionsandthefollowingdisclaimer.
Redistributionsinbinaryformmustreproducetheabovecopyrightnotice,thislist
ofconditionsandthefollowingdisclaimerinthedocumentationand/orother
materialsprovidedwiththedistribution.
Neitherthenameoftheauthornorthenamesofothercontributorsmaybeused
toendorseorpromoteproductsderivedfromthissoftwarewithoutspecificprior
writtenpermission.
THISSOFTWAREISPROVIDEDBYTHECOPYRIGHTHOLDERSANDCONTRIBUTORS
"ASIS"ANDANYEXPRESSORIMPLIEDWARRANTIES,INCLUDING,BUTNOTLIMITED
TO,THEIMPLIEDWARRANTIESOFMERCHANTABILITYANDFITNESSFORA
PARTICULARPURPOSEAREDISCLAIMED.INNOEVENTSHALLTHEREGENTSOR
CONTRIBUTORSBELIABLEFORANYDIRECT,INDIRECT,INCIDENTAL,SPECIAL,
EXEMPLARY,ORCONSEQUENTIALDAMAGES(INCLUDING,BUTNOTLIMITEDTO,
PROCUREMENTOFSUBSTITUTEGOODSORSERVICES;LOSSOFUSE,DATA,OR
PROFITS;ORBUSINESSINTERRUPTION)HOWEVERCAUSEDANDONANYTHEORY
OFLIABILITY,WHETHERINCONTRACT,STRICTLIABILITY,ORTORT(INCLUDING
NEGLIGENCEOROTHERWISE)ARISINGINANYWAYOUTOFTHEUSEOFTHIS
SOFTWARE,EVENIFADVISEDOFTHEPOSSIBILITYOFSUCHDAMAGE.
1.6SupportandDownload
Solarflarenetworkdrivers,RPMpackagesanddocumentationareavailablefor
downloadfromhttps://support.solarflare.com/.
SoftwareanddocumentationforOpenOnloadisavailablefrom
www.openonload.org.
SolarflareServerAdapterUserGuide
Introduction
Issue20 ©SolarflareCommunications2017 20
1.7RegulatoryInformation
Warnings
DonotinstalltheSolarflarenetworkadapterinhazardousareaswherehighly
combustibleorexplosiveproductsarestoredorusedwithouttakingadditional
safetyprecautions.DonotexposetheSolarflarenetworkadaptertorainor
moisture.
TheSolarflarenetworkadapterisaClassIIISELVproductintendedonlytobe
poweredbyacertifiedlimitedpowersource.
TheequipmenthasbeentestedandfoundtocomplywiththelimitsforaClassB
digitaldevice,pursuanttoPart15oftheFCCRules.Theselimitsaredesignedto
providereasonableprotectionagainstharmfulinterferenceinaresidential
installation.Theequipmentgenerates,usesandcanradiateradiofrequencyenergy
and,ifnotinstalledandusedinaccordancewiththeinstructions,maycause
harmfulinterferencetoradiocommunications.However,thereisnoguaranteethat
interferencewillnotoccurinaparticularinstallation.
Iftheequipmentdoescauseharmfulinterferencetoradioortelevisionreception,
whichcanbedeterminedbyturningtheequipmentoffandon,theuseris
encouragedtotrytocorrecttheinterferencebyoneormoreofthefollowing
measures:
• Reorientorrelocatethereceivingantenna.
•Increasetheseparationbetweentheequipmentandreceiver.
• Connecttheequipmentintoanoutletonacircuitdifferentfromthattowhich
thereceiverisconnected.
•Consultthedealeroranexperiencedradio/TVtechnicianforhelp.
ChangesormodificationsnotexpresslyapprovedbySolarflareCommunications,
thepartyresponsibleforFCCcompliance,couldvoidtheuser'sauthoritytooperate
theequipment.
ThisClassBdigitalapparatuscomplieswithCanadianICES003.
CetappareilnumériquedelaclasseBestconformeàlanormeNMB003duCanada.
UnderwritersLaboratoryInc('UL')hasnottestedtheperformanceorreliabilityof
thesecurityorsignalingaspectsofthisproduct.ULhasonlytestedforfire,shockor
casualtyhazardsasoutlinedintheUL'sStandardforSafetyUL609501.UL
Certificationdoesnotcovertheperformanceorreliabilityofthesecurityor
signalingaspectsofthisproduct.ULmakesnorepresentations,warrantiesor
certificationswhatsoeverregardingtheperformanceorreliabilityofanysecurity
orsignalingrelatedfunctionsofthisproduct.
SolarflareServerAdapterUserGuide
Introduction
Issue20 ©SolarflareCommunications2017 21
LaserDevices
Thelasersafetyoftheequipmenthasbeenverifiedusingthefollowingcertified
laserdevicemodule(LDM):
Wheninstalledina10GbEthernetnetworkinterfacecardfromtheSolarflare
SFN5000,SFN6000,SFN7000orSFN8000series,thelaseremissionlevelsremain
underClassIlimitsasspecifiedintheFDAregulationsforlasers,21CFRPart1040.
ThedecisiononwhatLDMstouseismadebytheinstaller.Forexample,equipment
mayuseoneofamultipleofdifferentLDMsdependingonpathlengthofthelaser
communicationsignal.ThisequipmentisnotbasicconsumerITE.
Theequipmentisinstalledandmaintainedbyqualifiedstafffromtheenduser
communicationscompanyorsubcontractoroftheenduserorganization.Theend
productuserand/orinstalleraresolelyresponsibleforensuringthatthecorrect
devicesareutilizedintheequipmentandtheequipmentwithLDMsinstalled
complieswithapplicablelasersafetyrequirements.
Manufacturer Model CDRH
AccessionNo
Markof
conformity
FileNo
Avago
Technologies
AFBR703SDZ 9720151072 TUV R72071411
Finisar
Corporation
FTLX8571D3BCL 9210176094 TUV R72080250
SolarflareServerAdapterUserGuide
Introduction
Issue20 ©SolarflareCommunications2017 22
1.8RegulatoryApproval
AdditionalRegulatoryInformationforSFN8722,SFN8542,SFN8522M
andSFN8042adapters
この装置は、クラスA情報技術装置です。この装置を家庭環境で使用する
と電波妨害を引き起こすことがあります。この場合には使用者が適切な対
策を講ずるよう要求されることがあります。 VCCI-A
警告使用者:
這是甲類的資訊產品,在居住的環境中使用時,可能會造成射頻干擾,在這
種情況下,使用者會被要求採取某些適當的對策。
A 급 기기 ( 업무용 방송통신기기 ): 이 기기는 업무용 (A ) 으로
전자파적합등록을 한 기기이오니 판매자 또는 사용자는 이 점을 주의하시기
바라며 , 가정외의 지역에서 사용하는 것을 목적으로 합니다 .
产品中有害物质的名称及含量
部件名称 有害物质
(Pb)
(Hg)
(Cd)
六价铬
(Cr (VI))
多溴联苯
(PB#B)
多溴二苯醚
(PBDE)
RC0402FR series resistor x o o o o o
ERJ-2GE series resistor x o o o o o
CRCW0402 series resistor x o o o o o
NC7NZ34K8X x o o o o o
本表格依据 SJ/T 11364 的规定编制。
o:表示该有害物质在该部件所有均质材料中的含量均在 GB/T 26572 规定的限量要求以下。
x:表示该有害物质至少在该部件的某一均质材料中的含量超出 GB/T 26572 规定的限量要求。
SolarflareServerAdapterUserGuide
Introduction
Issue20 ©SolarflareCommunications2017 23
Category Specification Details
EMC Europe BSEN55022:2010,55032:2012
BSEN55024:2010
US FCCCFR47Part15ClassA
Canada ICES003/NMB003ClassA
Taiwan CNS13438:2006ClassA
Japan VCCIRegulationsV3:2014.04ClassA
SouthKorea KCCKN32,KN35
Australia AS/NZSCISPR22:2009+A1:2010
Safety1Europe BSEN609501:2006+A11:2009+A1:2010
+A12:2011+A2:2013
US UL6095012ndEd.
Canada CSAC22.2609501072ndEd.
CB IEC609501:20052ndEd.+AMI:2009
+AM2:2013
RoHS Europe ComplieswithEUdirective2011/65/EU
1. Thesafetyassessmenthasbeenconcludedonthisproductasa
component/subassemblyonly.
SolarflareServerAdapterUserGuide
Introduction
Issue20 ©SolarflareCommunications2017 24
AdditionalRegulatoryInformationforSFN8522adapter.
この装置は、クラス B 情報技術装置です。 この装置は、家庭環境で使用
することを目的としていますが、この装置がラジオやテレビジョン受信機
に近接して使用されると、受信障害を引き起こすことがあります。取扱説
明書に従って正しい取り扱いをして下さい。
VCCI-B
警告用戶:
這是一個 B 類 產品,在居住環境中使用時可能會導致無線電干擾,在這種情
況下,用戶可能需要採取適當的措
B 급 기기 ( 가정용 방송통신기기 ): 이 기기는 가정용 (B ) 으로
전자파적합등록을 기기로서 주로 가정에서 사용하는 것을 목적으로 하며 ,
모든 지역에서 사용할 수 있습니다 .
产品中有害物质的名称及含量
部件名称 有害物质
(Pb)
(Hg)
(Cd)
六价铬
(Cr (VI))
多溴联苯
(PB#B)
多溴二苯醚
(PBDE)
RC0402FR series resistor x o o o o o
ERJ-2GE series resistor x o o o o o
CRCW0402 series resistor x o o o o o
NC7NZ34K8X x o o o o o
本表格依据 SJ/T 11364 的规定编制。
o:表示该有害物质在该部件所有均质材料中的含量均在 GB/T 26572 规定的限量要求以下。
x:表示该有害物质至少在该部件的某一均质材料中的含量超出 GB/T 26572 规定的限量要求。
SolarflareServerAdapterUserGuide
Introduction
Issue20 ©SolarflareCommunications2017 25
Category Specification Details
EMC Europe BSEN55022:2010,55032:2012
BSEN55024:2010
US FCCCFR47Part15ClassB
Canada ICES003/NMB003ClassB
Taiwan CNS13438:2006ClassB
Japan VCCIRegulationsV3:2014.04ClassB
SouthKorea KCCKN32,KN35
Australia AS/NZSCISPR22:2009+A1:2010
Safety1Europe BSEN609501:2006+A11:2009+A1:2010
+A12:2011+A2:2013
US UL6095012ndEd.
Canada CSAC22.2609501072ndEd.
CB IEC609501:20052ndEd.+AMI:2009
+AM2:2013
RoHS Europe ComplieswithEUdirective2011/65/EU
1. Thesafetyassessmenthasbeenconcludedonthisproductasa
component/subassemblyonly.
SolarflareServerAdapterUserGuide
Introduction
Issue20 ©SolarflareCommunications2017 26
AdditionalRegulatoryInformationforSFN7322F,SFN7142Q,SFN7122F,
SFN7042Q,SFN7022F,SFN7002F,SFN6322F,SFN6122FandSFN5122F
adapters
これは情報処理装置等電波障害自主規制協議会 (VCCI)の標準に基づ
クラス A 情報技術装置です。この装置を家庭環境で使用すると電波妨害を
引き起こすことがあります。そのような障害が発生した際、使用者は適切
な対応が必要となる場合がありま
警告使用者:
這是甲類的資訊產品,在居住的環境中使用時,可能會造成射頻 干擾,在這
種情況下,使用者會被要求採取某些適當的對策
A 급 기기 ( 업무용 방송통신기기 ): 이 기기는 업무용 (A ) 으로
전자파적합등록을 한 기기이오니 판매자 또는 사용자는 이 점을 주의하시기
바라며 , 가정외의 지역에서 사용하는 것을 목적으로 합니다
Category Specification Details
EMC Europe BSEN55022:2010+A1:2007
BSEN55024:1998+A1:2001+A2:2003
US FCCPart15ClassB
Canada ICES003/NMB003ClassB
Taiwan CNS13438:2006ClassB
Japan VCCIRegulationsV3:2010ClassB
SouthKorea KCCKN22,KN24
Australia AS/NZSCISPR22:2009
Safety1
1. Thesafetyassessmenthasbeenconcludedonthisproductasa
component/subassemblyonly.
Europe BSEN609501:2006+A11:2009+A1:2010
+A12:2011+A2:2013
US UL6095012ndEd.
Canada CSAC22.2609501072ndEd.
CB IEC609501:20052ndEd.+AMI:2009
+AM2:2013
RoHS Europe ComplieswithEUdirective2011/65/EU
SolarflareServerAdapterUserGuide
Introduction
Issue20 ©SolarflareCommunications2017 27
AdditionalRegulatoryInformationforSFN7124F,SFN7024Fand
SFN7004Fadapters
この装置は、クラス B 情報技術装置です。 この装置は、家庭環境で使用
することを目的としていますが、この装置がラジオやテレビジョン受信機
に近接して使用されると、受信障害を引き起こすことがあります。取扱説
明書に従って正しい取り扱いをして下さい。
VCCI-B
警告用戶:
這是一個 B 類 產品,在居住環境中使用時可能會導致無線電干擾,在這種情
況下,用戶可能需要採取適當的措
B 급 기기 ( 가정용 방송통신기기 ): 이 기기는 가정용 (B ) 으로
전자파적합등록을 기기로서 주로 가정에서 사용하는 것을 목적으로 하며 ,
모든 지역에서 사용할 수 있습니다 .
Category Specification Details
EMC Europe BSEN55022:2010,55032:2012
BSEN55024:2010
US FCCCFR47Part15ClassB
Canada ICES003/NMB003ClassB
Taiwan CNS13438:2006ClassB
Japan VCCIRegulationsV3:2014.04ClassB
SouthKorea KCCKN32,KN24
Australia AS/NZSCISPR22:2009+A1:2010
Safety1
1. Thesafetyassessmenthasbeenconcludedonthisproductasa
component/subassemblyonly.
Europe BSEN609501:2006+A12:2011+A1:2010
+A12:2011+A2:2013
US UL6095012ndEd.
Canada CSAC22.2609501072ndEd.
CB IEC609501:20052ndEd.+AMI:2009
+AMI:2009+AM2:2013
RoHS Europe ComplieswithEUdirective2011/65/EU
SolarflareServerAdapterUserGuide
Introduction
Issue20 ©SolarflareCommunications2017 28
AdditionalRegulatoryInformationforSFA6902Fadapter
これは情報処理装置等電波障害自主規制協議会 (VCCI)の標準に基づ
クラス A 情報技術装置です。この装置を家庭環境で使用すると電波妨害を
引き起こすことがあります。そのような障害が発生した際、使用者は適切
な対応が必要となる場合がありま
警告使用者:
這是甲類的資訊產品,在居住的環境中使用時,可能會造成射頻 干擾,在這
種情況下,使用者會被要求採取某些適當的對策
A 급 기기 ( 업무용 방송통신기기 ): 이 기기는 업무용 (A ) 으로
전자파적합등록을 한 기기이오니 판매자 또는 사용자는 이 점을 주의하시기
바라며 , 가정외의 지역에서 사용하는 것을 목적으로 합니다
Category Specification Details
EMC Europe BSEN55022:2010+A1:2007
BSEN55024:1998+A1:2001+A2:2003
US FCCPart15ClassB
Canada ICES003/NMB003ClassB
Taiwan CNS13438:2006ClassB
Japan VCCIRegulationsV3:2010ClassB
SouthKorea KCCKN22,KN24
Australia AS/NZSCISPR22:2009
Safety1
1. Thesafetyassessmenthasbeenconcludedonthisproductasa
component/subassemblyonly.
Europe BSEN609501:2006+A11:2009+A1:2010
+A12:2011+A2:2013
US UL6095012ndEd.
Canada CSAC22.2609501072ndEd.
CB IEC609501:20052ndEd.+AMI:2009
+AM2:2013
RoHS Europe ComplieswithEUdirective2011/65/EU
SolarflareServerAdapterUserGuide
Introduction
Issue20 ©SolarflareCommunications2017 29
AdditionalRegulatoryInformationforSFN6832F,SFN6822F,SFN5814H
andSFN5812Hadapters
これは情報処理装置等電波障害自主規制協議会 (VCCI)の標準に基づ
クラス A 情報技術装置です。この装置を家庭環境で使用すると電波妨害を
引き起こすことがあります。そのような障害が発生した際、使用者は適切
な対応が必要となる場合がありま
警告使用者:
這是甲類的資訊產品,在居住的環境中使用時,可能會造成射頻 干擾,在這
種情況下,使用者會被要求採取某些適當的對策
Category Specification Details
EMC Europe BSEN55022:2006
BSEN55024:1998+A1:2001+A2:2003
US FCCPart15ClassB
Canada ICES003/NMB003ClassB
Taiwan CNS13438:2006ClassA
Japan VCCIRegulationsV3:2010ClassA
Australia AS/NZSCISPR22:2009
Safety1
1. Thesafetyassessmenthasbeenconcludedonthisproductasa
component/subassemblyonly.
Europe BSEN609501:2006+A11:2009
US UL6095012ndEd.
Canada CSAC22.2609501072ndEd.
CB IEC609501:20052ndEd.
RoHS Europe ComplieswithEUdirective2002/95/EC
SolarflareServerAdapterUserGuide
Introduction
Issue20 ©SolarflareCommunications2017 30
AdditionalRegulatoryInformationforSFN5162F,SFN5161Tand
SFN5121Tadapters
Category Specification Details
EMC Europe BSEN55022:2006
BSEN55024:1998+A1:2001+A2:2003
US FCCPart15ClassB
Canada ICES003/NMB003ClassB
Safety1
1. Thesafetyassessmenthasbeenconcludedonthisproductasa
component/subassemblyonly.
Europe BSEN609501:2006+A11:2009
US UL6095012ndEd.
Canada CSAC22.2609501072ndEd.
CB IEC609501:20052ndEd.
RoHS Europe ComplieswithEUdirective2002/95/EC
SolarflareServerAdapterUserGuide
Issue20 ©SolarflareCommunications2017 31
2Installation
Thischaptercoversthefollowingtopics:
SolarflareNetworkAdapterProductsonpage32
FittingaFullHeightBracket(optional)onpage34
InsertingtheAdapterinaPCIExpress(PCIe)Slotonpage34
AttachingaCable(RJ45)onpage35
AttachingaCable(SFP+)onpage36
SupportedSFP+Cablesonpage38
SupportedSFP+10GSROpticalTransceiversonpage40
SupportedSFP+10GLROpticalTransceiversonpage41
SupportedSFP1000BASETTransceiversonpage45
Supported1GOpticalTransceiversonpage46
SupportedSpeedandModeonpage46
LEDStatesonpage48
ConfigureQSFP+Adapteronpage49
SingleOpticalFiber‐RXConfigurationonpage51
InstallingtheOCPMezzanineAdapterSolarflareMezzanineAdapters:
SFN5814HandSFN5812Honpage51
SolarflareMezzanineAdapterSFN6832FC61onpage54
SolarflareMezzanineAdapterSFN6832FC62onpage56
SolarflarePrecisionTimeSynchronizationAdaptersonpage57
SolarflareApplicationOnload™Engineonpage57
CAUTION:Serverscontainhighvoltageelectricalcomponents.Beforeremovingthe
servercover,disconnectthemainspowersupplytoavoidtheriskofelectrocution.
CAUTION:Staticelectricitycandamagecomputercomponents.Beforehandling
computercomponents,dischargestaticelectricityfromyourselfbytouchinga
metalsurface,orwearacorrectlyfittedantistaticwristband.
SolarflareServerAdapterUserGuide
Installation
Issue20 ©SolarflareCommunications2017 32
2.1SolarflareNetworkAdapterProducts
SolarflareXtremeScaleadapters
• SolarflareXtremeScaleSFN8722DualPort10GbESFP+PCIe3.1OCPServer
Adapter
• SolarflareXtremeScaleSFN8542DualPort40GbEPCIe3.1QSFP+Server
Adapter
• SolarflareXtremeScaleSFN8522MDualPort10GbEPCIe3.1SFP+Server
Adapter
• SolarflareXtremeScaleSFN8522DualPort10GbEPCIe3.1SFP+ServerAdapter
• SolarflareXtremeScaleSFN8042DualPort40GbEPCIe3.1QSFP+Server
Adapter.
SolarflareFlareon™adapters
• SolarflareFlareonUltraSFN7322FDualPort10GbEPCIe3.0ServerI/OAdapter
• SolarflareFlareonUltraSFN7142QDualPort40GbEPCIe3.0QSFP+Server
Adapter
• SolarflareFlareonUltraSFN7124FQuadPort10GbEPCIe3.0SFP+Server
Adapter
• SolarflareFlareonUltraSFN7122FDualPort10GbEPCIe3.0ServerI/OAdapter
• SolarflareFlareonSFN7042QDualPort40GbEPCIe3.0QSFP+ServerAdapter
• SolarflareFlareonUltraSFN7024FQuadPort10GbEPCIe3.0SFP+Server
Adapter
• SolarflareFlareonUltraSFN7022FDualPort10GbEPCIe3.0ServerI/OAdapter
• SolarflareFlareonSFN7004FQuadPort10GbEPCIe3.0SFP+ServerAdapter
• SolarflareFlareonSFN7002FDualPort10GbEPCIe3.0ServerI/OAdapter.
SolarflareOnloadadapters
• SolarflareSFA6902FDualPort10GbEApplicationOnload™Engine
• SolarflareSFN6322FDualPort10GbEPrecisionTimeStampingServerAdapter
• SolarflareSFN6122FDualPort10GbESFP+ServerAdapter
• SolarflareSFN5122FDualPort10GSFP+ServerAdapter
• SolarflareSFN5121TDualPort10GBASETServerAdapter.
SolarflareServerAdapterUserGuide
Installation
Issue20 ©SolarflareCommunications2017 33
SolarflarePerformantnetworkadapters
• SolarflareSFN5162FDualPort10GSFP+ServerAdapter
• SolarflareSFN5161TDualPort10GBASETServerAdapter.
SolarflareMezzanineadapters
• SolarflareSFN6832FC61DualPort10GbESFP+MezzanineAdapterforDELL
PowerEdgeC6100seriesservers
• SolarflareSFN6832FC62DualPort10GbESFP+MezzanineAdapterforDELL
PowerEdgeC6200seriesservers
• SolarflareSFN6822FDualPort10GbESFP+FlexibleLOMOnloadServerAdapter
• SolarflareSFN5814HQuadPort10GEthernetMezzanineAdapterforIBM
BladeCenter
• SolarflareSFN5812HDualPort10GEthernetMezzanineAdapterforIBM
BladeCenter.
SolarflarenetworkadapterscanbeinstalledonIntel/AMDx86based32bitor64bit
servers.ThenetworkadaptermustbeinsertedintoaPCIex8ORPCIex16slotfor
maximumperformance.RefertoPCIExpressLaneConfigurationsonpage236for
details.
SolarflareSFN6122FandSFN5162FadaptersaresupportedontheIBMPOWER
architecture(PPC64)runningRHEL6.4onIBMSystempservers.
SolarflareServerAdapterUserGuide
Installation
Issue20 ©SolarflareCommunications2017 34
2.2FittingaFullHeightBracket(optional)
Solarflareadaptersaresuppliedwithalowprofilebracketfittedtotheadapter.A
fullheightbrackethasalsobeensuppliedforPCIeslotsthatrequirethistypeof
bracket.
TofitafullheightbrackettotheSolarflareadapter:
1Fromthebackoftheadapter,removethescrewssecuringthebracket.
2Slidethebracketawayfromtheadapter.
3Takingcarenottheovertightenthescrews,attachthefullheightbrackettothe
adapter.
2.3InsertingtheAdapterinaPCIExpress(PCIe)Slot
ToinserttheadapterinaPCIExpress(PCIe)slot:
1Shutdowntheserverandunplugitfromthemains.Removetheservercover
toaccessthePCIeslotsintheserver.
2Locatean8laneor16lanePCIeslot(refertotheservermanualifnecessary)
andinserttheSolarflarecard.
3Securetheadapterbracketintheslot.
4Replacethecoverandrestarttheserver.
SolarflareServerAdapterUserGuide
Installation
Issue20 ©SolarflareCommunications2017 35
5Afterrestartingtheserver,thehostoperatingsystemmaypromptyoutoinstall
driversforthenewhardware.ClickCanceloraborttheinstallationandreferto
therelevantchapterinthismanualforhowtoinstalltheSolarflareadapter
driversforyouroperatingsystem.
2.4AttachingaCable(RJ45)
Solarflare10GBASETServerAdaptersconnecttotheEthernetnetworkusinga
coppercablefittedwithanRJ45connector(shownbelow).
SolarflareServerAdapterUserGuide
Installation
Issue20 ©SolarflareCommunications2017 36
RJ45CableSpecifications
Table1belowliststherecommendedcablespecificationsforvariousEthernetport
types.Dependingontheintendeduse,attachasuitablecable.Forexample,to
achieve10Gb/sperformance,useaCategory6cable.Toachievethedesired
performance,theadaptermustbeconnectedtoacompliantlinkpartner,suchasan
IEEE802.3ancompliantgigabitswitch.
2.5AttachingaCable(SFP+)
SolarflareSFP+ServerAdapterscanbeconnectedtothenetworkusingeitheran
SFP+DirectAttachcableorafiberopticcable.
AttachinganSFP+DirectAttachCable
ToattachanSFP+DirectAttachcable:
1Turnthecablesothattheconnectorretentiontabandgoldfingersareonthe
samesideasthenetworkadapterretentionclip.
2Pushthecableconnectorstraightintotheadaptersocketuntilitclicksinto
place.
Table1:RJ45CableSpecification
Porttype Connector MediaType Maximum
Distance
10GBASETRJ45 Category6A 100m(328ft.)
Category6unshieldedtwisted
pairs(UTP)
55m(180ft.)
Category5E 55m(180ft.)
1000BASETRJ45 Category5E,6,6AUTP 100m(328ft.)
100BASETX RJ45 Category5E,6,6AUTP 100m(328ft.)
SolarflareServerAdapterUserGuide
Installation
Issue20 ©SolarflareCommunications2017 37
RemovinganSFP+DirectAttachCable
ToremoveanSFP+DirectAttachcable:
1Pullstraightbackonthereleaseringtoreleasethecableretentiontab.
Alternatively,youcanlifttheretentionclipontheadaptertofreethecableif
necessary.
2Slidethecablefreefromtheadaptersocket.
Attachingafiberopticcable
WARNING:Donotlookdirectlyintothefibertransceiverorcablesasthelaser
beamscandamageyoureyesight.
Toattachafiberopticcable:
1Removeandsavethefiberopticconnectorcover.
2Insertafiberopticcableintotheportsonthenetworkadapterbracketas
shown.Mostconnectorsandportsarekeyedforproperorientation.Ifthe
cableyouareusingisnotkeyed,checktobesuretheconnectorisoriented
properly(transmitportconnectedtoreceiveportonthelinkpartner,andvice
versa).
SolarflareServerAdapterUserGuide
Installation
Issue20 ©SolarflareCommunications2017 38
Removingafiberopticcable
WARNING:Donotlookdirectlyintothefibertransceiverorcablesasthelaser
beamscandamageyoureyesight.
Toremoveafiberopticcable:
1Removethecablefromtheadapterbracketandreplacethefiberoptic
connectorcover.
2Pulltheplasticorwiretabtoreleasetheadapterbracket.
3Holdthemainbodyoftheadapterbracketandremoveitfromtheadapter.
2.6SupportedSFP+Cables
Table2isalistofsupportedSFP+cablesthathavebeentestedbySolarflare.
SolarflareisnotawareofanyissuespreventingtheuseofotherbrandsofSFP+
cables(ofupto5minlength)withSolarflarenetworkadapters.However,only
cablesinthetablebelowhavebeenfullyverifiedandarethereforesupported.
Table2:SupportedSFP+DirectAttachCables
Manufacturer ProductCode Cable Notes
SFN5xxx
SFN6xxx
SFN7xxx
SFN8xxx
Arista CABSFPSFP1M 1m ✔ ✔ ✔ ✔
Arista CABSFPSFP3M 3m ✔ ✔ ✔ ✔
Arista CBL0000602 5m
Cisco SFPH10GBCU1M 1m ✔ ✔ ✔ ✔
Cisco SFPH10GBCU3M 3m ✔ ✔ ✔ ✔
SolarflareServerAdapterUserGuide
Installation
Issue20 ©SolarflareCommunications2017 39
TheSolarflareSFA6902Fadapterhasbeentestedandcertifiedwithdirectattach
cablesupto3minlength.
Cisco SFPH10GBCU5M 5m ✔ ✔ ✔ ✔
HP J9283A/BProcurve 3m ✔ ✔ ✔ ✔
Juniper EXSFP10GEDAC
1m
1m ✔ ✔ ✔ ✔
Juniper EXSFP10GEDAC
3m
3m ✔ ✔ ✔ ✔
Molex 747521101 1m ✔ ✔ ✔ ✔
Molex 747522301 3m ✔ ✔ ✔ ✔
Molex 747523501 5m ✔ ✔ ✔ ✔
Molex 747529093 1m 37096001
/0K585N
✔ ✔ ✔
Molex 747529094 3m 37096101
/0J564N
✔ ✔ ✔
Molex 747529096 5m 37096201
/0H603N
✔ ✔ ✔
Panduit PSF1PXA1M 1m ✔ ✔ ✔ ✔
Panduit PSF1PXA3M 3m ✔ ✔ ✔ ✔
Panduit PSF1PXD5MBU 5m ✔ ✔ ✔ ✔
Siemon SFPP3001 1m ✔ ✔ ✔ ✔
Siemon SFPP3002 2m ✔ ✔ ✔ ✔
Siemon SFPP3003 3m ✔ ✔ ✔ ✔
Siemon SFPP2405 5m ✔ ✔ ✔ ✔
Tyco 20322372D1m ✔ ✔ ✔ ✔
Tyco 203223743m ✔ ✔ ✔ ✔
Table2:SupportedSFP+DirectAttachCables
Manufacturer ProductCode Cable Notes
SFN5xxx
SFN6xxx
SFN7xxx
SFN8xxx
SolarflareServerAdapterUserGuide
Installation
Issue20 ©SolarflareCommunications2017 40
2.7SupportedSFP+10GSROpticalTransceivers
Table3isalistofsupportedSFP+10GSRopticaltransceiversthathavebeentested
bySolarflare.Solarflareisnotawareofanyissuespreventingtheuseofother
brandsof10GSRtransceiverswithSolarflarenetworkadapters.However,only
transceiversinthetablebelowhavebeenfullyverifiedandarethereforesupported.
Table3:SupportedSFP+10GOpticalSRTransceivers
Manufacturer ProductCode Notes
SFN5xxx
SFN6xxx
SFN7xxx
SFN8xxx
Arista SFP10GSR 10G ✔ ✔ ✔
Arista XVR0000202 10G
Avago AFBR703SDZ 10G ✔ ✔ ✔ ✔
Avago AFBR703SDDZ Dualspeed1G/10G
optic.
✔ ✔ ✔
Avago AFBR703SMZ 10G ✔ ✔ ✔
Avago AFBR709SMZSF1 10G
Finisar FTLX8571D3BCL 10G ✔ ✔ ✔ ✔
Finisar FTLX8571D3BCLSL 10G
Finisar FTLX8571D3BCV Dualspeed1G/10G
optic.
✔ ✔ ✔ ✔
Finisar FTLX8574D3BCL 10G ✔ ✔ ✔
HP 456096001 Alsolabeledas
455883B21and
455885001
✔ ✔ ✔ ✔
Intel AFBR703SDZ 10G ✔ ✔ ✔ ✔
JDSU PLRXPLSCS4322N10G ✔ ✔ ✔
JDSU PLRXPLSCS43SF 10G
Juniper AFBR700SDZJU1 10G ✔ ✔ ✔
MergeOptics TRX10GVP2010 10G ✔ ✔ ✔ ✔
Solarflare SFM10GSR 10G ✔ ✔ ✔ ✔
Vorboss VBOPXGSR300 10G ✔ ✔ ✔
SolarflareServerAdapterUserGuide
Installation
Issue20 ©SolarflareCommunications2017 41
2.8SupportedSFP+10GLROpticalTransceivers
Table4isalistofsupportedSFP+10GLRopticaltransceiversthathavebeentested
bySolarflare.Solarflareisnotawareofanyissuespreventingtheuseofother
brandsof10GLRtransceiverswithSolarflarenetworkadapters.However,only
transceiversinthetablebelowhavebeenfullyverifiedandarethereforesupported.
Table4:SupportedSFP+10GLROpticalTransceivers
Manufacturer ProductCode Notes
SFN5xxx
SFN6xxx
SFN7xxx
SFN8xxx
Avago AFCT701SDZ 10Gsinglemode
fiber
✔ ✔ ✔
Finisar FTLX1471D3BCL 10Gsinglemode
fiber
✔ ✔ ✔
SolarflareServerAdapterUserGuide
Installation
Issue20 ©SolarflareCommunications2017 42
2.9QSFP+TransceiversandCables
ThefollowingtablesidentifyQSFP+transceivermodulesandcablestestedby
SolarflarewiththeSFN7000andSFN8000seriesQSP+adapters.Solarflarearenot
awareofanyissuespreventingtheuseofotherbrandsofQSFP+40Gtransceivers
andcableswithSolarflareSFN7000andSFN8000seriesQSFP+adapters.However,
onlyproductslistedinthetablesbelowhavebeenfullyverifiedandaretherefore
supported
SupportedQSFP+40GBASESR4Transceivers
SolarflareFlareonUltraSFN7000seriesandXtremeScaleSFN8x42QSFP+adapters
havebeentestedwiththefollowingQSFP+40GBASESR4opticaltransceiver
modules.
Table5:SupportedQSFP+SR4Transceivers
Manufacturer ProductCode Notes
SFN5xxx
SFN6xxx
SFN7xxx
SFN8x42
Arista AFBR79E4Z Standard100m
(OM3
Multimode
fiber)range.
✔ ✔
Avago AFBR79EADZ
Avago AFBR79EIDZ ✔ ✔
Avago AFBR79EQDZ ✔ ✔
Avago AFBR79EQPZ
Finisar FTL410QE2C
JDSU JQP04SWAA1
JDSU JDSU04SRAB1
Solarflare SFM40GSR4
SolarflareServerAdapterUserGuide
Installation
Issue20 ©SolarflareCommunications2017 43
SupportedQSFP+40GActiveOpticalCables(AOC)
SolarflareFlareonUltraSFN7000seriesandXtremeScaleSFN8x42QSFP+adapters
havebeentestedwiththefollowingQSFP+ActiveOpticalCables(AOC).
SupportedQSFP+40GDirectAttachCables
SolarflareFlareonUltraSFN7000seriesandXtremeScaleSFN8x42QSFP+adapters
havebeentestedwiththefollowingQSFP+DirectAttachCables(DAC).QSFPcables
maynotworkwithallswitches.
Table6:SupportedQSFP+ActiveOpticalCables
Manufacturer ProductCode Notes
SFN5xxx
SFN6xxx
SFN7xxx
SFN8x42
Avago AFBR7QER05Z 3m
Finisar FCBG410QB1C03 3m ✔ ✔
Finisar FCBN410QB1C05 5m
Table7:SupportedQSFP+DirectAttachCables
Manufacturer ProductCode Notes
SFN5xxx
SFN6xxx
SFN7xxx
SFN8x42
Arista CABQQ3M 3m ✔ ✔
Arista CABQQ5M 5m
Cisco QSFPH40GCU3M 3m ✔ ✔
FCI 100930842010LF 1m ✔ ✔
FCI 100930843030LF 3m ✔ ✔
Molex 747571101 1m
Molex 747572101 1m
Molex 747572301 3m✔ ✔
Panduit 40GBASECR4
PQSFPXA3MBU
3m
Siemon QSFP3001 1m
Siemon QSFP3003 3m ✔ ✔
Siemon QSFP2605 5m ✔ ✔
SolarflareServerAdapterUserGuide
Installation
Issue20 ©SolarflareCommunications2017 44
SupportedQSFP+toSFP+BreakoutCables
SolarflareQSFP+toSFP+breakoutcablesenableuserstoconnectSolarflaredual
portQSFP+serverI/OadapterstoworkasaquadportSFP+serverI/Oadapters.The
breakoutcablesofferacosteffectiveoptiontosupportconnectivityflexibilityin
highspeeddatacenterapplications.
Thesehighperformancedirectattachassembliessupport2lanesof10Gb/sper
QSFP+portandareavailableinlengthsof1metersand3meters.The
SOLRQSFP2SFP1M,‐3McopperDACcablesarefullytestedandcompatiblewith
theSolarflareSFN7142QandSFN7042QserverI/Oadapters.Thesecablesare
compliantwiththeSFF8431,SFF8432,SFF8436,SFF8472andIBTAVolume2
Revision1.3specifications.
Table8:SupportedQSFP+toSFP+BreakoutCables
Manufacturer ProductCode Notes
SFN5xxx
SFN6xxx
SFN7xxx
SFN8x42
Solarflare SOLRQSFP2SFP1M 1m
Solarflare SOLRQSFP2SFP3M 3m
Arista QSFP4SFP
CABQS3M
3m
Arista QSFP4SFP
CABQS5M
5m
Mellanox MC2609130003 3m
Panduit PHQ4SFPXA1MBL 1m
Prolabs CU1.0MQSFP2SFP
NS13C
1m
Prolabs CU1.5MQSFP2SFP
NS13C
1.5m
Siemon SFPPQSFP3001 1m
Siemon SFPPQSFP2803 3m
Siemon SFPPQSFP2805 5m
10GTek CABQSFP.4SFPP1M 1m
10GTek CABQSFP.4SFPP3M 3m
10GTek CABQSFP.4SFPP5M 5m
SolarflareServerAdapterUserGuide
Installation
Issue20 ©SolarflareCommunications2017 45
BreakoutcableshavebeentestedwiththeSFN8x42familyofadapters.Testingisnot
completeonother8000seriesadapters
2.10SupportedSFP1000BASETTransceivers
Table9isalistofsupportedSFP1000BASETtransceiversthathavebeentestedby
Solarflare.Solarflareisnotawareofanyissuespreventingtheuseofotherbrands
of1000BASETtransceiverswiththeSolarflarenetworkadapters.However,only
transceiversinthetablebelowhavebeenfullyverifiedandarethereforesupported.
Table9:SupportedSFP1000BASETTransceivers
Manufacturer ProductCode Notes
SFN5xxx
SFN6xxx
SFN7xxx
SFN8xxx
Arista SFP1GBT ✔ ✔ ✔
Avago ABCU5710RZ ✔ ✔ ✔ ✔
Cisco 30141003 ✔ ✔ ✔
Dell FCMJ85213(DL) ✔ ✔ ✔ ✔
Finisar FCLF85213✔ ✔ ✔ ✔
Finisar FCMJ85213✔ ✔ ✔
Finisar FCLF8522P2BTL
HP 453156001
453154B21
✔ ✔ ✔ ✔
3COM 3CSFP93 ✔ ✔ ✔ ✔
SolarflareServerAdapterUserGuide
Installation
Issue20 ©SolarflareCommunications2017 46
2.11Supported1GOpticalTransceivers
Table10isalistofsupported1GtransceiversthathavebeentestedbySolarflare.
Solarflareisnotawareofanyissuespreventingtheuseofotherbrandsof1G
transceiverswithSolarflarenetworkadapters.However,onlytransceiversinthe
tablebelowhavebeenfullyverifiedandarethereforesupported.
2.12SupportedSpeedandMode
SolarflarenetworkadapterssupporteitherQSFP+,SFP,SFP+orBaseTstandards.
OnBaseTadaptersthreespeedsaresupported100Mbps,1Gbpsand10Gbps.The
adaptersuseautonegotiationtoautomaticallyselectthehighestspeedsupported
incommonwiththelinkpartner.
OnSFP+adapterstheSFPmodule(transceiver)determinesthesupportedspeeds,
typicallySFPmodulesonlysupportasinglespeed.SomeSolarflareSFP+adapters
supportdualspeedopticalmodulesthatcanoperateateither1Gbpsor10Gbps.
However,thesemodulesdonotautonegotiatelinkspeedandoperateatthe
maximum(10G)linkspeedunlessexplicitlyconfiguredtooperateatalowerspeed
(1G).
Table10:Supported1GTransceivers
Manufacturer ProductCode Type
SFN5xxx
SFN6xxx
SFN7xxx
SFN8xxx
Avago AFBR5710PZ 1000BaseSX ✔ ✔ ✔
Cisco GLCLHSM 1000BaseLX/LH ✔ ✔ ✔
Cisco 30129901 1000BaseLX
Finisar FTLF8519P2BCL 1000BaseSX ✔ ✔ ✔ ✔
Finisar FTLF8519P3BNL 1000BaseSX ✔ ✔ ✔
Finisar FTLF1318P2BCL 1000BaseLX ✔ ✔ ✔
Finisar FTLF1318P3BTL 1000BaseLX ✔ ✔ ✔ ✔
HP 453153001
453151B21
1000BaseSX ✔ ✔ ✔
SolarflareServerAdapterUserGuide
Installation
Issue20 ©SolarflareCommunications2017 47
ThetablesbelowsummarizesthespeedssupportedbySolarflarenetworkadapters.
100BaseTinaSolarflareadapterbacktoback(nointerveningswitch)configuration
willnotworkandisnotsupported.
Table11:SFN5000,SFN6000,SFN7000andSFN8000seriesSFP+/QSFP+Adapters
SupportedModes Autoneg
speed
Speed Comment
QSFP+direct
attachcables
No 10Gor40G SFN8542,SFN8042,SFN7142Q,
SFN7042Q
QSFP+optical
cables
No 10Gor40G SFN8542,SFN8042,SFN7142Q,
SFN7042Q
SFP+directattach
cable
No 10G
SFP+optical
module(10G)
No 10G
SFPopticalmodule
(1G)
No 1G
SFP+optical
module(10G/1G)
No 10Gor1G Dualspeedmodulesrunatthe
maximumspeed(10G)unless
explicitlyconfiguredtothe
lowerspeed(1G)
SFP1000BASET
module
No 1G Thesemodulessupportonly1G
andwillnotlinkupat100Mbps
Table12:SFN5161TandSFN5121T10GBASETAdapters
SupportedModes Autoneg
speed
Speed Comment
100BaseTYes 100Mbps Typicallytheinterfaceissetto
autonegotiationspeedand
automaticallyselectsthe
highestspeedsupportedin
commonwithitslinkpartner.If
thelinkpartnerissetto
100Mbps,withnoautoneg,the
adapterwilluse“parallel
detection”todetectandselect
100Mbpsspeed.Ifneededany
ofthethreespeedscanbe
explicitlyconfigured
1000BaseTX Yes 1Gbps
10GBaseTYes 10Gbps
SolarflareServerAdapterUserGuide
Installation
Issue20 ©SolarflareCommunications2017 48
2.13LEDStates
TherearetwoLEDsontheSolarflarenetworkadaptertransceivermodule.LED
statesareasfollows
Table13:LEDStates
AdapterType LEDDescription State
QSFP+,SFP/SFP+ Speed Green(solid)atallspeeds
Activity Flashinggreenwhennetworktrafficis
present
LEDsareOFFwhenthereisnolinkpresent
BASETSpeed Green(solid)10Gbps
Yellow(solid)100/1000Mbps
Activity Flashinggreenwhennetworktrafficis
present
LEDsareOFFwhenthereisnolinkpresent
SolarflareServerAdapterUserGuide
Installation
Issue20 ©SolarflareCommunications2017 49
2.14ConfigureQSFP+Adapter
SFN7x42Qadapterscanoperateas2x10GbpsperQSFP+port,oras1x40Gbpsper
QSFP+port.Aconfigurationof1x40Gand2x10Gportsisnotsupported.
Figure1:QSFP+PortConfigurationforSFN7x42Q
TheSolarflare40Gbreakoutcableshaveonly2physicalcables(seeSupported
QSFP+toSFP+BreakoutCablesonpage44).Breakoutcablesfromothersuppliers
mayhave4physicalcables.Whenconnectingathirdpartybreakoutcableintoan
SFN7x42Q40GQSFP+cage(in10Gmode),onlycables1and3willbeactive.
SFN7x42Q
PORT 0
PORT 1
1 x 40g
1 x 40g
SFN7x42Q
PORT 0
PORT 1
sfboot options
port-mode=2x40G
pf-count=1
1 x 10g
g
1 x 10g
1 x 10g
1 x 10g
sfboot options
port-mode=4x10G
pf-count=1
SFN7x42Q Switch
PORT 0 PORT 0
1
3
2
4
PORT 1 PORT 1
1
3
2
4
SolarflareServerAdapterUserGuide
Installation
Issue20 ©SolarflareCommunications2017 50
SFN8x42adapterscanoperateas4x10GbpsonQSFP+port0,oras1x40Gbpsper
QSFP+port.Aconfigurationof1x40Gand2x10Gportsisnotsupported.
Figure2:QSFP+PortConfigurationforSFN8x42
ThesfbootutilityfromtheSolarflareLinuxUtilitiespackage(SF107601LS)isused
toconfigureaSolarflareQSFP+adapterfor10Gor40Goperation.Forexample:
#sfbootportmode=2x40Gpfcount=1
SFN8x42
PORT 0
PORT 1
1 x 40g
1 x 40g
SFN8x42
PORT 0
PORT 1
sfboot options
port-mode=2x40G
pf-count=1
1 x 10g
1
1
x
10
10
g
1 x 10g
1 x 10g
1 x 10g
1
1
x
10
10
1 x 10g
sfboot options
port-mode=4x10G
pf-count=1
SFN8x42 Switch
PORT 0 PORT 0
1
3
2
4
PORT 1 PORT 1
SolarflareServerAdapterUserGuide
Installation
Issue20 ©SolarflareCommunications2017 51
2.15SingleOpticalFiber‐RXConfiguration
TheSolarflareadapterwillsupportareceive(RX)onlyfibercableconfiguration
whentheadapterisrequiredonlytoreceivetraffic,buthavenotransmitlink.This
canbeused,forexample,whentheadapteristoreceivetrafficfromafibertap
device.
Solarflarehavesuccessfullytestedthisconfigurationona10GlinkonSFN5000,
SFN6000,SFN7000andSFN8000seriesadapterswhenthelinkpartnerisconfigured
tobeTXonly(thiswillalwaysbethecasewithafibertap).Someexperimentation
mightberequiredwhensplittingthelightsignaltoachievearatiothatwilldeliver
sufficientsignalstrengthtoallendpoints.
Solarflareadaptersdonotsupportareceiveonlyconfigurationon1Glinks.
2.16SolarflareMezzanineAdapter:SFN8722OCP
TheSolarflareXtremeScaleSFN8722DualPort10GbESFP+PCIe3.1OCPServer
AdapterisanOpenComputeProjectmezzanineadapterforEthernetconnectivity.
TheadaptermeetsthedesignrequirementsoftheOCPMezzanineCard2.0Design
Specification.
1Shutdowntheserverandunplugfromthepowersourcebeforeremovingthe
servercover.
2LocatethemezzanineslotandtheSFP+portslots‐refertotheservermanual
ifnecessary.
3AligntheSFP+cageswiththeportslotsandseattheadapterinthemezzanine
slot.Securetheadaptertothestandoffs.
Figure3:InstallingtheOCPMezzanineAdapterSolarflareMezzanine
Adapters:SFN5814HandSFN5812H
SolarflareServerAdapterUserGuide
Installation
Issue20 ©SolarflareCommunications2017 52
2.17SolarflareMezzanineAdapter:SFN581xH
TheSolarflareSFN5814HQuadPortandSFN5812HDualPortare10GEthernet
MezzanineAdaptersfortheIBMBladeCenter.
SolarflaremezzanineadaptersaresupportedontheIBMBladeCenterE,HandS
chassis,HS22,HS22VandHX5servers.TheIBMBladeCenterbladesupportsasingle
Solarflaremezzanineadapter.
1ThebladeshouldbeextractedfromtheBladeCenterinordertoinstallthe
mezzanineadapter.
2Removethebladetopcoverandlocatethetworetainingpoststowardsthe
rearoftheblade‐(Figure4).RefertotheBladeCentermanualifnecessary
Figure4:InstallingtheMezzanineAdapter
3Hingetheadapterundertheretainingposts,asillustrated,andalignthe
mezzanineportconnectorwiththebackplaneconnectorblock.
SolarflareServerAdapterUserGuide
Installation
Issue20 ©SolarflareCommunications2017 53
4Lowertheadapter,takingcaretoalignthesidepositioning/retainingpostswith
therecessesintheadapter.SeeFigure5.
Figure5:Inpositionmezzanineadapter
5Presstheportconnectorgentlyintotheconnectorblockensuringthatthe
adapterisfirmlyandcorrectlyseatedintheconnectorblock.
6Replacethebladetopcover.
7Whenremovingtheadapterraisethereleasehandle(shownon<Blue
Text>Figure<BlueText>5 )toeasetheadapterupwardsuntilitcanbefreed
fromtheconnectorblock.
SolarflareServerAdapterUserGuide
Installation
Issue20 ©SolarflareCommunications2017 54
2.18SolarflareMezzanineAdapterSFN6832FC61
TheSolarflareSFN6832FC61isaDualPortSFP+are10GbEMezzanineAdaptersfor
theDELLPowerEdgeC6100seriesrackserver.EachDELLPowerEdgenodesupports
asingleSolarflaremezzanineadapter.
1Thenodeshouldbeextractedfromtherackserverinordertoinstallthe
mezzanineadapter.RefertothePowerEdgerackservermanualifnecessary.
Figure6:SFN6832FC61‐Installingintotherackservernode
SolarflareServerAdapterUserGuide
Installation
Issue20 ©SolarflareCommunications2017 55
2SecurethesideretainingbracketasshowninFigure5(topdiagram)
3FitriserPCBcardintotheslotasshowninFigure5(topdiagram).Notethatthe
risercardonlyfitsoneway.
4Offertheadaptertothenodeandensureitliesunderneaththechassiscover.
5Lowertheadapterintopositionmakingsuretoconnecttheadapterslotwith
thetoofthePCBrisercard.
6Securetheadapterusingthesuppliedscrewsatthepositionsshowninthe
diagram.
SolarflareServerAdapterUserGuide
Installation
Issue20 ©SolarflareCommunications2017 56
2.19SolarflareMezzanineAdapterSFN6832FC62
TheSolarflareSFN6832FC61isaDualPortSFP+are10GbEMezzanineAdaptersfor
theDELLPowerEdgeC6200seriesrackserver.EachDELLPowerEdgenodesupports
asingleSolarflaremezzanineadapter.
1Thenodeshouldbeextractedfromtherackserverinordertoinstallthe
mezzanineadapter.RefertothePowerEdgerackservermanualifnecessary.
Figure7:SFN6832FC62‐Installingintotherackservernode
2FitthePCBrisercardtotheundersideconnectorontheadapter.
3Offertheadaptertotherackservernodeensuringitliesunderneaththe
chassiscover.
SolarflareServerAdapterUserGuide
Installation
Issue20 ©SolarflareCommunications2017 57
4LowertoadaptertoconnecttheriserPCBcardintotheslotinthenode.
5Securetheadapterwiththesuppliedscrewsatthepointsshowninthe
diagram.
2.20SolarflarePrecisionTimeSynchronizationAdapters
TheSolarflareSFN8542Plus,SFN8522Plus,SFN80421,SFN7322F,SFN7142Q1,
SFN7124F1,SFN7122F1,SFN7042Q1,SFN7024F1,SFN7022F1andSFN6322F
adapterscangeneratehardwaretimestampsforPTPpacketsinsupportofa
networkprecisiontimeprotocoldeploymentcompliantwiththeIEEE15882008
specification.
CustomersrequiringconfigurationinstructionsfortheseadaptersandSolarflare
PTPinaPTPdeploymentshouldrefertotheSolarflareEnhancedPTPUserGuide
(SF109110CD).
2.21SolarflareApplicationOnload™Engine
TheApplicationOnload™Engine(AOE)SFA7942Qisahalflength,fullheightPCIe
formfactoradaptercombiningtheultralowlatencydualport40GbEadapterwith
anAlteraStratixVFPGA.FordetailsoftheSFA7942QadapterrefertotheSolarflare
ApplicationOnloadUsersGuide(SF115020CD).
TheApplicationOnload™Engine(AOE)SFA6902FisafulllengthPCIeformfactor
adapterthatcombinesanultralowlatencyadapterwithatightlycoupled‘bumpin
thewire’FPGA.Fordetailsofinstallationandconfiguringapplicationsthatrunon
theSFA6902FAOErefertotheSolarflareAOEUser’sGuide(SF108389CD).For
detailsondevelopingcustomapplicationstorunontheFPGArefertotheAOE
FirmwareDevelopmentKitUserGuide(SF108390CD).
1. RequiresanAppFlex™license‐refertoSolarflareAppFlex™TechnologyLicensing.on
page18.
SolarflareServerAdapterUserGuide
Issue20 ©SolarflareCommunications2017 58
3SolarflareAdaptersonLinux
ThischaptercoversthefollowingtopicsontheLinux®platform:
SystemRequirementsonpage59
LinuxPlatformFeatureSetonpage59
SolarflareRPMsonpage61
InstallingSolarflareDriversandUtilitiesonLinuxonpage63
RedHatEnterpriseLinuxDistributionsonpage63
SUSELinuxEnterpriseServerDistributionsonpage64
InstallingDKMSDriverandUtilitiesonUbuntu/DebianServersonpage65
UnattendedInstallationsonpage66
UnattendedInstallation‐RedHatEnterpriseLinuxonpage68
UnattendedInstallation‐SUSELinuxEnterpriseServeronpage69
ConfiguringtheSolarflareAdapteronpage70
SettingUpVLANsonpage73
SettingUpTeamsonpage73
NICPartitioningonpage74
NICPartitioningwithSRIOVonpage78
ReceiveSideScaling(RSS)onpage81
ReceiveFlowSteering(RFS)onpage83
SolarflareAcceleratedRFS(SARFS)onpage84
TransmitPacketSteering(XPS)onpage85
LinuxUtilitiesRPMonpage87
ConfiguringtheBootManagerwithsfbootonpage88
UpgradingAdapterFirmwarewithsfupdateonpage96
LicenseInstallwithsfkeyonpage100
PerformanceTuningonLinuxonpage103
InterruptAffinityonpage113
ModuleParametersonpage123
LinuxethtoolStatisticsonpage125
SolarflareServerAdapterUserGuide
SolarflareAdaptersonLinux
Issue20 ©SolarflareCommunications2017 59
3.1SystemRequirements
RefertoSoftwareDriverSupportonpage17forsupportedLinuxDistributions.
NOTE:ManyLinuxdistributionsincludeaversionoftheSolarflarenetworkadapter
driverthatistakenfromtheupstreamkernel.Thisdrivermightbeoutofdate,and
mightnotsupportthelatestSolarflareadaptersandfeatures.
Toupdatethesupplieddriver,seeInstallingSolarflareDriversandUtilitiesonLinux
onpage63.SeealsotheOSspecificsectionsthatfollow,suchasRedHatEnterprise
LinuxDistributionsonpage63,andSUSELinuxEnterpriseServerDistributionson
page64.
3.2LinuxPlatformFeatureSet
Table14liststhefeaturessupportedbySolarflareadaptersonRedHatandSUSE
Linuxdistributions.
Table14:LinuxFeatureSet
Fault
diagnostics
Supportforcomprehensiveadapterandcablefault
diagnosticsandsystemreports.
•SeeLinuxUtilitiesRPMonpage87
Firmware
updates
SupportforBootROM,Phytransceiverandadapterfirmware
upgrades.
•SeeUpgradingAdapterFirmwarewithsfupdateon
page96
Hardware
Timestamps
SolarflareXtremeScaleSFN8542Plus,SFN8522Plusand
SFN80421adapters,andSolarflareFlareonSFN7322F,
SFN7142Q1,SFN7124F1,SFN7122F1,SFN7042Q1,SFN7024F1,
SFN7022F1andSFN6322Fadapterssupportthehardware
timestampingofallreceivedpackets‐includingPTPpackets.
TheLinuxkernelmustsupporttheSO_TIMESTAMPINGsocket
option(2.6.30+)toallowthedrivertosupporthardware
packettimestamping.Thereforehardwarepacket
timestampingisnotavailableinRHEL5.
Jumboframes SupportforMTUs(MaximumTransmissionUnits)from
1500bytesto9216bytes.
•SeeConfiguringJumboFramesonpage72
SolarflareServerAdapterUserGuide
SolarflareAdaptersonLinux
Issue20 ©SolarflareCommunications2017 60
PXEandUEFI
booting
Supportfordisklessbootingtoatargetoperatingsystemvia
PXEorUEFIboot.
•SeeConfiguringtheBootManagerwithsfbooton
page88
•SeeSolarflareBootManageronpage374
PXEorUEFIbootarenotsupportedforSolarflareadapterson
IBMSystempservers.
ReceiveSide
Scaling(RSS)
SupportforRSSmulticoreloaddistributiontechnology.
•SeeReceiveSideScaling(RSS)onpage81.
ARFS LinuxAcceleratedReceiveFlowSteering.
Improvelatencyandreducejitterbysteeringpacketstothe
corewhereareceivingapplicationisrunning.
SeeReceiveFlowSteering(RFS)onpage83.
SARFS SolarflareAcceleratedRFS.
SeeSolarflareAcceleratedRFS(SARFS)onpage84.
TransmitPacket
Steering(XPS)
SupportedonLinux2.6.38andlaterkernels.Selectsthe
transmitqueuewhentransmittingonmultiqueuedevices.
SeeTransmitPacketSteering(XPS)onpage85.
NICPartitioning EachphysicalportonanSFN7000orSFN8000seriesadapter
canbeexposedasupto8PCIePhysicalFunctions(PF).
SeeNICPartitioningonpage74.
SRIOV SupportforLinuxKVMSRIOV.
•SeeSRIOVVirtualizationUsingKVMonpage326
SRIOVisnotsupportedforSolarflareadaptersonIBM
Systempservers.
Taskoffloads SupportforTCPSegmentationOffload(TSO),LargeReceive
Offload(LRO),andTCP/UDP/IPchecksumoffloadfor
improvedadapterperformanceandreducedCPUprocessing
requirements.
•SeeConfiguringTaskOffloadingonpage72
TXPIO UseofprogrammedIObuffersinordertoreducelatencyfor
smallpackettransmission.
•SeeTXPIOonpage110.
Table14:LinuxFeatureSet
SolarflareServerAdapterUserGuide
SolarflareAdaptersonLinux
Issue20 ©SolarflareCommunications2017 61
3.3SolarflareRPMs
SolarflaresupplyRPMpackagesinthefollowingformats:
•DKMS
•SourceRPM
DKMSRPM
DynamicKernelModuleSupport(DKMS)isaframeworkwheredevicedriversource
canresideoutsidethekernelsourcetree.Itsupportsaneasymethodtorebuild
moduleswhenkernelsareupgraded.
Executethecommanddkms‐‐versiontodeterminewhetherDKMSisinstalled.
ToinstalltheSolarflaredriverDKMSpackageexecutethefollowingcommand:
rpm‐isfcdkms<version>.noarch.rpm
Loadthedriver:
modprobesfc
Teaming Improveserverreliabilityandbandwidthbycombining
physicalports,fromoneormoreSolarflareadapters,intoa
team,havingasingleMACaddressandwhichfunctionasa
singleportprovidingredundancyagainstasinglepointof
failure.
•SeeSettingUpTeamsonpage73
VirtualLANs
(VLANs)
SupportformultipleVLANsperadapter.
•SeeSettingUpVLANsonpage73
1. RequiresanAppFlexlicense‐fordetailsrefertoSolarflareAppFlex™Technology
Licensing.onpage18.
Table14:LinuxFeatureSet
SolarflareServerAdapterUserGuide
SolarflareAdaptersonLinux
Issue20 ©SolarflareCommunications2017 62
BuildingtheSourceRPM
TheseinstructionsmaybeusedtobuildasourceRPMpackageforusewithLinux
distributionsorkernelversionswhereDKMSpackagesarenotsuitable.
NOTE:RPMscanbeinstalledformultiplekernelversions.
1Kernelheadersfortherunningkernelmustbeinstalledat/lib/modules/
<kernelversion>/build.OnRedHatsystems,installtheappropriate
kernelsmpdevelorkerneldevelpackage.OnSUSEsystemsinstallthe
kernelsourcepackage.
2TobuildasourceRPMfortherunningkernelversionfromthesourceRPM,
enterthefollowingatthecommandline:
rpmbuild‐‐rebuild<package_name>
wherepackage_nameisthefullpathtothesourceRPM.
3Tobuildforadifferentkerneltotherunningsystem,enterthefollowing
command:
rpmbuild‐‐define'kernel<kernelversion>'‐‐rebuild<package_name>
4InstalltheresultingRPMbinarypackage,asdescribedinInstallingSolarflare
DriversandUtilitiesonLinux
5Loadthedriver:
modprobesfc
NOTE:ThelocationofthegeneratedRPMisdependentonthedistributionand
oftentheversionofthedistributionandtheRPMbuildtools.
TheRPMbuildprocessshouldprintoutthelocationoftheRPMtowardstheendof
thebuildprocess,butitcanbehardtofindamongsttheotheroutput.
TypicallytheRPMwillbeplacedin/usr/src/<dir>/RPMS/<arch>/,where<dir>
isdistributionspecific.PossiblefoldersincludeRedHat,packagesorextra.The
RPMfilewillbenamedusingthesameconventionastheSolarflareprovidedpre
builtbinaryRPMs.
Thecommand:find/usr/src‐name"*sfc*.rpm”willlistthelocationsofall
SolarflareRPMs.
SolarflareServerAdapterUserGuide
SolarflareAdaptersonLinux
Issue20 ©SolarflareCommunications2017 63
3.4InstallingSolarflareDriversandUtilitiesonLinux
RedHatEnterpriseLinuxDistributionsonpage63
SUSELinuxEnterpriseServerDistributionsonpage64
LinuxdriversforSolarflareareavailableinDKMSandsourceRPMpackages.The
sourceRPMcanbeusedtobuildbinaryRPMsforawideselectionofdistributions
andkernelvariants.ThissectiondetailshowtoinstalltheresultantbinaryRPM.
SolarflarerecommendusingDKMSRPMsiftheDKMSframeworkisavailable.See
DKMSRPMonpage61formoredetails.
NOTE:TheSolarflareadaptershouldbephysicallyinstalledinthehostcomputer
beforeinstallingthedriver.Theusermusthaverootpermissionstoinstallthe
adapterdrivers.
3.5RedHatEnterpriseLinuxDistributions
TheseinstructionscoverinstallationandconfigurationoftheSolarflarenetwork
adapterdriversonRedHatEnterpriseLinuxServer.RefertoSoftwareDriverSupport
onpage17fordetailsofsupportedLinuxdistributions.
RefertoBuildingtheSourceRPMonpage62fordirectionsoncreatingthebinary
RPM.
1InstalltheRPMs:
#
rpm‐ivhkernelmodulesfcRHEL62.6.32279.el6.x86_643.3.0.62621.x86_64.rpm
2Makethenewnetworksettings.
SolarflarerecommendusingtheNetworkManagerserviceandassociatedGUI
tools.Formoreinformationaboutthisrefertohttps://wiki.gnome.org/
NetworkManager.
3Applythenewnetworksettings.
IfyouareusingtheNetworkManagerserviceandassociatedGUItools,youwill
needtoreboot.Alternativelyyoucanrestartthenetworkingservice,bytyping
thefollowingbeforethenewSolarflareinterfacecanbeused:
#servicenetworkrestart
Variousothertoolsthatcanbeusedforconfiguringnetworkadapters.Seethe
documentationsuppliedwiththetool.
SolarflareServerAdapterUserGuide
SolarflareAdaptersonLinux
Issue20 ©SolarflareCommunications2017 64
3.6SUSELinuxEnterpriseServerDistributions
TheseinstructionscoverinstallationandconfigurationoftheSolarflareNetwork
AdapterdriversonSUSELinuxEnterpriseServer.RefertoSoftwareDriverSupport
onpage17fordetailsofsupporteddistributions.
RefertoBuildingtheSourceRPMonpage62fordirectionsoncreatingthebinary
RPM.
1TheSolarflaredriversarecurrentlyclassifiedas'unsupported'bySUSE
EnterpriseLinux10and11.ToallowunsupporteddriverstoloadinSLES10,edit
thefollowingfile:
/etc/sysconfig/hardware/config
Findtheline:
LOAD_UNSUPPORTED_MODULES_AUTOMATICALLY=no
andchangenotoyes.
ForSLES11,editthelastlinein/etc/modprobe.d/unsupportedmodulesto:
allow_unsupported_modules1
2InstalltheRPMs:
#
rpm‐ivhkernelmodulesfc2.6.57.244smp2.1.01110.sf.1.SLES9.i586.rpm
3RunYaSTtoconfiguretheSolarflareNetworkAdapter.Whenyouselectthe
EthernetController,theConfigurationNamewilltakeoneofthefollowing
forms:
‐ ethbuspcidddd:dd:dd.NwhereNiseither0or1.
‐ ethid00:0F:53:XX:XX:XX
Onceconfigured,theConfigurationNameforthecorrectEthernetController
willchangetothesecondform,andanethXinterfacewillappearonthehost.
IftheincorrectEthernetControllerischosenandconfigured,thenthe
ConfigurationNamewillremainasethbuspcidddd:dd:dd.1after
configurationbyYaST,andanethXinterfacewillnotappearonthesystem.In
thiscase,youshouldremovetheconfigurationforthisEthernetController,and
configuretheotherEthernetControllerofthepair.
SolarflareServerAdapterUserGuide
SolarflareAdaptersonLinux
Issue20 ©SolarflareCommunications2017 65
3.7InstallingDKMSDriverandUtilitiesonUbuntu/Debian
Servers
SolarflarerecommendthattheDKMSdriverpackageisinstalledontheUbuntu
serverandNOTthesourceRPMpackage.Onloadusersonlyneedtoinstallthe
Onloaddistributionwhichincludestheadapterdriver.
Remove‘intree’Driver
The‘intree’driveristheSolarflaredriverincludedintheOSdistribution.
IftheOS‘intree’driverisinstalledonthesystem.Thiscanberemovedbefore
installinganewerDKMSdriver.
1Toidentifyifthe‘intree’driverisbeingused:
#ethtool‐i<solarflareinterface>
driver:sfc
version:4.0(thismightalsobethe4.1driver)
2Toremovethe‘intree’driverandrebuildtheinitramfs‐sothatthe‘intree’
driverdoesnotautomaticallyreloadfollowingreboot:
#find/lib/modules/$(uname‐r)‐name'sfc*.ko'|xargsrm–rf
#rmmodsfc
#updateinitramfs‐u‐k$(uname‐r)
NetDriverDKMS
NOTE:dkmsmustbeinstalledontheserver.Tocheck,runthefollowingcommand:
#dkms‐version
TheSolarflarenetdriverDKMSpackage(SF104979LS)isavailablefrom:
https://support.solarflare.com/
1DownloadtheDKMSsourcepackageSF104979LSandunziponthetarget
server.
2Createthe.debfile:
sudoaliencsfcdkms<version>.sf.1.noarch.rpm
Thiscommandgeneratesthesfcdkms_<version>_all.debfile.
The‐coptionisrequiredtoconvertsourcescriptsandbuildthedriver.
3Installthedebfile:
sudodpkg–i‐dkms_<version>_all.deb
4Reloadthesfcdriver:
modprobe–rsfc
modprobesfc
SolarflareServerAdapterUserGuide
SolarflareAdaptersonLinux
Issue20 ©SolarflareCommunications2017 66
Utilities
TheSolarflareLinuxUtilitiespackage(SF107601LS)isavailablefrom:
https://support.solarflare.com/
1Downloadandunzipthepackageonthetargetserver.
2Createthe.debfile:
sudoaliensfutils<version>.x86_64.rpm
Thiscommandgeneratesthesfutils_<version>_amd64.debfile.
3Installthedebfile:
sudodpkg‐isfutils_<version>_amd64.deb
4Utilitiessfupdate,sfkey,sfctoolandsfbootareavailableontheserver.
3.8UnattendedInstallations
BuildingDriversandRPMsforUnattendedInstallation
Linuxunattendedinstallationrequiresbuildingtwodrivers:
•AminimalinstallationSolarflaredriverthatonlyprovidesnetworkingsupport.
Thisdriverisusedfornetworkaccessduringtheinstallationprocess.
•AnRPMthatincludesfulldriversupport.ThisRPMisusedtoinstalldriversin
theresultantLinuxinstallation.
Figure8:UnattendedInstallationRPM
Figure8showshowtheunattendedinstallationprocessworks.
1BuildaminimalSolarflaredriverneededforuseintheinstallationkernel
(KernelAinthediagramabove).Thisisachievedbydefiningsfc_minimal”to
rpmbuild.Thismacrodisableshardwaremonitoring,MTDsupport(usedfor
accesstotheadaptersflash),I2Canddebugfs.Thisresultsinadriverwithno
dependenciesonothermodulesandallowsnetworkingsupportfromthe
driverduringinstallation.
SolarflareServerAdapterUserGuide
SolarflareAdaptersonLinux
Issue20 ©SolarflareCommunications2017 67
#asnormaluser
$mkdir‐p/tmp/rpm/BUILD
$rpm‐isfc<ver>1.src.rpm
$rpmbuild‐bc‐D'sfc_minimal=1'‐D'kernel=<installerkernel>'\
/tmp/rpm/SPECS/sfc.spec
2TheSolarflareminimaldriversfc.kocanbefoundin/tmp/rpm/BUILD/sfc
<ver>/linux_net/sfc.ko.Integratethisminimaldriverintoyourinstaller
kernel,eitherbycreatingadriverdiskincorporatingthisminimaldriverorby
integratingthisminimaldriverintoinitrd.
3BuildafullbinaryRPMforyourTargetkernelandintegratethisRPMintoyour
Target(KernelB).
DriverDisksforUnattendedInstallations
Table15belowidentifiesthevariousstagesofanunattendedinstallationprocess:
Table15:InstallationStages
InControl StagesofBoot Setupneeded
BIOS PXEcodeonthe
adapterruns.
AdaptermustbeinPXEboot
mode.SeeSolarflareBoot
Manageronpage374.
SFBootROM(PXE) DHCPrequestfromPXE
(SFBootROM).
DHCPserverfilenameand
nextserveroptions.
SFBootROM(PXE) TFTPrequestfor
filenametonextserver,
e.g.pxelinux.0
TFTPserver.
pxelinux TFTPretrievalof
pxelinuxconfiguration.
pxelinuxconfigurationon
TFTPserver.
pxelinux TFTPmenuretrievalof
Linuxkernelimage
initrd.
pxelinuxconfiguration
Kernel,kernelcommand,
initrd
Linuxkernel/installer Installerretrieves
kickstartconfiguration,
e.g.viaHTTP.
Kickstart/AutoYaST
configuration.
TargetLinuxkernel kernelreconfigures
networkadapters.
DHCPserver.
SolarflareServerAdapterUserGuide
SolarflareAdaptersonLinux
Issue20 ©SolarflareCommunications2017 68
3.9UnattendedInstallation‐RedHatEnterpriseLinux
DocumentationforpreparingforaRedHatEnterpriseLinuxnetworkinstallationcan
befoundat:
https://access.redhat.com/documentation/enUS/Red_Hat_Enterprise_Linux/6/
html/Installation_Guide/
https://access.redhat.com/documentation/enUS/Red_Hat_Enterprise_Linux/7/
html/Installation_Guide/
TheprerequisitesforaNetworkKickstartinstallationare:
•RedHatEnterpriseLinuxinstallationmedia.
•AWebserverand/orFTPServerfordeliveryoftheRPMsthataretobe
installed.
•ADHCPserverforIPaddressassignmentsandtolaunchPXEBoot.
•ATFTPserverfordownloadofPXEBootcomponentstothemachinesbeing
kickstarted.
•TheBIOSonthecomputerstobeKickstartedmustbeconfiguredtoallowa
networkboot.
•ABootCDROMorflashmemorythatcontainsthekickstartfileoranetwork
locationwherethekickstartfilecanbeaccessed.
•ASolarflaredriverdisk.
UnattendedRedHatEnterpriseLinuxinstallationsareconfiguredwithKickstart.The
documentationforKickstartcanbefoundat:
https://access.redhat.com/documentation/enUS/Red_Hat_Enterprise_Linux/6/
html/Installation_Guide/chkickstart2.html
https://access.redhat.com/documentation/enUS/Red_Hat_Enterprise_Linux/7/
html/Installation_Guide/chapkickstartinstallations.html
ToinstallRedHatEnterpriseyouneedthefollowing:
1Amodifiedinitrd.imgfilewithamendedmodules.aliasandmodules.dep
whichincorporatestheSolarflareminimaldriverfortheinstallationkernel.
Findcurrentaliaseswiththemodinfocommand:
modinfosfc|grepalias
Thenaddthealiasesfoundtothemodules.aliasfile:
pci:v00001924d00001A03sv*sd*bc*sc*i*
pci:v00001924d00000A03sv*sd*bc*sc*i*
pci:v00001924d00001923sv*sd*bc*sc*i*
pci:v00001924d00000923sv*sd*bc*sc*i*
pci:v00001924d00001903sv*sd*bc*sc*i*
pci:v00001924d00000903sv*sd*bc*sc*i*
pci:v00001924d00000813sv*sd*bc*sc*i*
pci:v00001924d00000803sv*sd*bc*sc*i*
SolarflareServerAdapterUserGuide
SolarflareAdaptersonLinux
Issue20 ©SolarflareCommunications2017 69
2Identifythedriverdependenciesusingthemodinfocommand:
modinfo./sfc.ko|grepdepends
depends:i2ccore,mii,hwmon,hwmonvid,i2calgobitmtdcoremtdpart
Allmoduleslistedasdependsmustbepresentintheinitrdfileimage.In
additiontheusershouldbeawareoffurtherdependencieswhichcanbe
resolvedbyaddingthefollowinglinestothemodules.depfile:
sfc:i2ccoremiihwmonhwmonvidi2calgobitmtdcoremtdpart1
i2calgobit:i2ccore
mtdpart:mtdcore
3AconfiguredkickstartfilewiththeSolarflareDriverRPMmanuallyaddedtothe
%Postsection.Forexample:
%post
/bin/mount‐oro<IPAddressofInstallationserver>:/<pathto
locationdirectorycontainingSolarflareRPM>/mnt
/bin/rpm‐Uvh/mnt/<filenameofSolarflareRPM>
/bin/umount/mnt
3.10UnattendedInstallation‐SUSELinuxEnterpriseServer
UnattendedSUSELinuxEnterpriseServerinstallationsareconfiguredwith
AutoYaST.ThedocumentationforAutoYaSTcanbefoundat:
https://www.suse.com/documentation/sles11/book_autoyast/data/
book_autoyast.html
https://www.suse.com/documentation/sles12/book_autoyast/data/
book_autoyast.html
TheprerequisitesforaNetworkAutoYaSTinstallationare:
•SUSELinuxEnterpriseinstallationmedia.
•ADHCPserverforIPaddressassignmentsandtolaunchPXEBoot.
•ANFSorFTPservertoprovidetheinstallationsource.
•ATFTPserverforthedownloadofthekernelbootimagesneededtoPXEBoot.
•AbootserveronthesameEthernetsegment.
•AninstallserverwiththeSUSELinuxEnterpriseServerOS.
•AnAutoYaSTconfigurationserverthatdefinesrulesandprofiles.
•AconfiguredAutoYaSTProfile(controlfile).
1. ForRedHatEnterpriseLinuxfromversion5.5addmdiotothisline.
SolarflareServerAdapterUserGuide
SolarflareAdaptersonLinux
Issue20 ©SolarflareCommunications2017 70
FurtherReading
•SUSELinuxEnterpriseServerremoteinstallation:
https://www.suse.com/documentation/sles11/book_sle_deployment/data/
cha_deployment_remoteinst.html
https://www.suse.com/documentation/sles12/book_sle_deployment/data/
cha_deployment_remoteinst.html
SUSEinstallwithPXEBoot:
https://www.suse.com/documentation/sles11/book_sle_deployment/data/
sec_deployment_remoteinst_boot.html#sec_deployment_remoteinst_boot_
pxe
https://www.suse.com/documentation/sles12/book_sle_deployment/data/
sec_deployment_remoteinst_boot.html#sec_deployment_remoteinst_boot_
pxe
3.11ConfiguringtheSolarflareAdapter
EthtoolisastandardLinuxtoolthatyoucanusetoqueryandchangeEthernet
adaptersettings.Ethtoolcanbedownloadedfromhttp://sourceforge.net/projects/
gkernel/files/ethtool/.
Thegeneralcommandforethtoolisasfollows:
ethtool<option><ethX>
whereXistheidentifieroftheinterface.Rootaccessisrequiredtoconfigure
adaptersettings.
HardwareTimestamps
TheSolarflareFlareonSFN7000andXtremeScaleSFN8000seriesadapterscan
supporthardwaretimestampingforallreceivednetworkpackets.
TheLinuxkernelmustsupporttheSO_TIMESTAMPINGsocketoption(2.6.30+)
thereforehardwarepackettimestampingisnotsupportedonRHEL5.
FormoreinformationaboutusingthekerneltimestampingAPI,usersshouldrefer
totheLinuxdocumentation:http://lxr.linux.no/linux/Documentation/networking/
timestamping.txt
SolarflareServerAdapterUserGuide
SolarflareAdaptersonLinux
Issue20 ©SolarflareCommunications2017 71
ConfiguringSpeedandModes
Solarflareadaptersbydefaultautomaticallynegotiatetheconnectionspeedtothe
maximumsupportedbythelinkpartner.
•Onthe10GBASETadapters“autoinstructstheadaptertonegotiatethe
highestspeedsupportedincommonwithitslinkpartner.
•OnSFP+adapters,“autoinstructstheadaptertousethehighestlinkspeed
supportedbytheinsertedSFP+module.
On10GBASETandSFP+adapters,anyothervaluespecifiedwillfixthelinkatthat
speed,regardlessofthecapabilitiesofthelinkpartner,whichmayresultinan
inabilitytoestablishthelink.DualspeedSFP+modulesoperateattheirmaximum
(10G)linkspeedunlessexplicitlyconfiguredtooperateatalowerspeed(1G).
Thefollowingcommandsdemonstrateethtooltoconfigurethenetworkadapter
Ethernetsettings.
• Identifyinterfaceconfigurationsettings:
ethtoolethX
•Setlinkspeed:
ethtool‐sethXspeed1000|100
•Toreturntheconnectionspeedtothedefaultautonegotiate,enter:
ethtool‐s<ethX>autonegon
• Configureautonegotiation:
ethtool‐sethXautoneg[on|off]
•Setautonegotiationadvertisedspeed1G:
ethtool‐sethXadvertise0x20
•Setautonegotiationadvertisedspeed10G:
ethtool‐sethXadvertise0x1000
•Setautonegotiationadvertisedspeeds1Gand10G:
ethtool‐sethXadvertise0x1020
• Identifyinterfaceautonegotiationpauseframesetting:
ethtool‐aethX
• Configureautonegotiationofpauseframes:
ethtool‐AethXautonegon[rxon|off][txon|off]
NOTE:Duetoalimitationinethtool,whenautonegotiationisenabled,theuser
mustspecifybothspeedandduplexmodeorspeedandsetanadvertisemask
otherwisespeedconfigurationwillnotfunction.
SolarflareServerAdapterUserGuide
SolarflareAdaptersonLinux
Issue20 ©SolarflareCommunications2017 72
ConfiguringTaskOffloading
Solarflareadapterssupporttransmit(Tx)andreceive(Rx)checksumoffload,aswell
asTCPsegmentationoffload.Toensuremaximumperformancefromtheadapter,
alltaskoffloadsshouldbeenabled,whichisthedefaultsettingontheadapter.For
moreinformation,seePerformanceTuningonLinuxonpage103.
TochangeoffloadsettingsforTxandRx,usetheethtoolcommand:
ethtool‐‐offload<ethX>[rxon|off][txon|off]
ConfiguringReceive/TransmitRingBufferSize
BydefaultreceiveandtransmitringbuffersontheSolarflareadaptersupport1024
descriptors.Theusercanidentifyandreconfigureringbuffersizesusingtheethtool
command.
Toidentifythecurrentringsize:
ethtool‐gethX
TosetthenewtransmitorreceiveringsizetovalueN
ethtool‐GethX[rxN|txN]
Theringbuffersizemustbeavaluebetween128and4096.OntheSFN7000and
SFN8000seriesadaptersthemaximumTXbuffersizeisrestrictedto2048.Buffer
sizecanalsobesetdirectlyinthemodprobe.conffileoraddtheoptionslinetoa
fileunderthe/etc/modprobe.ddirectorye.g.
optionssfcrx_ring=4096
UsingthemodprobemethodsetsthevalueforallSolarflareinterfaces.Thenreload
thedriverfortheoptiontobecomeeffective:
modprobe‐rsfc
modprobesfc
ConfiguringJumboFrames
Solarflareadapterssupportframesizesfrom1500bytesto9216bytes.Forexample,
tosetanewframesize(MTU)of9000bytes,enterthefollowingcommand:
ifconfig<ethX>mtu9000
Tomakethechangespermanent,editthenetworkconfigurationfilefor<ethX>;for
example,/etc/sysconfig/networkscripts/ifcfgeth1andappendthe
followingconfigurationdirective,whichspecifiesthesizeoftheframeinbytes:
MTU=9000
SolarflareServerAdapterUserGuide
SolarflareAdaptersonLinux
Issue20 ©SolarflareCommunications2017 73
3.12SettingUpVLANs
VLANsofferamethodofdividingonephysicalnetworkintomultiplebroadcast
domains.Inenterprisenetworks,thesebroadcastdomainsusuallymatchwithIP
subnetboundaries,sothateachsubnethasitsownVLAN.TheadvantagesofVLANs
include:
•Performance
•Easeofmanagement
•Security
•Trunks
•Youdon'thavetoconfigureanyhardwaredevice,whenphysicallymovingyour
servertoanotherlocation.
TosetupVLANs,consultthefollowingdocumentation:
•ToconfigureVLANsonSUSELinuxEnterpriseServer,see:
http://www.novell.com/support/viewContent.do?externalId=3864609
ToconfiguretaggedVLANtrafficonlyonRedHatEnterpriseLinux,see:
http://kbase.redhat.com/faq/docs/DOC8062
ToconfiguremixedVLANtaggedanduntaggedtrafficonRedHatEnterprise
Linux,see:
http://kbase.redhat.com/faq/docs/DOC8064
3.13SettingUpTeams
Teamingnetworkadapters(networkbonding)allowsanumberofphysicaladapters
toactasone,virtualadapter.Teamingnetworkinterfaces,fromthesameadapter
orfrommultipleadapters,createsasinglevirtualinterfacewithasingleMAC
address.
Thevirtualadapterorvirtualinterfacecanassistinloadbalancingandproviding
failoverintheeventofphysicaladapterorportfailure.
TeamingconfigurationsupportprovidedbytheLinuxbondingdriverincludes:
•802.3adDynamiclinkaggregation
•Staticlinkaggregation
•FaultTolerant
Tosetupanadapterteam,consultthefollowingdocumentation:
• General:
http://www.kernel.org/doc/Documentation/networking/bonding.txt
RHEL5:
SolarflareServerAdapterUserGuide
SolarflareAdaptersonLinux
Issue20 ©SolarflareCommunications2017 74
http://www.redhat.com/docs/enUS/Red_Hat_Enterprise_Linux/5.4/html/
Deployment_Guide/s2modulesbonding.html
RHEL6:
http://docs.redhat.com/docs/enUS/Red_Hat_Enterprise_Linux/6/html/
Deployment_Guide/s2networkscriptsinterfaceschan.html
SLES:
http://www.novell.com/documentation/sles11/book_sle_admin/data/
sec_basicnet_yast.html#sec_basicnet_yast_netcard_man
3.14NICPartitioning
NICPartitioningisafeaturesupportedonSolarflareadaptersstartingwiththe
SFN7000series.BypartitioningtheNIC,eachphysicalnetworkportcanbeexposed
tothehostasmultiplePCIePhysicalFunctions(PF)witheachhavingaunique
interfacenameanduniqueMACaddress.
WhentheSolarflareNETdriver(sfc.ko)isloadedinthehost,eachPFisbackedbya
virtualadapterconnectedtoavirtualport.Aswitchingfunctionsupportsthe
transportofnetworktrafficbetweenvirtualports(vport)andthephysicalport.
Partitioningisparticularlyusefulwhen,forexample,splittingasingle40GbE
interfaceintomultiplePFs.
•Upto16PFsand16MACaddressesaresupportPERADAPTER.
•Ona10GbEdualportadaptereachphysicalportcanbeexposedasamaximum
8PFs.
•Ona40GbEdualportadapter(in2*40Gmode)eachphysicalportcanbe
exposedasamaximum8PFs.
•Ona40GbEdualportadapter(in4*10Gmode)eachphysicalportcanbe
exposedasamaximum4PFs.
SolarflareServerAdapterUserGuide
SolarflareAdaptersonLinux
Issue20 ©SolarflareCommunications2017 75
NICPartitioningWithoutVLANs
Figure9:NICPartitioning‐withoutVLANs
• ConfiguredwithoutVLANs,allPFsareinthesameEthernetlayer2broadcast
domaini.e.apacketbroadcastfromanyonePFwouldbereceivedbyallother
PFs.
•Transmittedpacketsgodirectlytothewire.PacketssentbetweenPFsare
routedthroughthelocalTCP/IPstackloopbackinterfacewithouttouchingthe
sfcdriver.
• ReceivedbroadcastpacketsarereplicatedtoallPFs.
• Receivedmulticastpacketsaredeliveredtoeachsubscriber.
• ReceivedunicastpacketsaredeliveredtothePFwithamatchingMACaddress.
BecausetheTCP/IPstackhasmultiplenetworkinterfacesonthesame
broadcastdomain,thereisalwaysthepossibilitythatanyinterfacecould
respondtoanARPrequest.Toavoidthistheusershouldusearp_ignore=2to
avoidARPcachepollutionensuringthatARPresponsesareonlysentfroman
interfaceifthetargetIPaddressintheARPrequestmatchestheinterface
addresswithbothsender/receiverIPaddressesinthesamesubnet.
•Tosetarp_ignoreforthecurrentsession:
echo2>/proc/sys/net/ipv4/conf/all/arp_ignore
•Tosetarp_ignorepermanently(doesnotaffectthecurrentsession),addthe
followinglinetothe/etc/sysctl.conffile:
net.ipv4.conf.all.arp_ignore=2
SolarflareServerAdapterUserGuide
SolarflareAdaptersonLinux
Issue20 ©SolarflareCommunications2017 76
•TheMUXERfunctionisalayer2switchingfunctionforreceivedtrafficenabled
inadapterfirmware.WhentheOSdeliverstraffictolocalinterfacesviathe
loopbackinterface,theMUXERactsasalayer2switchforbothtransmitand
receive.
VLANSupport
WhenPFsareconfiguredwithVLANtagseachPFmustbeinadifferentVLAN.The
MUXERfunctionactsasaVLANaggregatorsuchthattransmittedpacketsaresent
tothewireandreceivedpacketsaredemultiplexedbasedontheVLANtags.VLAN
tagsareadded/strippedbytheadapterfirmwaretransparenttotheOSanddriver.
VLANtagscanbeassignedwhenPFsareenabledusingthesfbootcommand.A
singlePFcanbeassignedVLANtag0allowingittoreceiveuntaggedtraffic.
#sfbootswitchmode=partitioningpfcount=3pfvlan=0,200,300
ThefirstVLANIDinthepfvlancommaseparatedlistisassignedtothefirstPFofthe
physicalportandthereaftertagsareassignedtoPFsinlowestMACaddressorder.
Figure10:NICPartitioning‐VLANSupport
NICPartitioningConfiguration
Upto16PFsand16MACaddressesaresupportedperadapter.ThePFcountvalue
appliestoallphysicalports.Portscannotbeconfiguredindividually.
1EnsuretheSolarflareadapterdriver(sfc.ko)isinstalledonthehost.
2Thesfbootutility(pfcount)fromtheSolarflareLinuxUtilitiespackage
(SF107601LS)isusedtopartitionphysicalinterfacestotherequirednumber
ofPFs.
SolarflareServerAdapterUserGuide
SolarflareAdaptersonLinux
Issue20 ©SolarflareCommunications2017 77
3Topartitionallports(exampleconfigures4PFsperport):
#sfbootswitchmode=partitioningpfcount=4
Solarflarebootconfigurationutility[v4.5.0]
CopyrightSolarflareCommunications20062014,Level5Networks20022005
eth2:
BootimageOptionROMonly
LinkspeedNegotiatedautomatically
Linkupdelaytime5seconds
Bannerdelaytime2seconds
Bootskipdelaytime5seconds
BoottypeDisabled
PhysicalFunctionsperport4
MSIXinterruptlimit32
NumberofVirtualFunctions0
VFMSIXinterruptlimit8
Firmwarevariantfullfeature/virtualization
InsecurefiltersDisabled
MACspoofingDisabled
VLANtagsNone
SwitchmodePartitioning
Acoldrebootoftheserverisrequiredforsfbootchangestobeeffective.
4FollowingrebooteachPFwillbevisibleusingthelspcicommand:
#lspci‐d1924:
07:00.0Ethernetcontroller:SolarflareCommunicationsDevice0903(rev01)
07:00.1Ethernetcontroller:SolarflareCommunicationsDevice0903(rev01)
07:00.2Ethernetcontroller:SolarflareCommunicationsDevice0903(rev01)
07:00.3Ethernetcontroller:SolarflareCommunicationsDevice0903(rev01)
07:00.4Ethernetcontroller:SolarflareCommunicationsDevice0903(rev01)
07:00.5Ethernetcontroller:SolarflareCommunicationsDevice0903(rev01)
07:00.6Ethernetcontroller:SolarflareCommunicationsDevice0903(rev01)
07:00.7Ethernetcontroller:SolarflareCommunicationsDevice0903(rev01)
‐ Ifmorethan8functionsarerequiredtheservermustsupportARI‐see
AlternativeRoutingIDInterpretation(ARI)onpage328.
‐ Solarflarealsorecommendsettingpci=reallocinthekernel
configurationgrubfile‐refertoKernelConfigurationonpage328for
details.
5Toidentifywhichphysicalportagivennetworkinterfaceisusing:
#cat/sys/class/net/eth<N>/device/physical_port
6IftheSolarflaredriverisloaded,PFswillalsobevisibleusingtheifconfig
commandwhereeachPFislistedwithauniqueMACaddress.
SolarflareServerAdapterUserGuide
SolarflareAdaptersonLinux
Issue20 ©SolarflareCommunications2017 78
SoftwareRequirements
Theservermusthavethefollowing(minimum)netdriverandfirmwareversionsto
enableNICPartitioning:
#ethtool‐ieth<N>
driver:sfc
version:4.4.1.1017
firmwareversion:4.4.2.1011rx0tx0
Theadaptermustbeusingthefullfeaturefirmwarevariantwhichcanbeselected
usingthesfbootutilityandconfirmedwithrx0tx0appearingaftertheversion
numberintheoutputfromethtoolasshownabove.
Thefirmwareupdateutility(sfupdate)andbootROMconfigurationtool(sfboot)
areavailableintheSolarflareLinuxUtilitiespackage(SF107601LSissue28or
later).
3.15NICPartitioningwithSRIOV
WhencombiningNICpartitioningwithSRIOV,everypartition(PF)mustbeina
separateVLAN.TheuserisabletocreateanumberofPFsperphysicalportand
associateanumberofVFswitheachPF.Withinthislayer2broadcastdomainthere
isswitchingbetweenaPFanditsassociatedVFs.
Figure11:NICPartitioningwithSRIOV
SolarflareServerAdapterUserGuide
SolarflareAdaptersonLinux
Issue20 ©SolarflareCommunications2017 79
Configuration
1Usethesfbootutilitytosetthefirmwareswitchmode,createPFs,assign
uniqueVLANIDtoeachPFandassignanumberofVFsforeachPF.
Inthefollowingexample4PFsareconfiguredperphysicalportand2VFsper
PF:
#sfbootswitchmode=partitioningwithsriovpfcount=4/
pfvlans=0,100,110,120vfcount=2
eth10:
Interfacespecificbootoptionsarenotavailable.Adapterwide
optionsareavailableviaeth4(000F53210060).
eth11:
Interfacespecificbootoptionsarenotavailable.Adapterwide
optionsareavailableviaeth4(000F53210060).
eth12:
Interfacespecificbootoptionsarenotavailable.Adapterwide
optionsareavailableviaeth4(000F53210060).
eth13:
Interfacespecificbootoptionsarenotavailable.Adapterwide
optionsareavailableviaeth4(000F53210060).
eth14:
Interfacespecificbootoptionsarenotavailable.Adapterwide
optionsareavailableviaeth4(000F53210060).
eth15:
Interfacespecificbootoptionsarenotavailable.Adapterwide
optionsareavailableviaeth4(000F53210060).
eth4:
BootimageOptionROMonly
LinkspeedNegotiatedautomatically
Linkupdelaytime5seconds
Bannerdelaytime2seconds
Bootskipdelaytime5seconds
BoottypeDisabled
PhysicalFunctionsperport4
MSIXinterruptlimit32
NumberofVirtualFunctions2
VFMSIXinterruptlimit8
Firmwarevariantfullfeature/virtualization
InsecurefiltersDisabled
MACspoofingDisabled
VLANtags0,100,110,120
SwitchmodePartitioningwithSRIOV
eth5:
BootimageOptionROMonly
LinkspeedNegotiatedautomatically
Linkupdelaytime5seconds
Bannerdelaytime2seconds
SolarflareServerAdapterUserGuide
SolarflareAdaptersonLinux
Issue20 ©SolarflareCommunications2017 80
Bootskipdelaytime5seconds
BoottypeDisabled
PhysicalFunctionsperport4
MSIXinterruptlimit32
NumberofVirtualFunctions2
VFMSIXinterruptlimit8
Firmwarevariantfullfeature/virtualization
InsecurefiltersDisabled
MACspoofingDisabled
VLANtags0,100,110,120
SwitchmodePartitioningwithSRIOV
2PFinterfacesarevisibleinthehostusingtheifconfigcommand:
eth4Linkencap:EthernetHWaddr00:0F:53:21:00:60
eth5Linkencap:EthernetHWaddr00:0F:53:21:00:61
eth10Linkencap:EthernetHWaddr00:0F:53:21:00:64
eth11Linkencap:EthernetHWaddr00:0F:53:21:00:65
eth12Linkencap:EthernetHWaddr00:0F:53:21:00:66
eth13Linkencap:EthernetHWaddr00:0F:53:21:00:63
eth14Linkencap:EthernetHWaddr00:0F:53:21:00:62
eth15Linkencap:EthernetHWaddr00:0F:53:21:00:67
3Theoutputfromsteps1and2aboveidentifiesaserverwith2physical
interfaces(eth4/eth5),4PFsperphysicalportandidentifiesthefollowingPF
VLANconfiguration:
4RefertoSRIOVConfigurationonpage332forprocedurestocreateVMsand
VFs.
VLANConfiguration
WhenusingpartitioningwithSRIOV,allPFsmusthaveauniqueVLANtag.Asingle
PFfromeachphysicalportcanusetag0(zero)toreceiveuntaggedtraffic.VLANtags
aretransparentlyinserted/strippedbytheadapterfirmware.
Table16:PFVLANConfiguration
Interface MACAddress PF VLANID
eth4 00:0F:53:21:00:60 PF0 0
eth10 00:0F:53:21:00:64 PF4 110
eth12 00:0F:53:21:00:66 PF6 120
eth14 00:0F:53:21:00:62 PF2 100
eth5 00:0F:53:21:00:61 PF1 0
eth11 00:0F:53:21:00:65 PF5 110
eth13 00:0F:53:21:00:63 PF3 100
eth15 00:0F:53:21:00:67 PF7 120
SolarflareServerAdapterUserGuide
SolarflareAdaptersonLinux
Issue20 ©SolarflareCommunications2017 81
LACPBonding
LACPBondingisnotcurrentlysupportedusingtheNICPartitioningconfiguration
modeastheLACPpartneri.e.theswitchwillbeunawareoftheconfigured
partitions.
Usersareadvisedtorefertothesfcdriverreleasenotesforcurrentlimitationswhen
usingtheNICpartitioningfeatures.
3.16ReceiveSideScaling(RSS)
SolarflareadapterssupportReceiveSideScaling(RSS).RSSenablespacketreceive
processingtoscalewiththenumberofavailableCPUcores.RSSrequiresaplatform
thatsupportsMSIXinterrupts.RSSisenabledbydefault.
WhenRSSisenabledthecontrollerusesmultiplereceivequeuestodeliverincoming
packets.Thereceivequeueselectedforanincomingpacketischosentoensurethat
packetswithinaTCPstreamareallsenttothesamereceivequeuethisensures
thatpacketorderingwithineachstreamismaintained.Eachreceivequeuehasits
owndedicatedMSIXinterruptwhichideallyshouldbetiedtoadedicatedCPUcore.
ThisallowsthereceivesideTCPprocessingtobedistributedamongsttheavailable
CPUcores,providingaconsiderableperformanceadvantageoveraconventional
adapterarchitectureinwhichallreceivedpacketsforagiveninterfaceareprocessed
byjustoneCPUcore.RSScanberestrictedtoonlyprocessreceivequeuesonthe
NUMAnodelocaltotheSolarflareadapter.Toconfigurethisthedrivermodule
optionrss_numa_localshouldbesetto1.
BydefaultthedriverenablesRSSandconfiguresoneRSSReceivequeueperCPU
core.ThenumberofRSSReceivequeuescanbecontrolledviathedrivermodule
parameterrss_cpus.Thefollowingtableidentifiesrss_cpusoptions.
Table17:rss_cpusOptions
Option Description InterruptAffinity(MSIX)
<num_cpus> IndicatesthenumberofRSS
queuestocreate.
AseparateMSIXinterruptfor
areceivequeueisaffinitizedto
eachCPU.
packages AnRSSqueuewillbecreated
foreachmulticoreCPU
package.ThefirstCPUinthe
packagewillbechosen.
AseparateMSIXinterruptfor
areceivequeue,isaffinitized
toeachofthedesignated
packageCPUs.
SolarflareServerAdapterUserGuide
SolarflareAdaptersonLinux
Issue20 ©SolarflareCommunications2017 82
Addthefollowinglineto/etc/modprobe.conffileoraddtheoptionslinetoa
usercreatedfileunderthe/etc/modprobe.ddirectory.Thefileshouldhavea
.confextension:
optionssfcrss_cpus=<option>
Tosetrss_cpusequaltothenumberofCPUcores:
optionssfcrss_cpus=cores
Sometimes,itcanbedesirabletodisableRSSwhenrunningsinglestream
applications,sinceallinterfaceprocessingmaybenefitfromtakingplaceonasingle
CPU:
optionssfcrss_cpus=1
Thedrivermustbereloadedtoenableoptionchanges:
NOTE:TheassociationofRSSreceivequeuestoaCPUisgovernedbythereceive
queue'sMSIXinterruptaffinity.SeeInterruptAffinityonpage113formoredetails.
rmmodsfc
modprobesfc
NOTE:RSSalsoworksforUDPpackets.ForUDPtraffictheSolarflareadapterwill
selecttheReceiveCPUbasedonIPsourceanddestinationaddresses.Solarflare
adapterssupportIPv4andIPv6RSS.
cores AnRSSqueuewillbecreated
foreachCPU.Thefirst
hyperthreadinstance(IfCPU
hashyperthreading)willbe
chosen.
Thedefaultoption.
AseparateMSIXinterruptfor
areceivequeue,isaffinitized
toeachoftheCPUs.
hyperthreads AnRSSqueuewillbecreated
foreachCPUhyperthread
(hyperthreadingmustbe
enabled).
AseparateMSIXinterruptfor
areceivequeue,isaffinitized
toeachofthehyperthreads.
Table17:rss_cpusOptions
Option Description InterruptAffinity(MSIX)
SolarflareServerAdapterUserGuide
SolarflareAdaptersonLinux
Issue20 ©SolarflareCommunications2017 83
3.17ReceiveFlowSteering(RFS)
RFSwillattempttosteerpacketstothecorewhereareceivingapplicationis
running.Thisreducestheneedtomovedatabetweenprocessorcachesandcan
significantlyreducelatencyandjitter.ModernNUMAsystems,inparticular,can
benefitsubstantiallyfromRFSwherepacketsaredeliveredintomemorylocaltothe
receivingthread.
UnlikeRSSwhichselectsaCPUfromaCPUaffinitymasksetbyanadministratoror
user,RFSwillstoretheapplication'sCPUcoreidentifierwhentheapplication
processcallsrecvmsg()orsendmsg().
•Ahashiscalculatedfromapacketsaddressesorports(2tupleor4tuple)and
servesastheconsistenthashfortheflowassociatedwiththepacket.
•EachreceivequeuehasanassociatedlistofCPUstowhichRFSmayenqueue
thereceivedpacketsforprocessing.
•Foreachreceivedpacket,anindexintotheCPUlistiscomputedfromtheflow
hashmodulothesizeoftheCPUlist.
TherearetwotypesofRFSimplementation;SoftRFSandHardware(orAccelerated)
RFS.
SoftRFSisasoftwarefeaturesupportedsinceLinux2.6.35thatattemptsto
scheduleprotocolprocessingofincomingpacketsonthesameprocessorastheuser
threadthatwillconsumethepackets.
AcceleratedRFSrequiresLinuxkernelversion2.6.39orlater,withtheLinuxsfc
driverorSolarflarev3.2networkadapterdriver.
RFScandynamicallychangetheallowedCPUsthatcanbeassignedtoapacketor
packetstreamandthisintroducesthepossibilityofoutoforderpackets.Toprevent
outoforderdata,twotablesarecreatedthatholdstateinformationusedintheCPU
selection.
Global_flow_table:Identifiesthenumberofsimultaneousflowsthatare
managedbyRFS.
Per_queue_table:Identifiesthenumberofflowsthatcanbesteeredtoa
queue.Thisholdsstateastowhenapacketwaslastreceived.
Thetablessupportthesteeringofincomingpacketsfromthenetworkadaptertoa
receivequeueaffinitizedtoaCPUwheretheapplicationiswaitingtoreceivethem.
TheSolarflareacceleratedRFSimplementationrequiresconfigurationthroughthe
twotablesandtheethtool‐Kcommand.
ThefollowingsubsectionsidentifytheRFSconfigurationprocedures:
KernelConfiguration
BeforeusingRFSthekernelmustbecompiledwiththekconfigsymbolCONFIG_RPS
enabled.AcceleratedRFSisonlyavailableifthekerneliscompliedwiththekconfig
symbolCONFIG_RFS_ACCELenabled.
SolarflareServerAdapterUserGuide
SolarflareAdaptersonLinux
Issue20 ©SolarflareCommunications2017 84
GlobalFlowCount
ConfigurethenumberofsimultaneousflowsthatwillbemanagedbyRFS.The
suggestedflowcountwilldependontheexpectednumberofactiveconnectionsat
anygiventimeandmaybelessthanthenumberofopenconnections.Thevalueis
roundeduptothenearestpoweroftwo.
#echo32768>/proc/sys/net/core/rps_sock_flow_entries
PerQueueFlowCount
Foreachadapterinterfacetherewillexistaqueue’directorycontainingone‘rxor
‘tx’subdirectoryforeachqueueassociatedwiththeinterface.ForRFSonlythe
receivequeuesarerelevant.
#cd/sys/class/net/eth3/queue
Withineach‘rx’subdirectory,therps_flow_cntfileholdsthenumberofentriesin
theper‐queueflowtable.Ifonlyasinglequeueisusedthenrps_flow_cntwillbe
thesameasrps_sock_flow_entries.Whenmultiplequeuesareconfiguredthe
countwillbeequaltorps_sock_flow_entries/NwhereNisthenumberof
queues,forexample:
rps_sock_flow_entries=32768andthereare16queuesthenrps_flow_cntfor
eachqueuewillbeconfiguredas2048.
#echo2048>/sys/class/net/eth3/queues/rx0/rps_flow_cnt
#echo2048>/sys/class/net/eth3/queues/rx1/rps_flow_cnt
DisableRFS
ToturnoffRFSusingthefollowingcommand:
#ethtool‐K<devname>ntupleoff
3.18SolarflareAcceleratedRFS(SARFS)
TheSolarflareAcceleratedRFSfeaturedirectsTCPflowstoqueuesprocessedonthe
sameCPUcoreastheuserprocesswhichisconsumingtheflow.Byqueryingthe
CPUwhenaTCPpacketissent,thetransmitqueuecanbeselectedfromthe
interruptassociatedwiththecorrectCPUcore.Ahardwarefilterdirectsthereceive
flowtothesamequeue.
SARFSisprovidedforserversthatdonotsupportstandardLinuxARFS.Fordetailsof
LinuxARFS,refertotheprevioussection.Additionalinformationcanbefoundatthe
followinglink:
https://access.redhat.com/documentation/enUS/Red_Hat_Enterprise_Linux/6/
html/Performance_Tuning_Guide/networkaccrfs.html
OverallSARFScanimprovebandwidth,especiallyforsmallerpacketsandbecause
coreassignmentisnotsubjecttothesemirandomselectionoftransmitandreceive
queues,bothbandwidthandlatencybecomemoreconsistent.
SolarflareServerAdapterUserGuide
SolarflareAdaptersonLinux
Issue20 ©SolarflareCommunications2017 85
TheSARFSfeatureisdisabledbydefaultandcanbeenabledusingnetdrivermodule
parameters.Drivermoduleparameterscanbespecifiedinausercreatedfile(e.g.
sfc.conf)inthe/etc/modprobe.ddirectory:
sxps_enabled
sarfs_table_size
sarfs_global_holdoff_ms
sarfs_sample_rate
IfthekernelsupportsXPS,thisshouldbeenabledwhenusingtheSARFSfeature.
WhenthekerneldoesnotsupportsXPS,thesxps_enabledparametershouldbe
enabledwhenusingSARFS.
NOTE:sxps_enabledisknowntoworkonRHELversionuptoandincluding
RHEL6.5,butdoesnotfunctiononRHEL7duetochangesintheinterrupthint
policy.
RefertoModuleParametersonpage123foradescriptionoftheSARFSdriver
moduleparameters.
3.19TransmitPacketSteering(XPS)
TransmitPacketSteering(XPS)issupportedinLinux2.6.38andlater.XPSisa
mechanismforselectingwhichtransmitqueuetousewhentransmittingapacket
onamultiqueuedevice.
XPSisconfiguredonapertransmitqueuebasiswhereabitmapofCPUsidentifies
theCPUsthatmayusethequeuetotransmit.
KernelConfiguration
BeforeusingXPSthekernelmustbecompiledwiththekconfigsymbolCONFIG_XPS
enabled.
ConfigureCPU/Hyperthreads
Withinineach/sys/class/net/<interface>/queues/txNdirectorythere
existsanxps_cpusfilewhichcontainsabitmapofCPUsthatcanusethequeueto
transmit.Inthefollowingexampletransmitqueue0canbeusedbythefirsttwo
CPUsandtransmitqueue1canbeusedbythefollowingtwoCPUs:
#echo3>/sys/class/net/eth3/queues/tx0/xps_cpus
#echoc>/sys/class/net/eth3/queues/tx0/xps_cpus
Ifhyperthreadingisenabled,eachhyperthreadisidentifiedasaseparateCPU,for
exampleifthesystemhas16coresbut32hyperthreadsthenthetransmitqueues
shouldbepairedwiththehyperthreadedcores:
#echo30003>/sys/class/net/eth3/queues/tx0/xps_cpus
#echoc000c>/sys/class/net/eth3/queues/tx0/xps_cpus
SolarflareServerAdapterUserGuide
SolarflareAdaptersonLinux
Issue20 ©SolarflareCommunications2017 86
XPS‐ExampleConfiguration
SystemConfiguration:
• SingleSolarflareadapter
•2x8coreprocessorswithhyperthreadingenabledtogiveatotalof32cores
• rss_cpus=8
•Only1interfaceontheadapterisconfigured
•TheIRQBalanceserviceisdisabled
Identifyinterruptsfortheconfiguredinterface:
#cat/proc/interrupts|grep’eth3\|CPU’
>cat/proc/irq/132/smp_affinity
00000000,00000000,00000000,00000001
>cat/proc/irq/133/smp_affinity
00000000,00000000,00000000,00000100
>cat/proc/irq/134/smp_affinity
00000000,00000000,00000000,00000002
[...snip...]
>cat/proc/irq/139/smp_affinity
00000000,00000000,00000000,00000800
TheoutputidentifiesthatIRQ132isthefirstqueueandisroutedtoCPU0.IRQ133
isthesecondqueueroutedtoCPU8,IRQ134toCPU2andsoon.
MapTXqueuetoCPU
Hyperthreadedcoresareincludedwiththeassociatedphysicalcore:
>echo110011>/sys/class/net/eth3/queues/tx0/xps_cpus
>echo11001100>/sys/class/net/eth3/queues/tx1/xps_cpus
>echo220022>/sys/class/net/eth3/queues/tx2/xps_cpus
>echo22002200>/sys/class/net/eth3/queues/tx3/xps_cpus
>echo440044>/sys/class/net/eth3/queues/tx4/xps_cpus
>echo44004400>/sys/class/net/eth3/queues/tx5/xps_cpus
>echo880088>/sys/class/net/eth3/queues/tx6/xps_cpus
>echo88008800>/sys/class/net/eth3/queues/tx7/xps_cpus
ConfigureGlobalandPerQueueTables
•Theflowcount(numberofactiveconnectionsatanyonetime)=32768
•Numberofqueues=8(rss_cpus)
•Sotheflowcountforeachqueuewillbe32768/8
>echo32768>/proc/sys/net/core/rps_sock_flow_entries
>echo4096>/sys/class/net/eth3/queues/rx0/rps_flow_cnt
>echo4096>/sys/class/net/eth3/queues/rx1/rps_flow_cnt
>echo4096>/sys/class/net/eth3/queues/rx2/rps_flow_cnt
>echo4096>/sys/class/net/eth3/queues/rx3/rps_flow_cnt
>echo4096>/sys/class/net/eth3/queues/rx4/rps_flow_cnt
SolarflareServerAdapterUserGuide
SolarflareAdaptersonLinux
Issue20 ©SolarflareCommunications2017 87
>echo4096>/sys/class/net/eth3/queues/rx5/rps_flow_cnt
>echo4096>/sys/class/net/eth3/queues/rx6/rps_flow_cnt
>echo4096>/sys/class/net/eth3/queues/rx7/rps_flow_cnt
3.20LinuxUtilitiesRPM
TheSolarflareLinuxUtilitiesRPMcontains:
•AbootROMutility.
SeeConfiguringtheBootManagerwithsfbootonpage88.
•Aflashfirmwareupdateutility.
SeeUpgradingAdapterFirmwarewithsfupdateonpage96.
•Alicensekeyinstallutility.
SeeLicenseInstallwithsfkeyonpage100.
TheRPMpackage,issuppliedas64bitand32bitbinariescompiledtobecompatible
withGLIBCversionsforallsupporteddistributions.TheSolarflareutilitiesRPMfile
canbedownloadedfromthefollowinglocation:
https://support.solarflare.com/
•SF104451LSisa32bitbinaryRPMpackage.
•SF107601LSisa64bitbinaryRPMpackage.
Forexample,toinstallthe64bitpackage:
1DownloadandcopythezippedbinaryRPMpackagetotherequireddirectory.
2Unzipthepackage:
#unzipSF107601LS<version>_Solarflare_Linux_Utilities_RPM_64bit.zip
3InstallthebinaryRPM:
#rpm‐Uvhsfutils<version>.x86_64.rpm
Preparing...###########################################[100%]
1:sfutils###########################################[100%]
4CheckthattheRPMinstalledcorrectly:
#rpm‐qsfutils
sfutils<version>.x86_64
Directionsfortheuseoftheutilityprogramsareexplainedinthefollowingsections.
SolarflareServerAdapterUserGuide
SolarflareAdaptersonLinux
Issue20 ©SolarflareCommunications2017 88
3.21ConfiguringtheBootManagerwithsfboot
Sfboot:CommandUsageonpage88.
Sfboot:CommandLineOptionsonpage89.
Sfboot:Examplesonpage94.
SfbootisacommandlineutilityforconfiguringSolarflareadapterBootManager
options,includingPXEandUEFIbooting.UsingsfbootisanalternativetousingCtrl
+BtoaccesstheBootROMagentduringserverstartup.
SeeSolarflareBootManageronpage374formoreinformationontheBootRom
agent.
PXEandUEFInetworkbootisnotsupportedforSolarflareadaptersonIBMSystemp
servers.
Sfboot:SLES11Limitation
DuetolimitationsinSLES11usingkernelversionspriorto2.6.27.54itisnecessary
toreboottheserverafterrunningthesfbootutility.
Sfboot:CommandUsage
Thegeneralusageforsfbootisasfollows(asroot):
sfboot[‐‐adapter=eth<N>][options][parameters]
Whenthe‐‐adapteroptionisnotspecified,thesfbootcommandappliestoall
adapterspresentinthetargethost.
Theformatfortheparametersare:
<parameter>=<value>
SolarflareServerAdapterUserGuide
SolarflareAdaptersonLinux
Issue20 ©SolarflareCommunications2017 89
Sfboot:CommandLineOptions
Table18liststheoptionsforsfboot,Table19liststheavailableglobalparameters,
andTable20liststheavailableperadapterparameters.Notethatcommandline
optionsarecaseinsensitiveandmaybeabbreviated.
NOTE:Abbreviationsinscriptsshouldbeavoided,sincefutureupdatestothe
applicationmayrenderabbreviatedscriptsinvalid.
Table18:SfbootOptions
Option Description
h,‐‐help Displayscommandlinesyntaxandprovidesadescriptionof
eachsfbootoption.
V,‐‐version Showsdetailedversioninformationandexits.
v,‐‐verbose Showsextendedoutputinformationforthecommand
entered.
y,‐‐yes Updatewithoutprompting.
s,‐‐quiet
Aliases:‐‐silent
Suppressesalloutput,excepterrors;nouserinteraction.The
usershouldquerythecompletioncodetodeterminethe
outcomeofcommandswhenoperatingsilently.
l,‐‐list ListsallavailableSolarflareadapters.Thisoptionshowsthe
ifnameandMACaddress.
Note:thisoptionmaynotbeusedinconjunctionwithany
otheroption.Ifthisoptionisusedwithconfiguration
parameters,thoseparameterswillbesilentlyignored.
i,‐‐adapter=<ethX> PerformstheactionontheidentifiedSolarflarenetwork
adapter.TheadapteridentifierethXcanbetheifnameor
MACaddress,asoutputbythe‐‐listoption.If‐‐adapteris
notincluded,theactionwillapplytoallinstalledSolarflare
adapters.
c,‐‐clear Resetsalladapterconfigurationoptionstotheirdefault
values.Ifanadapterisspecified,optionsforthegivenadapter
arereset,butglobaloptions(showninTable19)arenotreset.
Notethat‐‐clearcanalsobeusedwithparameters,
allowingyoutoresettodefaultvalues,andthenapplythe
parametersspecified.
r,‐‐repair Restorefirmwareconfigurationsettingstodefaultvalues.The
sfbootoptionshouldonlybeusedifafirmwareupgrade/
downgradeusingsfboothasfailed.
SolarflareServerAdapterUserGuide
SolarflareAdaptersonLinux
Issue20 ©SolarflareCommunications2017 90
ThefollowingglobalparametersinTable19areusedtocontroltheconfigurable
parametersfortheBootROMdriverwhenrunningpriortotheoperatingsystem
booting.
Table19:SfbootGlobalParameters
Parameter Description
bootimage=
all|optionrom|uefi|disabled
Specifieswhichbootfirmwareimagesareserveduptothe
BIOSduringstartup.Thisparametercannotbeusedifthe
‐‐adapteroptionhasbeenspecified.Thisisaglobal
optionandappliestoallportsontheNIC.
portmode=
default|1x10G|2x10G|4x10G|
2x40G
Configuretheportmodetouse.ThisisforSFN7000and
SFN8000seriesadaptersonly.Thevaluesspecifythe
connectorsavailableafterusinganysplittercables.The
usablevaluesareadapterdependent:
• SFN8722:2x10G
• SFN8x42:4x10G,2x40G(default)
• SFN8522[M]:2x10G(default)
• SFN7xx4F:2x10G,4x10G(default)
SFN7xx2Q:2x10G,4x10G,2x40G(default)
• SFN7xx2F:1x10G,2x10G(default)
Changestothissettingwithsfbootrequireacoldrebootto
becomeeffective.MACaddressassignmentsmaychange
afteralteringthissetting.
firmwarevariant=
fullfeature|ultralowlatency|
capturepackedstream|auto
Configurethefirmwarevarianttouse.ThisisforSFN7000
andSFN8000seriesadaptersonly:
•theSFN7002Fadapterisfactorysettofullfeature
•allotheradaptersarefactorysettoauto.
Defaultvalue=auto‐meansthedriverwillselectavariant
thatmeetsitsneeds:
•theVMwaredriveralwaysusesfullfeature
•otherwise,ultralowlatencyisused.
Theultralowlatencyvariantproducesbestlatencywithout
supportforTXVLANinsertionorRXVLANstripping(not
currentlyusedfeatures).ItisrecommendedthatOnload
customersusetheultralowlatencyvariant.Thisisaglobal
optionandappliestoallportsontheNIC.
SolarflareServerAdapterUserGuide
SolarflareAdaptersonLinux
Issue20 ©SolarflareCommunications2017 91
insecurefilters=
enabled|disabled
Ifenabledbypassfiltersecurityonnonprivileged
functions.ThisisforSFN7000andSFN8000seriesadapters
only.Thisreducessecurityinvirtualizedenvironments.The
defaultisdisabled.Whenenabledafunction(PForVF)can
insertfiltersnotqualifiedbytheirownpermanentMAC
address.Thisisarequirementandshouldbeenabledwhen
usingOnloadorwhenusingbondedinterfaces.Thisisa
globaloptionandappliestoallportsontheNIC.
mac
spoofing=default|enabled|disabled
Ifenabled,nonprivilegedfunctionscancreateunicast
filtersforMACaddressesthatarenotassociatedwiththem.
ThisisforSFN7000andSFN8000seriesadaptersonly.
Thedefaultisdisabled.
Changestothissettingwithsfbootrequireacoldrebootto
becomeeffective.Thisisaglobaloptionandappliestoall
portsontheNIC.
rxdcsize=8|16|32|64 Specifiesthesizeofthedescriptorcacheforeachreceive
queue.ThisisforSFN7000andSFN8000seriesadapters
only.Thedefaultis:
16iftheportmodesupportsthemaximumnumberof
connectorsfortheadapter
32iftheportmodesupportsareducednumberof
connectors.
changemac=
default|enabled|disabled
ThisisforSFN7000andSFN8000seriesadaptersonly.
ChangetheunicastMACaddressforanonprivileged
functiononthisport.Thisisaglobaloptionandappliesto
allphysicalportsontheNIC.
txdcsize=8|16|32|64 Specifiesthesizeofthedescriptorcacheforeachtransmit
queue.ThisisforSFN7000andSFN8000seriesadapters
only.Thedefaultis:
32iftheportmodesupportsthemaximumnumberof
connectorsfortheadapter
64iftheportmodesupportsareducednumberof
connectors.
vicount=<vicount> Setsthetotalnumberofvirtualinterfacesthatwillbe
availableontheNIC.
eventmergetimeout=
<timeoutinnanoseconds>
SpecifiesthetimeoutinnanosecondsforRXeventmerging.
Atimeoutof0meansthateventmergingisdisabled.
Table19:SfbootGlobalParameters
Parameter Description
SolarflareServerAdapterUserGuide
SolarflareAdaptersonLinux
Issue20 ©SolarflareCommunications2017 92
ThefollowingperadapterparametersinTable20areusedtocontrolthe
configurableparametersfortheBootROMdriverwhenrunningpriortothe
operatingsystembooting.
Table20:SfbootPeradapterParameters
Parameter Description
linkspeed=auto|10g|1g|100m Specifiesthenetworklinkspeedoftheadapterusedbythe
BootROM.Thedefaultisauto.Onthe10GBASETadapters,
autoinstructstheadaptertonegotiatethehighestspeed
supportedincommonwithitslinkpartner.OnSFP+
adapters,autoinstructstheadaptertousethehighestlink
speedsupportedbytheinsertedSFP+module.On
10GBASETandSFP+adapters,anyothervaluespecified
willfixthelinkatthatspeed,regardlessofthecapabilities
ofthelinkpartner,whichmayresultinaninabilityto
establishthelink.
autoAutonegotiatelinkspeed(default)
10G10Gbit/sec
1G1Gbit/sec
100M100Mbit/sec
linkupdelay=
<delaytimeinseconds>
Specifiesthedelay(inseconds)theadapterdefersitsfirst
connectionattemptafterbooting,allowingtimeforthe
networktocomeupfollowingapowerfailureorother
restart.Thiscanbeusedtowaitforspanningtreeprotocol
onaconnectedswitchtounblocktheswitchportafterthe
physicalnetworklinkisestablished.Thedefaultis5
seconds.
bannerdelay=
<delaytimeinseconds>
SpecifiesthewaitperiodforCtrlBtobepressedtoenter
adapterconfigurationtool.
<delaytimeinseconds>=0256
bootskipdelay=
<delaytimeinseconds>
SpecifiesthetimeallowedforEsctobepressedtoskip
adapterbooting.
<delaytimeinseconds>=0256
boottype=pxe|disabled Setstheadapterboottypeeffectiveonnextboot.
pxePXE(PrebooteXecutionEnvironment)booting
disabledDisableadapterbooting
SolarflareServerAdapterUserGuide
SolarflareAdaptersonLinux
Issue20 ©SolarflareCommunications2017 93
pfcount=<pfcount> ThisisthenumberofavailablePCIePFsperphysical
networkport.Thissettingisappliedtoallportsonthe
adapter.
Changestothissettingwithsfbootrequireacoldrebootto
becomeeffective.MACaddressassignmentsmaychange
afteralteringthissetting.
msixlimit=
8|16|32|64|128|256|512|1024
SpecifiesthemaximumnumberofMSIXinterruptsthat
eachPFwilluse.Thedefaultis32.
Note:Usingtheincorrectsettingcanimpactthe
performanceoftheadapter.ContactSolarflaretechnical
supportbeforechangingthissetting.
sriov=enabled|disabled EnableSRIOVsupportforoperatingsystemsthatsupport
this.NotrequiredonSFN7000orSFN8000seriesadapters.
vfcount=<vfcount> Thenumberofvirtualfunctions(VF)advertisedtothe
operatingsystemforeachPhysicalFunctiononthisphysical
networkport.
SFN5000/6000seriesadapterssupport1024interrupts
SFN7000/8000seriesadapterssupport2048interrupts
Solarflareadapterssupportatotallimitof127virtual
functionsperport.
Dependingonthevaluesofmsixlimitandvfmsixlimit,
someofthesevirtualfunctionsmaynotbeconfigured.
Enablingall127VFsperportwithmorethanoneMSIX
interruptperVFmaynotbesupportedbythehostBIOS‐in
whichcaseyoumayget127VFsononeportandnoneon
others.ContactyourBIOSvendororreducetheVFcount.
Thesriovparameterisimpliedifvfcountisgreaterthan
zero.
Changestothissettingwithsfbootrequireacoldrebootto
becomeeffective.
vfmsixlimit=
1|2|4|8|16|32|64|128|256
Themaximumnumberofinterruptsavirtualfunctionmay
use.
Table20:SfbootPeradapterParameters
Parameter Description
SolarflareServerAdapterUserGuide
SolarflareAdaptersonLinux
Issue20 ©SolarflareCommunications2017 94
Sfboot:Examples
•Showthecurrentbootconfigurationforalladapters:
sfboot
#./sfboot
Solarflarebootconfigurationutility[v4.3.1]
CopyrightSolarflareCommunications20062014,Level5Networks20022005
eth4:
BootimageOptionROMonly
LinkspeedNegotiatedautomatically
Linkupdelaytime5seconds
Bannerdelaytime2seconds
Bootskipdelaytime5seconds
BoottypeDisabled
PhysicalFunctionsperport1
MSIXinterruptlimit32
NumberofVirtualFunctions0
VFMSIXinterruptlimit8
pfvlans=<tag>[,<tag>[,...]]|none CommaseparatedlistofVLANtagsforeachPFintherange
04094‐seesfboot‐‐helpfordetails.
Settingpfvlans=nonewillclearallVLANtagsontheport.
pfvlansshouldbeincludedafterthepfcountoptiononthe
sfbootcommandline.
IfthenumberofPFsischangedthentheVLANtagswillbe
cleared.
switchmode=
default|sriov|partitioning|
partitioningwithsriov|pfiov
Specifiesthemodeofoperationthattheportwillbeused
in:
default‐singlePFcreated,zeroVFscreated.
sriov‐SRIOVenabled,singlePFcreated,VFsconfigured
withvfcount.
partitioning‐PFsconfiguredwithpfcount,VFs
configuredwithvfcount.SeeNICPartitioningonpage74
fordetails.
partitioningwithsriov‐SRIOVenabled,PFs
configuredwithpfcount,VFsconfiguredwithvfcount.
SeeNICPartitioningonpage74fordetails.
pfiov‐PFIOVenabled,PFsconfiguredwithpfcount,VFs
notsupported.
Changestothissettingwithsfbootrequireacoldrebootto
becomeeffective.
Table20:SfbootPeradapterParameters
Parameter Description
SolarflareServerAdapterUserGuide
SolarflareAdaptersonLinux
Issue20 ©SolarflareCommunications2017 95
Firmwarevariantfullfeature/virtualization
InsecurefiltersDisabled
VLANtagsNone
SwitchmodeDefault
• ListallSolarflareadaptersinstalledonthelocalhost:
sfboot‐‐list
./sfboot‐l
Solarflarebootconfigurationutility[v4.3.1]
CopyrightSolarflareCommunications20062014,Level5Networks20022005
Adapterlist:
eth4
eth5
• EnableSRIOV(SFN5000andSFN6000seriesadaptersonly)
sfbootsriov=enabledvfcount=16vfmsixlimit=1
‐ SFN7000andSFN8000series‐FirmwareVariant
sfbootfirmwarevariant=fullfeature
Solarflarebootconfigurationutility[v4.3.1]
CopyrightSolarflareCommunications20062014,Level5Networks20022005
eth4:
BootimageOptionROMonly
LinkspeedNegotiatedautomatically
Linkupdelaytime7seconds
Bannerdelaytime3seconds
Bootskipdelaytime6seconds
BoottypePXE
MSIXinterruptlimit32
NumberofVirtualFunctions0
VFMSIXinterruptlimit1
Firmwarevariantfullfeature/virtualization
‐ SFN7000andSFN8000series‐SRIOVenabledandusingVirtualFunctions
sfbootswitchmode=sriovvfcount=4
Solarflarebootconfigurationutility[v4.3.1]
CopyrightSolarflareCommunications20062014,Level5Networks20022005
eth4:
BootimageOptionROMonly
LinkspeedNegotiatedautomatically
Linkupdelaytime5seconds
Bannerdelaytime2seconds
Bootskipdelaytime5seconds
BoottypeDisabled
PhysicalFunctionsperport1
MSIXinterruptlimit32
NumberofVirtualFunctions4
VFMSIXinterruptlimit8
Firmwarevariantfullfeature/virtualization
InsecurefiltersDisabled
VLANtagsNone
SwitchmodeSRIOV
SolarflareServerAdapterUserGuide
SolarflareAdaptersonLinux
Issue20 ©SolarflareCommunications2017 96
3.22UpgradingAdapterFirmwarewithsfupdate
Sfupdate:CommandUsageonpage96.
Sfupdate:CommandLineOptionsonpage98.
Sfupdate:Examplesonpage99.
SfupdateisacommandlineutilitytomanageandupgradetheSolarflareadapter
BootROM,Phyandadapterfirmware.Embeddedwithinthesfupdateexecutable
arefirmwareimagesfortheSolarflareadapter‐theexactupdatesavailablevia
sfupdatedependonthespecificadaptertype.
SeeSolarflareBootManageronpage374formoreinformationontheBootRom
agent.
CAUTION:AllApplicationsacceleratedwithOpenOnloadshouldbeterminated
beforeupdatingthefirmwarewithsfupdate.
CAUTION:SolarflarePTP(sfptpd)shouldbeterminatedbeforeupdatingfirmware.
Sfupdate:CommandUsage
Thegeneralusageforsfupdateisasfollows(asroot):
sfupdate[‐‐adapter=eth<N>][options]
where:
ethNistheinterfacename(ifname)oftheSolarflareadaptertobeupgraded.
optionisoneofthecommandoptionslistedinTable21.
Theformatfortheoptionsare:
<option>=<parameter>
Runningthecommandsfupdatewithnoadditionalparameterswillshowthe
currentfirmwareversionforallSolarflareadaptersandidentifieswhetherthe
firmwareversionwithinsfupdateismoreuptodate.Toupdatethefirmwareforall
Solarflareadaptersrunthecommandsfupdate‐‐write
Solarflarerecommendthefollowingprocedure:
1Runsfupdatetocheckthatthefirmwareonalladaptersisuptodate.
2Runsfupdate‐‐writetoupdatethefirmwareonalladapters.
Sfupdate:LinuxMTDLimitations
Thedriversupplied“inbox”withinRedHatandNovelldistributionshasalimitation
onthenumberofadaptersthatsfupdatecansupport.Thislimitationisremoved
fromRHEL6.5onwards.TheSolarflaresupplieddriverisnolongersubjecttothis
limitationonanydistro/kernel.
SolarflareServerAdapterUserGuide
SolarflareAdaptersonLinux
Issue20 ©SolarflareCommunications2017 97
Linuxkernelversionspriorto2.6.20supportupto16MTD(flash)devices.Solarflare
adaptersareequippedwith6flashpartitions.Ifmorethantwoadaptersare
deployedwithinasystemanumberofflashpartitionswillbeinaccessibleduring
upgrade.
Thelimitwasraisedto32inLinuxkernelversion2.6.20andremovedaltogetherin
2.6.35.
Ifissuesareencounteredduringsfupdate,theusershouldconsideroneofthe
followingoptionswhenupgradingfirmwareonsystemsequippedwithmorethan
twoSolarflareadapters:
• Upgradetwoadaptersatatimewiththeotheradaptersremoved.
• Upgradethekernel.
• Rebuildthekernel,raisingthevalueofMAX_MTD_DEVICESininclude/linux/
mtd/mtd.h.
•DownloadanSfutilsbootableimagefrom:
https://support.solarflare.com/index.php?id=1960&option=com_cognidox
OvercomeLinuxMTDLimitations
Analternativemethodisavailabletoupgradethefirmwarewithoutremovingthe
adapters.
1Unbindallinterfacesfromthedrivers:
#forbdfin$(lspci‐D‐d1924:|awk'{print$1}');do\
echo‐n${bdf}\>/sys/bus/pci/devices/${bdf}/driver/unbind;done
2Identifythebus/device/functionforallSolarflareinterfaces.
Usingifconfig‐awillnotdiscoveranySolarflareinterfaces.Uselspci:
#lspci‐D‐d1924:
Outputsimilartothefollowingwillbeproduced(5NICsinstalledinthis
example):
#lspci‐D‐d1924:
0000:02:00.0Ethernetcontroller:SolarflareCommunicationsSFC9020[Solarstorm]
0000:02:00.1Ethernetcontroller:SolarflareCommunicationsSFC9020[Solarstorm]
0000:03:00.0Ethernetcontroller:SolarflareCommunicationsSFC9020[Solarstorm]
0000:03:00.1Ethernetcontroller:SolarflareCommunicationsSFC9020[Solarstorm]
0000:04:00.0Ethernetcontroller:SolarflareCommunicationsSFL9021[Solarstorm]
0000:04:00.1Ethernetcontroller:SolarflareCommunicationsSFL9021[Solarstorm]
0000:83:00.0Ethernetcontroller:SolarflareCommunicationsSFC9020[Solarstorm]
0000:83:00.1Ethernetcontroller:SolarflareCommunicationsSFC9020[Solarstorm]
0000:84:00.0Ethernetcontroller:SolarflareCommunicationsSFC9020[Solarstorm]
0000:84:00.1Ethernetcontroller:SolarflareCommunicationsSFC9020[Solarstorm]
3ThereareenoughresourcestoupgradetwoNICsatatime,sorebind
interfacesingroupsoffour(2x2NICs):
#echo‐n"0000:02:00.0">/sys/bus/pci/drivers/sfc/bind
#echo‐n"0000:02:00.1">/sys/bus/pci/drivers/sfc/bind
#echo‐n"0000:03:00.0">/sys/bus/pci/drivers/sfc/bind
#echo‐n"0000:03:00.1">/sys/bus/pci/drivers/sfc/bind
SolarflareServerAdapterUserGuide
SolarflareAdaptersonLinux
Issue20 ©SolarflareCommunications2017 98
4RunsfupdatetoupdatetheseNICs(commandoptionsmayvary):
#sfupdate‐‐write‐‐yes‐‐force
5Runthecommandtounbindtheinterfacesagain.Therewillbefailures
reportedbecausesomeoftheinterfacesarenotbound:
#forbdfin$(lspci‐D‐d1924:|awk'{print$1}');do\
echo‐n${bdf}\>/sys/bus/pci/devices/${bdf}/driver/unbind;done
6Repeattheprocessfortheotherinterfaces(0000:04:00.x;0000:83:00.xand
0000:84:00.x)doingsoinpairsuntilalltheNICshavebeenupgraded.
7Rebindallinterfaces,doingsoenmassandignoringerrorsfromthosealready
bound:
#forbdfin$(lspci‐D‐d1924:|awk'{print$1}');do\
echo‐n${bdf}\>/sys/bus/pci/drivers/sfc/bind;done
Alternativelyreloadthesfcdriver:
#onload_toolreload
or:
#modprobe‐rsfc
#modprobesfc
8Runifconfig‐aagaintofindthatalltheinterfacesarereportedandallhave
beenfirmwareupgradedwithouthavingtophysicallytouchtheserveror
changethekernel.
Sfupdate:SLES11Limitation
DuetolimitationsinSLES11usingkernelversionspriorto2.6.27.54itisnecessary
toreboottheserverafterrunningthesfupdateutilitytoupgradeserverfirmware.
Sfupdate:CommandLineOptions
Table21liststheoptionsforsfupdate.
Table21:SfupdateOptions
Option Description
h,‐‐help Showshelpfortheavailableoptionsandcommandline
syntax.
i,‐‐adapter=ethX Specifiesthetargetadapterwhenmorethanone
adapterisinstalledinthelocalhost.
ethX=AdapterifnameorMACaddress(asobtained
with‐‐list).
‐‐list ShowstheadapterID,adapternameandMACaddress
ofeachadapterinstalledinthelocalhost.
SolarflareServerAdapterUserGuide
SolarflareAdaptersonLinux
Issue20 ©SolarflareCommunications2017 99
Sfupdate:Examples
•Displayfirmwareversionsforalladapters:
sfupdate
Solarstormfirmwareupdateutility[v4.3.1]
CopyrightSolarflareCommunications20062013,Level5Networks20022005
eth4‐MAC:000F53210061
Controllertype:SolarflareSFC9100family
Controllerversoin:unknown
‐‐write Rewritesthefirmwarefromtheimagesembeddedin
thesfupdatetool.Torewriteusinganexternalimage,
specify‐‐image=<filename>inthecommand.
‐‐writefailsiftheembeddedimageisthesameora
previousversion.Toforceawriteinthiscase,specify
forceinthecommand.
‐‐force Forcetheupdateofallfirmware,eveniftheinstalled
firmwareversionisthesameas,ormorerecentthen,
thefirmwareembeddedinsfupdate.
‐‐backup Backupexistingfirmwareimagebeforeupdating.This
optionmaybeusedwith‐‐writeand‐‐force.
‐‐image=(filename) Updatethefirmwareusingthebinaryimagefromthe
givenfileratherthanfromthoseembeddedinthe
utility.
‐‐ipxeimage=
(filename)
InstallaniPXEimagefromthegivenfile,replacingthe
SolarflarebootROMimage.sfupdatewillnot
automaticallyreplacetheiPXEimageinsubsequent
flashupdatesunlessthe‐‐restorebootromoptionis
used.
‐‐restorebootrom ReplaceaniPXEimageinflashwiththestandard
SolarflareBootManagerPXEimageincludedin
sfupdate.
y,‐‐yes Updatewithoutprompting.Thisoptioncanbeused
withthe‐‐writeand‐‐forceoptions.
v,‐‐verbose Verbosemode.
s,‐‐silent Suppressoutputwhiletheutilityisrunning;useful
whentheutilityisusedinascript.
V,‐‐version Displayversioninformationandexit.
Table21:SfupdateOptions
Option Description
SolarflareServerAdapterUserGuide
SolarflareAdaptersonLinux
Issue20 ©SolarflareCommunications2017 100
BootROMversion:unknown
ThisutilitycontainsmorerecentBootROMfirmware[v4.2.1.1000]
‐run"sfupdate‐‐write"toperformanupdate
Thisutilitycontainsmorerecentcontrollerfirmware[v4.2.1.1010]
‐run"sfupdate‐‐write"toperformanupdate
eth5‐MAC:000F53210060
Controllertype:SolarflareSFC9100family
Controllerversion:unknown
BootROMversion:unknown
ThisutilitycontainsmorerecentBootROMfirmware[v4.2.1.1000]
‐run"sfupdate‐‐write"toperformanupdate
Thisutilitycontainsmorerecentcontrollerfirmware[v4.2.1.1010]
‐run"sfupdate‐‐write"toperformanupdate
3.23LicenseInstallwithsfkey
ThesfkeyutilityisdistributedwiththeLinuxUtilitiesRPMpackage.Thisutilityis
usedtoinstallSolarflareAppFlex™licensesandenableselectedonboardservices
forSolarflareadapters.Formoreinformationaboutlicenserequirementssee
SolarflareAppFlex™TechnologyLicensing.onpage18.
sfkey:CommandUsage
#sfkey[‐‐adapter=eth<N>][options]
Iftheadapteroptionisnotspecified,operationswillbeappliedtoallinstalled
adapters.
•Toviewallsfkeyoptions:
#sfkey‐‐help
•Tolist(bylicensingID)alladaptersthatsupportlicensing:
#sfkey‐‐inventory‐‐all
eth2:714100101282140148200014
•TodisplayanadapterslicensingIDandinstalledlicensekeys:
#sfkey‐‐adapter=eth2‐‐report
eth2:714100101282140148200014(Flareon)
ProductnameSolarflareSFN7141QQSFP+FlareonUltraServerAdapter
InstalledkeysOnload
•Toinstallalicense:
Copythelicensekeydatatoa.txtfileonthetargetserver.Allkeyscanbeinthe
samekeyfileandthefileappliedonmultipleservers.Thefollowingexample
usesalicensekeyfilecalledkey.txtcreatedonthelocalserver.
#sfkey‐‐adapter=eth2‐‐installkeys.txt
SolarflareServerAdapterUserGuide
SolarflareAdaptersonLinux
Issue20 ©SolarflareCommunications2017 101
Readingkeys...
Writingallkeystoeth2...
eth2:714100101282140148200014(Flareon)
ProductnameSolarflareSFN7141QQSFP+FlareonUltraServerAdapter
InstalledkeysOnload,SolarCapturePro,CaptureSolarSystem
LicenseInventory
Usethecombined‐‐inventoryand‐‐keysoptionstoidentifythelicenses
installedonanadapter.
#sfkey‐‐adapter=eth2‐‐inventory‐‐keys
eth2:714100101282140148200014(Flareon),$ONL,!PTP,!SCL,SCP,CSS,!SSFE,!PM,!NAC
Licenseinformationisdisplayedin[Prefix][AppID][Suffix]format.
Prefix: <none> Licensed
$Factoryfitted
!Notpresent
AppID: An ApplicationIDnumber
<name> Applicationacronym
Suffix: <none> Licensed
+Sitelicensed
~Evaluationlicense
*Inactivelicense
@Inactivesitelicense
Nostateavailable
SolarflareServerAdapterUserGuide
SolarflareAdaptersonLinux
Issue20 ©SolarflareCommunications2017 102
sfkeyOptions
Table22describesallsfkeyoptions.
Table22:sfkeyoptions
Option Description
‐‐backup Outputareportoftheinstalledkeysinalladapters.
Thereportcanbesavedtofileandlaterusedwiththe
‐‐installoption.
‐‐install<filename> Installlicensekeysfromthegivenfileandreportthe
result.Toreadfromstdinuseinplaceoffilename.
Keysareinstalledtoanadapter,soifanadapters
portsareeth4andeth5,bothportswillbeaffected
bythekeysinstalled.
sfcdriverreloadisrequiredaftersfkeyinstallscertain
typesoflicense(e.g.aPTPlicense).
Toreloadthesfcdriver:
#modprobe‐rsfc;modprodesfc
orwhenOnloadisinstalled:
#onload_toolreload
‐‐inventory Listtheadaptersthatsupportlicensing.Bydefault
thiswilllistadaptersthatsupportlicenses.Tolistall
adaptersusethe‐‐alloption.Tolistkeysusethe
keysoption.
‐‐keys Includekeysin‐‐inventoryoutput‐seeLicense
Inventoryabove.
‐‐noevaluationupdate Donotupdateanyevaluationkeys.
a,‐‐all Applysfkeyoperationtoalladaptersthatsupport
licensing.
c,‐‐clear Deleteallexistinglicensekeysfromanadapter‐
exceptfactoryinstalledkeys.
h,‐‐help Displayallsfkeyoptions.
i,‐‐adapter identifyspecificadaptertoapplysfkeyoperationto.
SolarflareServerAdapterUserGuide
SolarflareAdaptersonLinux
Issue20 ©SolarflareCommunications2017 103
3.24PerformanceTuningonLinux
Introductiononpage103
Tuningsettingsonpage104
OtherConsiderationsonpage115
Introduction
TheSolarflarefamilyofnetworkadaptersaredesignedforhighperformance
networkapplications.Theadapterdriverispreconfiguredwithdefault
performancesettingsthathavebeendesignedtogivegoodperformanceacrossa
broadclassofapplications.Occasionally,applicationperformancecanbeimproved
bytuningthesesettingstobestsuittheapplication.
Therearethreemetricsthatshouldbeconsideredwhentuninganadapter:
• Throughput
•Latency
•CPUutilization
Differentapplicationsmaybemoreorlessaffectedbyimprovementsinthesethree
metrics.Forexample,transactional(requestresponse)networkapplicationscanbe
verysensitivetolatencywhereasbulkdatatransferapplicationsarelikelytobe
moredependentonthroughput.
Thepurposeofthissectionistohighlightadapterdriversettingsthataffectthe
performancemetricsdescribed.ThissectioncoversthetuningofallSolarflare
adapters.
r,‐‐report Displayanadapterserialnumberandcurrentlicense
status(seeexampleabove).
Usewith‐‐allorwith‐‐adapter.
Ifaninstalledoractivekeyisreportedas‘An(where
nisanumber),itindicatesalicenseunknowntothis
versionofsfkey‐useanupdatedsfkeyversion.
s,‐‐silent Silentmode,outputerrorsonly.
v,‐‐verbose Verbosemode.
V,‐‐version Displaysfkeyversionandexit.
x,‐‐xml ReportformatedasXML.
Table22:sfkeyoptions
Option Description
SolarflareServerAdapterUserGuide
SolarflareAdaptersonLinux
Issue20 ©SolarflareCommunications2017 104
Latencywillbeaffectedbythetypeofphysicalmediumused:10GBaseT,twinaxial
(directattach),fiberorKX4.Thisisbecausethephysicalmediainterfacechip(PHY)
usedontheadaptercanintroduceadditionallatency.Likewise,latencycanalsobe
affectedbythetypeofSFP/SFP+/QSFPmodulefitted.
Inaddition,youmayneedtoconsiderotherissuesinfluencingperformance,suchas
applicationsettings,servermotherboardchipset,CPUspeed,cachesize,RAMsize,
additionalsoftwareinstalledonthesystem,suchasafirewall,andthespecification
andconfigurationoftheLAN.Considerationofsuchissuesisnotwithinthescopeof
thisguide.
Tuningsettings
Portmode
TheselectedportmodeforSFN7000andSFN8000seriesadaptersshould
correspondtothespeedandnumberofconnectorsinuse,afterusinganysplitter
cables.Ifarestrictedsetofconnectorsisconfigured,thedrivercanthentransfer
resourcesfromtheunusedconnectorstothoseconfigured,potentiallyimproving
performance.
AdapterMTU(MaximumTransmissionUnit)
ThedefaultMTUof1500bytesensuresthattheadapteriscompatiblewithlegacy
10/100MbpsEthernetendpoints.HoweverifalargerMTUisused,adapter
throughputandCPUutilizationcanbeimproved.CPUutilizationisimproved,
becauseittakesfewerpacketstosendandreceivethesameamountofdata.
SolarflareadapterssupportanMTUofupto9216bytes(thisdoesnotincludethe
EthernetpreambleorframeCRC).
SincetheMTUshouldideallybematchedacrossallendpointsinthesameLAN
(VLAN),andsincetheLANswitchinfrastructuremustbeabletoforwardsuch
packets,thedecisiontodeployalargerthandefaultMTUrequirescareful
consideration.ItisrecommendedthatexperimentationwithMTUbedoneina
controlledtestenvironment.
TheMTUischangeddynamicallyusingifconfig,whereethXistheinterfacename
and<size>istheMTUsizeinbytes:
#/sbin/ifconfig<ethX>mtu<size>
VerificationoftheMTUsettingmaybeperformedbyrunningifconfigwithno
optionsandcheckingtheMTUvalueassociatedwiththeinterface.Thechangein
MTUsizecanbemadetopersistacrossrebootsbyeditingthefile/etc/
sysconfig/networkscripts/ifcfgethXandaddingMTU=<mtu>onanewline.
SolarflareServerAdapterUserGuide
SolarflareAdaptersonLinux
Issue20 ©SolarflareCommunications2017 105
InterruptModeration(InterruptCoalescing)
Interruptmoderationreducesthenumberofinterruptsgeneratedbytheadapterby
coalescingmultiplereceivedpacketeventsand/ortransmitcompletionevents
togetherintoasingleinterrupt.
Theinterruptmoderationintervalsetstheminimumtime(inmicroseconds)
betweentwoconsecutiveinterrupts.Coalescingoccursonlyduringthisinterval:
•Whenthedrivergeneratesaninterrupt,itstartstimingthemoderation
interval.
•Anyeventsthatoccurbeforethemoderationintervalexpiresarecoalesced
togetherintoasingleinterrupt,thatisraisedonlywhentheintervalexpires.
Anewmoderationintervalthenstarts,duringwhichnointerruptisraised.
•Aneventthatoccursafterthemoderationintervalhasexpiredgetsitsown
dedicatedinterrupt,thatisraisedimmediately.
Anewmoderationintervalthenstarts,duringwhichnointerruptisraised.
Solarflareadapters,bydefault,useanadaptivealgorithmwheretheinterrupt
moderationdelayisautomaticallyadjustedbetweenzero(nointerruptmoderation)
and60microseconds.Theadaptivealgorithmdetectslatencysensitivetraffic
patternsandadjuststheinterruptmoderationintervalaccordingly.
Interruptmoderationsettingsarecriticalfortuningadapterlatency:
• Disablingtheadaptivealgorithmwill:
‐ reducejitter
‐ allowsettingthemoderationintervalasrequiredtosuitconditions.
• Increasingtheinterruptmoderationintervalwill:
‐ generatelessinterrupts
‐ reduceCPUutilization(becausetherearelessinterruptstoprocess)
‐ increaselatency
‐ improvepeakthroughput.
• Decreasingtheinterruptmoderationintervalwill:
‐ generatemoreinterrupts
‐ increaseCPUutilization(becausetherearemoreinterruptstoprocess)
‐ decreaselatency
‐ reducepeakthroughput.
• Turningoffinterruptmoderationwill:
‐ generatethemostinterrupts
‐ givethehighestCPUutilization
‐ givethelowestlatency
‐ givethebiggestreductioninpeakthroughput.
SolarflareServerAdapterUserGuide
SolarflareAdaptersonLinux
Issue20 ©SolarflareCommunications2017 106
Formanytransactionrequestresponsetypenetworkapplications,thebenefitof
reducedlatencytooverallapplicationperformancecanbeconsiderable.Such
benefitstypicallyoutweighthecostofincreasedCPUutilization.Itisrecommended
that:
• Interruptmoderationisdisabledforapplicationsthatrequirebestlatencyand
jitterperformance,suchasmarketdatahandling.
• Interruptmoderationisenabledforhighthroughputsingle(orfew)connection
TCPstreamingapplications,suchasiSCSI.
Interruptmoderationcanbechangedusingethtool,whereethXistheinterface
name.Beforeadjustingtheinterruptmoderationinterval,itisrecommendedto
disableadaptivemoderation:
ethtool‐C<ethX>adaptiverxoff
TosettheRXinterruptmoderationintervalinmicroseconds(μs):
ethtool–C<ethX>rxusecs<interval>
Toturnoffinterruptmoderation,setanintervalofzero(0):
ethtool–C<ethX>rxusecs0
Theaboveexamplealsosetsthetransmitinterruptmoderationinterval,unlessthe
drivermoduleparameterseparate_tx_channelsisenabled.(NormallypacketRX
andTXcompletionswillshareinterrupts,soRXandTXinterruptmoderation
intervalsmustbeequal,andtheadapterdriverautomaticallyadjuststxusecsto
matchrxusecs.)RefertoTable27onpage123.
TosettheTXinterruptmoderationinterval,ifseparate_tx_channelsisenabled:
ethtool–C<ethX>txusecs<interval>
Interruptmoderationsettingscanbecheckedusingethtool–c.
NOTE:TheperformancebenefitsofTCPLargeReceiveOffloadarelimitedif
interruptmoderationisdisabled.SeeTCPLargeReceiveOffload(LRO)onpage107.
TCP/IPChecksumOffload
ChecksumoffloadmovescalculationandverificationofIPHeader,TCPandUDP
packetchecksumstotheadapter.Thedriverhasallchecksumoffloadfeatures
enabledbydefault.Therefore,thereisnoopportunitytoimproveperformance
fromthedefault.
Checksumoffloadiscontrolledusingethtool:
• ReceiveChecksum:
#/sbin/ethtool–K<ethX>rx<on|off>
•TransmitChecksum:
#/sbin/ethtool–K<ethX>tx<on|off>
Verificationofthechecksumsettingsmaybeperformedbyrunningethtoolwiththe
–koption.
NOTE:Solarflarerecommendyoudonotdisablechecksumoffload.
SolarflareServerAdapterUserGuide
SolarflareAdaptersonLinux
Issue20 ©SolarflareCommunications2017 107
TCPSegmentationOffload(TSO)
TCPSegmentationOffload(TSO)offloadsthesplittingofoutgoingTCPdatainto
packetstotheadapter.TSObenefitsapplicationsusingTCP.Applicationsusing
protocolsotherthanTCPwillnotbeaffectedbyTSO.
EnablingTSOwillreduceCPUutilizationonthetransmitsideofaTCPconnection
andimprovepeakthroughput,iftheCPUisfullyutilized.SinceTSOhasnoeffecton
latency,itcanbeenabledatalltimes.ThedriverhasTSOenabledbydefault.
Therefore,thereisnoopportunitytoimproveperformancefromthedefault.
TSOiscontrolledusingethtool:
#/sbin/ethtool–K<ethX>tso<on|off>
VerificationoftheTSOsettingsmaybeperformedbyrunningethtoolwiththe–k
option.
TCPandIPchecksumoffloadsmustbeenabledforTSOtowork.
NOTE:Solarflarerecommendthatyoudonotdisablethissetting.
TCPLargeReceiveOffload(LRO)
TCPLargeReceiveOffload(LRO)isafeaturewherebytheadaptercoalescesmultiple
packetsreceivedonaTCPconnectionintoasinglelargerpacketbeforepassingthis
ontothenetworkstackforreceiveprocessing.ThisreducesCPUutilizationand
improvespeakthroughputwhentheCPUisfullyutilized.TheeffectivenessofLRO
isboundedbytheinterruptmoderationdelay,andislimitedifinterruptmoderation
isdisabled(seeInterruptModeration(InterruptCoalescing)onpage105).Enabling
LROdoesnotitselfnegativelyimpactlatency.
NOTE:TheSolarflarenetworkadapterdriverenablesLRObydefault.Byitsdesign,
LROisofgreaterbenefitwhenworkingwithsmallerpackets.ForSolarflareadapter,
LROwillbecomedisablediftheMTUissetlargerthan3979.WhentheMTUisset
largerthan3978,LROcannotbeenabledandwillbereportedas‘fixeddisabled’by
ethtool.
NOTE:LROshouldNOTbeenabledwhenusingthehosttoforwardpacketsfrom
oneinterfacetoanother.Forexample,ifthehostisperformingIProuting.
SolarflareServerAdapterUserGuide
SolarflareAdaptersonLinux
Issue20 ©SolarflareCommunications2017 108
NOTE:IthasbeenobservedthatasRHEL6bootsthelibvirtddaemonchangesthe
defaultforwardingsettingsuchthatLROisdisabledonallnetworkinterfaces.This
behaviorisundesirableasitwillpotentiallylowerbandwidthandincreaseCPU
utilization‐especiallyforhighbandwidthstreamingapplications.
TodetermineifLROisenabledonaninterface:
ethtool‐kethX
IfIPforwardingisnotrequiredontheserver,Solarflarerecommendseither:
Disablingthelibvirtdservice(ifthisisnotbeingused),
Or,asrootbeforeloadingtheSolarflaredriver:
sysctl‐wnet.ipv4.conf.default.forwarding=0
(Thiscommandcanbeloadedinto/etc/rc.local),
Or,afterloadingtheSolarflaredriver,turnoffforwardingforonlythe
SolarflareinterfacesandreenableLRO:
sysctl‐wnet.ipv4.conf.ethX.forwarding=0
ethtool‐KethXlroon
(whereXistheidoftheSolarflareinterface).
Disablingthelibvirtdserviceisapermanentsolution,whereastheother
recommendationsaretemporaryandwillnotpersistoverreboot.
LROshouldnotbeenabledifIPforwardingisbeingusedonthesameinterfaceas
thiscouldresultinincorrectIPandTCPoperation.
LROcanbecontrolledusingthemoduleparameterlro.Addthefollowinglineto/
etc/modprobe.conforaddtheoptionslinetoafileunderthe/etc/modprobe.d
directorytodisableLRO:
optionssfclro=0
Thenreloadthedriversoitpicksupthisoption:
rmmodsfc
modprobesfc
Thecurrentvalueofthisparametercanbefoundbyrunning:
cat/sys/module/sfc/parameters/lro
LROcanalsobecontrolledonaperadapterbasisbywritingtothisfileinsysfs:
/sys/class/net/ethX/device/lro
•TodisableLRO:
echo0>/sys/class/net/ethX/device/lro
•ToenableLRO:
echo1>/sys/class/net/ethX/device/lro
SolarflareServerAdapterUserGuide
SolarflareAdaptersonLinux
Issue20 ©SolarflareCommunications2017 109
•ToshowthecurrentvalueoftheperadapterLROstate:
cat/sys/class/net/ethX/device/lro
ModifyingthisfileinstantlyenablesordisablesLRO,norebootordriverreloadis
required.Thissettingtakesprecedenceoverthelromoduleparameter
CurrentLROsettingscanbeidentifiedwithLinuxethtoole.g.
ethtool‐kethX
TCPandIPchecksumoffloadsmustbeenabledforLROtowork.
TCPProtocolTuning
TCPPerformancecanalsobeimprovedbytuningkernelTCPsettings.Settings
includeadjustingsendandreceivebuffersizes,connectionbacklog,congestion
control,etc.
ForLinuxkernelversions,including2.6.16andlater,initialbufferingsettingsshould
providegoodperformance.Howeverforearlierkernelversions,andforcertain
applicationsevenonlaterkernels,tuningbuffersettingscansignificantlybenefit
throughput.Tochangebuffersettings,adjustthetcp_rmemandtcp_wmemusingthe
sysctlcommand:
• Receivebuffering:
sysctlnet.ipv4.tcp_rmem="<min><default><max>"
•Transmitbuffering:
sysctlnet.ipv4.tcp_wmem="<min><default><max>"
(tcp_rmemandtcp_wmemcanalsobeadjustedforIPV6andgloballywiththe
net.ipv6andnet.corevariableprefixesrespectively).
Typicallyitissufficienttotunejustthemaxbuffervalue.Itdefinesthelargestsize
thebuffercangrowto.Suggestedalternatevaluesaremax=500000(1/2Mbyte).
Factorssuchaslinklatency,packetlossandCPUcachesizeallinfluencetheaffectof
themaxbuffersizevalues.Theminimumanddefaultvaluescanbeleftattheir
defaultsminimum=4096anddefault=87380.
BufferAllocationMethod
TheSolarflaredriverhasasingleoptimizedbufferallocationstrategy.Thisreplaces
thetwodifferentmethodscontrolledwiththerx_alloc_methoddrivermodule
parameterwhichwereavailableusing3.3andpreviousdrivers.
Thenetdrivercontinuestoexposetherx_alloc_methodmoduleoption,butthe
valueisignoredanditonlyexiststonotbreakexistingcustomerconfigurations.
SolarflareServerAdapterUserGuide
SolarflareAdaptersonLinux
Issue20 ©SolarflareCommunications2017 110
TXPIO
PIO(programmedinput/output)describestheprocesswheredataisdirectly
transferredbytheCPUtoorfromanI/Odevice.Itisanalternativetechniquetothe
I/OdeviceusingbusmasterDMAtotransferdatawithoutCPUinvolvement.
SolarflareSFN7000andSFN8000seriesadapterssupportTXPIO,wherepacketson
thetransmitpathcanbe“pushed”totheadapterdirectlybytheCPU.Thisimproves
thelatencyoftransmittedpacketsbutcancauseaverysmallincreaseinCPU
utilization.TXPIOisthereforeespeciallyusefulforsmallerpackets.
TheTXPIOfeatureisenabledbydefaultforpacketsupto256bytes.Themaximum
packetsizethatcanusePIOcanbeconfiguredwiththedrivermoduleoption
piobuf_size.
3.25WebServer‐DriverOptimization
Introduction
TheSolarflarenetdriverfromversion4.4.1.1017onSolarflareSFN7000and
SFN8000seriesadaptersincludesoptimizationsaimedspecificallyatwebservice
providersandcloudbasedapplications.
TuningrecommendationsaredocumentedinTable23forusersconcernedwith
ContentDeliveryNetworks(CDN),HTTPwebhostingapplicationtechnologiessuch
asHAProxy,nginxandHTTPwebservers.
WhentestedontheSolarflareSFN7122andSFN7002adaptersusingthe
recommendeddriverandfirmwarewithminimaldriver/hardwaretunings,
performanceimprovementshavebeenobservedinthefollowingareas:
•increasedtherateatwhichserverscanprocessnewHTTPconnections
•increasedtherateatwhichserverscanprocessHTTPrequests
•increasedsustainedthroughputwhenprocessinglargefilesviaHTTP
•improvedkernelthroughputperformance
Customersrequiringfurtherdetailsortoaccesstestdatashouldsendanemailto
support@solarflare.com.
SolarflareServerAdapterUserGuide
SolarflareAdaptersonLinux
Issue20 ©SolarflareCommunications2017 111
DriverTuning
Whilstmostdriverenhancementsareinternalchanges,transparentandnon
configurablebytheuser,thefollowingdrivermoduleoptionscanbeusedtotune
thedriverforparticularuserapplications.
• rss_numa_local
Usingthe4.4.1.1017driverthisoptionisenabledbydefault.Thiswillrestrict
RSStouseCPUcoresonlyontheNUMAnodeclosesttotheadapter.Thisis
particularlyimportantforprocessorssupportingDDIO.
RSSchannelsnotonthelocalNUMAnodecanstillbeaccessedusingthe
ethtool‐Ucommandstoidentifyacore(action)onwhichtoprocessthe
specifiedethtoolntuplefiltertraffic.Forexampleifrss_cpus=cores,thenan
RSSreceivechannelandassociatedMSIXinterruptiscreatedforeverycore.
• rx_recycle_ring_size
Thedefaultvalueforthemaximumnumberofreceivebufferstorecyclepages
forhasbeenchangedto512,andinnewerdriverswillbefurtherincreasedto
1024.
•rx_copybreak
Adefaultvalueof192byteshasbeenselectedasthemaximumsizeofpacket
(bytes)thatwillbecopieddirectlytothenetworkstack.
Drivermoduleoptionscanbeenabledinausercreatedfile(e.gsfc.conf)inthe/
etc/modprobe.ddirectory,forexample:
optionssfcrss_numa_local=Y
optionssfcrx_recycle_ring_size=512
Forfurtherdescriptionsandtolistallsfcdrivermoduleoptions:
#modinfosfc
nginxTuning
Table23:nginxServerTuning
Tuning Notes
SO_REUSEPORT Solarflaretestinginvolvingnginxusedversionv1.7.9
withappliedpatchtosupportso_reuseport.Seethe
followinglinkfordetails:http://forum.nginx.org/
read.php?29,241283,241283.
rss_cpus=N CreateNreceivequeueswhereN=(numberoflogical
cores)/2.
SeeReceiveSideScaling(RSS)onpage81for
options.
SolarflareServerAdapterUserGuide
SolarflareAdaptersonLinux
Issue20 ©SolarflareCommunications2017 112
Adapters‐SoftwareSupport
Tobenefitfromrecentdriveroptimizations,thefollowing(minimum)netdriverand
firmwareversionsshouldbeused:
#ethtool‐ieth<N>
driver:sfc
version:4.4.1.1017
firmwareversion:4.4.2.1011rx1tx1
Forlatencysensitiveapplications,theadapterfirmwarevariantshouldbesetwith
thesfbootutilitytoultralowlatency:
#sfboot‐‐adapter=eth<N>firmwarevariant=ultralowlatency
Theultralowlatencyfirmwarevariantisbeingusedwhentheoutputfromethtool
(above)showstherx1andtx1values.
Arebootoftheserverisrequiredafterchangesusingsfboot.
rss_numa_local=1 OnSMPsystemsitisrecommendedtohaveall
interruptsontheNUMAnodelocaltotheSolarflare
adapter:rss_numalocal=1,andpinnginxthreadsto
thefreeCPUsevenwhentheseareonthenonlocal
node.
Whenthisisnotpossible,CPUcorescanbedivided
equallybetweeninterruptsandnginxthreads.
rss_numa_local=1isthedefaultsetting.
Pinningthreads Applicationthreadsandinterruptsshouldnotbe
pinnedtothesameCPUcores.
ethtool‐Cadaptiverxoff Disabletheirqbalanceservicetopreventre
distributionofinterruptsbythekernel.Disable
adaptiveinterruptmoderationbeforesettingthe
interruptmoderationinterval.
ethtool‐Crxusecs60 Settheinterruptmoderationinterval.
Whenprocessingsmallerpacketsitisgenerally
bettertosetahigherintervali.e.60µsecsandfor
largerpacketsalowerintervalorevenzerotodisable
interruptmoderation.
SeeInterruptModeration(InterruptCoalescing)on
page105.
Table23:nginxServerTuning
Tuning Notes
SolarflareServerAdapterUserGuide
SolarflareAdaptersonLinux
Issue20 ©SolarflareCommunications2017 113
3.26InterruptAffinity
InterruptaffinitydescribesthesetofhostCPUsthatmayserviceaparticular
interrupt.
ThisaffinitythereforedictatestheCPUcontextwherereceivedpacketswillbe
processedandwheretransmitpacketswillbefreedoncesent.Iftheapplicationcan
processthereceivedpacketsinthesameCPUcontextbybeingaffinitizedtothe
relevantCPU,thenlatencyandCPUutilizationcanbeimproved.Thisimprovement
isachievedbecausewelltunedaffinitiesreduceinterCPUcommunication.
TuninginterruptaffinityismostrelevantwhenMSIXinterruptsandRSSarebeing
used.Theirqbalanceservice,whichtypicallyrunsbydefaultinmostLinux
distributions,isaservicethatautomaticallychangesinterruptaffinitiesbasedon
CPUworkload.
Inmanycasestheirqbalanceservicehindersratherthanenhancesnetwork
performance.Itisthereforenecessarytodisableitandthensetinterruptaffinities.
•Todisableirqbalancepermanently,run:
/sbin/chkconfig‐level12345irqbalanceoff
•Toseewhetherirqbalanceiscurrentlyrunning,run:
/sbin/serviceirqbalancestatus
•Todisableirqbalancetemporarily,run:
/sbin/serviceirqbalancestop
Oncetheirqbalanceservicehasbeenstopped,theInterruptaffinitiescanbe
configuredmanually.
NOTE:TheSolarflaredriverwillevenlydistributeinterruptsacrosstheavailable
hostCPUs(basedontherss_cpusmoduleparameter).
TousetheSolarflaredriverdefaultaffinities(recommended),theirqbalance
servicemustbedisabledbeforetheSolarflaredriverisloaded(otherwiseitwill
immediatelyoverwritetheaffinityconfigurationvaluessetbytheSolarflaredriver).
Example1:
Howaffinitiesshouldbemanuallysetwilldependontheapplication.Forasingle
streamedapplicationsuchasNetperf,onerecommendationwouldbetoaffinitize
alltheRxqueuesandtheapplicationonthesameCPU.Thiscanbeachievedwith
thefollowingsteps:
1Determinewhichinterruptlinenumbersthenetworkinterfaceuses.Assuming
theinterfaceiseth0,thiscanbedonewith:
#cat/proc/interrupts|grepeth0
123:13302000PCIMSIXeth00
131:02400PCIMSIXeth01
139:00320PCIMSIXeth02
147:00021PCIMSIXeth03
SolarflareServerAdapterUserGuide
SolarflareAdaptersonLinux
Issue20 ©SolarflareCommunications2017 114
Thisoutputshowsthattherearefourchannels(rows)setupbetweenfour
CPUs(columns).
2DeterminetheCPUstowhichtheseinterruptsareassignedto:
#cat/proc/irq/123/smp_affinity
00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000001
#cat/proc/irq/131/smp_affinity
00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000002
#cat/proc/irq/139/smp_affinity
00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000004
#cat/proc/irq/147/smp_affinity
00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000008
ThisshowsthatRXQ[0]isaffinitizedtoCPU[0],RXQ[1]isaffinitizedtoCPU[1],
andsoon.Withthisconfiguration,thelatencyandCPUutilizationfora
particularTCPflowwillbeDependantonthatflow’sRSShash,andwhichCPU
thathashresolvesonto.
NOTE:InterruptlinenumbersandtheirinitialCPUaffinityarenotguaranteed
tobethesameacrossrebootsanddriverreloads.Typically,itistherefore
necessarytowriteascripttoquerythesevaluesandapplytheaffinity
accordingly.
3SetallnetworkinterfaceinterruptstoasingleCPU(inthiscaseCPU[0]):
#echo1>/proc/irq/123/smp_affinity
#echo1>/proc/irq/131/smp_affinity
#echo1>/proc/irq/139/smp_affinity
#echo1>/proc/irq/147/smp_affinity
NOTE:Thereadbackof/proc/irq/N/smp_affinitywillreturntheoldvalue
untilanewinterruptarrives.
4SettheapplicationtorunonthesameCPU(inthiscaseCPU[0])asthenetwork
interface’sinterrupts:
#taskset1netperf
#taskset1netperfH<host>
NOTE:Theuseoftasksetistypicallyonlysuitableforaffinitytuningsingle
threaded,singletrafficflowapplications.Foramultithreadedapplication,
whosethreadsforexampleprocessasubsetofreceivetraffic,tasksetisnot
suitable.Insuchapplications,itisdesirabletouseRSSandInterruptaffinityto
spreadreceivetrafficovermorethanoneCPUandthenhaveeachreceive
threadbindtoeachoftherespectiveCPUs.Threadaffinitiescanbesetinside
theapplicationwiththeshed_setaffinity()function(seeLinuxmanpages).
Useofthiscallandhowaparticularapplicationcanbetunedisbeyondthe
scopeofthisguide.
Ifthesettingshavebeencorrectlyapplied,allinterruptsfrometh0arebeing
handledonCPU[0].Thiscanbechecked:
#cat/proc/interrupts|grepeth0
123:13302000PCIMSIXeth00
131:02400PCIMSIXeth01
139:00320PCIMSIXeth02
147:00021PCIMSIXeth03
SolarflareServerAdapterUserGuide
SolarflareAdaptersonLinux
Issue20 ©SolarflareCommunications2017 115
Example2:
AnexampleofaffinitizingeachinterfacetoaCPUonthesamepackage:
FirstidentifywhichinterruptlinesareservicingwhichCPUandIOdevice:
#cat/proc/interrupts|grepeth0
123:13302012781310PCIMSIXeth00
#cat/proc/interrupts|grepeth1
131:02400PCIMSIXeth10
FindCPUsonsamepackage(havesame‘packageid’):
#more/sys/devices/system/cpu/cpu*/topology/physical_package_id
::::::::::::::
/sys/devices/system/cpu/cpu0/topology/physical_package_id
::::::::::::::
1
::::::::::::::
/sys/devices/system/cpu/cpu10/topology/physical_package_id
::::::::::::::
1
::::::::::::::
/sys/devices/system/cpu/cpu11/topology/physical_package_id
::::::::::::::
0
Havingdeterminedthatcpu0andcpu10areonpackage1,wecanassigneachethX
interface’sMSIXinterrupttoitsownCPUonthesamepackage.Inthiscasewe
choosepackage1:
#echo1>/proc/irq/123/smp_affinity#1hexisbit0=CPU0
#echo400>/proc/irq/131/smp_affinity#400hexisbit10=CPU10
OtherConsiderations
PCIExpressLaneConfigurations
ThePCIExpress(PCIe)interfaceusedtoconnecttheadaptertotheservercan
functionatdifferentspeedsandwidths.Thisisindependentofthephysicalslotsize
usedtoconnecttheadapter.Thepossiblewidthsaremultiplesx1,x2,x4,x8andx16
lanesof(2.5GbpsforPCIeGen1,5.0GbpsforPCIeGen2and8.0GbpsforPCIeGen
3)ineachdirection.Solarflareadaptersaredesignedforx8orx16laneoperation.
Onsomeservermotherboards,choiceofPCIeslotisimportant.Thisisbecause
someslots(includingthosethatarephysicallyx8orx16lanes)mayonlyelectrically
supportx4lanes.Inx4laneslots,SolarflarePCIeadapterswillcontinuetooperate,
butnotatfullspeed.TheSolarflaredriverwillwarnifitdetectsthattheadapteris
pluggedintoaPCIeslotwhichelectricallyhasfewerthanx8lanes.
SolarflareSFN5000andSFN6000seriesadaptersrequireaPCIeGen2x8slotfor
optimaloperation.SolarflareSFN7000andSFN8000seriesadaptersrequireaPCIe
Gen3x8orx16slotforoptimalperformance.TheSolarflaredriverwillwarnifit
detectsthattheadapterisplacedinasuboptimalslot.
SolarflareServerAdapterUserGuide
SolarflareAdaptersonLinux
Issue20 ©SolarflareCommunications2017 116
Warningmessagescanbeviewedindmesgfrom/var/log/messages.
ThelspcicommandcanbeusedtodiscoverthecurrentlynegotiatedPCIelane
widthandspeed:
lspci‐d1924:‐vv
02:00.1Class0200:Unknowndevice1924:0710(rev01)
...
Link:SupportedSpeed2.5Gb/s,Widthx8,ASPML0s,Port1
Link:Speed2.5Gb/s,Widthx8
NOTE:TheSupportedspeedmaybereturnedas'unknown',duetoolderlspci
utilitiesnotknowinghowtodeterminethataslotsupportsPCIeGen.2.0/5.0Gb/s
orPCIeGen3.0/8,0Gb/s.
Inaddition,thelatencyofcommunicationsbetweenthehostCPUs,systemmemory
andtheSolarflarePCIeadaptermaybePCIeslotdependent.Someslotsmaybe
“closertotheCPU,andthereforehavelowerlatencyandhigherthroughput.If
possible,installtheadapterinaslotwhichislocaltothedesiredNUMAnode
Pleaseconsultyourserveruserguideformoreinformation.
CPUSpeedService
MostLinuxdistributionswillhavethecpuspeedservicerunningbydefault.This
servicecontrolstheCPUclockspeeddynamicallyaccordingtocurrentprocessing
demand.Forlatencysensitiveapplications,wheretheapplicationswitchesbetween
havingpacketstoprocessandhavingperiodsofidletimewaitingtoreceivea
packet,dynamicclockspeedcontrolmayincreasepacketlatency.Solarflare
recommenddisablingthecpuspeedserviceifminimumlatencyisthemain
consideration.
Theservicecanbedisabledtemporarily:
/sbin/servicecpuspeedstop
Theservicecanbedisabledacrossreboots:
/sbin/chkconfig–level12345cpuspeedoff
CPUPowerService
OnRHEL7systems,cpuspeedisreplacedwithcpupower.Solarflarerecommend
disablingthecpupowerserviceifminimumlatencyisthemainconsideration.The
serviceiscontrolledviasystemctl:
systemctlstopcpupower
systemctldisablecpupower
TunedService
OnRHEL7systems,itmaybebeneficialtodisablethetunedserviceifminimum
latencyisthemainconsideration.Usersareadvisedtoexperiment.Theserviceis
controlledviasystemctl:
systemctlstoptuned
systemctldisabletuned
SolarflareServerAdapterUserGuide
SolarflareAdaptersonLinux
Issue20 ©SolarflareCommunications2017 117
Busypoll
Ifthekernelsupportsthebusypollfeatures(Linux3.11orlater),andminimum
latencyisthemainconsideration,Solarflarerecommendthatthebusy_pollsocket
optionsshouldbeenabledwithavalueof50microsecondsasfollows:
sysctlnet.core.busy_poll=50&&sysctlnet.core.busy_read=50
OnlysocketshavinganonzerovalueforSO_BUSY_POLLwillbepolled,sotheuser
shoulddooneofthefollowing:
•setthepolltimeoutwiththeglobalbusy_readoption,asshownabove,
•setthepersocketSO_BUSY_POLLsocketoptiononselectedsockets.
Settingbusy_readalsosetsthedefaultvaluefortheSO_BUSY_POLLoption.
Memorybandwidth
Manychipsetsusemultiplechannelstoaccessmainsystemmemory.Maximum
memoryperformanceisonlyachievedwhenthechipsetcanmakeuseofall
channelssimultaneously.Thisshouldbetakenintoaccountwhenselectingthe
numberofmemorymodules(DIMMs)topopulateintheserver.Foroptimal
memorybandwidthinthesystem,itislikelythat:
•allDIMMslotsshouldbepopulated
•allNUMAnodesshouldhavememoryinstalled.
Pleaseconsultthemotherboarddocumentationfordetails.
Intel®QuickData/NetDMA
OnsystemsthatsupportIntelI/OAT(I/OAccelerationTechnology)featuressuchas
QuickData(a.k.aNetDMA),Solarflarerecommendthattheseareenabledasthey
arerarelydetrimentaltoperformance.
UsingIntel®QuickDataTechnologyallowsdatacopiestobeperformedbythe
systemandnottheoperatingsystem.Thisenablesdatatomovemoreefficiently
throughtheserverandprovidefast,scalable,andreliablethroughput.
EnablingQuickData
•OnsomesystemsthehardwareassociatedwithQuickDatamustfirstbe
enabled(onceonly)intheBIOS
•LoadtheQuickDatadriverswithmodprobeioatdma
ServerMotherboard,ServerBIOS,ChipsetDrivers
Tuningorenablingothersystemcapabilitiesmayfurtherenhanceadapter
performance.Readersshouldconsulttheirserveruserguide.Possibleopportunities
includetuningPCIememorycontroller(PCIeLatencyTimersettingavailableinsome
BIOSversions).
SolarflareServerAdapterUserGuide
SolarflareAdaptersonLinux
Issue20 ©SolarflareCommunications2017 118
TuningRecommendations
Thefollowingtablesproviderecommendationsfortuningsettingsfordifferent
applications.
• Throughput‐Table24onpage118
•Latency‐Table25onpage119
• Forwarding‐Table26onpage121
RecommendedThroughputTuning
Table24showsrecommendedtuningsettingsforthroughput:
Table24:ThroughputTuningSettings
TuningParameter How?
MTUSize Configuretomaximumsupportedbynetwork:
/sbin/ifconfig<ethX>mtu<size>
Interruptmoderation Leaveatdefault(Enabled).
TCP/IPChecksumOffload Leaveatdefault(Enabled).
TCPSegmentationOffload Leaveatdefault(Enabled).
TCPLargeReceiveOffload Leaveatdefault(Enabled).
TCPProtocolTuning Leaveatdefaultfor2.6.16andlaterkernels.
Forearlierkernels:
sysctlnet.core.tcp_rmem409687380524288
sysctlnet.core.tcp_wmem409687380524288
ReceiveSideScaling(RSS) Applicationdependent
Interruptaffinity&
irqbalanceservice
Interruptaffinitysettingsareapplication
dependent
Stopirqbalanceservice:
/sbin/serviceirqbalancestop
Reloadthedriverstousethedriverdefault
interruptaffinity.
BufferAllocationMethod Leaveatdefault.Someapplicationsmaybenefit
fromspecificsetting.
TheSolarflaredrivernowsupportsasingle
optimizedbufferallocationstrategyandanyvalue
setbytherx_alloc_methodparameterisignored.
SolarflareServerAdapterUserGuide
SolarflareAdaptersonLinux
Issue20 ©SolarflareCommunications2017 119
RecommendedLatencyTuning
Table25showsrecommendedtuningsettingsforlatency:
PCIExpressLane
Configuration
Ensuretheadapterisinanx8slot(2.0orlater),and
thatcurrentspeed(notthesupportedspeed)reads
backas“x8and5GT/s”,or“x8and8GT/s”,or“x8
andUnknown.
CPUSpeedService
(cpuspeed)
Leaveenabled.
Memorybandwidth Ensurememoryutilizesallmemorychannelson
systemmotherboard.
IntelQuickData(Intel
chipsetsonly)
EnableinBIOSandinstalldriver:
modprobeioatdma
Table25:LatencyTuningSettings
TuningParameter How?
MTUSize Configuretomaximumsupportedbynetwork:
/sbin/ifconfig<ethX>mtu<size>
Interruptmoderation Disablewith:
ethtool‐C<ethX>rxusecsirq0
TCP/IPChecksumOffload Leaveatdefault(Enabled).
TCPSegmentationOffload Leaveatdefault(Enabled).
TCPLargeReceiveOffload Disableusingsysfs:
echo0>/sys/class/net/ethX/device/lro
TCPProtocolTuning Leaveatdefault,butchangingdoesnotimpact
latency.
ReceiveSideScaling Applicationdependent.
Interruptaffinity&
irqbalanceservice
Interruptaffinitysettingsareapplication
dependent
Stopirqbalanceservice:
/sbin/serviceirqbalancestop
Reloadthedriverstousethedriverdefault
interruptaffinity.
Table24:ThroughputTuningSettings
TuningParameter How?
SolarflareServerAdapterUserGuide
SolarflareAdaptersonLinux
Issue20 ©SolarflareCommunications2017 120
BufferAllocationMethod Leaveatdefault.Someapplicationsmaybenefit
fromspecificsetting.
TheSolarflaredrivernowsupportsasingle
optimizedbufferallocationstrategyandanyvalue
setbytherx_alloc_methodparameterisignored.
PCIExpressLane
Configuration
Ensuretheadapterisinanx8slot(2.0orlater),and
thatcurrentspeed(notthesupportedspeed)reads
backas“x8and5GT/s”,or“x8and8GT/s”,or“x8
andUnknown.
CPUSpeedService
(cpuspeed)
Disablewith:
/sbin/servicecpuspeedstop
CPUPowerService
(cpupower)
Disablewith:
systemctlstopcpupower
systemctldisablecpupower
TunedService Experimentdisablingthiswith:
systemctlstoptuned
systemctldisabletuned
Busypoll(Linux3.11and
later)
Enablewithavalueof50µs:
sysctlnet.core.busy_poll=50\
&&sysctlnet.core.busy_read=50
Memorybandwidth Ensurememoryutilizesallmemorychannelson
systemmotherboard.
IntelQuickData(Intel
chipsetsonly)
EnableinBIOSandinstalldriver:
modprobeioatdma
Table25:LatencyTuningSettings
TuningParameter How?
SolarflareServerAdapterUserGuide
SolarflareAdaptersonLinux
Issue20 ©SolarflareCommunications2017 121
RecommendedForwardingTuning
Table26showsrecommendedtuningsettingsforforwarding
Table26:ForwardingTuningSettings
TuningParameter How?
MTUSize Configuretomaximumsupportedbynetwork:
/sbin/ifconfig<ethX>mtu<size>
Interruptmoderation Configureanexplicitinterruptmoderationinterval
bysettingthefollowingdriveroptions(seeDriver
Tuningonpage111):
irq_adapt_enable=0
tx_irq_mod_usec=150
TCP/IPChecksumOffload Leaveatdefault(Enabled).
TCPSegmentationOffload Leaveatdefault(Enabled).
TCPLargeReceiveOffload Disableusingsysfs:
echo0>/sys/class/net/ethX/device/lro
TCPProtocolTuning Leaveatdefaultfor2.6.16andlaterkernels.
Forearlierkernels:
sysctlnet.core.tcp_rmem409687380524288
sysctlnet.core.tcp_wmem409687380524288
ReceiveSideScaling(RSS) Leavetherss_cpusoptionatthedefault,touseall
CPUsforRSS.
Ensuretherss_numa_localdriveroptionissetto
itsdefaultvalueof1(seeDriverTuningon
page111).
Interruptaffinity&
irqbalanceservice
Interruptaffinity.AffinitizeeachethXinterfacetoits
ownCPU(ifpossibleselectCPU'sonthesame
Package).RefertoInterruptAffinityonpage113.
Stopirqbalanceservice:
/sbin/serviceirqbalancestop
BufferAllocationMethod Leaveatdefault.Someapplicationsmaybenefit
fromspecificsetting.
TheSolarflaredrivernowsupportsasingle
optimizedbufferallocationstrategyandanyvalue
setbytherx_alloc_methodparameterisignored.
SolarflareServerAdapterUserGuide
SolarflareAdaptersonLinux
Issue20 ©SolarflareCommunications2017 122
BufferRecycling Makereceivebufferrecyclingmoreaggressiveby
settingthefollowingdriveroption(seeDriver
Tuningonpage111):
rx_recycle_ring_size=256
PIO DisablePIObysettingthefollowingdriveroption
(seeDriverTuningonpage111):
piobuf_size=0
Transmitpush Disabletransmitpushbysettingthefollowing
driveroption(seeDriverTuningonpage111):
tx_push_max_fill=0
Directcopying Disablecopyingdirectlyfromthenetworkstackfor
transmitsbysettingthefollowingdriveroption(see
DriverTuningonpage111):
tx_copybreak=0
Ringsizes Changethenumberofdescriptorslotsoneachring
bysettingthefollowingdriveroptions(seeDriver
Tuningonpage111):
tx_ring=512
rx_ring=512
Notethatasthetx_irq_mod_usecinterrupt
moderationintervalincreases,thenumberof
requiredtx_ringandrx_ringdescriptorslotsalso
increases.Insufficientdescriptorslotswillcause
droppedpackets.
Table26:ForwardingTuningSettings
TuningParameter How?
SolarflareServerAdapterUserGuide
SolarflareAdaptersonLinux
Issue20 ©SolarflareCommunications2017 123
3.27ModuleParameters
Table27liststheavailableparametersintheSolarflareLinuxdrivermodule
(modinfosfc):
Table27:DriverModuleParameters
Parameter Description Possible
Value
Default
Value
sxps_enabled EnableordisabletheSolarflarenetdriverto
performtransmitflowsteering.
IfthekerneldoessupportXPS,thisshouldbe
enabledinthekernelbeforeusingtheSARFS
feature.
0|1 0
sarfs_table_size ThesizeofthetableusedtomaintainSARFS
filters.
uint 256
sarfs_global_holdoff_ms ThemaximumrateatwhichSARFSwillinsert
orremovefilters.Thiscanbeincreasedon
heavilyloadedserversordecreasedtoincrease
responsiveness.
uint 10ms
sarfs_sample_rate ThefrequencyatwhichTCPpacketsare
inspectedbytheSARFSfeature.Thiscanbe
increasedonheavilyloadedserverstoreduce
theCPUusagebyARFS.
Settingthesampleratetoanonzerovalue
enablestheSARFSfeature.Seealso
sxps_enabledabove.
Therecommendedsamplerateis20.
uint 0packets
piobuf_size Identifythelargestpacketsizethatcanuse
PIO.
SettingthistozeroeffectivelydisablesPIO
uint 256bytes
rx_alloc_method AllocationmethodusedforRXbuffers.
TheSolarflaredrivernowsupportsasingle
optimizedbufferallocationstrategyandany
valuesetbytherx_alloc_methodparameteris
ignored.
SeeBufferAllocationMethodonpage109.
uint AVN(0)
new
kernels.
PAGE(2)
old
kernels
rx_refill_threshold RXdescriptorringfast/slowfillthreshold(%). uint 90
lro_table_size1SizeoftheLROhashtable.Mustbeapowerof
2.
uint 128
SolarflareServerAdapterUserGuide
SolarflareAdaptersonLinux
Issue20 ©SolarflareCommunications2017 124
lro_chain_max1MaximumlengthofchainsintheLROhash
table.
uint 20
lro_idle_jiffies1Time(injiffies)afterwhichanidleconnection's
LROstateisdiscarded.
uint 101
lro_slow_start_packets1Numberofpacketsthatmustpassinorder
beforestartingLRO.
uint 20000
lro_loss_packets1Numberofpacketsthatmustpassinorder
followinglossbeforerestartingLRO.
uint 20
rx_desc_cache_size SetRXdescriptorcachesize. int 64
tx_desc_cache_size SetTXdescriptorcachesize. int 16
rx_xoff_thresh_bytes RXfifoXOFFthreshold. int 1(auto)
rx_xon_thresh_bytes RXfifoXONthreshold. int 1(auto)
lro Largereceiveoffloadacceleration int 1
separate_tx_channels UseseparatechannelsforTXandRX uint 0
rss_cpus NumberofCPUstouseforReceiveSide
Scaling,or'packages','cores'or'hyperthreads'
uintor
string
<empty>
irq_adapt_enable Enableadaptiveinterruptmoderation uint 1
irq_adapt_low_thresh ThresholdscoreforreducingIRQmoderation uint 10000
irq_adapt_high_thresh ThresholdscoreforincreasingIRQmoderation uint 20000
irq_adapt_irqs NumberofIRQsperIRQmoderation
adaptation
uint 1000
napi_weight NAPIweighting uint 64
rx_irq_mod_usec Receiveinterruptmoderation(microseconds) uint 60
tx_irq_mod_usec Transmitinterruptmoderation(microseconds) uint 150
allow_load_on_failure Ifsetthenallowdriverloadwhenonlineself
testsfail
uint 0
onload_offline_selftest Performofflineselftestonload uint 1
interrupt_mode Interruptmode(0=MSIX,1=MSI,2=legacy) uint 0
falcon_force_internal_sram ForceinternalSRAMtobeused int 0
Table27:DriverModuleParameters
Parameter Description Possible
Value
Default
Value
SolarflareServerAdapterUserGuide
SolarflareAdaptersonLinux
Issue20 ©SolarflareCommunications2017 125
3.28LinuxethtoolStatistics
TheLinuxcommandethtoolwilldisplayanextensiverangeofstatisticsoriginated
fromtheMAContheSolarflarenetworkadapter.Todisplaystatisticsusethe
followingcommand:
ethtool‐SethX
(whereXistheIDoftheSolarflareinterface)
UsingaSolarflarenetdriverearlierthanversion4.4.1.1017,theethtoolstatistics
counterscanberesetbyreloadingthesfcdriver:
#modprobe‐rsfc
#modprobesfc
Driversfromversion4.4.1.1017(includedinonload201502)havetomanagemulti
PFconfigurationsandforthisreasonstatisticsarenotresetbyreloadingthedriver.
Theonlymethodscurrentlyavailabletoresetstatsistocoldreboot(powerOFF/
ON)theserverorreloadthefirmwareimage.
Perportstatistics(port_)arefromthephysicaladapterport.Otherstatisticsare
fromthespecifiedPCIefunction.
Table28belowliststhecompleteoutputfromtheethtool‐Scommand.
NOTE:ethtool‐Soutputdependsonthefeaturessupportedbytheadaptertype
rss_numa_local ConstrainRSStouseCPUcoresontheNUMA
nodelocaltheSolarflareadapter.
Setto1torestrict,0otherwise.
0|1 1
max_vfs EnableVFsinthenetdriver.
WhenspecifiedasasingleintegertheVFcount
willbeappliedtoallPFs.
Whenspecifiedasacommaseparatedlist,the
firstVFcountisassignedtothePFwiththe
lowestindexi.e.thelowestMACaddress,then
thePFwiththenexthighestMACaddressetc.
uint 0
1. CheckOSdocumentationforavailabilityonSUSEandRHELversions.
Table27:DriverModuleParameters
Parameter Description Possible
Value
Default
Value
SolarflareServerAdapterUserGuide
SolarflareAdaptersonLinux
Issue20 ©SolarflareCommunications2017 126
.
Table28:Ethtool‐Soutput
Field Description
port_tx_bytes Numberofbytestransmitted.
port_tx_packets Numberofpacketstransmitted.
port_tx_pause Numberofpauseframestransmittedwith
validpauseop_code.
port_tx_control Numberofcontrolframestransmitted.
Doesnotincludepauseframes.
port_tx_unicast Numberofunicastpacketstransmitted.
Includesflowcontrolpackets.
port_tx_multicast Numberofmulticastpacketstransmitted.
port_tx_broadcast Numberofbroadcastpacketstransmitted.
port_tx_lt64 Numberofframestransmittedwherethe
lengthislessthan64bytes.
port_tx_64 Numberofframestransmittedwherethe
lengthisexactly64bytes.
port_tx_65_to_127 Numberofframestransmittedwherethe
lengthisbetween65and127bytes
port_tx_128_to_255 Numberofframestransmittedwherethe
lengthisbetween128and255bytes
port_tx_256_to_511 Numberofframestransmittedwherethe
lengthisbetween256and511bytes
port_tx_512_to_1023 Numberofframestransmittedwhere
lengthisbetween512and1023bytes
port_tx_1024_to_15xx Numberofframestransmittedwherethe
lengthisbetween1024and1518bytes
(1522withVLANtag).
port_tx_15xx_to_jumbo Numberofframestransmittedwhere
lengthisbetween1518bytes(1522with
VLANtag)and9000bytes.
port_rx_bytes Numberofbytesreceived.Notinclude
collidedbytes.
port_rx_good_bytes Numberofbytesreceivedwithouterrors.
Excludesbytesfromflowcontrolpackets.
SolarflareServerAdapterUserGuide
SolarflareAdaptersonLinux
Issue20 ©SolarflareCommunications2017 127
port_rx_bad_bytes NumberofbyteswithinvalidFCS.Includes
bytesfrompacketsthatexceedthe
maximumframelength.
port_rx_packets Numberofpacketsreceived.
port_rx_good Numberofpacketsreceivedwithcorrect
CRCvalueandnoerrorcodes.
port_rx_bad Numberofpacketsreceivedwithincorrect
CRCvalue.
port_rx_pause Numberofpauseframesreceivedwith
validpauseop_code.
port_rx_control Numberofcontrolframesreceived.Does
notincludepauseframes.
port_rx_unicast Numberofunicastpacketsreceived.
port_rx_multicast Numberofmulticastpacketsreceived.
port_rx_broadcast Numberofbroadcastedpacketsreceived.
port_rx_lt64 Numberofpacketsreceivedwherethe
lengthislessthan64bytes.
port_rx_64 Numberofpacketsreceivedwherethe
lengthisexactly64bytes.
port_rx_65_to_127 Numberofpacketsreceivedwherethe
lengthisbetween65and127bytes.
port_rx_128_to_255 Numberofpacketsreceivedwherethe
lengthisbetween128and255bytes.
port_rx_256_to_511 Numberofpacketsreceivedwherethe
lengthisbetween256and511bytes.
port_rx_512_to_1023 Numberofpacketsreceivedwherethe
lengthisbetween512and1023bytes.
port_rx_1024_to_15xx Numberofpacketsreceivedwherethe
lengthisbetween1024and1518bytes
(1522withVLANtag).
port_rx_15xx_to_jumbo Numberofpacketsreceivedwherethe
lengthisbetween1518bytes(1522with
VLANtag)and9000bytes.
Table28:Ethtool‐Soutput
Field Description
SolarflareServerAdapterUserGuide
SolarflareAdaptersonLinux
Issue20 ©SolarflareCommunications2017 128
port_rx_gtjumbo Numberofpacketsreceivedwithalengthis
greaterthan9000bytes.
port_rx_bad_gtjumbo Numberofpacketsreceivedwithalength
greaterthan9000bytes,butwithincorrect
CRCvalue.
port_rx_overflow Numberofpacketsdroppedbyreceiver
becauseofFIFOoverrun.
port_rx_nodesc_drop_cnt
port_rx_nodesc_drops
Numberofpacketsdroppedbythenetwork
adapterbecauseofalackofRXdescriptors
intheRXqueue.
PacketscanbedroppedbytheNICwhen
thereareinsufficientRXdescriptorsinthe
RXqueuetoallocatetothepacket.This
problemoccursifthereceiverateisvery
highandthenetworkadapterreceivecycle
processhasinsufficienttimebetween
processingtorefillthequeuewithnew
descriptors.
Anumberofdifferentstepscanbetriedto
resolvethisissue:
•Disabletheirqbalancedaemoninthe
OS
• Distributethetrafficloadacrossthe
availableCPU/coresbysetting
rss_cpus=cores.RefertoReceiveSide
Scalingsection
•Increasereceivequeuesizeusing
ethtool.
port_rx_pm_trunc_bb_overflow Overflowofthepacketmemoryburst
buffer‐shouldnotoccur.
port_rx_pm_discard_bb_overflow Numberofpacketsdiscardedduetopacket
memorybufferoverflow.
Table28:Ethtool‐Soutput
Field Description
SolarflareServerAdapterUserGuide
SolarflareAdaptersonLinux
Issue20 ©SolarflareCommunications2017 129
port_rx_pm_trunc_vfifo_full Numberofpacketstruncatedordiscarded
becausetherewasnotenoughpacket
memoryavailabletoreceivethem.
Happenswhenpacketscannotbedelivered
asquicklyastheyarrivedueto:
•packetrateexceedsmaximum
supportedbytheadapter.
•adapterisinsertedintoalowspeedor
lowwidthPCIslotsothePCIebus
cannotsupporttherequired
bandwidth.
•packetsarebeingreplicatedbythe
adapterandtheresultingbandwidth
cannotbehandledbythePCIebus.
•hostmemorybandwidthisbeingused
byotherdevicesresultinginpoor
performancefortheadapter.
port_rx_pm_discard_vfifo_full Countofthenumberofpacketsdropped
becauseofalackofmainpacketmemory
ontheadaptertoreceivethepacketinto.
port_rx_pm_trunc_qbb Notcurrentlysupported.
port_rx_pm_discard_qbb Notcurrentlysupported.
port_rx_pm_discard_mapping Numberofpacketsdroppedbecausethey
havean802.1pprioritylevelconfiguredto
bedropped
port_rx_dp_q_disabled_packets Incrementswhenthefilterindicatesthe
packetshouldbedeliveredtoaspecificrx
queuewhichiscurrentlydisableddueto
configurationerrororerrorcondition.
port_rx_dp_di_dropped_packets Numberofpacketsdroppedbecausethe
filtersindicatethepacketshouldbe
dropped.Canhappenbecause:
•thepacketdoesnotmatchanyfilter.
•thematchedfilterindicatesthepacket
shouldbedropped.
Table28:Ethtool‐Soutput
Field Description
SolarflareServerAdapterUserGuide
SolarflareAdaptersonLinux
Issue20 ©SolarflareCommunications2017 130
port_rx_dp_streaming_packets NumberofpacketsdirectedtoRXDP
streamingbuswhichisusedifthepacket
matchesafilterwhichdirectsittothe
MCPU.Notcurrentlyused.
port_rx_dp_hlb_fetch Countthenumberoftimestheadapter
descriptorcacheisemptywhenanew
packetarrives,forwhichtheadaptermust
doanemergencyfetchtoreplenishthe
cachewithmoredescriptors.
port_rx_dp_hlb_wait Incrementseachtimetheadapterhasdone
anhlb_fetchwhichhasnotyetcompleted.
rx_unicast Numberofunicastpacketsreceived.
rx_unicast_bytes Numberofunicastbytesreceived.
rx_multicast Numberofmulticastpacketsreceived.
rx_multicast_bytes Numberofmulticastbytesreceived.
rx_broadcast Numberofbroadcastpacketsreceived.
rx_broadcast_bytes Numberofbroadcastbytesreceived.
rx_bad Numberofpacketsreceivedwithincorrect
CRCvalue.
rx_bad_bytes Numberofbytesreceivedfrompackets
withincorrectCRCvalue.
rx_overflow Numberofpacketsdroppedbyreceiver
becauseofFIFOoverrun.
tx_unicast Numberofunicastpacketstransmitted.
tx_unicast_bytes Numberofunicastbytestransmitted.
tx_multicast Numberofmulticastpacketstransmitted.
tx_multicast_bytes Numberofmulticastbytestransmitted.
tx_broadcast Numberofbroadcastpacketstransmitted.
tx_broadcast_bytes Numberofbroadcastbytestransmitted.
tx_bad 0.
tx_bad_bytes 0.
Table28:Ethtool‐Soutput
Field Description
SolarflareServerAdapterUserGuide
SolarflareAdaptersonLinux
Issue20 ©SolarflareCommunications2017 131
tx_overflow Numberofpacketsdroppedbytransmitter
becauseofFIFOoverrun.
tx_merge_events ThenumberofTXcompletioneventswhere
morethanoneTXdescriptorwas
completed.
tx_tso_bursts NumberoftimeswhenoutgoingTCPdatais
splitintopacketsbytheadapterdriver.
RefertoTCPSegmentationOffload(TSO)
onpage107.
tx_tso_long_headers NumberoftimesTSOisappliedtopackets
withlongheaders.
tx_tso_packets Numberofphysicalpacketsproducedby
TSO.
tx_pushes Numberoftimesapacketdescriptoris
‘pushed’totheadapterfromthenetwork
adapterdriver.
tx_pio_packets NumberofpacketssentusingPIO.
rx_reset 0
rx_tobe_disc Numberofpacketsmarkedbytheadapter
tobediscardedbecauseofoneofthe
following:
•Mismatchunicastaddressandunicast
promiscuousmodeisnotenabled.
•Packetisapauseframe.
•Packethaslengthdiscrepancy.
•DuetointernalFIFOoverflow
condition.
•Length<60bytes.
rx_ip_hdr_chksum_err NumberofpacketsreceivedwithIPheader
Checksumerror.
rx_tcp_udp_chksum_err NumberofpacketsreceivedwithTCP/UDP
checksumerror.
Table28:Ethtool‐Soutput
Field Description
SolarflareServerAdapterUserGuide
SolarflareAdaptersonLinux
Issue20 ©SolarflareCommunications2017 132
rx_eth_crc_err NumberofpacketsreceivedwheretheCRC
didnotmatchtheinternallygeneratedCRC
value.Thisisthetotalofallreceive
channelsreceivingCRCerrors.
rx_mcast_mismatch Numberofunsolicitedmulticastpackets
received.Unwantedmulticastpacketscan
bereceivedbecauseaconnectedswitch
simplybroadcastsallpacketstoall
endpointsorbecausetheconnectedswitch
isnotableornotconfiguredforIGMP
snooping‐aprocessfromwhichitlearns
whichendpointsareinterestedinwhich
multicaststreams.
rx_frm_trunc Numberofframestruncatedbecausean
internalFIFOisfull.Asapacketisreceived
itisfedbytheMACintoa128KFIFO.Iffor
anyreasonthePCIinterfacecannotkeep
paceandisunabletoemptytheFIFOata
sufficientrate,theMACwillbeunableto
feedmoreofthepackettotheFIFO.Inthis
eventtheMACwilltruncatetheframe‐
markingitassuchanddiscardthe
remainder.Thedriveronseeinga'partial'
packetwhichhasbeentruncatedwill
discardit.
rx_merge_events NumberofRXcompletioneventswhere
morethanoneRXdescriptorwas
completed.
rx_merge_packets Numberofpacketsdeliveredtothehost
throughmergeevents.
tx0.tx_packets PerTXqueuetransmittedpackets.
tx_1.tx_packets PerTXqueuetransmittedpackets.
rx_0.rx_packets PerRXqueuereceivedpackets.
rx_1.rx_packets PerRXqueuereceivedpackets.
Table28:Ethtool‐Soutput
Field Description
SolarflareServerAdapterUserGuide
SolarflareAdaptersonLinux
Issue20 ©SolarflareCommunications2017 133
rx_no_skb_drops Numberofpacketsdroppedbytheadapter
whenthereareinsufficientsocketbuffers
availabletoreceivepacketsinto.
Seealsoport_rx_nodesc_drop_cntand
port_rx_nodesc_dropsabove.
rx_nodesc_trunc Numberofframestruncatedwhenthere
areinsufficientdescriptorstoreceivedata
into.Truncatedpacketswillbediscardedby
theadapterdriver.
ptp_good_syncs ThesePTPstatscountersrelatetothe
mechanismusedbysfptpdtosynchronize
thesystemclockandadapterclock(s)ina
server.
Foreachsynchronizationeventsfptpdwill
selectanumberofsystemclocktimestobe
comparedtotheadapterclocktime.Ifthe
timescanbesynchronized,thegood_syncs
counterisincremented,otherwisethe
bad_syncscounterisincremented.Ifsfptpd
isunabletosynchronizetheclocksatthis
event,thesync_timeoutcounteris
incremented.
sfptpdwillsynchronizeclocks16timesper
second‐soincrementingcountersdoesnot
necessarilyindicatebadsynchronization
betweenlocalserverclocksandanexternal
PTPmasterclock.
ptp_fast_syncs
ptp_bad_syncs
ptp_sync_timeouts
ptp_no_time_syncs
ptp_invalid_sync_windows
ptp_undersize_sync_windows
ptp_oversize_sync_windows
ptp_rx_no_timestamp NumberofPTPpacketsreceivedforwhich
ahardwaretimestampwasnotrecovered
fromtheadapter.
ptp_tx_timestamp_packets NumberofPTPpacketstransmittedfor
whichtheadaptergeneratedahardware
timestamp.
ptp_rx_timestamp_packets NumberofPTPpacketsreceivedforwhich
theadaptergeneratedahardware
timestamp.
ptp_timestamp_packets Total numberofPTPpacketsforwhichthe
adaptergeneratedahardwaretimestamp.
Table28:Ethtool‐Soutput
Field Description
SolarflareServerAdapterUserGuide
SolarflareAdaptersonLinux
Issue20 ©SolarflareCommunications2017 134
NOTE:Theadapterwilldoublecountpacketslessthat64bytes(port_rx_lt64)as
alsobeingaCRCerror.Thiscanresultinport_rx_bad =>rx_eth_crc_err
counter.Thedifferenceshouldbeequaltotheport_rx_lt64counter.
3.29DriverLoggingLevels
FortheSolarflarenetdriver,twosettingsaffecttheverbosityoflogmessages
appearingindmesgoutputand/var/log/messages:
•Thekernelconsoleloglevel
•Thenetifmessagepernetworkloglevel
Thekernelconsoleloglevelcontrolstheoveralllogmessageverbosityandcanbe
setwiththecommanddmesg‐northroughthe/proc/sys/kernel/printkfile:
echo6>/proc/sys/kernel/printk
Referto‘man2syslogforloglevelsandDocumentation/sysctl/kernel.txtfor
adescriptionofthevaluesin/proc/sys/kernel/printk.
Thenetifmessagelevelprovidesadditionalloggingcontrolforaspecifiedinterface.
ThesemessagelevelsaredocumentedinDocumentation/networking/netif
msg.txt.Amessagewillonlyappearontheterminalconsoleifboththekernel
consoleloglevelandnetifmessagelevelrequirementsaremet.
Thecurrentnetifmessagelevelcanbeviewedusingthefollowingcommand:
ethtool<iface>|grep‐A1'messagelevel:'
Currentmessagelevel:0x000020f7(8439)
drvprobelinkifdownifuprx_errtx_errhw
Changestothenetifmessagelevelcanbemadewithethtool.Eitherbyname:
ethtool‐s<iface>msglvlrx_statuson
orbybitmask:
ethtool‐s<iface>msglvl0x7fff
Theinitialsettingofthenetifmsglevelforallinterfacesisconfiguredusingthe
debugmoduleparametere.g.
modprobesfcdebug=0x7fff
ptp_filter_matches NumberofPTPpacketshittingthePTP
filter.
ptp_non_filter_matches NumberofPTPpacketswhichdidnot
matchthePTPfilter.
Table28:Ethtool‐Soutput
Field Description
SolarflareServerAdapterUserGuide
SolarflareAdaptersonLinux
Issue20 ©SolarflareCommunications2017 135
ethtool<iface>|grep‐A1'messagelevel:'
Currentmessagelevel:0x00007fff(32767)
drvprobelinktimerifdownifuprx_err
tx_errtx_queuedintrtx_donerx_statuspktdatahwwol
3.30RunningAdapterDiagnostics
Youcanuseethtooltorunadapterdiagnostictests.Testscanberunoffline(default)
oronline.Offlinerunsthefullsetoftests,whichcaninterruptnormaloperation
duringtesting.Onlineperformsalimitedsetoftestswithoutaffectingnormal
adapteroperation.
CAUTION:Offlinetestsshouldnotberunwhilesfptpdisrunning.ThePTPdaemon
shouldbeterminatedbeforerunningtheofflinetest.
Asrootuser,enterthefollowingcommand:
ethtool‐‐testethXoffline|online
Thetestsrunbythecommandareasfollows:
Table29:AdapterDiagnosticTests
DiagnosticTest Purpose
core.nvram Verifiestheflashmemory‘boardconfiguration’areaby
parsingandexaminingchecksums.
core.registers Verifiestheadapterregistersbyattemptingtomodifythe
writablebitsinaselectionofregisters.
core.interrupt Examinestheavailablehardwareinterruptsbyforcingthe
controllertogenerateaninterruptandverifyingthatthe
interrupthasbeenprocessedbythenetworkdriver.
tx/rx.loopback Verifiesthatthenetworkdriverisabletopasspacketsto
andfromthenetworkadapterusingtheMACandPhy
loopbacklayers.
core.memory VerifiesSRAMmemorybywritingvariousdatapatterns
(incrementingbytes,allbitonandoff,alternatingbitson
andoff)toeachmemorylocation,readingbackthedata
andcomparingittothewrittenvalue.
core.mdio VerifiestheMIIregistersbyreadingfromPHYIDregisters
andcheckingthedataisvalid(notallzerosorallones).
VerifiestheMMDresponsebitsbycheckingeachofthe
MMDsinthePhyispresentandresponding.
SolarflareServerAdapterUserGuide
SolarflareAdaptersonLinux
Issue20 ©SolarflareCommunications2017 136
3.31RunningCableDiagnostics
CablediagnosticdatacanbegatheredfromtheSolarflare10GBASETadapters
physicalinterfaceusingtheethtool‐ tcommandwhichrunsacomprehensiveset
ofdiagnostictestsonthecontroller,PHY,andattachedcables.Torunthecabletests
enterthefollowingcommand:
ethtool‐tethX[online|offline]
Onlinetestsarenonintrusiveandwillnotdisturblivetraffic.
CAUTION:Offlinetestsshouldnotberunwhilesfptpdisrunning.ThePTPdaemon
shouldbeterminatedbeforerunningtheofflinetest.
Thefollowingisanextractfromtheoutputoftheethtooldiagnosticofflinetests:
phycable.pairA.length9
phycable.pairB.length9
phycable.pairC.length9
phycable.pairD.length9
phycable.pairA.status1
phycable.pairB.status1
phycable.pairC.status1
phycable.pairD.status1
Cablelengthistheestimatedlengthinmetres.Alengthvalueof65535indicates
lengthnotestimatedduetopairbusyorcablediagnosticroutinenotcompleted
successfully.
Thecablestatuscanbeoneofthefollowingvalues:
0‐invalid,orcablediagnosticroutinedidnotcompletesuccessfully
1‐pairok,nofaultdetected
2‐pairopenorRt>115ohms
3‐intrapairshortorRt<85ohms
4‐interpairshortorRt<85ohms
9‐pairbusyorlinkpartnerforces100BaseTxor1000BaseTtestmode.
chanXeventq.poll Verifiestheadapterseventhandlingcapabilitiesbyposting
asoftwareeventoneacheventqueuecreatedbythedriver
andcheckingitisdeliveredcorrectly.
Thedriverutilizesmultipleeventqueuestospreadtheload
overmultipleCPUcores(RSS).
phy.bist ExaminesthePHYbyinitializingitandcausinganyavailable
builtinselfteststorun.
Table29:AdapterDiagnosticTests
DiagnosticTest Purpose
SolarflareServerAdapterUserGuide
Issue20 ©SolarflareCommunications2017 137
4SolarflareAdaptersonWindows
ThischaptercoversthefollowingtopicsontheMicrosoftWindows®platform:
SystemRequirementsonpage137
WindowsFeatureSetonpage138
InstallingtheSolarflareDriverPackageonWindowsonpage140
AdapterDriversOnlyInstallationonpage141
FullSolarflarePackageInstallationonpage142
InstallDriversandOptionsFromaWindowsCommandPromptonpage146
UnattendedInstallationonpage150
ManagingAdapterswithSAMonpage154
ManagingAdaptersRemotelywithSAMonpage156
UsingSAMonpage156
ConfiguringNetworkAdapterPropertiesinWindowsonpage184
WindowsCommandLineToolsonpage189
Completioncodes(%errorlevel%)onpage215
TeamingandVLANsonpage216
PerformanceTuningonWindowsonpage228
WindowsEventLogErrorMessagesonpage244
4.1SystemRequirements
•RefertoSoftwareDriverSupportonpage17fordetailsofsupportedWindows
versions.
•TheoptionalSolarflareAdapterManagerutilityrequiresMicrosoft.NET
Framework3.5onallsupportedWindowsversions.
SolarflareServerAdapterUserGuide
SolarflareAdaptersonWindows
Issue20 ©SolarflareCommunications2017 138
4.2WindowsFeatureSet
Table30liststhefeaturessupportedbySolarflareadaptersonWindows.
UsersshouldrefertoMicrosoftdocumentationtocheckfeatureavailabilityand
supportonspecificWindowsOSversions.
Table30:SolarflareWindowsFeatures
Jumboframes SolarflareadapterssupportMTUs(MaximumTransmission
Units)from1500bytesto9216bytes.
•SeeEthernetFrameLengthonpage167
•SeeConfiguringNetworkAdapterPropertiesin
Windowsonpage184
Taskoffloads SolarflareadapterssupportLargeSegmentationOffload
(LSO),ReceiveSegmentCoalescing(RSC),andTCP/UDP/IP
checksumoffloadforimprovedadapterperformanceand
reducedCPUprocessingrequirements.
•SeeSegmentationOffloadonpage165
•SeeConfiguringNetworkAdapterPropertiesin
Windowsonpage184
ReceiveSide
Scaling(RSS)
SolarflareadapterssupportRSSmulticoreloaddistribution
technology.
•SeeUsingSAMtoViewStatisticsandStateInformation
onpage176
•SeeConfiguringNetworkAdapterPropertiesin
Windowsonpage184
Interrupt
Moderation
SolarflareadapterssupportInterruptModerationtoreduce
thenumberofinterruptsonthehostprocessorfrompacket
events.
•SeeRSSandInterruptsonpage163
•SeeConfiguringNetworkAdapterPropertiesin
Windowsonpage184
SolarflareServerAdapterUserGuide
SolarflareAdaptersonWindows
Issue20 ©SolarflareCommunications2017 139
Teamingand/or
LinkAggregation
Improveserverreliabilityandbandwidthbybondingphysical
ports,fromoneormoreSolarflareadapters,intoateam,
havingasingleMACaddressandwhichfunctionasasingle
portprovidingredundancyagainstasinglepointoffailure.
•SeeUsingSAMtoConfigureTeamsandVLANson
page168
•SeeSfteam:AdapterTeamingandVLANToolon
page200
•SeeTeamingandVLANsonpage216
VirtualLANs
(VLANs)
SupportformultipleVLANsperadapter:
•SeeUsingSAMtoConfigureTeamsandVLANson
page168
•SeeSfteam:AdapterTeamingandVLANToolon
page200
•SeeTeamingandVLANsonpage216
PXEandUEFI
booting
SolarflareadapterssupportPXEandUEFIbooting,enabling
disklesssystemstobootfromaremotetargetoperating
system.
•SeeUsingSAMforBootROMConfigurationonpage181
•SeeSfboot:BootROMConfigurationToolonpage190
•SeeSolarflareBootManageronpage374
Faultdiagnostics Solarflareadaptersprovidecomprehensiveadapterand
cablefaultdiagnosticsandsystemreports.
•SeeUsingSAMtoRunAdapterandCableDiagnosticson
page177
•SeeSfcable:CableDiagnosticsToolonpage205
Firmware
updates
Solarflareadapterssupportadapterfirmwareupgrades.
•SeeSfupdate:FirmwareUpdateToolonpage198
Table30:SolarflareWindowsFeatures
SolarflareServerAdapterUserGuide
SolarflareAdaptersonWindows
Issue20 ©SolarflareCommunications2017 140
4.3InstallingtheSolarflareDriverPackageonWindows
AdapterDriversOnlyInstallationonpage141
FullSolarflarePackageInstallationonpage142
Repair,RemoveandChangeDriversandUtilitiesonpage145
NOTE:TheSolarflareadaptershouldbephysicallyinsertedbeforeinstallingthe
drivers.SeeInstallationonpage31.
Theusermusthaveadministrativerightstoinstalladapterdriversandmaybe
promptedtoenteranadministratorusernameandpassword.
IfWindowsattemptstoinstallthedriversautomatically,canceltheWindowsNew
HardwareFoundwizardandfollowtheinstructionsbelow.
SolarflaredoesnotrecommendinstallingdriversviaRemoteDesktopProtocol
(RDP).ForexampleviaTerminalServices.
ThedriversinstallpackageisnamedaftertheSolarflaredocumentpartnumbere.g.
SF107785LS2_Solarflare_Windows_x64_64bit_Driver_Package.exe
Thiscanberenamede.g.setup.exebeforeuse.
Stateand
statistics
analysis
Solarflareadaptersprovidecomprehensivestateand
statisticsinformationfordatatransfer,device,MAC,PHYand
otheradapterfeatures.
•SeeUsingSAMtoViewStatisticsandStateInformation
onpage176
•SeeSfteam:AdapterTeamingandVLANToolon
page200forteamingstatistics.
•SeeSfnetonpage211forperinterfacestatistics.
VMQ SolarflaredriverssupportstaticVMQforWindowsServer
2008R2andDynamicVMQonWindowsServer2012
SeeVirtualMachineQueueonpage167.
Table30:SolarflareWindowsFeatures
SolarflareServerAdapterUserGuide
SolarflareAdaptersonWindows
Issue20 ©SolarflareCommunications2017 141
4.4AdapterDriversOnlyInstallation
ThestepsbelowdescribehowtoinstallonlytheSolarflareadapterdriversin
Windows.Toinstallthedriversfromthecommandline,seeInstallDriversand
OptionsFromaWindowsCommandPromptonpage146.
1DoubleclickthesuppliedSetup.exe.tostarttheSolarflareDriverPackage
Setupwizard.Ifprompted,confirmyouradministratorprivilegestocontinue
installingthedrivers.
Figure12:SolarflareDriverPackageSetup
2FromtheCustomSetupscreen,selecttheInstallSolarflare®devicedrivers
optiononly.
SolarflareServerAdapterUserGuide
SolarflareAdaptersonWindows
Issue20 ©SolarflareCommunications2017 142
Figure13:SolarflareCustomSetup
3ClickFinishtoclosethewizard.RestartWindowsifpromptedtodoso.
4.5FullSolarflarePackageInstallation
Thissectioncoverthefollowingtopics:
Prerequisitesonpage142
SolarflarePackageInstallationProcedureonpage143
SolarflarePackageInstallationProcedureonpage143
Repair,RemoveandChangeDriversandUtilitiesonpage145
Prerequisites
•TheSolarflareAdapterManagerUtility(SAM)requiresMicrosoft.NET
Framework3.5assemblies.Theseareavailablebyinstalling.NETversion3.5
andmayalsobeavailableinversion4.xwithbackwardcompatibilityfor3.5.
ToinstalltherequiredcomponentsfromPowershellprompt(WindowsServer
editionsonly):
InstallWindowsFeatureNETFrameworkCore
AlternativelyonWindows8andlater:
EnableWindowsOptionalFeature‐FeatureNameNetFx3‐Online‐All
SolarflareServerAdapterUserGuide
SolarflareAdaptersonWindows
Issue20 ©SolarflareCommunications2017 143
SolarflarePackageInstallationProcedure
ThestepsbelowdescribehowtoinstallthecompleteSolarflareinstallationpackage.
Toinstallthisfromthecommandline,seeInstallDriversandOptionsFroma
WindowsCommandPromptonpage146.
1DoubleclickthesuppliedSetup.exe.TheSolarflareDriverPackageSetup
wizardstarts.
Figure14:SolarflareDriverPackageSetup
Ifprompted,confirmyouradministratorprivilegestocontinueinstallingthe
drivers.
2Followthesetupinstructionsinthewizardtocompletethedriverinstallation
procedure.SeeFigure15:
SolarflareServerAdapterUserGuide
SolarflareAdaptersonWindows
Issue20 ©SolarflareCommunications2017 144
Figure15:SolarflareDriverPackageCustomSetup
Table31liststhesetupoptions:
Table31:SolarflareCustomSetup
Option Description
InstallSolarflare
devicedrivers
InstallsSolarflaredriversforWindows.
TheSolarflaredriversareinstalledbydefault.
InstallSolarflare
commandlinetools
InstallsthefollowingSolarflareWindowscommandline
tools:
sfboot.exeBootROMconfigurationtool
sfupdate.exeFirmwareupdatetool
sfteam.exeAdapterteamingtool
sfcable.exeCablediagnosticstool
sfkey.exeLicensemanagementtool
sfnet.exeAdapterconfigurationtool
SeeWindowsCommandLineToolsonpage189.
Thesetoolsareinstalledbydefault.
SolarflareServerAdapterUserGuide
SolarflareAdaptersonWindows
Issue20 ©SolarflareCommunications2017 145
3ClickFinishtoclosethewizard.RestartWindowsifpromptedtodoso.
Toconfirmthedriversinstalledcorrectly,doeitherofthefollowing:
•OpentheWindowsDeviceManagerandchecktheSolarflareadapterispresent
underNetworkAdapters.
•StartSolarflareAdapterManager(Start>AllPrograms>SolarflareDrivers>
SolarflareAdapterManager).IftheSolarflareadapterisinstalledandworking
correctly,itwillbeshownintheSAMmainscreen,alongwithanyother
adapters,asinTable17onpage155.
Repair,RemoveandChangeDriversandUtilities
FromtheControlPanel>Programs>ProgramsandFeatures,selecttheSolarflare
DriverPackagethenselectUninstall,ChangeorRepairfromthemenubarabove
theprogramlist.
InstallSolarflare
AdapterManager
InstallsSolarflareAdapterManager(SAM)foreasy
accesstoadapterconfigurationoptions,wizardsfor
teamingandVLANsetup,adapterstatistics,and
diagnostictools.SeeManagingAdapterswithSAMon
page154formoredetails.
SAMisinstalledbydefault.
Note:Ifthisoptionisgrayedout,youneedtoexitthe
SolarflareinstallerandtheninstallMicrosoft.NET
Framework3.5beforererunningtheSolarflareinstaller.
InstallSolarflare
managementtools
notificationarea
icon
InstallsaSolarflarenotificationareaiconforlaunching
SolarflareAdapterManager(SAM)locallyorforaremote
computer.
Theiconisnotinstalledbydefault.
Table31:SolarflareCustomSetup
Option Description
SolarflareServerAdapterUserGuide
SolarflareAdaptersonWindows
Issue20 ©SolarflareCommunications2017 146
4.6InstallDriversandOptionsFromaWindowsCommand
Prompt
Thissectioncoversthefollowingsubjects:
CommandLineUsageonpage146
UsingADDLOCALonpage148
CommandLineUsage
Toviewcommandlineoptionsavailable,runthesetup<release>.exe/?command
toextractfilesusingtheSolarflareSetupBootstrapper.Whenthishascompleted
theSolarflareDriverPackageSetupWindowwillbedisplayed.
Figure16:CommandLineInstall.
InstallingfromtheWindowscommandlineallowsscripted,silentandunattended
installationofthecoreSolarflaredriversandpackageutilities.Thedriversinstall
packageisnamedaftertheSolarflaredocumentpartnumbere.g.
SF107785LS2_Solarflare_Windows_x64_64bit_Driver_Package.exe
Thiscanberenamede.gsetup.exebeforeinvokingfromthecommandline.
Thefollowingexamplewillinstalldefaultpackageoptionssilentlywithnomessage
output:
setup.exe/Quiet/Install
Table32listsothercommandlineexamples.Notethatcommandlineoptionsare
caseinsensitive,so/installand/INSTALLarethesame.
Table32:SolarflareInstallationOptions
Example Action
setup.exe/Admininstall<path> Allowsanadministratortounpack
andinstallthepackagetoanetwork
shareandtospecifywhichfeaturesof
thepackagecanbeinstalledbyusers.
setup.exe/Extract<path> Extractsthecontentsofsetup.exeto
thespecifiedpath.
SolarflareServerAdapterUserGuide
SolarflareAdaptersonWindows
Issue20 ©SolarflareCommunications2017 147
setup.exe/ExtractDrivers<path> Extracttheadapterdrivertothe
specifiedpath.
setup.exe/Filename<filename> Logalloutputtothespecifiedfile.
setup.exe/Force Allowpassiveorquietmodeto
replaceanexistinginstallationwith
anearlierversion.
setup.exe/Help Showsahelpscreenandexits.
setup.exe/Install Installsorconfiguresthepackage.
setup.exe/Install/Log<filename> Installthedriversandlogsmessages
tothespecifiedfile.
setup.exe/Install/Package
<packagefilename>
Installsthedriversandutilities
specifiedinpackagefilename.
setup.exe/Install/Passive Performsanunattendedinstallation
ofthedriversandutilities,rebooting
thehosttocompletetheinstallation
asrequired.
setup.exe/Install/Quiet Performsasilentinstallationofthe
driversandutilities,rebootingthe
hostwithoutpromptingto
completetheinstallationasrequired.
setup.exe/Reinstall Reinstallsthedriversandutilities.
setup.exe/Uninstall Removesthedriversandutilitiesfrom
thehostoperatingsystem.
setup.exe/Install/Verbose Performsaverboseinstallationofthe
driversandutilities,outputting
detailsforeachstageofthe
installationprocedure.
setup.exe/Package<PackageFilename> Identifythepackagefiletouseforthe
operation.
setup.exe/Version Showsversioninformationforthe
drivers.
setup.exe/Quiet/Install
ADDLOCAL=NetworkAdapterManager
Silentlyinstallsthedriversand
SolarflareAdapterManageronly
(otherutilitieswillnotbeinstalled).
See,UsingADDLOCALonpage148.
Table32:SolarflareInstallationOptions
Example Action
SolarflareServerAdapterUserGuide
SolarflareAdaptersonWindows
Issue20 ©SolarflareCommunications2017 148
UsingADDLOCAL
ADDLOCALisastandardWindowsInstallerpropertythatcontrolswhichfeatures
areinstalledviathecommandline.ForSolarflareadapters,thefollowingfeatures
canbeinstalledfromthecommandline:
CoreDriversInstallsthecoreadapterdrivers
NetworkAdapterManagerInstallsSolarflareAdapterManager(SAM)
CommandLineToolsInstallsSolarflarecommandlinetools:sfboot.exe,
sfupdate.exe,sfcable.exe,sfkey.exe,sfteam.exe,sfnet.exe.
LauncherInstallstheSolarflaresystemtrayicon,providingeasyaccesstothe
SolarflareAdapterManager(SAM).
Multiplefeaturesmaybeinstalledbyseparatingeachfeaturewithacomma(spaces
arenotallowed).
ADDLOCALcannotpreventLauncherfrombeinginstalledifeither
NetworkAdapterManagerorCommandLineToolsarenotinstalledorarestillbeing
installed.
ADDLOCALexamples
•Installthepackageinteractivelywiththedefaultinstallationoptionsselected
(equivalenttoSetup.exeorSetup.exe/Install).
Setup.exe/InstallADDLOCAL=CoreDrivers,
NetworkAdapterManager,CommandLineTools,Launcher
•Installthepackagewithoutanymanagementtools.Displaysalimiteduser
interfacewithstatusandprogressonly.
Setup.exe/Quiet/InstallADDLOCAL=CoreDrivers
•InstallSolarflareAdapterManager(SAM)only.Thiscommandshowsnouser
interfaceduringinstallationandwillrestartthehostsystemifrequired.
Setup.exe/Quiet/InstallADDLOCAL=NetworkAdapterManager
setup.exe/Quiet/Install
ADDLOCAL=NetworkAdapterManager
REBOOT=Suppress
Silentlyinstallsthedriversand
SolarflareAdapterManageronly,but
suppressestheautorestartatthe
endoftheinstallation.
<PROPERTY>=<Value> Specifyoneormoreinstall
properties.
Table32:SolarflareInstallationOptions
Example Action
SolarflareServerAdapterUserGuide
SolarflareAdaptersonWindows
Issue20 ©SolarflareCommunications2017 149
UsingREBOOT
REBOOTisastandardWindowsInstallerpropertythatcontrolswhenrebootsoccur:
Forceforcearebootattheendoftheinstallation
Suppresssuppressanyrebootattheendoftheinstallation
ReallySuppresssuppressanyrebootsduringtheinstallation,andattheend.
Seehttps://msdn.microsoft.com/enus/library/aa371101%28v=vs.85%29.aspx.
REBOOTexample
•InstallSolarflareAdapterManager(SAM)only,showingnouserinterface
duringinstallation,butsuppresstheautorebootattheendoftheinstallation.
Setup.exe/Quiet/InstallADDLOCAL=NetworkAdapterManagerREBOOT=Suppress
ExtractSolarflareDrivers
IfitisnecessarytoextracttheSolarflareWindowsdrivers,e.g.beforeWDSinstalls,
thiscanbedonefromtheWindowscommandline.
1FromtheCommandprompt,navigatetothedirectorywheretheinstallation
packageislocated.
2Enterthefollowingcommand:
Setup.exe/Extract<DestinationDirectory>
TheDestinationDirectorywilllistthefollowingsubdirectorystructure‐Theactual
folders/filesdisplayedwilldependontheSolarflaredriverpackageinstalled:
Table33liststhedriverssuppliedwiththeSolarflareDriverinstallationpackage:
Table33:SolarflareDrivers
Folder WhereUsed
WIN7 DriverforWindowsServer2008R2,foruseonaWDSserver.
WIN8 DriverforWindowsServer2012,foruseonaWDSserver.
WINBLUE DriverforWindowsServer2012R2,foruseonaWDSserver.
SolarflareServerAdapterUserGuide
SolarflareAdaptersonWindows
Issue20 ©SolarflareCommunications2017 150
4.7UnattendedInstallation
Thissectioncoversthefollowingsubjects:
WindowsDriverLocationsonpage150
UnattendedInstallationusingWDSonpage150
AddingSolarflareDriverstotheWDSBootImageonpage151
CreateCustomInstallImageonpage152
CreatetheWDSClientUnattend.xmlFileonpage153
CreatetheAutoUnattend.xmlFileonpage153
FurtherReadingonpage154
WindowsDriverLocations
ThefollowingstepsusedriversextractedfromtheSolarflareinstallationpackage.
RefertoTable33fordriverfolderlocations.
UnattendedInstallationusingWDS
WindowsDeploymentServices(WDS)enablesthedeploymentofWindowsovera
network(fromaWDSserver),avoidingtheneedtoinstalleachoperatingsystem
directlyfromaCDorDVD.
•ThisguideassumesyouhaveinstalledandarefamiliarwithWDS.Formore
informationonWDS,seeFurtherReadingonpage154.
•YoushouldalsobefamiliarwithPXEbootingoverSolarflareadapters.See
ConfiguretheBootManageronpage181formoreinformation.
Thefollowingstepsareanexampleofhowtosetupanunattendedinstallation
usingtheWDSinterface:
AddaBootImage
1FromthelefthandpaneoftheWDSMMCsnapin,rightclicktheBootImages
nodeandselectAddBootImage.
2SpecifyanamefortheimagegroupandclickAddBootImage.
SETUP LaunchtheSolarflareDriverPackageSetupwindow.
SETUPPKG Packagefilelistings.
Table33:SolarflareDrivers
Folder WhereUsed
SolarflareServerAdapterUserGuide
SolarflareAdaptersonWindows
Issue20 ©SolarflareCommunications2017 151
3Selecttheboot.wimfilefromtheWindowsinstallationDVD(inthe\Sources
folder).TheBoot.wimfilecontainstheWindowsPEandtheWindows
DeploymentServicesclient.
4ClickOpen,thenclickNext.
5Followtheinstructionsinthewizardtoaddthebootimage.
AddanInstallImage
1FromthelefthandpaneoftheWDSMMCsnapin,rightclicktheInstallImages
nodeandselectAddInstallImage.
2SpecifyanamefortheimagegroupandclickAddInstallImage.
3Selecttheinstall.wimfilefromyourinstallationDVD(inthe\Sources
folder),orcreateyourowninstallimage.ConsulttheWDSdocumentationfor
detailsoncreatingcustominstallimages.
4ClickOpen,thenclickNext.
5Followtheinstructionsinthewizardtoaddtheimage.
AddingSolarflareDriverstotheWDSBootImage
ThesestepsdescribehowtoaddtheSolarflaredriversintotheBootImage.
ModifyingtheBootImage
YounextneedtomodifythebootimagetoincludetheSolarflareDriversextracted
fromthesetuppackage.Table33identifiesdriversrequiredforthetargetoperating
system.TomodifythebootimageSolarflarerecommendsusingtheImageXtool
suppliedwiththeWindowsAutomatedInstallationKit(AIK).
1WithinWDS,expandtheserverwherethebootimageislocatedandselectthe
bootimageyouwanttomodify.Fromtherightclickmenu,selectDisable.
2CreateaWindowsPEcustomizationworkingdirectory(inthisexample
c:\windowspex86).Withinacommandprompt,from:
C:\programfiles\windowsaik\tools\petools\
andenterthefollowingcommand:
copype.cmdx86c:\windowspex86
3EnterthefollowingImageXcommandsfromthePEcustomizationworking
directory:
imagex/info<Drive>:\remoteinstall\boot\x86\images\<boot.wim>
NOTE:<Drive>isthepathwheretheremoteinstallfolderislocated.
<boot.wim>isthenameofyourbootimage.
4MountthebootimagewiththefollowingcommandfromyourPE
customizationworkingdirectory:
imagex/mountrw<Drive>:\remoteinstall\boot\x86\images\<boot.wim>2mount
SolarflareServerAdapterUserGuide
SolarflareAdaptersonWindows
Issue20 ©SolarflareCommunications2017 152
5CopythecontentsoftheappropriateSolarflaredriverfolder(seeTable33)to
asubdirectorywithinyourPEcustomizationworkingdirectory(inthisexample
c:\windowspex86\drivers).
6AddtheSolarflareVBDdrivertotheimagebyenteringthefollowingcommand
fromyourPEcustomizationworkingdirectory:
peimg/inf=c:\windowspex86\drivers\netSFB*.infmount\windows
7AddtheSolarflareNDISdrivertotheimagebyenteringthefollowingcommand
fromyourPEcustomizationworkingdirectory:
peimg/inf=c:\windowspex86\drivers\netSFN6*.infmount\windows
8Unmounttheimage,usingthefollowingcommandfromyourPEcustomization
workingdirectory:
imagex/unmount/commitmount
9FromWDS,expandtheserverwherethebootimageislocatedandselectthe
bootimageyouhavemodified.Fromtherightclickmenu,selectEnable.
CreateCustomInstallImage
ThesestepsdescribehowtoaddtheSolarflaredriversintotheCustomInstallImage.
ThesearethesameSolarflaredriversaddedtothebootimage.
PreparingtheCustomInstallImage
1FromWDS,locatetheinstallimagefromtheInstallImagesfolderonyour
server.
2RightclicktheimageandselectExportImagefromthemenu.
3Exporttheimagetoalocationwhereitcanbemounted.Solarflarerecommend
usingtheWindowsPEcustomizationworkingdirectoryasthissavescreatinga
seconddirectory.Inthisexample:c:\windowspex86.
ModifyingtheInstallImage
1MounttheinstallimagewiththefollowingcommandfromyourPE
customizationworkingdirectory:
imagex/mountrw<Drive>:\<path>\<install.wim>1mount
NOTE:<Drive>isthepathwheretheremoteinstallfolderislocated.
<boot.wim>isthenameofyourbootimage.
2CopythecontentsoftheappropriateSolarflaredriverfolderinTable33toa
subdirectoryinyourPEcustomizationworkingdirectory(inthisexample
c:\windowspex86\drivers).Ifyouareusingthesamedirectoryasforthe
bootimage,thisdirectoryshouldalreadybepresent.
3AddtheSolarflareVBDdrivertotheimagebyenteringthefollowingcommand
fromyourPEcustomizationworkingdirectory:
peimg/inf=c:\windowspex86\drivers\netSFB*.infmount\windows
SolarflareServerAdapterUserGuide
SolarflareAdaptersonWindows
Issue20 ©SolarflareCommunications2017 153
4AddtheSolarflareNDISdrivertotheimagebyenteringthefollowingcommand
fromyourPEcustomizationworkingdirectory:
peimg/inf=c:\windowspex86\drivers\netSFN6*.infmount\windows
5Unmounttheimage,usingthefollowingcommandfromyourPEcustomization
workingdirectory:
imagex/unmount/commitmount
ImporttheCustomImagetoWDS
1FromWDS,selecttheImagegroupyouwanttoaddtheimageto.Rightclick
andselectImportImage.
2Browsetothelocationofthecustomimage,andclickNext.
3Followtheinstructionsinthewizardtoimporttheimage.
CreatetheWDSClientUnattend.xmlFile
TheWDSClientUnattend.xmlfileisusedbytheWindowsPEbootenvironmentto
configuresettingsincludingthelanguage,credentialsforconnectingtotheWDS
server,thepartitioningofthediskandwhichimagetodeploy.
NOTE:YoucanusetheWindowsSystemImageManager(PartoftheWindows
AutomatedInstallationKit)tocreatetheWDSClientUnattend.xmlfile.
ToassociateyourWDSClientUnattend.xmlfilewithyourmodifiedbootimage:
1CopytheWDSClientUnattend.xmlfiletothefollowingfolderinthe
RemoteInstallfolder:RemoteInstall\WDSClientUnattend.
2OpentheWindowsDeploymentServicesMMCsnapin,rightclicktheserver
thatcontainstheWindowsServer2008R2,2012,or2012R2bootimagewith
whichyouwanttoassociatethefile,andthenselectProperties.
3OntheClienttab,selectEnableunattendedinstallation,browsetothe
WDSClientUnattend.xmlfile,thenclickOpen.
4ClickOKtoclosethePropertiespage.
CreatetheAutoUnattend.xmlFile
TheAutoUnattend.xmlfileisusedduringtheinstallationofWindowsServer
2008R2,2012,and2012R2toautomaticallypopulatethevariousconfiguration
settings.
NOTE:YoucanusetheWindowsSystemImageManager(PartoftheWindows
AutomatedInstallationKit)tocreatetheAutoUnattend.xmlfile.
ToassociateyourAutoUnattend.xmlfilewithyourcustominstallimage:
1CopytheAutoUnattend.xmlfiletothefollowingfolderintheRemoteInstall
folder:RemoteInstall\WDSClientUnattend.
SolarflareServerAdapterUserGuide
SolarflareAdaptersonWindows
Issue20 ©SolarflareCommunications2017 154
2OpentheWindowsDeploymentServicesMMCsnapin,selectthecustom
installimagewithwhichyouwanttoassociatethefile,rightclickandthen
selectProperties.
3SelecttheAllowimagetoinstallinunattendmodeoption.
4ClickSelectFileandbrowsetoyourAutoUnattend.xmlfile.
FurtherReading
• InstallingandconfiguringWindowsDeploymentServices(WDS):
http://technet.microsoft.com/enus/library/cc771670%28WS.10%29.aspx
WindowsPECustomization:
http://technet.microsoft.com/enus/library/cc721985%28WS.10%29.aspx
GettingStartedwiththeWindowsAIK:
http://technet.microsoft.com/enus/library/cc749082%28WS.10%29.aspx
PerformingUnattendedInstallations:
http://technet.microsoft.com/enus/library/cc771830%28WS.10%29.aspx
HowtoaddnetworkdrivertoWDSbootimage:
http://support.microsoft.com/kb/923834
WindowsDeploymentServicesGettingStartedGuideforWindowsServer2012
http://technet.microsoft.com/enus/library/jj648426.aspx
4.8ManagingAdapterswithSAM
Introductiononpage155
ManagingAdaptersRemotelywithSAMonpage156
UsingSAMonpage156
UsingSAMtoConfigureAdapterFeaturesonpage160
UsingSAMtoConfigureTeamsandVLANsonpage168
UsingSAMtoViewStatisticsandStateInformationonpage176
UsingSAMtoRunAdapterandCableDiagnosticsonpage177
UsingSAMforBootROMConfigurationonpage181
NOTE:TheWindowsdialogboxesdisplayedbySAMwillappeardifferentlyon
differentMicrosoftWindowsOSversions.
SolarflareServerAdapterUserGuide
SolarflareAdaptersonWindows
Issue20 ©SolarflareCommunications2017 155
Introduction
TheSolarflareAdapterManager(SAM)isaMicrosoftManagementConsole(MMC)
pluginformanagingSolarflareadapters,teamsandVLANs.SAMshowsinformation
foralladaptersinstalledontheserver,alongsidethestandardMMCpluginActions
pane.
UsingSAM,youcaneasilyconfigureEthernetandtaskoffloadingsettings,setup
teamsandVLANs,configuretheBootROMforPXEorUEFIbooting,andupgradethe
adapterfirmware.
Figure17:SAMMainScreen‐WindowsServer2012
SAM’sdiagnosticsutilitiesallowyoutoruntestsontheadapter,andon10GBASET
adapters,onthecabletodiscoveranypotentialissueswhichmaybeaffecting
adapterperformance.Also,SAM’sdetailedstatisticsandstateinformationcanbe
usedtoviewdatatransferfigures,sentandreceivedpackettypes,aswellasother
trafficrelateddetails.
SAMisincludedwiththeSolarflaredriversinstallationpackage.
SolarflareServerAdapterUserGuide
SolarflareAdaptersonWindows
Issue20 ©SolarflareCommunications2017 156
4.9ManagingAdaptersRemotelywithSAM
SAMcanbeusedtoadministerSolarflareadaptersonyourserverfromaremote
computer.SAMcanbeusedremotelytoadministeradaptersonanysupported
Windowsplatform,includingaWindowsServerCoreInstallation.Remote
AdministrationprovidesaccesstoallSAMfeatures,exceptforgeneratingasystem
report.
ToallowSAMtoremotelyadministeryourserver,youneedtoaddaComputer
ManagementsnapintothecomputerMicrosoftManagementConsole(MMC).
4.10UsingSAM
StartingSAM
TherearevariouswaysofstartingSAM.
Tomanagealocalcomputer,dooneofthefollowing:
•IftheSolarflarenotificationareaiconisinstalled,rightclicktheiconand
chooseManagenetworkadaptersonthiscomputer.
•OnWindowsServer2008R2,chooseStart>AllPrograms>Solarflare
NetworkAdapters>Managenetworkadaptersonthiscomputer.
OnWindowsServer2012orlater,clicktheStartbuttonfollowedbythearrow
button,thenchooseSolarflareNetworkAdapters>Managenetwork
adaptersonthiscomputer.
•OnWindowsServer2008R2,chooseStart>AdministrativeTools>Computer
Management>SystemTools>NetworkAdapters.
OnWindowsServer2012orlater,clicktheStartbutton,thenchoose
AdministrativeTools>ComputerManagement>SystemTools>Network
Adapters.
Figure18:SAMiconsonStartscreen
SolarflareServerAdapterUserGuide
SolarflareAdaptersonWindows
Issue20 ©SolarflareCommunications2017 157
NOTE:YoumaybeaskedforpermissiontocontinuebytheUserAccountControl
whenstartingSAM.YoumustrunSAMasanadministratortomakeanychanges.
Tomanagearemotecomputer,dooneofthefollowing:
•IftheSolarflarenotificationareaiconisinstalled,rightclicktheiconand
chooseManagenetworkadaptersonaremotecomputer.
•OnWindowsServer2008R2,chooseStart>AllPrograms>SolarflareNetwork
Adapters>Managenetworkadaptersonaremotecomputer.
OnWindowsServer2012orlater,clicktheStartbuttonfollowedbythearrow
button,thenchooseSolarflareNetworkAdapters>Managenetwork
adaptersonaremotecomputer.
ViewingAdapterDetails
SAMlistsallavailablenetworkadaptersinstalledintheserver,regardlessof
manufactureroradaptertype
Figure19:SolarflareAdapterManager(SAM)
Foreachadapter,SAMprovidesthefollowingdetails:
•Nameandnetworkinterface
•IPaddress(IPv4andIPv6,ifavailable)
•MACaddress
•Transmitload
• Receiveload
SolarflareServerAdapterUserGuide
SolarflareAdaptersonWindows
Issue20 ©SolarflareCommunications2017 158
ForSolarflareadaptersonly,SAMalsolistsanyteamsorVLANsthathavebeen
configured,alongwithdetailsthatallowyoutoquicklycheckperformanceand
status.
ViewingPerformanceGraphs
ToviewSolarflareperformancegraphs,RightclickonanadapterandselectShow
graphsfromthemenu.Bydefault,SAMshowstheload,transmittedpacketsand
receivedpacketsgraphsonly.Toviewotheravailablegraphs,SelectGraphsfromthe
rightclickmenu,orfromtheActionsPane/Actionmenu.FornonSolarflare
adaptersonlytheloadgraphisdisplayed.
ConfiguringOptionsinSAM
SAMallowsyoutochangetheunitsusedtodisplaydata,enableseparatorswhen
displayinglargenumbersanddisable/enablewarningmessages.
ToconfigureSAMoptions:
1StartSAM.
2FromtheActionspane,clickOptions,orchooseAction>Options.
SolarflareServerAdapterUserGuide
SolarflareAdaptersonWindows
Issue20 ©SolarflareCommunications2017 159
Figure20:SAM‐Actions>Options
3IntheConfigurationwindow,selectrequiredoptions(seeTable34).
4ClickOKtosaveyouroptionsorCanceltoretaintheexistingsettings.
Table34:SAMConfigurationOptions
Tab Options Description
Values Displayvalues
usingSIunits
Displaysvaluesusingmetricprefixes(K,M,G,T,
P, E),forexample2.3Mforthevalue2,300,000.
Enabledbydefault.Thiscanbeusefulwhen
dealingwiththelargeTx/Rxnumbersthatcan
accumulatewith10Gbnetworking.
Note:TheTransmitandReceivebytescolumns
ignorethissetting.
Values Useseparatorsin
largevalues
Useseparatorswithlargenumbers,for
example2,341,768.Enabledbydefault.
Values Load/bandwidth
units
Usebitspersecond(defaultsetting),orbytes
persecondwhendisplayingdatatransfer
figures.
Warnings Warnings
displayedbefore
amajoraction
takesplace
Warningsforthefollowingactionscanbe
enabledordisabledinSAM:
• DeletingaVLANorremovinganetwork
adapterfromateam
• Deletingateam
SolarflareServerAdapterUserGuide
SolarflareAdaptersonWindows
Issue20 ©SolarflareCommunications2017 160
WorkingwithThirdPartyAdapters
ThirdpartyadaptersinstalledintheserverarealsolistedintheSAM’sNetwork
Adapterslist,alongwiththeSolarflareadaptersandanyteamsandVLANswhich
havebeensetupontheserver.
SAMprovidessomeoptionsforworkingwiththirdpartyadapters.Theavailable
actionsforthirdpartyadaptersareshownintheActionpane.
4.11UsingSAMtoConfigureAdapterFeatures
SAMallowsyoutoconfigurethefollowingfeaturesonSolarflareadapters:
AccessingAdapterFeatureSettingsonpage160
ChecksumOffloadonpage163
RSSandInterruptsonpage163
SegmentationOffload
EthernetLinkSpeedonpage166
Ethernetflowcontrolonpage166
EthernetFrameLengthonpage167
NOTE:ChangingthevalueofanAdapterfeaturecannegativelyimpactthe
performanceoftheadapter.Youarestronglyadvisedtoleavethemattheirdefault
values.
NOTE:BeforemakinganychangestoyourSolarflareadapterfeatures,readthe
PerformanceTuningonWindowssectiononpage228first.
AccessingAdapterFeatureSettings
UseoneofthefollowingmethodstoaccesstheAdapterFeaturesDialog:
FromSAM,rightclickonanadapterandselectConfiguration>ConfigureOffload
tasks,Ethernetandotherfeatures.
SolarflareServerAdapterUserGuide
SolarflareAdaptersonWindows
Issue20 ©SolarflareCommunications2017 161
FromSAM,selectanadapterandfromtheActionmenu,selectConfigureOffload
tasks,Ethernetandotherfeatures.
TheAdapterFeaturesdialogboxwillbedisplayed:
SolarflareServerAdapterUserGuide
SolarflareAdaptersonWindows
Issue20 ©SolarflareCommunications2017 162
Figure21:SolarflareAdapterManagerAdapterFeatures
ClickApplyorOKwhenchangestoAdapterFeaturesaremodified.
NotethattheReceivelegendintheSegmentationOffloadfielddiffers,depending
ontheversionofWindowsthatisinstalled:
•forWindowsServer2008R2,itisLargeReceiveOffload(LRO)
•forWindowsServer2012andlater,itisReceiveSegmentCoalescing(RSC),as
shown.
FormoreinformationseeSegmentationOffloadonpage165.
SolarflareServerAdapterUserGuide
SolarflareAdaptersonWindows
Issue20 ©SolarflareCommunications2017 163
ChecksumOffload
ChecksumoffloadingissupportedonIP,TCPandUDPpackets.Beforetransmitting
apacket,achecksumisgeneratedandappendedtothepacket.Atthereceivingend,
thesamechecksumcalculationisperformedagainstthereceivedpacket.By
offloadingthechecksumprocesstothenetworkadapter,theloadisdecreasedon
theserverCPU.
Bydefault,Solarflareadaptersaresetuptooffloadboththecalculationand
verificationofTCP,IPandUDPchecksums.ThefollowingChecksumOffloadoptions
aresupported:
YoucanalsoconfigureChecksumOffloadsettingsfromthenetworkadapter
properties.SeeConfiguringNetworkAdapterPropertiesinWindowsonpage184
formoredetails.
NOTE:ChangingtheChecksumOffloadsettingscanimpacttheperformanceofthe
adapter.Solarflarerecommendthattheseremainatthedefaultvalues.Disabling
ChecksumOffloaddisablesLargeSendOffload.
RSSandInterrupts
SolarflarenetworkadapterssupportRSS(ReceiveSideScaling)andinterrupt
moderation.Bothareenabledbydefaultandcansignificantlyimprovethe
performanceofthehostCPUwhenhandlinglargeamountsofnetworkdata.
RSSattemptstodynamicallydistributedataprocessingacrosstheavailablehost
CPUsinordertospreadtheworkload.Interruptmoderationisatechniqueusedto
reducethenumberofinterruptssenttotheCPU.Withinterruptmoderation,the
adapterwillnotgenerateinterruptsclosertogetherthantheinterruptmoderation
interval.Aninitialpacketwillgenerateaninterruptimmediately,butifsubsequent
packetsarrivebeforetheinterruptmoderationinterval,interruptsaredelayed.
Table35:ChecksumOffloads
Checkbox
selected
Transmitand
Receive
Transmitchecksumsaregeneratedand
receivedchecksumsareenabled.Thisis
thedefaultsetting.
Checkselected
butselection
grayedout
TransmitOnly
orReceiveOnly
Foreithertransmitorreceivedchecksum
only.
NOTE:TheTransmitorReceiveOnlystates
canonlybesetfromtheAdvancedtabof
theDriverProperties.SeeConfiguring
NetworkAdapterPropertiesinWindows
onpage184formoredetails.
Checkbox
cleared
Disabled Disabled.Datawillbechecksummedby
thehostprocessorforbothtransmitted
andreceiveddata.
SolarflareServerAdapterUserGuide
SolarflareAdaptersonWindows
Issue20 ©SolarflareCommunications2017 164
YoucanalsoconfigureRSSandinterruptssettingsfromthenetworkadapter
properties.SeeConfiguringNetworkAdapterPropertiesinWindowsonpage184
formoredetails.
NOTE:ChangingtheRSSandInterruptModerationsettingscanimpactthe
performanceoftheadapter.Youarestronglyadvisedtoleavethemattheirdefault
values.
RSSandInterruptsOptions
Table36showstheRSSandinterruptsoptions.
Table36:RSSandInterruptsOptions
Displayed(supported)optionswilldifferbetweenWindowsOSversionsand
differentSolarflaredrivers.
RSS Disabled‐RSSisdisabled.
ClosestProcessor‐usecoresfromasingleNUMAnode.
ClosestProcessorStatic‐Networktrafficisdistributed
acrossavailableCPUsfromasingleNUMAnode,but
thereisnodynamicloadbalancing.
NUMAScaling‐CPUsareassignedonaroundrobin
basisacrosseveryNUMAnode.
NUMAScalingStatic‐AsforNUMAScalingbutwithout
dynamicloadbalancing.
ConservativeScaling‐RSSwilluseasfewprocessorsas
possibletosustainthecurrentnetworkload.Thishelps
toreducethenumberofinterrupts.
Max.RSSprocessors SetthenumberofprocessorstobeusedbyRSS.
Ifthisisgreaterthanorequaltothenumberoflogical
processorsinthesystemthenallprocessorsareused.
Interruptmoderation Adaptive‐adjuststheinterruptratesdynamically,
dependingonthetraffictypeandnetworkusage.
Disabled‐interruptmoderationisdisabled.
Enabled‐interruptmoderationisenabled.
Max(microseconds) Thissettingcontrolsthevaluefortheinterrupt
moderationtime.Thedefaultvalueis60microseconds
andcanbechangedfordeploymentsrequiringminimal
latency.
BaseRSSprocessor ThebaseprocessortobeusedbyRSS.Thevalueis
specifiedasagroup(range09)andCPUnumber(range
063).
SolarflareServerAdapterUserGuide
SolarflareAdaptersonWindows
Issue20 ©SolarflareCommunications2017 165
FurtherReading
FormoreinformationonWindowsRSSprofilesandoptionsrefertohttp://
msdn.microsoft.com/enus/library/windows/hardware/
ff570864%28v=vs.85%29.aspx
4.12SegmentationOffload
Solarflareadaptersoffloadthetasksofpacketsegmentationandreassemblytothe
adapterhardware,reducingtheCPUprocessingburdenandimproving
performance.
•LargeSendOffload(LSO),whenenabled,offloadstotheadapterthesplitting
ofoutgoingTCPdataintopackets.ThisreducesCPUuseandimprovespeak
throughput.SinceLSOhasnoeffectonlatency,itcanbeenabledatalltimes.
ThedriverhasLSOenabledbydefault.
• ReceiveSegmentCoalescing(RSC)isaMicrosoftfeatureintroducedin
WindowsServer2012.Whenenabledtheadapterwillcoalescemultiple
receivedTCPpacketsonaTCPconnectionintoasinglecalltotheTCP/IPstack.
ThisreducesCPUuseandimprovespeakperformance.RSChasalowimpacton
latency.Ifahostisforwardingreceivedpacketsfromoneinterfacetoanother
thenWindowswillautomaticallydisableRSC.RSCisenabledbydefault.
•LargeReceiveOffload(LRO)isaSolarflareproprietarymechanismsimilarto
RSC.ItisusedwhenRSCisunavailable(i.e.onWindowsServer2008R2).When
enabledtheadapterwillcoalescemultiplereceivedTCPpacketsonaTCP
connectionintoasinglecalltotheTCP/IPstack.ThisreducesCPUuseand
Max.RSSprocessor ThemaximumprocessoravailabletoRSS.Thevalueis
specifiedasagroup(range09)andCPUnumber(range
063).
Max.RSSprocessors ThemaximumnumberofprocessorstobeusedbyRSS.
Thevalueisintherange0256.
Max.RSSqueues Themaximumnumberofreceivequeuescreatedper
interface.Thevalueisintherange064.
NUMAnodeid TheNUMAnodeiddropdownlistboxisdisplayedon
WindowsplatformsthatsupportNUMAarchitectures.
ThisconstrainsthesetofCPUcoresusedforRSStothe
specifiedNUMAnode.Solarflarerecommendyouleave
thisatthedefaultsettingofAll.Theadapterwill
attempttouseonlyprocessorsfromthespecified
NUMAnodeforRSS.IfthisissettoALLoritisgreater
thanorequaltothenumberofNUMAnodesinthe
system,allNUMAnodesareused.
Table36:RSSandInterruptsOptions
SolarflareServerAdapterUserGuide
SolarflareAdaptersonWindows
Issue20 ©SolarflareCommunications2017 166
improvespeakperformance.HoweverLROcanincreaselatencyandshouldnot
beusedifahostisforwardingreceivedpacketsfromoneinterfacetoanother.
LROisdisabledbydefault.
YoucanalsoconfigureLSOandRSC/LROsettingsfromtheNDISproperties.See
ConfiguringNetworkAdapterPropertiesinWindowsonpage184formoredetails.
EthernetLinkSpeed
Generally,itisneithernecessaryordesirabletoconfigurethelinkspeedofthe
adapter.Theadapterbydefaultwillnegotiatethelinkspeeddynamically,
connectingatthemaximum,supportedspeed.However,iftheadapterisunableto
connecttothelinkpartner,youmaywishtotrysettingafixedlinkspeed.Forfurther
informationsee‘LinkSpeed’inTable43onpage185.
Ethernetflowcontrol
Ethernetflowcontrolallowstwocommunicatingdevicestoinformeachotherwhen
theyarebeingoverloadedbyreceiveddata.Thispreventsonedevicefrom
overwhelmingtheotherdevicewithnetworkpackets.Forinstance,whenaswitch
isunabletokeepupwithforwardingpacketsbetweenports.Solarflareadapters
allowflowcontrolsettingstobeautonegotiatedwiththelinkpartner.
Youcanalsoconfigureethernetflowcontrolfromthenetworkadapterproperties.
SeeTable43onpage185formoredetails.
Table37:EthernetFlowControlOptions
Option Description
Autonegotiate Flowcontrolisautonegotiatedbetweenthedevices.
Thisisthedefaultsetting,preferringGenerateand
respondifthelinkpartneriscapable.
Generateandrespond Adaptergeneratesandrespondstoflowcontrol
messages.
Respondonly Adapterrespondstoflowcontrolmessagesbutis
unabletogeneratemessagesifitbecomes
overwhelmed.
Generateonly Adaptergeneratesflowcontrolmessagesbutisunable
torespondtoincomingmessagesandwillkeepsending
datatothelinkpartner.
None Ethernetflowcontrolisdisabledontheadapter.Data
willcontinuetofloweveniftheadapterorlinkpartner
isoverwhelmed.
SolarflareServerAdapterUserGuide
SolarflareAdaptersonWindows
Issue20 ©SolarflareCommunications2017 167
EthernetFrameLength
ThemaximumEthernetframelengthusedbytheadaptertotransmitdatais(or
shouldbe)closelyrelatedtotheMTU(maximumtransmissionunit)ofyour
network.ThenetworkMTUdeterminesthemaximumframesizethatyournetwork
isabletotransmitacrossalldevicesinthenetwork.
NOTE:ForoptimumperformancesettheEthernetframelengthtoyournetwork
MTU.
IfthenetworkusesJumboframes,SAMsupportsframesuptoamaximumof9216
bytes.
VirtualMachineQueue
SolarflareadapterssupportVMQtooffloadtheclassificationanddeliveryof
networktrafficdestinedforHyperVvirtualmachinestothenetworkadapter
therebyreducingtheCPUloadonHyperVhosts.
WindowsServer2008R2allowstheadministratorusertostaticallyconfigurethe
numberofCPUsavailabletoprocessinterruptsforVMQ.Interruptsarespread
acrossthespecifiedcores,howeverthestaticconfigurationdoesnotprovidebest
performancewhenthenetworkloadvariesovertime.
DynamicVMQ,supportedinWindowsServer2012andlater,willdynamically
distributereceivednetworktrafficacrossavailableCPUswhileadjustingfornetwork
loadby,ifnecessary,bringinginmoreprocessorsorreleasingprocessorsunderlight
loadconditions.
VMQsupportsthefollowingfeatures:
• Classificationofreceivednetworktrafficinhardwarebyusingthedestination
MACaddress(andoptionallyalsotheVLANidentifier)toroutepacketsto
differentreceivequeuesdedicatedtoeachvirtualmachine.
•Canusethenetworkadaptertodirectlytransferreceivednetworktraffictoa
virtualmachine’ssharedmemoryavoidingapotentialsoftwarebasedcopy
fromtheHyperVhosttothevirtualmachine.
•Scalingtomultipleprocessorsbyprocessingnetworktrafficdestinedfor
differentvirtualmachinesondifferentprocessors.
Table38:VMQModeOptions
Enabled VMQusesthedestinationMACaddressand
alsotheVLANidentifierforfilteringtrafficto
theintendedHyperVvirtualmachine.
Thisisthedefault.
SolarflareServerAdapterUserGuide
SolarflareAdaptersonWindows
Issue20 ©SolarflareCommunications2017 168
4.13UsingSAMtoConfigureTeamsandVLANs
AboutTeamingonpage168
SettingUpTeamsonpage169
ReconfiguringaTeamonpage170
AddingAdapterstoaTeamonpage172
DeletingTeamsonpage173
SettingupVirtualLANs(VLANs)onpage174
DeletingVLANsonpage176
AboutTeaming
NOTE:TosetupteamsandVLANSinWindowsusingthesfteamcommandlinetool,
seeSfteam:AdapterTeamingandVLANToolonpage200.
Solarflareadapterssupportthefollowingteamingconfigurations:
•IEEE802.3adDynamiclinkaggregation
•Staticlinkaggregation
•Faulttolerantteams
TeamingallowstheusertoconfigureteamsconsistingofallSolarflareadapterports
onallinstalledSolarflareadaptersormightconsistofonlyselectedadapterports
e.g.fromadualportSolarflareadapter,thefirstportcouldbeamemberofteamA
andthesecondportamemberofteamBorbothportsmembersofthesameteam.
ThissectionisonlyrelevanttoteamsofSolarflareadapters.Solarflareadapterscan
beusedinmultivendorteamswhenteamedusingtheothervendorsteaming
driver.
CAUTION:WindowsServer2012introducednativesupportforteaming.Windows
teamingandSolarflareteamingconfigurationshouldnotbemixedinthesame
server.
Enabled(withoutVLANfiltering) VMQusesonlythedestinationMACaddress
forfilteringtraffictotheintendedHyperV
virtualmachine.
Disabled VMQisdisabled.
Table38:VMQModeOptions
SolarflareServerAdapterUserGuide
SolarflareAdaptersonWindows
Issue20 ©SolarflareCommunications2017 169
SettingUpTeams
SAM’sCreateaTeamsetupwizardwillguideyouthroughsettingupanadapter
team,automaticallyassigningtheactiveadapter,keyadapterandstandbyadapter.
Tocreateateam:
1Beforecreatingateam,Solarflarestronglyrecommendtakingtheserveroffline
toavoiddisruptingexistingservicesastheteamisbeingconfigured.
2StartSAMandselectaSolarflareadapterintheNetworkAdapterlist.
3FromtheActionmenu,selectCreateaTeam.TheSolarflareCreateateam
Wizardstarts.
4TeamCreateWizard
5Thewizardwillguideyouthroughtheprocessofcreatingateamandoptionally
addingVLANstoyourteam(seeTable40onpage175forhelpwhenselecting
VLANoptions).
6Bringtheserverbackonline.
7Aftercreatingateam,youcanusetheConfigurethisTeamoptionfromthe
Actionspanetochangeteamsettings,suchastheEthernetframelength,key
adapterassignment,andadapterprioritieswithintheteam.
CAUTION:Beforephysicallyremovinganadapterfromaserver,firstcheckitisnot
thekeyadapter.Youmustreassignthekeyadapterifyouwanttoremoveitfrom
theteamtoavoidduplicatingtheMACaddressonyournetwork.SeeTable39on
page171fordetailsonreassigningthekeyadapter.
SolarflareServerAdapterUserGuide
SolarflareAdaptersonWindows
Issue20 ©SolarflareCommunications2017 170
ReconfiguringaTeam
Whensettingupteams,SAMassignsthekey,activeandstandbyadapters,and
specifiestheEthernetframelengthfortheteam.Tochangeanyofthesesettings,
usetheConfigurethisTeamoption,asdescribedbelow.
Tochangeteamsettings:
NOTE:Changingteamsettingscandisruptnetworktrafficflowtoandfromservices
runningontheserver.Solarflarerecommendonlychangingnetworksettingswhen
disruptiontotheservicescanbetolerated.
1StartSAMand,fromtheNetworkAdapterlist,selecttheteamyouwantto
reconfigure.
2FromtheActionmenu,selectConfigurethisTeam.TheConfigureaTeam
dialogboxdisplays.
Figure22:ConfigureaTeam
Bydefault,allteamedadaptersaregivenanequalpriority(indicatedbythe
groupednumber1).Thecurrentactiveadapterisindicatedbythegreenactive
symbol.Thekeyadapterisindicatedwiththekeysymbol.Adaptersinstandby
areindicatedbytheyellowstandbysymbol.Forlinkaggregatedteamsthere
maybemorethanoneactiveadapter.
SolarflareServerAdapterUserGuide
SolarflareAdaptersonWindows
Issue20 ©SolarflareCommunications2017 171
Figure23:PrioritizedAdapters
Figure23showstheactiveadapterwiththehighestpriority,withthesecond
adapterbeingsecondpriority.
Table39:ConfigureaTeamOptions
Tochangethekey
adapter:
Selectthenewkeyadapter,thenclickthekey
button.
Note:Beforephysicallyremovinganadapter
fromaserver,firstcheckitisnotthekeyadapter.
Youmustreassignthekeyadapterifyouwantto
removeitfromtheteamtoavoidduplicatingthe
MACaddressonyournetwork.
Tochangeadapter
priority:
Bydefault,alladaptershaveequalpriority.
Selectanadapterandusetheupordown
buttonstopromoteordemotetheadapter
priorityasrequired.
Note:ForFaultTolerantTeams,thehighest
priorityadapterinateambecomestheactive
adapter,passingallnetworktrafficfortheteam.
SolarflareServerAdapterUserGuide
SolarflareAdaptersonWindows
Issue20 ©SolarflareCommunications2017 172
3Aftermakingyourchanges,clickSetandthenclickClose.
AddingAdapterstoaTeam
IfadditionalSolarflareadaptersareinstalledinyourserver,youcanaddthemtoan
existingteamtoincreasetheoverallresilienceorperformance(aggregation)ofthe
serverconnection.
Toaddadapterstoateam:
NOTE:Changingteamsettingscandisruptcurrentservicesrunningontheserver.
Solarflarerecommendonlychangingnetworksettingswhendisruptiontothe
servicescanbetolerated.
1StartSAMandselectaSolarflareadapterteamfromtheNetworkAdapterlist.
2FromtheActionslist,clickAddoneormoreadapters,orchooseActions>Add
oneormoreadapters.TheAvailableNetworkAdaptersdialogboxisdisplayed:
Tospecifyanewactive
adapter:
ForFault‐TolerantTeamsonly.Setyour
preferredactiveadaptertothehighest
prioritizedadapterintheteam.Thehighest
prioritizedadapterbecomestheactiveadapter
intheteamafteryouapplyyourchanges.
Tochangeadapterpriority,usetheupanddown
buttons.
TospecifytheEthernet
framelength/MTU:
Specifyavaluebetween1514and9216bytes.
Checkyournetworksupportsthenewframe
lengthbeforesettingthenewvalue.
Note:Thissettingaffectsalladaptersinthe
team,andwilloverrideanyindividualadapter
settingsmadefromtheConfigureOffloadtasks,
Ethernetandotherfeatureswindow.SeeUsing
SAMtoConfigureAdapterFeaturesonpage160
formoredetails.
Table39:ConfigureaTeamOptions
SolarflareServerAdapterUserGuide
SolarflareAdaptersonWindows
Issue20 ©SolarflareCommunications2017 173
Figure24:AvailableAdapters
3Selecttheadapter(s)toaddtotheteam.ClickOKtoaddtheselectedadapters
andclosethedialogbox.
DeletingTeams
YoucandeleteateambyselectingDeletethisteaminSAM.Onceateamhasbeen
deleted,allofitsadaptersarereturnedtotheiroriginalconfigurationsettingsand
becomeavailableontheserveronceagain.AnyVLANssetupfortheteamwillbe
deletedwhentheteamisdeleted.
Todeleteateam:
NOTE:Changingteamsettingscandisruptcurrentservicesrunningontheserver.
Solarflarerecommendonlychangingnetworksettingswhendisruptiontonetwork
servicescanbetolerated.
1StartSAMandselectaSolarflareadapterteamfromtheNetworkAdapterlist.
2FromtheActionmenu,selectDeletethisteam.Alternatively,todeleteall
teamsandVLANsontheserver,selectDeleteallteamsandVLANs.The
ConfirmActionDialogboxisdisplayed.
SolarflareServerAdapterUserGuide
SolarflareAdaptersonWindows
Issue20 ©SolarflareCommunications2017 174
Figure25:ConfirmAction
3Confirmthedeletionwhenprompted.
NOTE:DeleteallteamsandVLANswillcauseadisplayrefreshwhichmaytake
sometimetocomplete,dependingonthenumberofteamsandVLANsbeing
deleted.
SettingupVirtualLANs(VLANs)
SAMallowsyoutoaddupto64VLANsperteamoradapter.EachVLANisavirtual
networkadapter,visibleintheWindowsDeviceManager,throughwhichthe
operatingsystemisabletoreceivedatataggedwiththecorrectVLANID(VID).You
mayassignoneVLANtoacceptVLAN0oruntaggedtraffic,whichallowsthe
interfacetocommunicatewithdevicesthatdonotsupportVLANtagging,orthat
aresendingtrafficonVLAN0.
TocreateVLANs:
NOTE:CreatingVLANscandisruptcurrentservicesrunningontheserver.Solarflare
recommendonlychangingnetworksettingswhendisruptiontonetworkservices
canbetolerated.
1StartSAMandselecttheadapteroradapterteamfromtheNetworkAdapter
list.
2FromtheActionslist,clickAddoneormoreVLANs,orchooseActions>Add
oneormoreVLANstodisplaytheVLANSetupWizard.
SolarflareServerAdapterUserGuide
SolarflareAdaptersonWindows
Issue20 ©SolarflareCommunications2017 175
Figure26:CreateVLANs
Table40:VLANOptions
Option Description
Name AnoptionalnamefortheVLANnetworkadapter.
Thisoptionwillnotbeavailablewhenremotely
administeringtheserver.
Supportsthehandling
ofprioritytraffic
Enablesthehandlingoftrafficthatistaggedas
priority.
Supportsuntagged
andVLAN0traffic
RestrictstheVLANtohandlingpacketsthatare
untaggedorwithVID0.
Thisoptionallowstheinterfacetocommunicate
withdeviceswhichdon’tsupportVLANtagging.
Supportstrafficsolely
onthisVLAN
Restrictsthenetworkinterfacetotrafficthatis
taggedwiththespecifiedVLAN.
SolarflareServerAdapterUserGuide
SolarflareAdaptersonWindows
Issue20 ©SolarflareCommunications2017 176
DeletingVLANs
VLANscanberemovedfromateamorsingleadapterwhennolongerrequired.
TodeleteVLANs:
NOTE:DeletingVLANscandisruptcurrentprocessesandapplicationsrunningon
theserver.Solarflarerecommendonlychangingnetworksettingswhendisruption
tonetworkservicescanbetolerated.
1StartSAM.
2IntheNetworkadapterlist,selecttheVLANtodelete.Ifnecessary,expandthe
teamiftheVLANisattachedtoateamthenselecttheVLAN.
3FromtheActionslist,clickDeletethisVLAN,orchooseAction>Deletethis
VLAN.
4ConfirmthedeletionintheConfirmActionDialogbox.
4.14UsingSAMtoViewStatisticsandStateInformation
SAM’sNetworkAdapterlistprovidesanoverviewoftheadaptersinstalledinthe
hostcomputer.Foramoredetailedviewoftheadapterdevicesettings,data
transferstatistics,andotherfeatures,youcanusetheadapterStatisticsandState.
Figure27:SolarflareAdapterStatisticsandState
SolarflareServerAdapterUserGuide
SolarflareAdaptersonWindows
Issue20 ©SolarflareCommunications2017 177
ToviewSolarflarestatisticsandstateinformation:
1StartSAMandselectaSolarflareadapterfromtheNetworkAdapterlist.
2FromtheActionslist,clickStatisticsandState.TheDetailsfrom<adapter
name>dialogboxisdisplayed.
NOTE:Thetabsdisplayedwilldiffer,dependentonwhetheranadapter,VLAN
orTeamisselected.
3Clickeachtabtoseethevariousadapterstatisticsandstateinformationthatis
availablefortheadapter.Notethatstatisticsarecollatedfromthestartofthe
currentsession.Toresetthestatistics,seeResettingAdapterStatisticson
page177.
4Whenyouhavefinishedviewingstatistics,clickClose.
ResettingAdapterStatistics
StatisticsfordatatransferandtheMAClayerarereset,eitherfollowingasystem
restartorinstallingoftheadapterdrivers.Ifnecessary,youcanresettheadapter
statisticstorestarttheaccumulateddatavaluesatanytime.
1StartSAMandselectaSolarflareadapterfromtheNetworkAdapterlist.
2FromtheActionslist,clickStatisticsandState,orchooseActions>Statistics
andState.TheDetailsfrom<adaptername>dialogboxisdisplayed.
3IntheGeneraltab,clicktheResetbuttontoresetstatistics.
4ClickClose.
4.15UsingSAMtoRunAdapterandCableDiagnostics
YoucanverifytheSolarflareadapter,driverandcablebyrunningSAM’sbuiltin
diagnostictools(Solarflare10GBASETadapteronly).
Thetoolsprovideasimplewaytoverifythattheadapteranddriverareworking
correctly,andthatthecablehasthecorrectcharacteristicsforhighspeeddata
transfer.
ThediagnosticstoolsalsoincludeanoptiontoflashtheLEDs(usefulforidentifying
theadapterinaserverroom),andanoptiontogenerateafullsystemreport,both
availablefromtheActionsmenu.
NOTE:Thefullsystemreportcannotbegeneratedwhenremotelyadministeringa
server.
SolarflareServerAdapterUserGuide
SolarflareAdaptersonWindows
Issue20 ©SolarflareCommunications2017 178
RunningDriverandAdapterDiagnostics
SAM’sdriverdiagnosticsenableyoutotesttheadapteranddriverarefunctioning
correctly,returningasimplepassorfailforeachtestrun.
Figure28:AdapterandDriverDiagnosticsWindow
1StartSAMandselectaSolarflareadapterfromtheNetworkAdapterlist.
2FromtheActionmenu,selectAdapterDiagnostics.TheDiagnosticsfor
<adaptername>windowisdisplayed.
3Selectthetestyouwanttorun(notestsareselectedbydefault).SeeTable41
foradescriptionoftheteststhatareavailable.
4Tostopassoonasafailureisdetected,selectStoponfirsttestfailure.
5Torunallthetestsmorethanonce,changethevalueintheTestiterationsbox.
6ClickStarttobegintesting.Theresultsofeachtestwillbedisplayedinthe
Diagnosticswindow,alongwithanentryintheCompletionMessagecolumn
describingthereasonanyparticulartesthasfailed.
NOTE:Theadapterwillstopfunctioningwhilethetestsarebeingrun.Solarflare
recommendonlyrunningdiagnosticstestswhendisruptiontonetworkservicescan
betolerated.
NOTE:YoucanclickAborttoabandonrunningtestsatanytime.Thismaytakea
whiletocomplete,dependentonthetestbeingrunatthetime.
SolarflareServerAdapterUserGuide
SolarflareAdaptersonWindows
Issue20 ©SolarflareCommunications2017 179
Theavailabletestsdependontheinstalledadaptertype.
RunningCableDiagnostics
Withhighspeeddatanetworking,thesuitabilityofthecableinachievingmaximum
transferratesisespeciallyimportant.SAM’scablediagnostictoolcanbeusedto
verifytheattachedcable,reportingitscondition,measuredlengthandelectrical
characteristicsforeachcablepairing.
NOTE:CablediagnosticsareonlyavailableonSolarflare10GBASETAdapters.For
theseadapters,SolarflarerecommendusinggoodqualityCategory6,6aor7cable
uptothemaximumlengthasdeterminedbythecablecategory.
Table41:AdapterDiagnosticTests
DiagnosticTest Purpose
LED FlashestheLEDsfor5seconds.
NVRAM Verifiestheflashmemoryboardconfigurationareabyparsing
andexaminingchecksums.
Registers Verifiestheadapterregistersbyattemptingtomodifythe
writablebitsinaselectionofregisters.
Interrupts Examinestheavailablehardwareinterruptsbyrequestingthe
controllertogenerateaninterruptandverifyingthatthe
interrupthasbeenprocessedbythenetworkdriver.
MACloopback Verifiesthatthenetworkdriverisabletopasspacketstoand
fromthenetworkadapterusingtheMACloopbacklayer.
PHYloopback Verifiesthatthenetworkdriverisabletopasspacketstoand
fromthenetworkadapterusingthePHYloopbacklayer.
Memory VerifiesSRAMmemorybywritingvariousdatapatterns
(incrementingbytes,allbitonandoff,alternatingbitsonand
off)toeachmemorylocation,readingbackthedataand
comparingittothewrittenvalue.
MDIO VerifiestheMIIregistersbyreadingfromPHYIDregisters.
Event Verifiestheadapterseventhandlingcapabilitiesbypostinga
softwareeventoneacheventqueuecreatedbythedriverand
checkingitisdeliveredcorrectly.
ThedrivercreatesaneventqueueforeachCPU.
PHYBIST ExaminesthePHYbyinitializingitandstartinganyavailable
builtinselfteststorun.
bootROM VerifiestheBootROMconfigurationandimagechecksum.
WillwarnifnoBootROMispresent.
SolarflareServerAdapterUserGuide
SolarflareAdaptersonWindows
Issue20 ©SolarflareCommunications2017 180
Figure29:CableDiagnosticsWindow
1StartSAMandselectaSolarflareadapterfromtheNetworkAdapterlist.
2FromtheActionmenu,clickCableDiagnostics.TheCableDiagnosticsfor
<adaptername>dialogboxisdisplayed.
3ClickRunofflinetestorRunonlinetest.Offlinetestingproducemoredetailed
results,butattheexpenseofdisruptingtheconnectionwhiletestsarerunning.
CAUTION:Theofflinetestswillcausethenetworklinktomomentarilydrop
anddisruptdataflow.Solarflarerecommendonlyrunningdiagnosticstests
whendisruptiontoyourservicescanbetolerated.
4Theresultsofthetestingwillbedisplayedinthediagnosticsdialogbox.For
analysisofthecablepairresults,seeTable42.
Table42:CablePairDiagnosticResults
Result Meaning
OK
Lengthmeasured=…,
SNRmargin=
Cableisoperatingcorrectly.
Therangeis±13dB(approximately).TheSNR
shouldbepositive.
SolarflareServerAdapterUserGuide
SolarflareAdaptersonWindows
Issue20 ©SolarflareCommunications2017 181
4.16UsingSAMforBootROMConfiguration
Forbootingofdisklesssystems,SolarflareadapterssupportPrebootExecution
Environment(PXE)andUEFIbooting.
UsingSAM,youcanaccesstheadapterBootROMtoconfigureyourfirmware
settingsforadapterbooting,asdescribedbelow.
ConfiguretheBootManager
ToconfigurePXEorUEFIbootingontheSolarflareBootROM:
1StartSAMandselectaSolarflareadapterfromtheNetworkAdapterlist.
FromtheActionmenu,selecttheConfigureBootROMoption.TheConfigure
BootROMwindowdisplayswiththeGeneraltabselected.
Figure30:bootROMConfiguration
Error
Pairshortat
Ashortcircuithasbeendetectedattheindicated
length.
Thecableortheconnectorisfaultyandmustbe
replaced.
Error
Pairisopencircuit
Anopencircuithasbeendetected.
Thecableortheconnectorisfaultyandmustbe
replaced.
Table42:CablePairDiagnosticResults
Result Meaning
SolarflareServerAdapterUserGuide
SolarflareAdaptersonWindows
Issue20 ©SolarflareCommunications2017 182
2FromtheBootTypepanel,selecteitherPXEorUEFIbootingasrequired.You
canalsoconfigurethetypesofBootFirmware,themaximumnumberofMSIX
InterruptssupportedandstartupconfigurationusedbytheBootROMutility.
FormoredetailsontheseoptionsseeSfboot:BootROMConfigurationToolon
page190.
NOTE:SolarflarerecommendnotchangingtheMSIXInterruptssetting.
3Ifnecessary,fromtheLinktab,changetheLinkSpeedoptiondependingon
yourlinkrequirement.NotethatAutonegotiatediscorrectformostlinksand
shouldnotbechangedunlessadvised.TheLinkSpeedoptionswillvary
dependingontheinstalledadapter.
Figure31:Linktab
4TheLinkupdelayspecifiesawaittimebeforethebootdevicewillattemptto
makeaconnection.Thisallowstimeforthenetworktostartfollowingpower
up.Thedefaultsettingis5seconds,butcanbesetfrom0–255seconds.This
canbeusedtowaitforspanningtreeprotocolonaconnectedswitchto
unblocktheswitchportafterthephysicalnetworklinkisestablished.
5IfyouselectedPXEastheboottype,clickOKtofinishthesetupprocedure.
SolarflareServerAdapterUserGuide
SolarflareAdaptersonWindows
Issue20 ©SolarflareCommunications2017 183
DisablingAdapterBooting
YoucanstoptheadapterfromattemptingtoinitiateeitheraPXEorUEFIbootafter
arestart.
1StartSAMandselecttheSolarflareadapterfromtheNetworkAdapterlist.
2FromtheActionmenu,clicktheConfigureBootROMoption.TheConfigure
BootROMdialogboxdisplayswiththeBIOStabselected.
3FromtheBootTypepanel,selectDisabled.
4ClickOKorApplytosaveyoursettingstotheBootROM.
4.17ManagingFirmwarewithSAM
SAMallowsyoutomonitorthefirmware(PHY,BootROMandAdapter)foryour
Solarflareadapters.EitherselectManagefirmwarefromtheActionspane,orfrom
theActionmenu.Thefirmwareupdatewindowisdisplayed:
Figure32:Solarflarefirmwareupdatewindow
Ifthefirmwareisuptodate,thewindowwillcontaintheOKbutton.Ifthefirmware
isoutofdate,theOKbuttonisreplacedwithanUpdateandCancelbutton.To
updatethefirmware,clickUpdate.
Youcanalsousethesfupdatecommandlinetooltomanagethefirmwareonyour
Solarflareadapters.SeeSfupdate:FirmwareUpdateToolonpage198formore
details.
SolarflareServerAdapterUserGuide
SolarflareAdaptersonWindows
Issue20 ©SolarflareCommunications2017 184
4.18ConfiguringNetworkAdapterPropertiesinWindows
NetworkadapterpropertiesfortheSolarflareadapterareavailablethroughthe
WindowsDeviceManagerentryfortherelevantnetworkadapter.Youcanalso
accesstheadapterpropertiesusingSAM.
NOTE:IfSAMisopen,anychangesmadeintheadapterpropertieswillnotbe
reflectedinSAMuntilyouclosetheAdvancedPropertiespage.
Toconfigurenetworkadapterproperties:
1FromtheControlPanel,selectSystem.
2SelectDeviceManagerfromthelefthandmenu.
3ExpandtheNetworkadapters.
4RightclicktheontheSolarflareadapter,andthenclickPropertiestodisplay
thepropertiesdialogbox.
Figure33:AdapterPropertiesDialog
5ClicktheAdvancedtabtoviewandedittheNDISproperties.SeeTable43fora
listoftheavailableproperties.
NOTE:Changingthesepropertiesmayimpacttheperformanceofyour
Solarflareadapter.Youarestronglyadvisedtoleavethemattheirdefault
values.
SolarflareServerAdapterUserGuide
SolarflareAdaptersonWindows
Issue20 ©SolarflareCommunications2017 185
NOTE:BeforemakinganychangestoyourSolarflareadapterfeatures,readthe
PerformanceTuningonWindowssectionon228first.
Table43:SolarflareNetworkAdapterProperties
PropertyName Values Description
AdaptiveInterrupt
Moderation
Enabled
Disabled
ThissettingisdependentontheInterruptModeration
setting.IfInterruptModerationisenabled,Adaptive
InterruptModerationallowstheadaptertovaryitsinterrupt
moderationautomatically,accordingtonetworktraffic
demands.
IfAdaptiveInterruptModerationisdisabled,interrupt
moderationintervalisfixedatthesettingspecifiedin
InterruptModerationTime.
Defaultsetting:Enabled
FlowControl AutoNegotiation
Disabled
Rx&TxEnabled
RxEnabled
TxEnabled
Ethernetflowcontrol(802.3x)isawayforanetworkdevice
tosignaltoasendingdevicethatitisoverloaded,suchas
whenadeviceisreceivingdatafasterthanitcanprocessit.
Theadapterdoesthisbygeneratinga‘pauseframe’to
requestthesendingdevicetotemporarilystoptransmitting
data.Conversely,theadaptercanrespondtopauseframes
bysuspendingdatatransmission,allowingtimeforthe
receivingdevicetoprocessitsdata.
Defaultsetting:AutoNegotiation.
Interrupt
Moderation
Enabled
Disabled
Interruptmoderationisatechniqueusedtoreducethe
numberofinterruptssenttotheCPU.Withinterrupt
moderation,theadapterwillnotgenerateinterruptscloser
togetherthantheinterruptmoderationtime.Aninitial
packetwillgenerateaninterruptimmediately,butif
subsequentpacketsarrivebeforetheinterruptmoderation
timeperiod,interruptsaredelayed.
Defaultsetting:Enabled
Interrupt
ModerationTime
1–1000µs SpecifiestheinterruptmoderationperiodwhenInterrupt
Moderationisenabled.
Thedefaultsetting(60µs)hasbeenarrivedatbylengthyand
detailedsystemanalysis,balancingtheneedsofthe
operatingsystemagainsttheperformanceofthenetwork
adapter.
Defaultsetting:60µs
SolarflareServerAdapterUserGuide
SolarflareAdaptersonWindows
Issue20 ©SolarflareCommunications2017 186
IPv4Checksum
Offload
Disabled
Rx&TxEnabled
RxEnabled
TxEnabled
IPchecksumoffloadisahardwareoffloadtechnologyfor
reducingtheloadonaCPUbyprocessingIPchecksumsinthe
adapterhardware.
OffloadIPChecksumisenabledbydefaultfortransmitted
andreceiveddata.
Defaultsetting:Rx&TxEnabled.
LargeReceive
Offload(IPv4and
IPv6)
Enabled
Disabled
LargeReceiveOffload(LRO)isanoffloadtechnologyfor
reducingtheloadonaCPUbyprocessingTCPsegmentation
forreceivedpacketsintheadapter.
ThisisavailableonlyonWindowsServer2008R2.
Defaultsetting:Disabled
LargeSendOffload
Version2(IPv4and
IPv6)
Enabled
Disabled
LargeSendOffload(LSO)isanoffloadtechnologyfor
reducingtheloadonaCPUbyprocessingTCPsegmentation
fortransmittedpacketsintheadapter.
Caution:DisablingLSOmayreducetheperformanceofthe
Solarflareadapter.
Defaultsetting:Enabled
Locally
Administered
Address
Value:(MAC
address)
NotPresent
AssignsthespecifiedMACaddresstotheadapter,overriding
thepermanentMACaddressassignedbytheadapter's
manufacturer.
Addressesareenteredasablockofsixgroupsoftwo
hexadecimaldigitsseparatedbyhyphens(),forexample:
123456789ABC
Note:Tobeavalidaddress,thesecondmostsignificantdigit
mustbea2,6,AorE,asintheaboveexample.
ChecktheSystemEventLogforanyconfigurationissuesafter
settingthisvalue.
Defaultsetting:NotPresent.
Table43:SolarflareNetworkAdapterProperties
PropertyName Values Description
SolarflareServerAdapterUserGuide
SolarflareAdaptersonWindows
Issue20 ©SolarflareCommunications2017 187
MaxFrameSize 1514–9216 SpecifiesthemaximumEthernetframesizesupportedbythe
adapter.
Note:Deviceswilldropframesiftheyareunabletosupport
thespecifiedframesize,soensurethevalueyousethereis
supportedbyotherdevicesonthenetwork.
Defaultsettings:
Solarflareadapter:1514bytes
Teamedadapter:1518bytes
Note:Thesettingmustbeamultipleof2.
Maximumnumber
ofRSSProcessors
1256 MaximumnumberofprocessorsthatcanbeusedbyRSS.
Defaultvalueis16.
Maximumnumber
ofRSSQueues
164 SpecifythenumberofRSSreceivequeuesarecreatedbythe
adapterdriver.Defaultis8.
PreferredNuma
Node
All
0to15
TheadapterattemptstouseonlytheCPUsfromthe
specifiedNUMAnodeforRSS.IfthisissettoAllorisgreater
thanorequaltothenumberofNUMAnodesinthesystem
allNUMAnodesareused.
Defaultsetting:All
ReceiveSegment
Coalescing
Enabled
Disabled
ReceiveSegmentCoalescing(RSC)isanoffloadtechnology
forreducingtheloadonaCPUbyprocessingTCP
segmentationforreceivedpacketsintheadapter.
ThisisavailableonWindowsServer2012andlater.
Defaultsetting:Enabled
ReceiveSide
Scaling(RSS)
Enabled
Disabled
ReceiveSideScaling(RSS)isatechnologythatenablespacket
receiveprocessingtoscalewiththenumberofavailable
processors(CPUs),distributingtheprocessingworkload
acrosstheavailableresources.
Defaultsetting:Enabled
Table43:SolarflareNetworkAdapterProperties
PropertyName Values Description
SolarflareServerAdapterUserGuide
SolarflareAdaptersonWindows
Issue20 ©SolarflareCommunications2017 188
Speed&Duplex 100MbpsFull
Duplex
1.0GbpsFull
Duplex
10GbpsFull
Duplex
40GbpsFull
Duplex
AutoNegotiation
Configuretheadapterspeed.DefaultisAutoNegotiation.
TCPChecksum
Offload(IPv4and
IPv6)
Disabled
Rx&TxEnabled
RxEnabled
TxEnabled
TCPchecksumoffloadisahardwareoffloadtechnologyfor
reducingtheloadonaCPUbyprocessingTCPchecksumsin
theadapterhardware.
Defaultsetting:Rx&TxEnabled.
UDPChecksum
Offload(IPv4and
IPv6)
Disabled
Rx&TxEnabled
RxEnabled
TxEnabled
UDPchecksumoffloadisahardwareoffloadtechnologyfor
reducingtheloadonaCPUbyprocessingUDPchecksumsin
theadapterhardware.
Defaultsetting:Rx&TxEnabled.
VirtualMachine
Queues
Enabled
Disabled
VMQoffloadsclassificationanddeliveryofnetworktraffic
destinedforHyperVvirtualmachinestothenetwork
adapter,reducingCPUutilizationonHyperVhosts.
Defaultsetting:Enabled.
VMQVLAN
Filtering
Enabled
Disabled
VLANfilteringallowstheadaptertousetheVLANidentifier
forfilteringtrafficintendedforHyperVvirtualmachines.
WhendisabledonlythedestinationMACaddressisusedfor
filtering.
Defaultsetting:Enabled.
Table43:SolarflareNetworkAdapterProperties
PropertyName Values Description
SolarflareServerAdapterUserGuide
SolarflareAdaptersonWindows
Issue20 ©SolarflareCommunications2017 189
4.19WindowsCommandLineTools
Thecommandlinetools(seeTable44)provideanalternativemethodofmanaging
SolarflarenetworkadapterstoSAM.TheyareespeciallyusefulonaWindowsServer
Coreinstallation,whereSAMcannotberunlocally.AswithSAM,youcanrunthe
commandlinetoolsremotely.Thetoolscanalsobescripted.
ThecommandlinetoolsareinstalledaspartofthedriversinstallationonWindows.
SeeInstallingtheSolarflareDriverPackageonWindowsonpage140.
Tostartacommandlinetool,openaCommandLineInterfacewindowsandenter
thecommandtool.exe:
Figure34:WindowsconsoletorunSolarflarecommandlinetools.
Table44:ListAvailableCommandLineUtilities
Utility Description
sfboot.exe AtoolforconfiguringSolarflareadapterBootROMoptions,
includingPXEandUEFIbooting.SeeSfboot:BootROM
ConfigurationTool onpage190.
sfupdate.exe AtoolforupdatingadapterBootROMandPHYfirmware.See
Sfupdate:FirmwareUpdateToolonpage198.
sfteam.exe AtoolformanagingfaulttolerantadapterteamsandVLANs.See
Sfteam:AdapterTeamingandVLANToolonpage200.
sfcable.exe AtoolforthatrunscablediagnosticsforSolarflare10GBASET
serveradapters.SeeSfcable:CableDiagnosticsToolonpage205.
sfkey.exe AtoolformanagingSolarflareAppFlex™licenses.SeeSfkey:
LicenseManagementToolonpage208.
sfnet.exe Allowsyoutodisplayand/orsettheoffload,Ethernet,RSS,
interruptmoderationandVMQfeaturesofanyoneadapter,
VLANorTeam.SeeSfnetonpage211.
SolarflareServerAdapterUserGuide
SolarflareAdaptersonWindows
Issue20 ©SolarflareCommunications2017 190
NOTE:Foralltheutilities,theoptionsaredocumentedwiththeforwardslash(/)
prefix.Youcanalsouseasingledash()oradoubledash(‐‐)asaprefix.
NOTE:Utilitiesmustberunasanadministratortomakeanychanges.Whenrunas
anonadministrator,anerrormessagewillbedisplayed.
4.20Sfboot:BootROMConfigurationTool
Sfboot:CommandUsageonpage190
Sfboot:CommandLineOptionsonpage191
Sfboot:Examplesonpage196
SfbootisaWindowscommandlineutilityforconfiguringSolarflareadapterBoot
ROMoptions,includingPXEandUEFIbooting.Usingsfbootisanalternativetousing
Ctrl+BtoaccesstheBootRomagentduringserverstartup.
SeeSolarflareBootManageronpage374formoreinformationontheBootRom
agent.
Sfboot:CommandUsage
1Loginwithanadministratoraccount.
2ClickStart>AllPrograms>SolarflareNetworkAdapters>CommandLine
InterfaceforNetworkAdapters.
3FromtheCommandPrompt,enterthecommandusingthefollowingsyntax:
sfboot[/Adapter<Identifier>][options][parameters]
where:
‐ IdentifieristhenameorIDoftheadapterthatyouwanttomanage.
Specifyingtheadapterisoptional‐ifitisnotincludedthecommandis
appliedtoallSolarflareadaptersinthemachine.
‐ optionistheoptionyouwanttoapply.SeeSfboot:CommandLine
Optionsforalistofavailableoptions.
Ifusingsfbootinaconfigurationscript,youcanincludetheenvironment
variable%SFTOOLS%tosetthepathtotheSolarflaretools.Forexample:
SETPATH=%PATH%;%SFTOOLS%
SolarflareServerAdapterUserGuide
SolarflareAdaptersonWindows
Issue20 ©SolarflareCommunications2017 191
Sfboot:CommandLineOptions
Table45liststheoptionsforsfboot.exe,Table46liststheavailableglobal
parameters,andTable47liststheavailableperadapterparameters.Notethat
commandlineoptionsarecaseinsensitiveandmaybeabbreviated.
NOTE:Abbreviationsinscriptsshouldbeavoided,sincefutureupdatestothe
applicationmayrenderabbreviatedscriptsinvalid.
Table45:SfbootOptions
Option Description
/Help Displayscommandlinesyntaxandprovidesadescriptionofeach
sfbootoption.
/Version Showsdetailedversioninformationandexits.
/Nologo Hidetheversionandcopyrightmessageatstartup.
/Verbose Showsextendedoutputinformationforthecommandentered.
/Quiet
Aliases:/Silent
Suppressesalloutput,includingwarningsanderrors;nouser
interaction.Youshouldquerythecompletioncodetodeterminethe
outcomeofcommandswhenoperatingsilently.
/Log<Filename> Logsoutputtothespecifiedfileinthecurrentfolderoranexisting
folder.Specify/Silenttosuppresssimultaneousoutputtoscreen,if
required.
/Computer<ComputerName> Performstheoperationonaspecifiedremotecomputer.Administrator
rightsontheremotecomputerisrequired.
/List ListsallavailableSolarflareadapters.Thisoptionshowstheadapters
IDnumber,ifnameandMACaddress.
Note:thisoptionmaynotbeusedinconjunctionwithanyother
option.Ifthisoptionisusedwithconfigurationparameters,those
parameterswillbesilentlyignored.
/Adapter<Identifier> PerformstheactionontheidentifiedSolarflarenetworkadapter.The
adapteridentifiercanbetheadapterIDnumber,ifnameorMAC
address,asoutputbythe/Listoption.If/Adapterisnotincluded,
theactionwillapplytoallinstalledSolarflareadapters.
/Clear Resetsalloptionstotheirdefaultvalues.Ifanadapterisspecified,
optionsforthegivenadapterarereset,butglobaloptions(shownin
Table46)arenotreset.Notethat/Clearcanalsobeusedwith
parameters,allowingyoutoresettodefaultvalues,andthenapplythe
parametersspecified.
/repair Restoreconfigurationsettingstofirmwaredefaults.
SolarflareServerAdapterUserGuide
SolarflareAdaptersonWindows
Issue20 ©SolarflareCommunications2017 192
ThefollowingglobalparametersinTable46areusedtocontroltheconfigurable
parametersfortheBootROMdriverwhenrunningpriortotheoperatingsystem
booting.
Table46:SfbootGlobalParameters
Parameter Description
bootimage=
all|optionrom|uefi|disabled
Specifieswhichbootfirmwareimagesareserveduptothe
BIOSduringstartup.Thisparametercannotbeusedifthe
‐‐adapteroptionhasbeenspecified.Thisisaglobal
optionandappliestoallportsontheNIC.
portmode=
default|1x10G|2x10G|4x10G|
2x40G
Configuretheportmodetouse.ThisisforSFN7000and
SFN8000seriesadaptersonly.Thevaluesspecifythe
connectorsavailableafterusinganysplittercables.The
usablevaluesareadapterdependent:
• SFN8722:2x10G
• SFN8x42:4x10G,2x40G(default)
• SFN8522[M]:2x10G(default)
• SFN7xx4F:2x10G,4x10G(default)
SFN7xx2Q:2x10G,4x10G,2x40G(default)
• SFN7xx2F:1x10G,2x10G(default)
Changestothissettingwithsfbootrequireacoldrebootto
becomeeffective.MACaddressassignmentsmaychange
afteralteringthissetting.
firmwarevariant=
fullfeature|ultralowlatency|
capturepackedstream|auto
Configurethefirmwarevarianttouse.ThisisforSFN7000
andSFN8000seriesadaptersonly:
•theSFN7002Fadapterisfactorysettofullfeature
•allotheradaptersarefactorysettoauto.
Defaultvalue=auto‐meansthedriverwillselectavariant
thatmeetsitsneeds:
•theVMwaredriveralwaysusesfullfeature
•otherwise,ultralowlatencyisused.
Theultralowlatencyvariantproducesbestlatencywithout
supportforTXVLANinsertionorRXVLANstripping(not
currentlyusedfeatures).
SolarflareServerAdapterUserGuide
SolarflareAdaptersonWindows
Issue20 ©SolarflareCommunications2017 193
insecurefilters=
enabled|disabled
Ifenabledbypassfiltersecurityonnonprivileged
functions.ThisisforSFN7000andSFN8000seriesadapters
only.Thisreducessecurityinvirtualizedenvironments.The
defaultisdisabled.Whenenabledafunction(PForVF)can
insertfiltersnotqualifiedbytheirownpermanentMAC
address.Thisisarequirementwhenusingbonded
interfaces.
mac
spoofing=default|enabled|disabled
Ifenabled,nonprivilegedfunctionscancreateunicast
filtersforMACaddressesthatarenotassociatedwiththem.
ThisisforSFN7000andSFN8000seriesadaptersonly.
Thedefaultisdisabled.
Changestothissettingwithsfbootrequireacoldrebootto
becomeeffective.
rxdcsize=8|16|32|64 Specifiesthesizeofthedescriptorcacheforeachreceive
queue.ThisisforSFN7000andSFN8000seriesadapters
only.Thedefaultis:
16iftheportmodesupportsthemaximumnumberof
connectorsfortheadapter
32iftheportmodesupportsareducednumberof
connectors.
txdcsize=8|16|32|64 Specifiesthesizeofthedescriptorcacheforeachtransmit
queue.ThisisforSFN7000andSFN8000seriesadapters
only.Thedefaultis:
32iftheportmodesupportsthemaximumnumberof
connectorsfortheadapter
64iftheportmodesupportsareducednumberof
connectors.
changemac=
default|enabled|disabled
ThisisforSFN7000andSFN8000seriesadapteronly.
ChangetheunicastMACaddressforonprivileged
functionsonthisport.Thisisaglobaloptionandappliesto
allportsontheNIC.
vicount=<vicount> Setsthetotalnumberofvirtualinterfacesthatwillbe
availableontheNIC.
eventmergetimeout=
<timeoutinnanoseconds>
SpecifiesthetimeoutinnanosecondsforRXeventmerging.
Atimeoutof0meansthateventmergingisdisabled.
Table46:SfbootGlobalParameters
Parameter Description
SolarflareServerAdapterUserGuide
SolarflareAdaptersonWindows
Issue20 ©SolarflareCommunications2017 194
ThefollowingperadapterparametersinTable47areusedtocontrolthe
configurableparametersfortheBootROMdriverwhenrunningpriortothe
operatingsystembooting.
Table47:SfbootPeradapterParameters
Parameter Description
linkspeed=auto|10g|1g|100m Specifiesthenetworklinkspeedoftheadapterusedbythe
BootROM.Thedefaultisauto.Onthe10GBASETadapters,
autoinstructstheadaptertonegotiatethehighestspeed
supportedincommonwithitslinkpartner.OnSFP+
adapters,autoinstructstheadaptertousethehighestlink
speedsupportedbytheinsertedSFP+module.On
10GBASETandSFP+adapters,anyothervaluespecified
willfixthelinkatthatspeed,regardlessofthecapabilities
ofthelinkpartner,whichmayresultinaninabilityto
establishthelink.
autoAutonegotiatelinkspeed(default)
10G10Gbit/sec
1G1Gbit/sec
100M100Mbit/sec
linkupdelay=
<delaytimeinseconds>
Specifiesthedelay(inseconds)theadapterdefersitsfirst
connectionattemptafterbooting,allowingtimeforthe
networktocomeupfollowingapowerfailureorother
restart.Thiscanbeusedtowaitforspanningtreeprotocol
onaconnectedswitchtounblocktheswitchportafterthe
physicalnetworklinkisestablished.Thedefaultis5
seconds.
bannerdelay=
<delaytimeinseconds>
SpecifiesthewaitperiodforCtrlBtobepressedtoenter
adapterconfigurationtool.
<delaytimeinseconds>=0256
bootskipdelay=
<delaytimeinseconds>
SpecifiesthetimeallowedforEsctobepressedtoskip
adapterbooting.
<delaytimeinseconds>=0256
boottype=pxe|disabled Setstheadapterboottypeeffectiveonnextboot.
pxePXE(PrebooteXecutionEnvironment)booting
disabledDisableadapterbooting
SolarflareServerAdapterUserGuide
SolarflareAdaptersonWindows
Issue20 ©SolarflareCommunications2017 195
pfcount=<pfcount> ThisisthenumberofavailablePCIePFsperphysical
networkport.Thissettingisappliedtoallportsonthe
adapter.
Changestothissettingwithsfbootrequireacoldrebootto
becomeeffective.MACaddressassignmentsmaychange
afteralteringthissetting.
msixlimit=
8|16|32|64|128|256|512|1024
SpecifiesthemaximumnumberofMSIXinterruptsthat
eachPFwilluse.Thedefaultis32.
Note:Usingtheincorrectsettingcanimpactthe
performanceoftheadapter.ContactSolarflaretechnical
supportbeforechangingthissetting.
sriov=enabled|disabled EnableSRIOVsupportforoperatingsystemsthatsupport
this.NotrequiredonSFN7000orSFN8000seriesadapters.
vfcount=<vfcount> Thenumberofvirtualfunctions(VF)advertisedtothe
operatingsystemforeachPhysicalFunctiononthisphysical
networkport.SFN7000andSFN8000seriesadaptershavea
totallimitof2048interrupts.Earlieradapterssupporta
totallimitof127virtualfunctionsperportandatotalof
1024interrupts.
Dependingonthevaluesofmsixlimitandvfmsixlimit,
someofthesevirtualfunctionsmaynotbeconfigured.
Enablingall127VFsperportwithmorethanoneMSIX
interruptperVFmaynotbesupportedbythehostBIOS‐in
whichcaseyoumayget127VFsononeportandnoneon
others.ContactyourBIOSvendororreducetheVFcount.
Thesriovparameterisimpliedifvfcountisgreaterthan
zero.
Changestothissettingwithsfbootrequireacoldrebootto
becomeeffective.
vfmsixlimit=
1|2|4|8|16|32|64|128|256
Themaximumnumberofinterruptsavirtualfunctionmay
use.
Table47:SfbootPeradapterParameters
Parameter Description
SolarflareServerAdapterUserGuide
SolarflareAdaptersonWindows
Issue20 ©SolarflareCommunications2017 196
Sfboot:Examples
•Showthecurrentbootconfigurationforalladapters:
sfboot
Sampleconsoleoutput:
SolarflarebootROMconfigurationutility[v4.1.4]
CopyrightSolarflareCommunications20062014,Level5Networks20022005
SolarflareSFN7122FSFP+ServerAdapter‐MAC:00:0F:53:21:9B:B1
BootimageOptionROMonly
LinkspeedNegotiatedautomatically
Linkupdelaytime5seconds
Bannerdelaytime2seconds
Bootskipdelaytime5seconds
BoottypeDisabled
PFIOVDisabled
NumberofPhysicalFunctions2
MSIXinterruptlimit32
NumberofVirtualFunctions0
VFMSIXinterruptlimit8
pfvlans=<tag>[,<tag>[,...]]|none CommaseparatedlistofVLANtagsforeachPFintherange
04094‐seesfboot‐‐helpfordetails.
Settingpfvlans=nonewillclearallVLANtagsontheport.
pfvlansshouldbeincludedafterthepfcountoptiononthe
sfbootcommandline.
IfthenumberofPFsischanged,VLANtagswillbecleared.
switchmode=
default|sriov|partitioning|
partitioningwithsriov|pfiov
Specifiesthemodeofoperationthattheportwillbeused
in:
default‐singlePFcreated,zeroVFscreated.
sriov‐SRIOVenabled,singlePFcreated,VFsconfigured
withvfcount.
partitioning‐PFsconfiguredwithpfcount,VFs
configuredwithvfcount.SeeNICPartitioningonpage74
fordetails.
partitioningwithsriov‐SRIOVenabled,PFs
configuredwithpfcount,VFsconfiguredwithvfcount.
SeeNICPartitioningonpage74fordetails.
pfiov‐PFIOVenabled,PFsconfiguredwithpfcount,VFs
notsupported.
Changestothissettingwithsfbootrequireacoldrebootto
becomeeffective.
Table47:SfbootPeradapterParameters
Parameter Description
SolarflareServerAdapterUserGuide
SolarflareAdaptersonWindows
Issue20 ©SolarflareCommunications2017 197
Firmwarevariantfullfeature/virtualization
InsecurefiltersDisabled
SolarflareSFN7122FSFP+ServerAdapter#2‐MAC:00:0F:53:21:9B:B0
BootimageOptionROMonly
LinkspeedNegotiatedautomatically
Linkupdelaytime5seconds
Bannerdelaytime2seconds
Bootskipdelaytime5seconds
BoottypeDisabled
PFIOVDisabled
NumberofPhysicalFunctions2
MSIXinterruptlimit32
NumberofVirtualFunctions0
VFMSIXinterruptlimit8
Firmwarevariantfullfeature/virtualization
InsecurefiltersDisabled
• ListallSolarflareadaptersinstalledonthelocalhost:
sfboot/List
Sampleconsoleoutput:
SolarflarebootROMconfigurationutility[v4.1.4]
CopyrightSolarflareCommunications20062014,Level5Networks20022005
Networkadaptersinthiscomputer:
1:SolarflareSFN7122FSFP+ServerAdapter
MACaddress:00:0F:53:21:9B:B1
2:SolarflareSFN7122FSFP+ServerAdapter#2
MACaddress:00:0F:53:21:9B:B0
• Listadaptersinstalledontheremotehostnamed“Mercutio”:
sfboot/ComputerMercutio/List
Sampleconsoleoutput(remotehosthastwoadapterspresent):
SolarflarebootROMconfigurationutility[v4.1.4]
CopyrightSolarflareCommunications20062014,Level5Networks20022005
NetworkadaptersinMercutio:
1:SolarflareSFN7122FSFP+ServerAdapter
MACaddress:00:0F:53:21:9B:B1
2:SolarflareSFN7122FSFP+ServerAdapter#2
MACaddress:00:0F:53:21:9B:B0
SolarflareServerAdapterUserGuide
SolarflareAdaptersonWindows
Issue20 ©SolarflareCommunications2017 198
4.21Sfupdate:FirmwareUpdateTool
Sfupdate:CommandUsageonpage198
Sfupdate:CommandLineOptionsonpage198
Sfupdate:Examplesonpage200
SfupdateisaWindowscommandlineutilityusedtomanageandupgradethe
SolarflareadapterBootROM,UEFI,PHYandadapterfirmware.Embeddedwithin
thesfupdateexecutablearefirmwareimagesforvariousSolarflareadapters‐the
exactupdatesavailableviasfupdatearethereforedependonyouradapter.
Sfupdate:CommandUsage
1Loginwithanadministratoraccount.
2ClickStart>AllPrograms>SolarflareNetworkAdapters>CommandLine
Interfacefornetworkadapters.IfyouinstalledtheSolarflaresystemtrayicon,
youcanrightclicktheiconandchooseCommandlinetoolsinstead.
3IntheCommandPromptwindow,enteryourcommandusingthefollowing
syntax:
sfupdate[/Adapter<Identifier>][options]
where:
‐ IdentifieristhenameorIDoftheadapterthatyouwanttomanage.
Specifyingtheadapterisoptional‐ifitisnotincludedthecommandis
appliedtoallSolarflareadaptersinthemachine.
‐ optionsistheoptiontoapply.SeeSfupdate:CommandLineOptionsfor
alistofavailableoptions.
Runningthecommandsfupdatewithnoadditionalparameterswillshowthe
currentfirmwareversionforallSolarflareadaptersandwhetherthefirmware
withinsfupdateismoreuptodate.ToupdatethefirmwareforallSolarflare
adaptersrunthecommandsfupdate/Write
Solarflarerecommendthatyouusesfupdateinthefollowingway:
1Runsfupdatetocheckthatthefirmwareonallyouradaptersareuptodate.
2Runsfupdate/writetoupdatethefirmwareonalladapters.
Sfupdate:CommandLineOptions
Table48liststhecommandoptionsforsfupdate.Notethatcommandlineoptions
arecaseinsensitiveandmaybeabbreviated.
NOTE:Abbreviationsinscriptsshouldbeavoided,sincefutureupdatestothe
applicationmayrenderyourabbreviatedscriptsinvalid.
SolarflareServerAdapterUserGuide
SolarflareAdaptersonWindows
Issue20 ©SolarflareCommunications2017 199
SeeSfupdate:Examplesonpage200forexampleoutput.
Table48:SfupdateOptions
Option Description
/Helpor/Hor/? Displayscommandlinesyntaxandprovidesadescriptionofeach
option.
/Version Showsdetailedversioninformationandexits.
/Nologo Hidestheversionandcopyrightmessageatstartup.
/Verbose Showsextendedoutputinformationforthecommandentered.
/Quiet
Aliases:/Silent
Suppressesalloutput,includingwarningsanderrors;nouser
interaction.Youshouldquerythecompletioncodetodeterminethe
outcomeofcommandswhenoperatingsilently.
/Log<Filename> Logsoutputtothespecifiedfileinthecurrentfolderoranexisting
folder.Specify/Silenttosuppresssimultaneousoutputtoscreen,if
required.
/Computer<ComputerName> Performstheoperationontheidentifiedremotecomputer.
Administratorrightsontheremotehostcomputerisrequired.
/Adapter<Identifier> PerformstheactionontheidentifiedSolarflarenetworkadapter.The
identifiercanbetheadapterIDnumber,nameorMACaddress.
/Force Forcesafirmwareupdate.Canbeusedtoforceanupdatetoanolder
revisionoffirmwarewhenusedwith/Write.
/Write Writestheupdatedfirmwaretotheadapter.
Ifthe/Imageoptionisnotspecified,/Writewillwritetheembedded
imagefromsfupdatetothehardware.
Theupdatewillfailiftheimageontheadapteriscurrentornewer;to
forceanupdate,specify/Forceinthecommandline.
/Yes Updatewithoutpromptingforafinalconfirmation.Thisoptionmaybe
usedwiththe/Writeand/Forceoptions,butisnotrequiredwiththe
/Quietoption.
/Image<ImageFileName> Sourcesfirmwareimagefromanexternalfile.
/ipxeimage
<ImageFileName>
InstallaniPXEimagefromthegivenfile,replacingtheSolarflareboot
ROMimage.sfupdatewillnotautomaticallyreplacetheiPXEimagein
subsequentflashupdatesunlessthe‐‐restorebootromoptionisused.
/restorebootrom ReplaceaniPXEimageinflashwiththestandardSolarflareBoot
ManagerPXEimageincludedinsfupdate.
/NoWarning Suppressupdatewarnings.
SolarflareServerAdapterUserGuide
SolarflareAdaptersonWindows
Issue20 ©SolarflareCommunications2017 200
Sfupdate:Examples
•Displayfirmwareversionsforalladapters:
sfupdate
SampleoutputfromahostwithasingleSFN7122Fadapterinstalled:
Solarflarefirmwareupdateutility[v4.1.4]
CopyrightSolarflareCommunications20062014,Level5Networks20022005
1:SolarflareSFN7122FSFP+ServerAdapter
MACaddress:00:0F:53:21:9B:B1
Firmware:v4.1.0‐updatetov4.1.4?
BootROM:v4.1.0.6723‐updatetov4.2.0.1000?
Adapter:v4.1.0.6732‐updatetov4.1.1.1020?
2:SolarflareSFN7122FSFP+ServerAdapter#2
MACaddress:00:0F:53:21:9B:B0
Firmware:v4.1.0‐updatetov4.1.4?
BootROM:v4.1.0.6723‐updatetov4.2.0.1000?
Adapter:v4.1.0.6732‐updatetov4.1.1.1020?
• UpdatealladapterstolatestversionofPHYandBootROMfirmware:
sfupdate/Write
Sampleoutput:
Solarflarefirmwareupdateutility[v4.1.4]
CopyrightSolarflareCommunications20062014,Level5Networks20022005
1:SolarflareSFN7122FSFP+ServerAdapter
MACaddress:00:0F:53:21:9B:B1
Firmware:v4.1.0‐updatetov4.1.4
BootROM:v4.1.0.6723‐updatetov4.2.0.1000
Adapter:v4.1.0.6732‐updatetov4.1.1.1020
2:SolarflareSFN7122FSFP+ServerAdapter#2
MACaddress:00:0F:53:21:9B:B0
Firmware:v4.1.0‐updatetov4.1.4
BootROM:v4.1.0.6723‐updatetov4.2.0.1000
Adapter:v4.1.0.6732‐updatetov4.1.1.1020
4.22Sfteam:AdapterTeamingandVLANTool
Sfteam:CommandUsageonpage201
Sfteam:CommandLineOptionsonpage201
Sfteam:Examplesonpage205
SfteamisaWindowscommandlineutilityusedtoconfigureandmanagethe
teamingandVLANfeaturesoftheSolarflareadapters.Youmayfinditeasierto
createandmanageteamsandVLANswithSAM,Solarflare’sgraphicaladapter
manager.Asanalternative,orwhereSAMisnotavailable,sfteamprovidesa
methodofcreatingteamsandVLANsfromthecommandlineorconfiguration
script.
SolarflareServerAdapterUserGuide
SolarflareAdaptersonWindows
Issue20 ©SolarflareCommunications2017 201
ForgeneralinformationonteamingandVLANs,seeTeamingandVLANson
page216.
Sfteam:CommandUsage
1Loginwithanadministratoraccount.
2ClickStart>AllPrograms>SolarflareNetworkAdapters>CommandLine
Interfacefornetworkadapters.IfyouinstalledtheSolarflaresystemtrayicon,
youcanrightclicktheiconandchooseCommandlinetoolsinstead.
3IntheCommandPromptwindow,enteryourcommandusingthefollowing
syntax:
sfteam[option]
where:
‐ optionisthecommandtoapply.SeeTable49foralistofavailable
options.
Ifusingsfteaminaconfigurationscript,youcanincludetheenvironment
variable%SFTOOLS%tosetthepathtotheSolarflaretools.Forexample:
SETPATH=%PATH%;%SFTOOLS%
orrefertosfteamas:
%SFTOOLS%\sfteam
Sfteam:CommandLineOptions
Table49liststhecommandlineoptionssfteam.Notethatcommandlineoptions
arecaseinsensitiveandmaybeabbreviated.
NOTE:Abbreviationsinscriptsshouldbeavoided,sincefutureupdatestothe
applicationmayrenderyourabbreviatedscriptsinvalid.
Table49:SfteamOptions
Option Description
/Helpor/?or/H Displayscommandlinesyntaxandprovidesadescriptionof
eachsfteamoption.
/Version Showsdetailedversioninformationandexits.
/Nologo Hidestheversionandcopyrightmessageatstartup.
/Verbose Showsextendedoutputinformationforthecommand
entered.
/Quiet
Aliases:/Silent
Suppressesalloutput,includingwarningsanderrors;no
userinteraction.Youshouldquerythecompletioncodeto
determinetheoutcomeofcommandswhenoperating
silently.
SolarflareServerAdapterUserGuide
SolarflareAdaptersonWindows
Issue20 ©SolarflareCommunications2017 202
/Log<Filename> Logsoutputtothespecifiedfileinthecurrentfolderoran
existingfolder.Specify/Silenttosuppresssimultaneous
outputtoscreen,ifrequired.
/Computer<ComputerName> Performstheoperationontheidentifiedremotecomputer.
Administratorrightsontheremotehostcomputeris
required.
/List ListsallavailableSolarflareadaptersandanyteamsand
VLANs.ThisoptionshowstheadaptersIDnumber,name
andMACaddress.
/Create CreatesateamorVLAN.Tobevalid,thisoptionmustbe
usedwiththe/Adapteroptionforeachadapterthatyou
wanttoaddtotheteam.
Tospecifyanamefortheteam,includethe/Nameoption.
ToaddVLANstoateam,includethe/Vlanoption.
Notethatonceateamhasbeencreated,sfteamdoesnot
allowyoutochangeitsadapters,VLANsorteamname.
Eitherdeletetheteamandsetitupagain,oruseSAM
insteadtoconfiguretheteam.
/Configure<TeamIdentifier> Configurestheidentifiedteamorgroup.Theteamidentity
canbespecifiedastheteamnameorgroupID.
/Delete<TeamIdentifier> Deletestheidentifiedteamorgroup.Theteamidentitycan
bespecifiedastheteamnameorgroupID.Thisoption
cannotbeusedtodeleteVLANs.
/Clear DeletesallteamsandVLANS.
/Adapter<AdapterId> Specifiestheadaptertoaddtotheteam.Theadaptercan
bespecifiedastheadapternameorID.Repeatthisoption
foreachadapterthatyouwanttoincludeintheteam.
Thisoptionmustbeusedwhenateamisfirstcreated.It
cannotbeappliedtoateamonceithasbeensetup.
/Remove<AdapterId> Specifiestheadaptertoremovefromtheteam.The
adaptercanbespecifiedastheadapternameorID.Repeat
thisoptionforeachadapterthatyouwanttoremovefrom
theteam.
Table49:SfteamOptions
Option Description
SolarflareServerAdapterUserGuide
SolarflareAdaptersonWindows
Issue20 ©SolarflareCommunications2017 203
/Vlan<VLANtag[,priority[,name
[,DHCP|addr,mask[,gateway]]]>
CreatesaVLANwiththespecifiedIDandsetsprioritytraffic
handlingoption.
PHandlesprioritytraffic
N‐Doesnothandleprioritytraffic
Thisoptionmustbeusedwhenateamisfirstcreated.It
cannotbeappliedtoateamonceithasbeensetup.
IfyouspecifyanIPaddress,youmustspecifyanetmaskas
well.
IftheIPaddressisnotspecified,thenDHCPisassumed.You
canalsousetag,priority,name,DHCPtobeexplicit.
Formats:
•<tag>
e.g.2(assumesnopriority)
• "<tag>,<priority>"
e.g."2,p"
• "<tag>,<priority>,<name>"
e.g."2,p,myname"
• "<tag>,<priority>,<name>,DHCP"
e.g."2,p,myname,DHCP"
• "<tag>,<priority>,<name>,<addr>,<mask>"
e.g."2,p,myname,10.1.2.3,255.255.255.0"
• "<tag>,<priority>,<name>,<addr>,<mask>,<gateway>"
e.g."2,p,myname,10.1.2.3,255.255.255.0,10.1.2.1"
where:
•Tag:0to4094
•Priority:eitherP(prioritysupported)orN(nopriority)
•DHCP:maybeomitted,andwillbeassumed,ifit'sthe
lastfield
•IPAddresses:IPv4,dottedquadformat
Notethat<mask>mustbepresentif<addr>ispresent
/Name<TeamName> Specifiesanamefortheadapterteam.
Thisoptionmustbeusedwhenateamisfirstcreated.It
cannotbeappliedtoateamonceithasbeensetup.
Table49:SfteamOptions
Option Description
SolarflareServerAdapterUserGuide
SolarflareAdaptersonWindows
Issue20 ©SolarflareCommunications2017 204
/Type<TeamType> Defineswhatkindofteamisbeingcreated.Theoptionsare:
•tolerant(default)
•dynamic
• static
SeeTeamingandVLANsonpage216foranexplanationon
thedifferentteamingtypes.
/Mode<Mode> Specifieshowthedriverwillselectadapterstobepartof
thelinkaggregation.Theoptionisonlyrelevantwhenthe/
Typeoptioniseitherdynamicorstatic.Theoptionsare:
•auto(default)
• faulttolerant
•bandwidth
•keyadapter
SeeTeamingandVLANsonpage216foranexplanationof
thedifferentteamingmodes.
/Distribution<DistributionMode> Specifyhowthedriverdistributesconversationsacross
dynamicorstaticlinkaggregationteammembers.The
availablemodesare:
•auto(default)
•activeadapter
•layer2hash
•layer3hash
•layer4hash
/Statistics Displayadapterandlinkaggregationstatistics
/Detailed Displaydetailedconfigurationstatistics
/Key<AdapterId> Specifiesthekeyadapter.Theadaptercanbespecifiedas
theadapternameorID.
Table49:SfteamOptions
Option Description
SolarflareServerAdapterUserGuide
SolarflareAdaptersonWindows
Issue20 ©SolarflareCommunications2017 205
Sfteam:Examples
•CreateTeamAwithadapterID1andadapterID2:
sfteam/Create/Adapter1/Adapter2/NameTeam_A
Sampleoutput:
Solarflareteamingconfigurationutility[v4.1.4]
CopyrightSolarflareCommunications20062014Level5Networks20022005
Creatingteamdone(newid=2F)
Settingteamname"Team_A"...done
Addingadapter1...done
Addingadapter2...done
Creatingnetworkinterface
‐UsingDHCP
‐WaitingforthenewVLANdevice..
‐WaitingforthenewLANinterface
‐WaitingforaccesstotheIPstack
‐UsingDHCPdone
•CreateaVLANtoadapter#2withVLANtag4andprioritytraffichandling
enabled:
sfteam/Create/Adapter2/Vlan4,P
Sampleoutput:
Solarflareteamingconfigurationutility[v4.1.4]
CopyrightSolarflareCommunications20062014Level5Networks20022005
CreatingVLANgroupdone(newid=4V)
SettingVLANgroupname(usingdefaultname"Group4V")...done
Addingadapter2...done
CreatingVLAN
‐id=4,priority,unnamed
‐UsingDHCP
‐WaitingforthenewVLANdevice..
‐WaitingforthenewLANinterface
‐WaitingforaccesstotheIPstack
‐UsingDHCPdone
4.23Sfcable:CableDiagnosticsTool
Sfcable:CommandUsageonpage206
Sfcable:CommandLineOptionsonpage206
Sfcable:SampleCommandsonpage207
SfcableisaWindowscommandlineutilitytoruncablediagnosticsontheSolarflare
10GBASETserveradapters.Awarningwillbegiveniftheadapterisnota10GBASE
Tadapter.
SolarflareServerAdapterUserGuide
SolarflareAdaptersonWindows
Issue20 ©SolarflareCommunications2017 206
Sfcable:CommandUsage
1Loginwithanadministratoraccount.
2ClickStart>AllPrograms>SolarflareDrivers>CommandLineTools.Ifyou
installedtheSolarflaresystemtrayicon,youcanrightclicktheiconandchoose
Commandlinetoolsinstead.
3IntheCommandPromptwindow,enterthefollowingcommand:
sfcable[/Adapter<Identifier>][options]
where:
‐ IdentifieristhenameorIDoftheadapterthatyouwanttomanage.
Specifyingtheadapterisoptional‐ifitisnotincludedthecommandis
appliedtoallSolarflareadaptersinthemachine.
‐ optionistheoptionyoutoapply.SeeTable50foralistofavailable
options.
Sfcable:CommandLineOptions
Table50liststhecommandoptionsforsfcable.Notethatcommandlineoptionsare
caseinsensitiveandmaybeabbreviated.
NOTE:Abbreviationsinscriptsshouldbeavoided,sincefutureupdatestothe
applicationmayrenderyourabbreviatedscriptsinvalid.
Table50:SfcableOptions
Options Description
/Helpor/?or/H Displayscommandlinesyntaxandprovidesadescriptionofeach
sfcableoption.
/Version Showsdetailedversioninformationandexits.
/Nologo Hidestheversionandcopyrightmessageatstartup.
/Verbose Showsextendedoutputinformationforthecommandentered.
/Quiet
Aliases:/Silent
Suppressesalloutput,includingwarningsanderrors.Usershould
querythecompletioncodetodeterminetheoutcomeofcommands
whenoperatingsilently(see,PerformanceTuningonWindowson
page228).
/Log<Filename> Logsoutputtothespecifiedfileinthecurrentfolderoranexisting
folder.Specify/Silenttosuppresssimultaneousoutputtoscreen,if
required.
/Computer<ComputerName> Performstheoperationontheidentifiedremotecomputer.
Administratorrightsontheremotehostcomputerisrequired.
SolarflareServerAdapterUserGuide
SolarflareAdaptersonWindows
Issue20 ©SolarflareCommunications2017 207
Sfcable:SampleCommands
•Runtestsoffline
sfcable/Offline
SampleoutputfromacomputerwithtwoSolarflareadaptersinstalled:
C:sfcable/Offline
Solarflarecablediagnosticsutility[v4.1.4]
CopyrightSolarflareCommunications20062014,Level5Networks20022005
1:SolarflareSFN5121T10GBASETServerAdapter
MACaddress:00:0F:53:01:40:8C
Linkstate:Up
Linkspeed:10Gbps
Pair1:OK,length=9m
Pair2:OK,length=9m
Pair3:OK,length=9m
Pair4:OK,length=9m
2:SolarflareSFN5121T10GBASETServerAdapter#2
MACaddress:00:0F:53:01:40:8D
Linkstate:Up
Linkspeed:10Gbps
Pair1:OK,length=9m
Pair2:OK,length=9m
Pair3:OK,length=9m
Pair4:OK,length=9m
/Adapter<Identifier> PerformstheactionontheidentifiedSolarflarenetworkadapter.The
identifiercanbetheadapterIDnumber,nameorMACaddress,as
givenbythe/Listoption.
/List ListsallavailableSolarflareadapters.Thisoptionsshowstheadapters
IDnumber,nameandMACaddress.
/Offline Stopsnetworktrafficwhilethediagnostictestsarerunning.Running
testsofflinewillproducemoredetailedresults.
Caution:Theofflinetestswilldisruptdataflow.Itisnotrecommended
thatthetestsarerunonalivesystem.
Table50:SfcableOptions
Options Description
SolarflareServerAdapterUserGuide
SolarflareAdaptersonWindows
Issue20 ©SolarflareCommunications2017 208
4.24Sfkey:LicenseManagementTool
Sfkey:CommandUsageonpage208
Sfkey:CommandLineOptionsonpage208
Sfkey:SampleCommandsonpage210
SfkeyisaWindowscommandlineutilityformanagingSolarflareAppFlex™licenses
andenablingselectedonboardservicesforSolarflareadapters.Formore
informationaboutlicenserequirementsseeSolarflareAppFlex™Technology
Licensing.onpage18.
Sfkey:CommandUsage
1Loginwithanadministratoraccount.
2ClickStart>AllPrograms>SolarflareDrivers>CommandLineTools.Ifyou
installedtheSolarflaresystemtrayicon,youcanrightclicktheiconandchoose
Commandlinetoolsinstead.
3IntheCommandPromptwindow,enterthefollowingcommand:
sfkey[/Adapter<Identifier>][options]
where:
‐ IdentifieristhenameorIDoftheadapterthatyouwanttomanage.
Specifyingtheadapterisoptional‐ifitisnotincludedthecommandis
appliedtoallSolarflareadaptersinthemachine.
‐ optionistheoptionyoutoapply.SeeTable50foralistofavailable
options.
Sfkey:CommandLineOptions
Table50liststhecommandoptionsforsfkey.Notethatcommandlineoptionsare
caseinsensitiveandmaybeabbreviated.
NOTE:Abbreviationsinscriptsshouldbeavoided,sincefutureupdatestothe
applicationmayrenderyourabbreviatedscriptsinvalid.
Table51:SfkeyOptions
Options Description
/Helpor/?or/H Displayscommandlinesyntaxandprovidesadescriptionofeachsfkey
option.
/Version Showsdetailedversioninformationandexits.
/Nologo Hidestheversionandcopyrightmessageatstartup.
/Verbose Showsextendedoutputinformationforthecommandentered.
SolarflareServerAdapterUserGuide
SolarflareAdaptersonWindows
Issue20 ©SolarflareCommunications2017 209
/Quiet
Aliases:/Silent
Suppressesalloutput,includingwarningsanderrors.Usershould
querythecompletioncodetodeterminetheoutcomeofcommands
whenoperatingsilently(see,PerformanceTuningonWindowson
page228).
/Log<Filename> Logsoutputtothespecifiedfileinthecurrentfolderoranexisting
folder.Specify/Silenttosuppresssimultaneousoutputtoscreen,if
required.
/Computer<ComputerName> Performstheoperationontheidentifiedremotecomputer.
Administratorrightsontheremotehostcomputerisrequired.
/Adapter<Identifier> PerformstheactionontheidentifiedSolarflarenetworkadapter.The
identifiercanbetheadapterIDnumber,nameorMACaddress,as
givenbythe/Listoption.
/List ListsallavailableSolarflareadapters.Thisoptionsshowstheadapters
IDnumber,nameandMACaddress.
/Backup<Filename>|Outputareportoftheinstalledkeysinalladapters.Thereportcanbe
savedtofileandlaterusedwiththe/Installoption,orcanbeoutput
tostdoutbyusingasthefilename.
/Install<Filename>|Installlicensekeysfromthegivenfileandreporttheresult.Toread
fromstdinuseinplaceoffilename.Keysareinstalledtoanadapter,
soifanadapterhasmultipleports,allportswillbeaffectedbythekeys
installed.
Adriverreloadisrequiredaftersfkeyinstallscertaintypesoflicense
(e.g.aPTPlicense).
/Inventory Listtheadaptersthatsupportlicensing.Bydefaultthiswilllistadapters
thatsupportlicenses.Tolistalladaptersusethe‐‐alloption.Tolist
keysusethe‐‐keysoption.
/Keys Includekeyin/Inventoryoutput‐seeabove.
/NoEvaluationUpdate Donotupdateanyevaluationkeys.
/Clear Deleteallexistinglicensekeysfromanadapter‐exceptfactory
installedkeys.
/Report Reportthecurrentstatus.
/Xml ReportformattedasXML.
/NoWrite Donotwritechangestotheadapter.Aliases/N,/DryRun
Table51:SfkeyOptions
Options Description
SolarflareServerAdapterUserGuide
SolarflareAdaptersonWindows
Issue20 ©SolarflareCommunications2017 210
Sfkey:SampleCommands
•Reportasummaryoftheinstalledlicensekeys:
‐ Use/Verbosetogetmoredetailedinformationaboutthelicenses
granted.
‐ Use/Xmlforastructuredoutputforsuitableformachineprocessing.
sfkey/Report
SolarflareKeyManagementApplication[v4.8.2]
CopyrightSolarflareCommunications20062016,Level5Networks20022005
42,43:000F53430560(8xxx)
ProductnameSolarflareFlareonUltra8000Series10GAdapter
InstalledkeysPlus
•Getaninventoryreportthatsummarizesthelicensestateonasingleline.
sfkey/Inventory/Keys
SolarflareKeyManagementApplication[v4.8.2]
CopyrightSolarflareCommunications20062016,Level5Networks20022005
42,43:000F53430560(8xxx),$Onload,$PrecisionTime,$TCPDirect,$LowLatency,
$SolarCaptureTap,$Plus
•Installkeysfromafile,orspecify(asinglehyphen)toindicatethatthekeys
aretobereadfromstdin.
sfkey/Installkeys.txt
SolarflareKeyManagementApplication[v4.8.2]
CopyrightSolarflareCommunications20062016,Level5Networks20022005
Readingkeys...
Writingkeys...
100%Complete
42,43:000F53430560(8xxx)
ProductnameSolarflareFlareonUltra8000Series10GAdapter
InstalledkeysSolarCapturePro10G,Plus
•Backupkeystoafile,orspecify(asinglehyphen)toindicatethatthekeysare
tobeprintedtostdout.
sfkey/Backupkeys.txt
•Clearandremoveallkeysexceptforfactoryfittedkeys.
sfkey/Clear
SolarflareServerAdapterUserGuide
SolarflareAdaptersonWindows
Issue20 ©SolarflareCommunications2017 211
4.25Sfnet
Sfnet:CommandUsageonpage211
Sfnet:CommandLineOptionsonpage211
Completioncodes(%errorlevel%)onpage215
SfnetisaWindowscommandlineutilitytoconfigurethephysicalorvirtualadapter
settings,suchaschecksumoffloading,RSS,VMQandPowerManagement.
NOTE:Changingthesesettingsmaysignificantlyaltertheperformanceofthe
adapter.YoushouldcontactSolarflaretechnicalsupportbeforechanginganyof
thesesettings.
Sfnet:CommandUsage
1Loginwithanadministratoraccount.
2ClickStart>AllPrograms>SolarflareNetworkAdapter>CommandLine
Interfacefornetworkadapters.IfyouinstalledtheSolarflaresystemtrayicon,
youcanrightclicktheiconandchooseCommandlinetoolsinstead.
3IntheCommandPromptwindow,enteryourcommandusingthefollowing
syntax:
sfnet[/AdapterIdentifier][options]
where:
‐ IdentifieristhenameorIDoftheadapterthatyouwanttomanage.
Specifyingtheadapterisoptional‐ifitisnotincludedthecommandis
appliedtoallSolarflareadaptersinthemachine.
‐ optionistheoptiontoapply.SeeSfnet:CommandLineOptionsforalist
ofavailableoptions.
Toseealladaptersinstalledonthecomputerandtheircurrentoptionsand
parametersettingsusethesfnet/Listoption.
Ifusingsfnetinaconfigurationscript,youcanincludetheenvironmentvariable
%SFTOOLS%tosetthepathtotheSolarflaretools.Forexample:
SETPATH=%PATH%;%SFNET%
orrefertosfnetas:
%SFTOOLS%\sfnet
Sfnet:CommandLineOptions
Table52liststhecommandoptionsforsfnet.Notethatcommandlineoptionsare
caseinsensitiveandmaybeabbreviated.
NOTE:Abbreviationsinscriptsshouldbeavoided,sincefutureupdatestothe
applicationmayrenderyourabbreviatedscriptsinvalid.
SolarflareServerAdapterUserGuide
SolarflareAdaptersonWindows
Issue20 ©SolarflareCommunications2017 212
Table52:SfnetOptions
Options Description
/Helpor/?or/H Displayscommandlinesyntaxandprovidesadescriptionofeachsfnet
option.
/Version Showsdetailedversioninformationandexits.
/Nologo Hidestheversionandcopyrightmessageatstartup.
/Verbose Showsextendedoutputinformationforthecommandentered.
/Quiet
Aliases:/Silent
Suppressesalloutput,includingwarningsanderrors;nouser
interaction.Youshouldquerythecompletioncodetodeterminethe
outcomeofcommandswhenoperatingsilently.
/Log<Filename> Logsoutputtothespecifiedfileinthecurrentfolderoranexisting
folder.Specifysilenttosuppresssimultaneousoutputtoscreen,if
required.
/Computer<ComputerName> Performstheoperationontheidentifiedremotehost.Administrator
rightsontheremotehostcomputerisrequired.
/Adapter<Identifier> PerformtheactionontheidentifiedSolarflarephysicalorvirtual
networkadapter.
/List ListsallavailableSolarflareadapters,optionsandcurrentparameter
settings.
/Id Listoutputislimitedtooneline,containingtheIdandname,per
adapter.
/StopOnWarning Exittheutilityifawarningisoutput.
/Statistics DisplayadapterstatisticsandconfigurationsettingsforSolarflare
interfaces.
Table53:SupportedKeyValueParameter
Parameter Description
ipoffload=enabled|disabled SpecifywhetherIPv4checksumoffloadisenabled.
tcpoffload=enabled|disabled SpecifywhetherTCPchecksumoffloadisenabled.
ConfiguresTCPv4andTCPv6whereapplicable.
udpoffload=enabled|disabled SpecifywhetherUDPchecksumoffloadisenabled.
ConfiguresUDPv4andUDPv6whereapplicable.
lso=enabled|disabled Specifywhetherlargesendoffload(LSO)isenabled.
ConfiguresLSOv4andLSOv6whereapplicable.
SolarflareServerAdapterUserGuide
SolarflareAdaptersonWindows
Issue20 ©SolarflareCommunications2017 213
lro=enabled|disabled Specifywhetherlargereceiveoffload(LRO)isenabled.
ConfiguresRSCv4andRSCv6,orLROv4andLROv6,where
applicable.
Supportforthisoptionisdependentontheversionof
Windowsoperatingsystemandnetworkingstack.
ImplementsWindowsReceiveSegmentCoalescing(RSC)if
applicable.
flowcontrol=auto|enabled|
generate|respond|disabled
SpecifyEthernetflowcontrol.Thisoptioncoversthe“Flow
Control”and“FlowControlAutonegotiation”devicedriver
advancedproperties.
speed=auto|40g|10g|1g|100m SpecifytheEthernetlinkspeed.
mtu=<MTUlength> SpecifythemaximumEthernetframelength.From1518to
9216bytes(evenvaluesonly).
rss=disabled|optimized|system|
closest|closeststatic|
numa|numastatic|conservative
Specifythereceivesidescaling(RSS)mode.
rssbaseprocessor=<group>:<number> ThebaseprocessoravailableforRSS.Ifavalueisgivenit
mustformatedas<group>:<number>wheregroupisinthe
range09andnumberintherange0to63.
rssmaxprocessor=<group>:<number> ThemaximumnumberofprocessorsavailableforRSS.Ifa
valueisgivenitmustformatedas<group>:<number>
wheregroupisintherange09andnumberintherange0
to63.
maxrssprocessors=<count> ThemaximumnumberofprocessorsavailableforRSS.If
countisspecifieditmustbeintherange1256.Supportfor
thisoptionisindependentoftheversionoftheoperating
systemandnetworkingstack.
rssqueuecount=balanced|<value> Specifythemaximumnumberofreceivequeuestousefor
RSS.Ifsettobalancedthenetworkadapterwillchoosethe
numberofqueuesbasedonthesystemprocessortopology.
Ifspecified,countmustbeoneof
1|2|4|8|12|16|24|32|48|64.
Supportforthisoptionisindependentoftheversionofthe
operatingsystemandnetworkingstack.
numanode=all|<value> ThepreferredNUMAnodeusedbyRSS.Ifavalueisgiven,
itmustbeintherange015.Supportforthisoptionis
independentoftheversionoftheoperatingsystemand
networkingstack.
Table53:SupportedKeyValueParameter
Parameter Description
SolarflareServerAdapterUserGuide
SolarflareAdaptersonWindows
Issue20 ©SolarflareCommunications2017 214
moderation=disabled|<value> Specifyinterruptmoderationtime(inmicroseconds).Ifa
valueisgivenitmustbeintherange1to1000.NOTE:this
optioncoversthedevicedriveradvancedproperties
interruptmoderationtime”andinterruptmoderation”.
adaptive=enabled|disabled Allowstheadaptertovaryinterruptmoderation
automaticallyifinterruptmoderationisenabled.
wake=enabled|disabled SpecifywhetherWakeonLANisenabled.
sleep=enabled|disabled Specifywhethertheoperatingsystemcanputthedeviceto
sleepwhenthephysicallinkgoesdown.
vmq=enabled|nosplit|novlan|basic|
disabled
enabled=VMQenabled.
nosplit=VMQenabledwithoutlookaheadsplit.
novlan=VMQenabledwithoutVLANfiltering.
basic=VMQenabledMACaddressfilteringonly.
disabled=VMQdisabled.
Table53:SupportedKeyValueParameter
Parameter Description
SolarflareServerAdapterUserGuide
SolarflareAdaptersonWindows
Issue20 ©SolarflareCommunications2017 215
4.26Completioncodes(%errorlevel%)
Table54liststhecompletioncodesreturnedbythecommandlineutilities.Thecode
maybedeterminedbyinspecting%errorlevel%
Table54:CompletionCodes
Errorcode Description
0Success.
1Theapplicationwasinvokedwith/?or/help.
3Theapplicationwasinvokedwith/version.
16 Applicationcanceled(userprobablypressedCTRLC).
17 Applicationhasrequestedareboot.
18 Rebootisnecessarytocompletetheaction.
19 Incompleteteamcreation.
Teamhasbeencreatedandwhateveradaptersthatcouldbeadded
havebeen,andtheVLANs(ifany)havebeencreated.Some
adapterswerenotabletobeadded.
32 Applicationfailedinitialization.
33 Accessdenied.
Eithertheremotehostrefusedaconnectiononthebasisofaccount
privileges,orafilecouldnotbeopened.
34 Cannotconnect.
Theremotehostcouldnotbefoundorrefusedtheconnection
becausetheWMIservicewasinaccessible(eitherbecausethe
serviceisnotrunningorbecausethereisafirewallorsecurity
policypreventingitbeingaccessedremotely).
35 WMIclassesexposedbytheSolarflaredriversmissing.
Usuallythismeansthateitherthedriverhavenotbeeninstalled,no
Solarflareadaptersarepresent,oradaptershavebeendisabled.
36 Failedtoobtaindriverlock.
TheapplicationhastriedtotaketheSolarflaredriverlockbecause
itwantstodosomethingthatmustnotbeinterruptedbyanother
utility(orSAM)andfailedtodoso.
37 Adapternotfound.
Cannotfindtheadapterspecifiedby/adapter.
SolarflareServerAdapterUserGuide
SolarflareAdaptersonWindows
Issue20 ©SolarflareCommunications2017 216
4.27TeamingandVLANs
AboutTeaming
Solarflareadapterssupportthefollowingteamingconfigurations:
•IEEE802.1AX(802.3ad)Dynamiclinkaggregation
•Staticlinkaggregation
•Faulttolerantteams
TeamingallowstheusertoconfigureteamsconsistingofallSolarflareadapterports
onallinstalledSolarflareadaptersormightconsistonlyofselectedportse.g.from
adualportSolarflareadapter,thefirstportcouldbeamemberofteamAandthe
secondportamemberofteamBorbothportsmembersofthesameteam.
ThissectionisonlyrelevanttoteamsofSolarflareadapters.Solarflareadapterscan
beusedinmultivendorteamswhenteamedusinganothervendorsteamingdriver.
NOTE:WindowsServer2012hasnativeWindowsteamingsupport.Theusercan
electtousenativeWindowsdriveroftheSolarflareteaming,butthetwomethods
shouldnotbemixed.
38 Adapternotspecified.
Commandlineismissingthe/adapteroption.
39 Laterversionalreadyinstalled.
128 Userenteredaninvalidcommandline.
129 Couldnotopenlogfile.
130 AgeneralWMIerroroccurred.
Canoccurwhentheconnectionislost.
131 Missingprerequisite.
Theapplicationneedssomethingthatisnotpresentinthesystem.
132 Notsupported.
133 Platform/Systemnotsupported.
255 Generalexitfailure.
Table54:CompletionCodes
Errorcode Description
SolarflareServerAdapterUserGuide
SolarflareAdaptersonWindows
Issue20 ©SolarflareCommunications2017 217
CreatingTeamsandVLANs
TosetupteamsandVLANsinWindowsusingSAM,seeUsingSAMtoConfigure
TeamsandVLANsonpage168.
TosetupteamsandVLANsinWindowsusingthesfteamcommandlinetool,see
Sfteam:AdapterTeamingandVLANToolonpage200.
LinkAggregation
Linkaggregationisamechanismforsupportingloadbalancingandfaulttolerance
acrossateamofnetworkadaptersandtheirassociatedswitch.Linkaggregationis
apartnerteamingmodethatrequiresconfigurationatbothendsofthelink.Once
configured,alllinksintheteamarebondedintoasinglevirtuallinkwithasingle
MACaddress.
Twoormorephysicallinksareusedtoincreasethepotentialthroughputavailable
betweenthelinkpartners,andalsoimproveresilienceagainstlinkfailures.Tobe
aggregated,alllinksintheteammustbebetweenthesametwolinkpartnerand
eachlinkmustbefullduplex.Trafficisdistributedevenlytoalllinksconnectedto
thesameswitch.Incaseoflinkfailover,trafficonthefailedlinkwillberedistributed
totheremaininglinks.
Linkaggregationoffersthefollowingfunctionality:
•Teamscanbebuiltfrommixedmedia(i.e.UTPandFiber).
•Allprotocolscanbeloadbalancedwithouttransmitorreceivemodificationsto
frames.
•Multicastandbroadcasttrafficcanbeloadbalanced.
•Shortrecoverytimeincaseoffailover.
• Solarflaresupportsupto64linkaggregationportgroupspersystem.
• Solarflaresupportsupto64portsandVLANsinalinkaggregationportgroup.
Therearetwomethodsoflinkaggregation,dynamicandstatic.
DynamicLinkAggregation
DynamiclinkaggregationusestheLinkAggregationControlProtocol(LACP)as
definedintheIEEE802.1AXstandard(previouslycalled802.3ad)tonegotiatethe
portsthatwillmakeuptheteam.LACPmustbeenabledatbothendsofthelinkfor
ateamtobeoperational.
LACPwillautomaticallydeterminewhichphysicallinkscanbeaggregated,andwill
thenperformtheaggregation.
AnoptionalLACPmarkerprotocolprovidesfunctionalitywhenaddingandremoving
physicallinksensuringthatnoframesarelost,reorderedorduplicated.
Dynamiclinkaggregationoffersbothfaulttoleranceandloadbalancing.
SolarflareServerAdapterUserGuide
SolarflareAdaptersonWindows
Issue20 ©SolarflareCommunications2017 218
Standbylinksaresupported,butarenotconsideredpartofalinkaggregationuntil
alinkwithintheaggregationfails.
VLANsaresupportedwithin802.1AXteams.
Intheeventoffailover,theloadonthefailedlinkisredistributedovertheremaining
links.
NOTE:Yourswitchmustsupport802.1AX(802.3ad)dynamiclinkaggregationtouse
thismethodofteaming.
Figure35showsa802.1AXTeamconfiguration.
Figure35:802.1AXTeam
SolarflareServerAdapterUserGuide
SolarflareAdaptersonWindows
Issue20 ©SolarflareCommunications2017 219
Figure36showsa802.1AXteamwithafailedlink.Alltrafficisreroutedandshared
betweentheotherteamlinks.
Figure36:802.1AXwithFailedLink
StaticLinkAggregation
Staticlinkaggregationisaswitchassistedteamingmodethatrequiresmanual
configuringoftheportsatbothendsofthelink.Staticlinkaggregationisprotocol
independentandtypicallyinteroperateswithcommonlinkaggregationschemes
suchasIntelLinkAggregation,CiscoFastEtherChannelandCiscoGigabit
EtherChannel.
Withstaticlinkaggregation,alllinkssharethetrafficloadandstandbylinksarenot
supported.Staticlinkaggregationoffersbothfaulttoleranceandloadbalancing.In
theeventoffailover,theloadonthefailedlinkisredistributedovertheremaining
links.
SolarflareServerAdapterUserGuide
SolarflareAdaptersonWindows
Issue20 ©SolarflareCommunications2017 220
Figure37:StaticLinkAggregationTeam
Figure38:StaticLinkTeamwithFailedLink
FaultTolerantTeams
Faulttolerantteamingcanbeimplementedonanyswitch.Itcanalsobeusedwith
eachnetworklinkconnectedtoseparateswitches.
Afaulttolerantteamisasetofoneormorenetworkadaptersboundtogetherby
theadapterdriver.Afaulttolerantteamimprovesnetworkavailabilitybyproviding
standbyadapters.Atanyonemomentnomorethanoneoftheadapterswillbe
activewiththeremaindereitherinstandbyorinafaultstate.InFigure39,Adapter
1isactiveandalldatatoandfromtheswitchpassesthroughit.
SolarflareServerAdapterUserGuide
SolarflareAdaptersonWindows
Issue20 ©SolarflareCommunications2017 221
NOTE:Alladaptersinafaulttolerantteammustbepartofthesamebroadcast
domain.
Figure39:FaultTolerantTeam
Failover
Theteamingdrivermonitorsthestateoftheactiveadapterand,intheeventthat
itsphysicallinkislost(down)orthatitfailsinservice,swapstooneofthestandby
adapters.InFigure40thepreviouslyactiveadapterhasenteredafailedstateand
willnotbeavailableinthestandbylistwhilethefailedstatepersists.
Figure40:Adapter1Failure
SolarflareServerAdapterUserGuide
SolarflareAdaptersonWindows
Issue20 ©SolarflareCommunications2017 222
Notethat,inthisexample,Adapter3isnowactive.Theorderinwhichtheadapters
areusedisdeterminedbyanumberoffactors,includinguserdefinablerank.
VLANs
VLANsofferamethodofdividingonephysicalnetworkintomultiplebroadcast
domains.
Figure41:VLANsroutingthroughSolarflareadapter
SolarflareServerAdapterUserGuide
SolarflareAdaptersonWindows
Issue20 ©SolarflareCommunications2017 223
VLANsandTeaming
VLANsaresupportedonallSolarflareadapterteamingconfigurations.
VLANswithFaultTolerantTeams
Figure42showsafaulttolerantteamwithtwoVLANs.
Figure42:FaultTolerantVLANs
SolarflareServerAdapterUserGuide
SolarflareAdaptersonWindows
Issue20 ©SolarflareCommunications2017 224
FailoverworksinthesamewayregardlessofthenumberofVLANs,asshowin
Figure43.
Figure43:FailoverinFaultTolerantTeamVLAN
VLANswithDynamicorStaticLinkAggregationTeams
VLANsworkinthesamewaywitheitherDynamicorStaticLinkAggregationteaming
configurations.Figure44showshowVLANsworkwiththeseteams.
Figure44:VLANwithDynamicorStaticLinkTeam
SolarflareServerAdapterUserGuide
SolarflareAdaptersonWindows
Issue20 ©SolarflareCommunications2017 225
Incaseoflinkfailure,alltrafficisdistributedovertheremaininglinks,asin
Figure45.
Figure45:VLANwithFailedDynamicorStaticTeamLink
KeyAdapter
Everyteammusthaveakeyadapter.Figure46showsAdapter1asboththeKeyand
theactiveadapter.inaFaultTolerantTeam.
Figure46:KeyAdapterinFaultTolerantTeam
SolarflareServerAdapterUserGuide
SolarflareAdaptersonWindows
Issue20 ©SolarflareCommunications2017 226
Thekeyadaptermustbeamemberofateam.However,itdoesnotneedtobethe
activeadapter.Itdoesn'tevenneedtobeinthelistofstandbyadaptersbutitmust
physicallybewithinitshost.TheKeyAdapterdefinestheteam'sRSSsupport(see
ReceiveSideScaling(RSS)onpage233)andprovidestheMACAddressthatwillbe
usedforalltrafficsentandreceivedbytheteam.
Whenalinkfailureoccursintheactiveadapter(forexamplethephysicallinkislost)
thedriverwillselectanotheradaptertobecomeactivebutitwillnotreassignthe
KeyAdapter.InFigure47,Adapter1hasfailedandtheteamisnowusingAdapter2
foralltraffic.
Figure47:FailoverKeyAdapter
NotethatalthoughtheKeyAdapter(Adapter1)hasalinkfailure,theintegrityofthe
teamisnotaffectedbythisfailure.
SolarflareServerAdapterUserGuide
SolarflareAdaptersonWindows
Issue20 ©SolarflareCommunications2017 227
DynamicandStaticLinkAggregationTeams
Theassignmentofkeyadaptersissupportedinbothdynamicandstaticlink
aggregatedteams,andworksinthesamewayforboth.
Anylinkfailureonthekeyadapterdoesnotaffecttheredistributionoftraffictothe
otherlinksintheteam.
SolarflareServerAdapterUserGuide
SolarflareAdaptersonWindows
Issue20 ©SolarflareCommunications2017 228
4.28PerformanceTuningonWindows
Introductiononpage228
TuningSettingsonpage229
OtherConsiderationsonpage236
Benchmarksonpage241
Introduction
TheSolarflarefamilyofnetworkadaptersaredesignedforhighperformance
networkapplications.Theadapterdriverispreconfiguredwithdefault
performancesettingsthathavebeendesignedtogivegoodperformanceacrossa
broadclassofapplications.Occasionally,applicationperformancecanbeimproved
bytuningthesesettingstobestsuittheapplication.
Therearethreemetricsthatshouldbeconsideredwhentuninganadapter:
• Throughput
•Latency
•CPUutilization
Differentapplicationsmaybemoreorlessaffectedbyimprovementsinthesethree
metrics.Forexample,transactional(requestresponse)networkapplicationscanbe
verysensitivetolatencywhereasbulkdatatransferapplicationsarelikelytobe
moredependentonthroughput.
Thepurposeofthissectionistohighlightadapterdriversettingsthataffectthe
performancemetricsdescribed.ThissectioncoversthetuningofallSolarflare
adapters.
Latencywillbeaffectedbythetypeofphysicalmediumused:10GBaseT,twinaxial
(directattach),fiberorKX4.Thisisbecausethephysicalmediainterfacechip(PHY)
usedontheadaptercanintroduceadditionallatency.Likewise,latencycanalsobe
affectedbythetypeofSFP/SFP+/QSFPmodulefitted.
ThissectionisdesignedforperformancetuningSolarflareadaptersonMicrosoft
Windows.Thisshouldbereadinconjunctionwiththereferencedesignboarderrata
documentsandthefollowingMicrosoftperformancetuningguides:
•PerformanceTuningGuidelinesforthecurrentversionofWindowsServer:
http://msdn.microsoft.com/enus/library/windows/hardware/dn529133
PerformanceTuningGuidelinesforpreviousversionsofWindowsServer:
http://msdn.microsoft.com/enus/library/windows/hardware/dn529134.
Inaddition,youmayneedtoconsiderotherissuesinfluencingperformance,suchas
applicationsettings,servermotherboardchipset,CPUspeed,cachesize,RAMsize,
additionalsoftwareinstalledonthesystem,suchasafirewall,andthespecification
andconfigurationoftheLAN.Considerationofsuchissuesisnotwithinthescopeof
thisguide.
SolarflareServerAdapterUserGuide
SolarflareAdaptersonWindows
Issue20 ©SolarflareCommunications2017 229
TuningSettings
TuningsettingsfortheSolarflareadapterareavailablethroughtheSolarflare
AdapterManager(SAM)utility,orviatheAdvancedtabintheWindowsDevice
Manager(rightclicktheadapterandselectProperties).SeeUsingSAMtoConfigure
AdapterFeaturesonpage160andConfiguringNetworkAdapterPropertiesin
Windowsonpage184formoredetails.
Table55liststheavailabletuningsettingsforSolarflareadaptersonWindows.
Table55:TuningSettings
Setting Supportedon
WindowsServer2008R2
Supportedon
WindowsServer2012/
WindowsServer2012R2
AdaptiveInterruptModeration Yes Yes
InterruptModeration Yes Yes
InterruptModerationTime Yes Yes
LargeReceiveOffload(IPv4) Yes No1
LargeReceiveOffload(IPv6) Yes No1
LargeSendOffloadV2(IPv4) Yes Yes
LargeSendOffloadV2(IPv6) Yes Yes
MaxFrameSize Yes Yes
OffloadIPv4Checksum Yes Yes
Portmode Yes Yes
PreferredNumaNode Yes Yes
ReceiveSegmentCoalescing(IPv4) No1Yes
ReceiveSegmentCoalescing(IPv6) No1Yes
ReceiveSideScaling Yes Yes
RSSInterruptBalancing Yes Yes
TCPChecksumOffload(IPv4) Yes Yes
TCPChecksumOffload(IPv6) Yes Yes
UDPChecksumOffload(IPv4) Yes Yes
UDPChecksumOffload(IPv6) Yes Yes
1. LargeReceiveOffloadhasbeensupersededbyReceiveSegmentCoalescing(RSC).MicrosoftintroducedRSCin
WindowsServer2012.
SolarflareServerAdapterUserGuide
SolarflareAdaptersonWindows
Issue20 ©SolarflareCommunications2017 230
Portmode
TheselectedportmodeforSFN7000andSFN8000seriesadaptersshould
correspondtothespeedandnumberofconnectorsinuse,afterusinganysplitter
cables.Ifarestrictedsetofconnectorsisconfigured,thedrivercanthentransfer
resourcesfromtheunusedconnectorstothoseconfigured,potentiallyimproving
performance.
MaxFrameSize
Thedefaultmaximumframesizeensuresthattheadapteriscompatiblewithlegacy
10/100MbpsEthernetendpoints.Howeverifalargermaximumframesizeisused,
adapterthroughputandCPUutilizationcanbeimproved.CPUutilizationis
improved,becauseittakesfewerpacketstosendandreceivethesameamountof
data.Solarflareadapterssupportmaximumframesizesupto9216bytes(thisdoes
notincludetheEthernetpreambleorframechecksequence).
NOTE:ThemaximumframesizesettingshouldincludetheEthernetframeheader.
TheSolarflaredriverssupport802.1p.ThisallowsSolarflareadaptersonWindows
tooptionallytransmitpacketswith802.1QtagsforQoSapplications.Itrequiresan
Ethernetframeheadersizeof18bytes(6bytessourceMACaddress,6bytes
destinationMACaddress,2bytes802.1Qtagprotocolidentifier,2bytes802.1Q
tagcontrolinformation,and2bytesEtherType).Thedefaultmaximumframesize
istherefore1518bytes.
Sincethemaximumframesizeshouldideallybematchedacrossallendpointsinthe
sameLAN(VLAN),andsincetheLANswitchinfrastructuremustbeabletoforward
suchpackets,thedecisiontodeployalargerthandefaultmaximumframesize
requirescarefulconsideration.Itisrecommendedthatexperimentationwith
maximumframesizebedoneinacontrolledtestenvironment.
ThemaximumframesizeischangedbychangingtheMaxFrameSizesettinginthe
NetworkAdaptersAdvancedPropertiesPage.
InterruptModeration(InterruptCoalescing)
Interruptmoderationreducesthenumberofinterruptsgeneratedbytheadapterby
coalescingmultiplereceivedpacketeventsand/ortransmitcompletionevents
togetherintoasingleinterrupt.
Theinterruptmoderationintervalsetstheminimumtime(inmicroseconds)
betweentwoconsecutiveinterrupts.Coalescingoccursonlyduringthisinterval:
•Whenthedrivergeneratesaninterrupt,itstartstimingthemoderation
interval.
•Anyeventsthatoccurbeforethemoderationintervalexpiresarecoalesced
togetherintoasingleinterrupt,thatisraisedonlywhentheintervalexpires.
Anewmoderationintervalthenstarts,duringwhichnointerruptisraised.
•Aneventthatoccursafterthemoderationintervalhasexpiredgetsitsown
dedicatedinterrupt,thatisraisedimmediately.
Anewmoderationintervalthenstarts,duringwhichnointerruptisraised.
SolarflareServerAdapterUserGuide
SolarflareAdaptersonWindows
Issue20 ©SolarflareCommunications2017 231
Solarflareadapters,bydefault,useanadaptivealgorithmwheretheinterrupt
moderationdelayisautomaticallyadjustedbetweenzero(nointerruptmoderation)
and60microseconds.Theadaptivealgorithmdetectslatencysensitivetraffic
patternsandadjuststheinterruptmoderationintervalaccordingly.
Interruptmoderationsettingsarecriticalfortuningadapterlatency:
• Disablingtheadaptivealgorithmwill:
‐ reducejitter
‐ allowsettingthemoderationintervalasrequiredtosuitconditions.
• Increasingtheinterruptmoderationintervalwill:
‐ generatelessinterrupts
‐ reduceCPUutilization(becausetherearelessinterruptstoprocess)
‐ increaselatency
‐ improvepeakthroughput.
• Decreasingtheinterruptmoderationintervalwill:
‐ generatemoreinterrupts
‐ increaseCPUutilization(becausetherearemoreinterruptstoprocess)
‐ decreaselatency
‐ reducepeakthroughput.
• Turningoffinterruptmoderationwill:
‐ generatethemostinterrupts
‐ givethehighestCPUutilization
‐ givethelowestlatency
‐ givethebiggestreductioninpeakthroughput.
Formanytransactionrequestresponsetypenetworkapplications,thebenefitof
reducedlatencytooverallapplicationperformancecanbeconsiderable.Such
benefitstypicallyoutweighthecostofincreasedCPUutilization.Itisrecommended
that:
• Interruptmoderationisdisabledforapplicationsthatrequirebestlatencyand
jitterperformance,suchasmarketdatahandling.
• Interruptmoderationisenabledforhighthroughputsingle(orfew)connection
TCPstreamingapplications,suchasiSCSI.
InterruptmoderationcanbedisabledorenabledusingtheInterruptModeration
settingintheNetworkAdaptersAdvancedPropertiesPage.Theinterrupt
moderationtimevaluecanalsobeconfiguredfromtheNetworkAdapters
AdvancedPropertiesPage.
NOTE:TheperformancebenefitsofReceiveSegmentCoalescingandLargeReceive
Offloadarelimitedifinterruptmoderationisdisabled.SeeReceiveSegment
Coalescing(RSC)onpage232andLargeReceiveOffload(LRO)onpage233.
SolarflareServerAdapterUserGuide
SolarflareAdaptersonWindows
Issue20 ©SolarflareCommunications2017 232
TCPChecksumOffload
ChecksumoffloadmovescalculationandverificationofIPHeader,TCPandUDP
packetchecksumstotheadapter.Thedriverhasallchecksumoffloadfeatures
enabledbydefault.Therefore,thereisnoopportunitytoimproveperformance
fromthedefault.
ChecksumoffloadconfigurationischangedbychangingtheOffloadIPChecksum,
OffloadUDPChecksumandOffloadTCPChecksumsettingsintheNetwork
AdaptersAdvancedPropertiesPage.
•Tocheckthattaskoffloadsareenabled(e.g.checksumoffloadinparticular),
runthefollowingcommands:
netshinterfacetcpshowglobal
netshinterfaceipv4showoffload
netshinterfaceipv6showoffload
•Seehttps://msdn.microsoft.com/enus/library/windows/hardware/
ff571012%28v=vs.85%29.aspxforfurtherrelevantsettings.
NOTE:Solarflarerecommendyoudonotdisablechecksumoffload.
LargeSendOffloadV2(LSO)
LargeSendOffload(LSO;alsoknownasTCPSegmentationOffload/TSO)offloadsthe
splittingofoutgoingTCPdataintopacketstotheadapter.LSObenefitsapplications
usingTCP.ApplicationsusingprotocolsotherthanTCPwillnotbeaffectedbyLSO.
EnablingLSOwillreduceCPUutilizationonthetransmitsideofaTCPconnection
andimprovepeakthroughput,iftheCPUisfullyutilized.SinceLSOhasnoeffecton
latency,itcanbeenabledatalltimes.ThedriverhasLSOenabledbydefault.
Therefore,thereisnoopportunitytoimproveperformancefromthedefault.
LSOischangedbychangingtheLargeSendOffloadsettingintheNetworkAdapters
AdvancedPropertiesPage.
TCPandIPchecksumoffloadsmustbeenabledforLSOtowork.
NOTE:Solarflarerecommendthatyoudonotdisablethissetting.
ReceiveSegmentCoalescing(RSC)
TCPReceiveSegmentCoalescing(RSC)isafeaturewherebytheadaptercoalesces
multiplepacketsreceivedonaTCPconnectionintoasinglelargerpacketbefore
passingthisontothenetworkstackforreceiveprocessing.ThisreducesCPU
utilizationandimprovespeakthroughputwhentheCPUisfullyutilized.The
effectivenessofRSCisboundedbytheinterruptmoderationdelay,andislimitedif
interruptmoderationisdisabled(seeInterruptModeration(InterruptCoalescing)
onpage230).EnablingRSCdoesnotitselfnegativelyimpactlatency.
RSCisaMicrosoftfeatureintroducedinWindowsServer2012.RSCisenabledby
default.Ifahostisforwardingreceivedpacketsfromoneinterfacetoanotherthen
WindowswillautomaticallydisableRSC.FormoreinformationaboutRSCon
Windows,seehttps://technet.microsoft.com/engb/library/hh997024.aspx.
SolarflareServerAdapterUserGuide
SolarflareAdaptersonWindows
Issue20 ©SolarflareCommunications2017 233
TheSolarflarenetworkadapterdriverenablesRSCbydefault.
RSCissetbychangingtheReceiveSegmentCoalescingsettingsintheNetwork
AdaptersAdvancedPropertiesPage.
TCPandIPchecksumoffloadsmustbeenabledforRSCtowork.
LargeReceiveOffload(LRO)
LargeReceiveOffload(LRO)isafeaturewherebytheadaptercoalescesmultiple
packetsreceivedonaTCPconnectionintoasinglelargerpacketbeforepassingthis
ontothenetworkstackforreceiveprocessing.ThisreducesCPUutilizationand
improvespeakthroughputwhentheCPUisfullyutilized.TheeffectivenessofLRO
isboundedbytheinterruptmoderationdelay,andislimitedifinterruptmoderation
isdisabled(seeInterruptModeration(InterruptCoalescing)onpage230).Enabling
LROdoesnotitselfnegativelyimpactlatency.
LROisaSolarflareproprietarymechanismsimilartotheWindowsReceiveSegment
Coalescingfeature.WindowsServer2012andneweruseRSCinsteadofLRO,anddo
notsupportLRO.OlderWindowsversionsthatdonotsupportRSCmayuseLRO
instead.
TheSolarflarenetworkadapterdriverdisablesLRObydefault.
NOTE:LROshouldNOTbeenabledwhenusingthehosttoforwardpacketsfrom
oneinterfacetoanother.Forexample,ifthehostisperformingIProuting.
LROissetbychangingtheLargeReceiveOffloadsettingsintheNetworkAdapters
AdvancedPropertiesPage.
TCPandIPchecksumoffloadsmustbeenabledforLROtowork.
ReceiveSideScaling(RSS)
ReceiveSideScaling(RSS)wasfirstsupportedaspartofthescalablenetworking
packforWindowsServer2003andhasbeenimprovedwitheachsubsequent
operatingsystemrelease.RSSisenabledbydefaultandwillbeusedonnetwork
adaptersthatsupportit.SolarflarerecommendthatRSSisenabledforbest
networkingperformance.
ForfurtherinformationaboutusingRSSonWindowsplatformsseetheMicrosoft
whitepaper“ScalableNetworking:EliminatingtheReceiveProcessingBottleneck—
IntroducingRSS”
Thisisavailablefrom:
http://download.microsoft.com/download/5/D/6/5D6EAF2B7DDF476B93DC
7CF0072878E6/NDIS_RSS.doc
SpecificRSSparameterscanbetunedonaperadapterbasis.Fordetailsseethe
Microsoftwhitepaper“NetworkingDeploymentGuide:DeployingHighSpeed
NetworkingFeaturesavailablefrom:
http://download.microsoft.com/download/8/E/D/8EDE21BC0E3B4E14AAEA
9E2B03917A09/HSN_Deployment_Guide.doc
SolarflareServerAdapterUserGuide
SolarflareAdaptersonWindows
Issue20 ©SolarflareCommunications2017 234
SolarflarenetworkadaptersoptimizeRSSsettingsbydefaultonWindowsoperating
systemsandofferanumberofRSSinterruptbalancingmodesviathenetwork
adapter'sadvancedpropertypageinDeviceManagerandSolarflare'sadapter
managementtools.
ThenumberofRSSqueuescanbeadjustedtosuittheworkload:
•ThenumberofRSSCPUsislimitedbythenumberofRSSqueues.Thedriver
doesnottargetmultipleRSSqueuestothesameCPU.Therefore:
‐ ItisbesttosetthemaximumnumberofRSSqueuestobeequaltothe
maximumnumberofRSSCPUs(orthenexthighersettingiftheequal
optionisunavailable).
‐ ThenumberofqueuescanbereducedinordertoisolateCPUcoresfor
applicationprocessing.
‐ Thenumberofqueuescanbeincreasedtospreadtheloadovermore
cores.Thiswillalsoincreasetheamountofreceivebufferingduetoa
largernumberofRXqueues.
NOTE:Ifhyperthreadingisenabled,RSSwillonlyselectonethreadfromeach
CPUcore.
•ThecurrentnumberofqueuescanbegetandsetusingeitherSAM,orthe
NetworkAdaptersAdvancedPropertiesPage.
•OnWindowsServer2012andlater,thecurrentnumberofRSSqueuescanalso
bequeriedandsetfromthePowerShellwiththeGetNetAdapterRssand
SetNetAdapterRsscmdlets.
ThesetofRSSCPUscanalsobeadjusted:
•ForlowlatencylowjitterapplicationsselecttheNUMAscalingstaticRSS
profile.SetboththemaximumnumberofRSSprocessorsandthenumberof
RSSqueuestobeequaltothenumberofCPUcores
InmultiportscenariosgiveeachportitsownsetofRSSprocessors,usingthe
baseandmaxprocessorsettingstorestrictRSStoasubsetoftheCPUsif
required.
•ForotherapplicationsuseasfewRSSprocessorsasrequiredtocopewiththe
trafficload,leavingotherCPUsfreeforothertasks
SolarflareServerAdapterUserGuide
SolarflareAdaptersonWindows
Issue20 ©SolarflareCommunications2017 235
PreferredNUMANode
TheadapterdriverchoosesasubsetoftheavailableCPUcorestohandletransmit
andreceiveprocessing.ThePreferredNUMANodesettingcanbeusedtoconstrain
thesetofCPUcoresconsideredforprocessingtothoseonthegivenNUMANode.
ToforceprocessingontoaparticularNUMANode,changethePreferredNUMA
NodesettingontheNetworkAdapter'sAdvancedPropertiesPage.
TheNUMAdistanceofthecoresusedfortheRSSqueueandthenetwork
applicationinfluencesperformance.TochecktheNUMAdistanceofeachcorefrom
theinterface:
•GetCoreinfofromWindowsSysinternals(https://live.sysinternals.com).The
outputincludesprocessortoNUMAnodemappings.
TogettheNUMAnodelocaltotheinterface,run:
GetWmiObject‐Namespaceroot\wmi‐Filter"DummyInstance=False"
EFX_Port|FormatTable‐AutoSizeId,Name,PreferredNumaNode
•OnWindowsServer2012andlater,youcaninsteadrunthePowerShellGet
NetAdapterRsscmdletandlookatlinesstarting:
RssProcessorArray:[Group:Number/NUMADistance]
ThisgivestheNUMAdistanceofeachcoretotheinterface.
Forlowlatencylowjitterapplications,RSSqueuesshouldbemappedtoNUMA
nodesthatarelocaltotheinterface:
•OnWindowsServer2008R2,thisshouldhappenautomatically.RSSprofilesare
notsupported,andthedefaultbehaviorisequivalenttoClosestProcessor
•OnWindowsServer2012andlater,thisshouldhappenautomaticallyifyouare
usingoneofthefollowingRSSprofiles:
‐ ClosestProcessor
‐ ClosestProcessorStatic
ThePowerShellGetNetAdapterRsscmdletwillgivethisinformation.
TheRSSProfilecanbesetintheNetworkAdapter'sAdvancedPropertiesPage,
orwiththePowerShellcmdletSetNetAdapterRss
•ItisalsopossibletorestrictthesetofcoresavailabletoRSSbysetting
BaseProcessorGroup/BaseProcessorNumberandMaxProcessorGroup/
MaxProcessorNumber.
•Seealsohttps://msdn.microsoft.com/enus/library/windows/hardware/
ff570864%28v=vs.85%29.aspx.
SolarflareServerAdapterUserGuide
SolarflareAdaptersonWindows
Issue20 ©SolarflareCommunications2017 236
Likewise,forlowlatencylowjitterapplications,thenetworkapplicationshouldbe
runonNUMAnodesthatarelocaltotheinterface:
•TheapplicationcansetaffinityitselfwithSetProcessAffinityMaskand
SetThreadAffinityMask,andthenmaypresenttheseasoptionstotheuser.
• AffinitycanbesetusingSysinternalsProcessExplorer(procexp).Rightclickon
theprocessandchooseSetAffinity.
• Affinitycanbecontrolledwhenaprocessisstartedusing:
START/AFFINITY<hexmaskl><command>
or
START/NODE<num><command>
When/NODEand/AFFINITYareusedtogether,affinityisinterpretedascores
withinthenode.
Forotherapplications,suchaswebservers:
•OnWindowsServer2012andlater,useoneofthefollowingRSSprofiles:
‐ NumaScaling
‐ NumaScalingStatic
ThePowerShellGetNetAdapterRsscmdletwillgivethisinformation.
TheRSSProfilecanbesetintheNetworkAdapter'sAdvancedPropertiesPage,
orwiththePowerShellcmdletSetNetAdapterRss
OtherConsiderations
PCIExpressLaneConfigurations
ThePCIExpress(PCIe)interfaceusedtoconnecttheadaptertotheservercan
functionatdifferentspeedsandwidths.Thisisindependentofthephysicalslotsize
usedtoconnecttheadapter.Thepossiblewidthsaremultiplesx1,x2,x4,x8andx16
lanesof(2.5GbpsforPCIeGen1,5.0GbpsforPCIeGen2and8.0GbpsforPCIeGen
3)ineachdirection.Solarflareadaptersaredesignedforx8orx16laneoperation.
Onsomeservermotherboards,choiceofPCIeslotisimportant.Thisisbecause
someslots(includingthosethatarephysicallyx8orx16lanes)mayonlyelectrically
supportx4lanes.Inx4laneslots,SolarflarePCIeadapterswillcontinuetooperate,
butnotatfullspeed.TheSolarflaredriverwillinsertawarningintheWindows
EventLogifitdetectsthattheadapterispluggedintoaPCIeslotwhichelectrically
hasfewerthanx8lanes.
SolarflareSFN5000andSFN6000seriesadaptersrequireaPCIeGen2x8slotfor
optimaloperation.SolarflareSFN7000andSFN8000seriesadaptersrequireaPCIe
Gen3x8orx16slotforoptimalperformance.TheSolarflaredriverwillinserta
warningintheWindowsEventLogifitdetectsthattheadapterisplacedinasub
optimalslot.
SolarflareServerAdapterUserGuide
SolarflareAdaptersonWindows
Issue20 ©SolarflareCommunications2017 237
Inaddition,thelatencyofcommunicationsbetweenthehostCPUs,systemmemory
andtheSolarflarePCIeadaptermaybePCIeslotdependent.Someslotsmaybe
“closertotheCPU,andthereforehavelowerlatencyandhigherthroughput:
•Ifpossible,installtheadapterinaslotwhichislocaltothedesiredNUMAnode
•ForWindowsServer2008R2bestperformancewillonlybeobtainedifthe
adapterisclosesttoNUMAnode0(i.e.physicalCPUpackage0).
•SomeWindowsSKUsonlysupportasingleCPUpackage.Iftheadapteris
pluggedintoaPCIeslotattachedtothesecondpackageitwillnotappeartothe
OS.
Pleaseconsultyourserveruserguideformoreinformation.
Memorybandwidth
Manychipsetsusemultiplechannelstoaccessmainsystemmemory.Maximum
memoryperformanceisonlyachievedwhenthechipsetcanmakeuseofall
channelssimultaneously.Thisshouldbetakenintoaccountwhenselectingthe
numberofmemorymodules(DIMMs)topopulateintheserver.Foroptimal
memorybandwidthinthesystem,itislikelythat:
•allDIMMslotsshouldbepopulated
•allNUMAnodesshouldhavememoryinstalled.
Pleaseconsultthemotherboarddocumentationfordetails.
BIOSSettings
DELLSystems
RefertotheBIOSconfigurationguidelinesrecommendedbyDell'swhitepaper
“ConfiguringLowLatencyEnvironmentsonDellPowerEdgeServersavailablefrom:
http://i.dell.com/sites/content/sharedcontent/datasheets/en/Documents/
configuringlowlatencyenvironmentsondellpoweredge12gservers.pdf
HPSystems
RefertotheBIOSconfigurationguidelinesrecommendedbyHP’swhitepaper
“ConfiguringtheHPProLiantServerBIOSforLowLatencyApplications”available
from:
http://h20000.www2.hp.com/bc/docs/support/SupportManual/c01804533/
c01804533.pdf
Althoughtargetedattuningforrealtimeoperatingsystems,therecommendations
equallyapplytoWindowsServerplatforms.
Othersystemvendorsmaypublishsimilarrecommendations.IngeneralanyBIOS
settingsguidelinesthataretargetedatincreasingnetworkperformancewhilst
minimizinglatencyandjitterareapplicabletoalloperatingsystems.
SolarflareServerAdapterUserGuide
SolarflareAdaptersonWindows
Issue20 ©SolarflareCommunications2017 238
Intel®QuickData/NetDMA
OnsystemsthatsupportIntelI/OAT(I/OAccelerationTechnology)featuressuchas
QuickData(a.k.aNetDMA),Solarflarerecommendthattheseareenabledasthey
arerarelydetrimentaltoperformance.
UsingIntel®QuickDataTechnologyallowsdatacopiestobeperformedbythe
systemandnottheoperatingsystem.Thisenablesdatatomovemoreefficiently
throughtheserverandprovidefast,scalable,andreliablethroughput.
ToenableNetDMAtheEnableTCPAvariablemustbesetto1inthe
Tcpip\Parametersregistrykey.Locatethefollowingkeyintheregistry:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters
TheEnableTCPAvaluemustbecreatedifitisnotpresentandsetto1:
EnableTCPA=1
IntelHyperThreadingTechnology
OnsystemsthatsupportIntelHyperThreadingTechnologyusersshouldconsider
benchmarkingorapplicationperformancedatawhendecidingwhethertoadopt
hyperthreadingonaparticularsystemandforaparticularapplication.Solarflare
haveidentifiedthathyperthreadingisgenerallybeneficialonsystemsfittedwith
Corei5,Corei7andXeon(Nehalemorlater)CPUs.
TCP/IPOptions
TCPtimestamps,windowscalingandselectiveacknowledgmentsareenabledby
defaultonsupportedplatforms,andincludereceivewindowtuningandcongestion
controlalgorithmsthatautomaticallyadaptto10gigabitconnections.Thereis
thereforenoneedtochangethesesettings.
PowerSavingMode
ModernprocessorsutilizedesignfeaturesthatenableaCPUcoretodropintolow
powerstateswheninstructedbytheoperatingsystemthattheCPUcoreisidle.
WhentheOSschedulesworkontheidleCPUcore(orwhenotherCPUcoresor
devicesneedtoaccessdatacurrentlyintheidleCPUcore’sdatacache)theCPUcore
issignaledtoreturntothefullyonpowerstate.ThesechangesinCPUcorepower
statescreateadditionalnetworklatencyandjitter.Solarflarerecommendtoachieve
thelowestlatencyandlowestjitterthatthe“C1Epowerstate”or“CPUpower
savingmode”isdisabledwithinthesystemBIOS.
IngeneraltheusershouldexaminethesystemBIOSsettingsandidentifysettings
thatfavorperformanceoverpowersaving.Inparticularlookforsettingstodisable:
•Cstates/Processorsleep/idlestates
• EnhancedC1CPUsleepstate(C1E)
•AnydeeperCstates(C3throughtoC6)
•Pstates/Processorthrottling
SolarflareServerAdapterUserGuide
SolarflareAdaptersonWindows
Issue20 ©SolarflareCommunications2017 239
•ProcessorTurbomode
•UltraLowPowerState
•PCIeActiveStatePowerManagement(ASPM)
• UnnecessarySMM/SMIfeatures
Thelatencycanbeimprovedbyselectingthehighestperformancepowerplan:
•ConsiderusingtheOptimumperformancepowerplanaddedbytheSolarflare
driverpackageinstaller,which:
‐ DisablesallCPUidlestates
‐ SetstheOSdeviceidlepolicytofavorperformanceoverpowersavings
‐ DisablesPCIeASPM(ActiveStatePowerManagement)
Theinstallerdoesnotenablethisbydefaultas,oncertainsystems,itmight
significantlyincreaseenergyusage.
•Otherwise,selecttheAlwaysOnorHighperformancepowerplan.
ThepowerplanisconfiguredfromtheControlPanel>Hardware>PowerOptions:
Youcanalsousethepowercfg.exeutilitythatisinstalledwithWindows:
• Listallpowerschemesinthecurrentuser'senvironment:
powercfg/LIST
•Makethespecifiedpowerschemeactiveonthecomputer:
powercfg/SETACTIVE<GUID>
Seehttps://technet.microsoft.com/enus/library/cc748940%28v=ws.10%29.aspx.
SolarflareServerAdapterUserGuide
SolarflareAdaptersonWindows
Issue20 ©SolarflareCommunications2017 240
Firewallsandantivirussoftware
Dependingonthesystemconfiguration,thefollowingsoftwaremayhavea
significantimpactonthroughputandCPUutilization,inparticularwhenreceiving
multicastUDPtraffic:
•thebuiltinWindowsFirewallandBaseFilteringEngine
•otherthirdpartyfirewallornetworksecurityproducts
•antiviruscheckers.
Thisisthecaseevenifthesoftwarehasnorulesconfiguredbutisstillactive.
Wherehighthroughputisrequiredonaparticularport,theperformancewillbe
improvedbydisablingthesoftwareonthatport:
NOTE:TheWindows(oranythirdparty)Firewallshouldbedisabledwithcaution.
Thenetworkadministratorshouldbeconsultedbeforemakinganychanges.
• DisabletheWindowsFirewall.
a) SettheStartupTypeoftheWindowsFirewallservicetoDisabled.
b) Stoptheservice.
•OnWindowsServer2008R2disabletheWindowsFilteringPlatform(WFP).
a) SettheStartupTypeoftheBaseFilteringEngine(BFE)servicetoDisabled.
b) Stoptheservice.
Formoreinformation,seehttps://msdn.microsoft.com/enus/Library/
Windows/Hardware/dn653358%28v=vs.85%29.aspx.
• Disable(andifpossibleuninstall)anythirdpartyfirewallornetworksecurity
products,andanyantiviruscheckers.
Rememberthateventhesimplestantivirusproductscaninspectnetwork
traffictolookforvirusesinemails.
Configurenetworkapplications
Considertheoptions,loggingandstatisticsprovidedbythenetworkingapplications
thatarebeingused.
SolarflareServerAdapterUserGuide
SolarflareAdaptersonWindows
Issue20 ©SolarflareCommunications2017 241
Benchmarks
ThroughputBenchmarkusingNtttcp
ThefollowingexampleshowsresultsfromrunningMicrosoftsntttcp.Itissuggested
thatfirst,LargeReceiveOffload(LRO)orReceiveSegmentCoalescing(RSC)is
enabled.
1Onserverrunntttcpr:
ntttcpr.exe‐rb500000‐a24‐n100000‐l524288‐m
1,1,<server_adapter_IP_interface>
2Onclientrunntttcpstest:
ntttcps.exe‐rb500000‐a24‐n100000‐l524288‐m
1,1,<server_adapter_IP_interface>
C:\>ntttcps.exe‐rb500000‐a24‐n100000‐l524288‐m1,1,<serveradapterIP
interface>
CopyrightVersion2.4
Networkactivityprogressing...
ThreadRealtime(s)Throughput(KB/s)Throughput(Mbit/s)
=================================
044.7671170961.0079367.688
TotalBytes(MEG)Realtime(s)AverageFrameSizeTotalThroughput(Mbit/s)
=============================================
52420.41139244.7671459.8469367.688
TotalBuffersThroughput(Buffers/s)Pkts(sent/intr)Intr(count/s)Cycles/Byte
==================================
99984.0002233.4312729187.480.8
PacketsSentPacketsReceivedTotalRetransmitsTotalErrorsAvg.CPU%
=============================================
SolarflareServerAdapterUserGuide
SolarflareAdaptersonWindows
Issue20 ©SolarflareCommunications2017 242
TuningRecommendations
Thefollowingtablesproviderecommendationsfortuningsettingsfordifferent
applicationcharacteristics.
• Throughput‐Table56onpage242
•Latency‐Table57onpage243
Table56:ThroughputTuningSettings
TuningParameter How?
IntelQuickData(Intel
chipsetsonly)
EnableinBIOSandconfigureasdescribedinguide.
Interrupt
Moderation
Leaveatdefault(Enabled).
AdaptiveInterrupt
Moderation
Leaveatdefault(Enabled).
Interrupt
ModerationTime
Leaveatdefault(60µs).
LargeReceive
Offloads
EnableinNetworkAdapterAdvancedProperties.
LargeSendOffloads Leaveatdefault(Enabled).
MaxFrameSize Configuretomaximumsupportedbynetworkin
NetworkAdapter'sAdvancedProperties.
Memorybandwidth Ensurememoryutilizesallmemorychannelsonsystem
motherboard.
OffloadChecksums Leaveatdefault.
PCIExpressLane
Configuration
Ensuretheadapterisinanx8slot(2.0orlater),andthat
currentspeed(notthesupportedspeed)readsbackas
“x8and5GT/s”,or“x8and8GT/s”,or“x8andUnknown.
PowerSavingMode Leaveatdefault.
ReceiveSegment
Coalescing
Leaveatdefault(Enabled).
ReceiveSideScaling
(RSS)
Leaveatdefault.
RSSNUMANode Leaveatdefault(All).
TCPProtocolTuning Leaveatdefault(installwith“OptimizeWindowsTCP/IP
protocolsettingsfor10Gnetworkingoptionselected).
SolarflareServerAdapterUserGuide
SolarflareAdaptersonWindows
Issue20 ©SolarflareCommunications2017 243
Table57:LatencyTuningSettings
TuningParameter How?
IntelQuickData(Intel
chipsetsonly)
EnableinBIOSandconfigureasdescribedinguide.
Interrupt
Moderation
DisableinNetworkAdaptersAdvancedProperties.
AdaptiveInterrupt
Moderation
Leaveatdefault.Thissettingisignoredwheninterrupt
moderationisdisabled.
Interrupt
ModerationTime
Leaveatdefault(60µs).Thissettingisignoredwhen
interruptmoderationisdisabled.
LargeReceive
Offloads
DisableinNetworkAdaptersAdvancedProperties.
LargeSendOffloads Leaveatdefault(Enabled).
MaxFrameSize Configuretomaximumsupportedbynetworkin
NetworkAdapter'sAdvancedProperties.
Memorybandwidth Ensurememoryutilizesallmemorychannelsonsystem
motherboard.
OffloadChecksums Leaveatdefault(Enabled).
PCIExpressLane
Configuration
Ensuretheadapterisinanx8slot(2.0orlater),andthat
currentspeed(notthesupportedspeed)readsbackas
“x8and5GT/s”,or“x8and8GT/s”,or“x8andUnknown.
PowerSavingMode DisableC1EandotherCPUsleepmodestopreventOS
fromputtingCPUsintoloweringpowermodeswhenidle.
ReceiveSegment
Coalescing
DisableinNetworkAdaptersAdvancedProperties.
ReceiveSideScaling Applicationdependent
RSSNUMANode Leaveatdefault(All).
TCPProtocolTuning Leaveatdefault(installwith“OptimizeWindowsTCP/IP
protocolsettingsfor10Gnetworkingoptionselected).
TCP/IPChecksum
Offload
Leaveatdefault
SolarflareServerAdapterUserGuide
SolarflareAdaptersonWindows
Issue20 ©SolarflareCommunications2017 244
4.29WindowsEventLogErrorMessages
Thefollowingtableslistthevariouserrormessagesthatcanbeaddedtotheevent
log,alongwithadescriptionandactionthatshouldbetaken.
DriverStatusCodes
DeviceStatusCodes
Table58:DriverStatusCodes
Value Description Severity Notes
0x60000001L Thedriverversion
information.
Informational Noaction
required.
0x60000002L Thedriverfailedtoload. Informational
0xA0000004L Thedrivercan’tadda
deviceduetothesystem
beingstartedinsafemode
(SAFEMODE_MINIMAL).
Warning
0xA0000005L Thedrivercouldnot
allocatememoryona
specificNUMAnode.
Warning Formaximum
performanceall
NUMAnodes
shouldbe
populated.Install
additional
memory.
Table59:DeviceStatusCodes
Value Description Severity Action
0x6001000BL TheMTUonthedevice
waschanged.
Informational Noaction
required.
0x6001001BL HardwareMCDIversion Informational Nonerequired.
0xA0010004L Thedevicedoesnothave
sufficientPCIelanesto
reachfullbandwidth.
Warning Movethe
adapterintoa
PCIeslotwith
morelanes.See
PCIExpressLane
Configurations
onpage236.
0xA001000CL Thetransmitwatchdog
fired
Warning
SolarflareServerAdapterUserGuide
SolarflareAdaptersonWindows
Issue20 ©SolarflareCommunications2017 245
0xA001000DL Anunexpectedeventwas
receivedfromthedevice.
Warning Noaction
required.
0xA0010010L AnoncontiguousRXevent
wasreceivedfromthe
device.
Warning
0xA0010011L Thedevicehasexceeded
themaximumsupported
temperaturelimit.
Warning Improvethe
servercooling.
0xA0010013L Thedevicecoolinghas
failed.
Warning
0xA0010014L Oneofthedevicevoltage
suppliesisoutsideofthe
supportedvoltagerange.
Warning Theadapteror
servermaybe
faulty.
0xA0010017L HardwareMCDI
communicationsuffered
anerror.
Warning Nonerequired.
0xA0010019L HardwareMCDIbootfrom
nonprimaryflash.
Possibleflashcorruption.
Warning Runsfupdateor
updateviaSAM.
0xE0010002L PHYfirmwarehasfailedto
start.
Error PossiblePHY
firmware
corruption.Run
sfupdateorSAM
toupdate.
0xE0010005L Thedevicecouldnotbe
addedtothesystem.
Error
0xE0010006L Thedevicecouldnotbe
initializedwithinterrupts
disabled.
Error
0xE0010007L Thedevicecouldnotbe
initializedwithinterrupts
enabled.
Error
0xE0010008L Thedevicecouldnotbe
started.
Error
0xE0010009L Thedevicecouldnotbe
reset.
Error
Table59:DeviceStatusCodes
Value Description Severity Action
SolarflareServerAdapterUserGuide
SolarflareAdaptersonWindows
Issue20 ©SolarflareCommunications2017 246
NDISDriverStatusCodes
0xE001000AL TherewasanEFXAPI
failure.
Error
0xE0010012L Thedevicehasexceeded
thecriticaltemperature
limit.
Error Improvethe
servercooling.
0xE0010015L Oneofthedevicevoltage
suppliesisoutsideofthe
criticalvoltagerange.
Error Theadapteror
servermaybe
faulty.
0xE0010016L Anonspecifiedhardware
monitordevicehas
reportedanerror
condition.
Error
0xE0010018L HardwareMCDI
communicationtimedout.
Error Nonerequired.
Table60:NDISDriverStatusCodes
Value Description Severity Notes
0x60030001L Thedriverhas
encounteredanetwork
adapterreceivedatapath
errorandperformeda
networkadapterresetto
attemptrecovery.Referto
thedriverreleasenotes
anderrataformore
information.
Informational
0xA0010001L Theparameter
BreakOnEntryismissing
fromtheregistry.Using
defaultvalue.
Warning
0xA0010002L Theparameter
BreakOnEntryspecifiedin
theregistryisoutofrange.
Usingdefaultvalue.
Warning
Table59:DeviceStatusCodes
Value Description Severity Action
SolarflareServerAdapterUserGuide
SolarflareAdaptersonWindows
Issue20 ©SolarflareCommunications2017 247
0xA0010003L TheparameterDebugBits
ismissingfromthe
registry.Usingdefault
value.
Warning
0xA0010004L TheparameterDebugBits
specifiedintheregistryis
outofrange.Usingdefault
value.
Warning
0xA0010005L Theparameter
*FlowControlismissing
fromtheregistry.Using
defaultvalue.
Warning
0xA0010006L Theparameter
*FlowControlspecifiedin
theregistryisoutofrange.
Usingdefaultvalue.
Warning
0xA0010007L Theparameter*IfTypeis
missingfromtheregistry.
Usingdefaultvalue.
Warning
0xA0010008L Theparameter*IfType
specifiedintheregistryis
outofrange.Usingdefault
value.
Warning
0xA0010009L Theparameter
*InterruptModerationis
missingfromtheregistry.
Usingdefaultvalue.
Warning
0xA001000AL Theparameter
*InterruptModeration
specifiedintheregistryis
outofrange.Usingdefault
value.
Warning
0xA001000BL Theparameter
*IPChksumOffv4ismissing
fromtheregistry.Using
defaultvalue.
Warning
Table60:NDISDriverStatusCodes
Value Description Severity Notes
SolarflareServerAdapterUserGuide
SolarflareAdaptersonWindows
Issue20 ©SolarflareCommunications2017 248
0xA001000CL Theparameter
*IPChksumOffv4specified
intheregistryisoutof
range.Usingdefaultvalue.
Warning
0xA001000DL Theparameter
*JumboPacketismissing
fromtheregistry.Using
defaultvalue.
Warning
0xA001000EL Theparameter
*JumboPacketspecifiedin
theregistryisoutofrange.
Usingdefaultvalue.
Warning
0xA001000FL TheparameterLROIPv4is
missingfromtheregistry.
Usingdefaultvalue.
Warning
0xA0010010L TheparameterLROIPv4
specifiedintheregistryis
outofrange.Usingdefault
value.
Warning
0xA0010011L Theparameter*LSOv2IPv4
ismissingfromthe
registry.Usingdefault
value.
Warning
0xA0010012L Theparameter*LSOv2IPv4
specifiedintheregistryis
outofrange.Usingdefault
value.
Warning
0xA0010013L Theparameter
MaxEventsPerReceive
Interruptismissingfrom
theregistry.Usingdefault
value.
Warning
0xA0010014L Theparameter
MaxEventsPerReceive
Interruptspecifiedinthe
registryisoutofrange.
Usingdefaultvalue.
Warning
Table60:NDISDriverStatusCodes
Value Description Severity Notes
SolarflareServerAdapterUserGuide
SolarflareAdaptersonWindows
Issue20 ©SolarflareCommunications2017 249
0xA0010015L Theparameter
*MediaTypeismissing
fromtheregistry.Using
defaultvalue.
Warning
0xA0010016L Theparameter
*MediaTypespecifiedin
theregistryisoutofrange.
Usingdefaultvalue.
Warning
0xA0010017L Theparameter
*NetworkAddressis
missingfromtheregistry.
Usingdefaultvalue.
Warning
0xA0010018L Theparameter
*NetworkAddress
specifiedintheregistryis
invalid.Usingdefault
value.
Warning
0xA0010019L Theparameter
*PhysicalMediaTypeis
missingfromtheregistry.
Usingdefaultvalue.
Warning
0xA001001AL Theparameter
*PhysicalMediaType
specifiedintheregistryis
outofrange.Usingdefault
value.
Warning
0xA001001BL Theparameter
*PriorityVLANTagis
missingfromtheregistry.
Usingdefaultvalue.
Warning
0xA001001CL Theparameter
*PriorityVLANTagspecified
intheregistryisoutof
range.Usingdefaultvalue.
Warning
0xA001001DL Theparameter
*ReceiveBuffersismissing
fromtheregistry.Using
defaultvalue.
Warning
Table60:NDISDriverStatusCodes
Value Description Severity Notes
SolarflareServerAdapterUserGuide
SolarflareAdaptersonWindows
Issue20 ©SolarflareCommunications2017 250
0xA001001EL Theparameter
*ReceiveBuffersspecified
intheregistryisoutof
range.Usingdefaultvalue.
Warning
0xA001001FL Theparameter
ReceiveInterrupt
ModerationValueis
missingfromtheregistry.
Usingdefaultvalue.
Warning
0xA0010020L Theparameter
ReceiveInterrupt
ModerationValuespecified
intheregistryisoutof
range.Usingdefaultvalue.
Warning
0xA0010021L Theparameter
*SpeedDuplexismissing
fromtheregistry.Using
defaultvalue.
Warning
0xA0010022L Theparameter
*SpeedDuplexspecifiedin
theregistryisoutofrange.
Usingdefaultvalue.
Warning
0xA0010023L Theparameter
*TCPChksumOffv4is
missingfromtheregistry.
Usingdefaultvalue.
Warning
0xA0010024L Theparameter
*TCPChksumOffv4
specifiedintheregistryis
outofrange.Usingdefault
value.
Warning
0xA0010025L Theparameter
*TransmitBuffersismissing
fromtheregistry.Using
defaultvalue.
Warning
0xA0010026L Theparameter
*TransmitBuffersspecified
intheregistryisoutof
range.Usingdefaultvalue.
Warning
Table60:NDISDriverStatusCodes
Value Description Severity Notes
SolarflareServerAdapterUserGuide
SolarflareAdaptersonWindows
Issue20 ©SolarflareCommunications2017 251
0xA0010027L Theparameter
*UDPChksumOffv4is
missingfromtheregistry.
Usingdefaultvalue.
Warning
0xA0010028L Theparameter
*UDPChksumOffv4
specifiedintheregistryis
outofrange.Usingdefault
value.
Warning
0xA0010029L TheparameterVlanIdis
missingfromtheregistry.
Usingdefaultvalue.
Warning
0xA001002AL TheparameterVlanId
specifiedintheregistryis
outofrange.Usingdefault
value.
Warning
0xA001002BL TheparameterWarnLevel
ismissingfromthe
registry.Usingdefault
value.
Warning
0xA001002CL TheparameterWarnLevel
specifiedintheregistryis
outofrange.Usingdefault
value.
Warning
0xA001002DL Theparameter*RSSis
missingfromtheregistry.
Usingdefaultvalue.
Warning
0xA001002EL Theparameter*RSS
specifiedintheregistryis
invalid.Usingdefault
value.
Warning
0xA001002FL Theparameter
*IPChecksumOffload
IPv4ismissingfromthe
registry.Usingdefault
value.
Warning
Table60:NDISDriverStatusCodes
Value Description Severity Notes
SolarflareServerAdapterUserGuide
SolarflareAdaptersonWindows
Issue20 ©SolarflareCommunications2017 252
0xA0010030L Theparameter
*IPChecksumOffload
IPv4specifiedinthe
registryisoutofrange.
Usingdefaultvalue.
Warning
0xA0010031L Theparameter
*TCPChecksumOffload
IPv4ismissingfromthe
registry.Usingdefault
value.
Warning
0xA0010032L Theparameter
*TCPChecksumOffload
IPv4specifiedinthe
registryisoutofrange.
Usingdefaultvalue.
Warning
0xA0010033L Theparameter
*UDPChecksum
OffloadIPv4ismissingfrom
theregistry.Usingdefault
value.
Warning
0xA0010034L Theparameter
*UDPChecksum
OffloadIPv4specifiedin
theregistryisoutofrange.
Usingdefaultvalue.
Warning
0xA0010035L Theparameter
*TCPConnection
OffloadIPv4ismissingfrom
theregistry.Usingdefault
value.
Warning
0xA0010036L Theparameter
*TCPConnection
OffloadIPv4specifiedin
theregistryisoutofrange.
Usingdefaultvalue.
Warning
0xA0010037L Theparameter
*MaxRssProcessorsis
missingfromtheregistry.
Usingdefaultvalue.
Warning
Table60:NDISDriverStatusCodes
Value Description Severity Notes
SolarflareServerAdapterUserGuide
SolarflareAdaptersonWindows
Issue20 ©SolarflareCommunications2017 253
0xA0010038L Theparameter
*MaxRssProcessors
specifiedintheregistryis
invalid.Usingdefault
value.
Warning
0xA0010039L Theparameter
InterruptModeration
Timeismissingfromthe
registry.Usingdefault
value.
Warning
0xA001003AL Theparameter
InterruptModeration
Timespecifiedinthe
registryisinvalid.Using
defaultvalue.
Warning
0xA001003BL Theparameter
*TCPChecksum
OffloadIPv6ismissingfrom
theregistry.Usingdefault
value.
Warning
0xA001003CL Theparameter
*TCPChecksumOffload
IPv6specifiedinthe
registryisoutofrange.
Usingdefaultvalue.
Warning
0xA001003DL Theparameter
*UDPChecksum
OffloadIPv6ismissingfrom
theregistry.Usingdefault
value.
Warning
0xA001003EL Theparameter
*UDPChecksum
OffloadIPv6specifiedin
theregistryisoutofrange.
Usingdefaultvalue.
Warning
0xA001003FL Theparameter
*WakeOnPatternis
missingfromtheregistry.
Usingdefaultvalue.
Warning
Table60:NDISDriverStatusCodes
Value Description Severity Notes
SolarflareServerAdapterUserGuide
SolarflareAdaptersonWindows
Issue20 ©SolarflareCommunications2017 254
0xA0010040L Theparameter
*WakeOnPatternspecified
intheregistryisoutof
range.Usingdefaultvalue.
Warning
0xA0010041L Theparameter
*WakeOnMagicPacketis
missingfromtheregistry.
Usingdefaultvalue.
Warning
0xA0010042L Theparameter
*WakeOnMagicPacket
specifiedintheregistryis
outofrange.Usingdefault
value.
Warning
0xA0010043L Theparameter
*DeviceSleepOn
Disconnectismissingfrom
theregistry.Usingdefault
value.
Warning
0xA0010044L Theparameter
*DeviceSleepOn
Disconnectspecifiedinthe
registryisoutofrange.
Usingdefaultvalue.
Warning
0xA0010045L Theparameter
*PMARPOffloadismissing
fromtheregistry.Using
defaultvalue.
Warning
0xA0010046L Theparameter
*PMARPOffloadspecified
intheregistryisoutof
range.Usingdefaultvalue.
Warning
0xA0010047L Theparameter
*PMNSOffloadismissing
fromtheregistry.Using
defaultvalue.
Warning
0xA0010048L Theparameter
*PMNSOffloadspecifiedin
theregistryisoutofrange.
Usingdefaultvalue.
Warning
Table60:NDISDriverStatusCodes
Value Description Severity Notes
SolarflareServerAdapterUserGuide
SolarflareAdaptersonWindows
Issue20 ©SolarflareCommunications2017 255
0xA0010049L Theparameter*LSOv2IPv6
ismissingfromthe
registry.Usingdefault
value.
Warning
0xA001004AL Theparameter*LSOv2IPv6
specifiedintheregistryis
outofrange.Usingdefault
value.
Warning
0xA001004BL TheparameterLROIPv6is
missingfromtheregistry.
Usingdefaultvalue.
Warning
0xA001004CL TheparameterLROIPv6
specifiedintheregistryis
outofrange.Usingdefault
value.
Warning
0xA001004DL Theparameter
FlowControlAuto
Negotiationismissing
fromtheregistry.Using
defaultvalue.
Warning
0xA001004EL Theparameter
FlowControlAuto
Negotiationspecifiedin
theregistryisoutofrange.
Usingdefaultvalue.
Warning
0xA001004FL Theparameter
AdaptiveInterrupt
Moderationismissing
fromtheregistry.Using
defaultvalue.
Warning
0xA0010050L Theparameter
AdaptiveInterrupt
Moderationspecifiedin
theregistryisoutofrange.
Usingdefaultvalue.
Warning
0xA0010051L Theparameter
*NumaNodeIdismissing
fromtheregistry.Using
defaultvalue.
Warning
Table60:NDISDriverStatusCodes
Value Description Severity Notes
SolarflareServerAdapterUserGuide
SolarflareAdaptersonWindows
Issue20 ©SolarflareCommunications2017 256
0xA0010052L Theparameter
*NumaNodeIdspecifiedin
theregistryisoutofrange.
Usingdefaultvalue.
Warning
0xA0010053L Theparameter*VMQis
missingfromtheregistry.
Usingdefaultvalue.
Warning
0xA0010054L Theparameter*VMQ
specifiedintheregistryis
outofrange.Usingdefault
value.
Warning
0xA0010055L Theparameter
*VMQLookaheadSplitis
missingfromtheregistry.
Usingdefaultvalue.
Warning
0xA0010056L Theparameter
*VMQLookaheadSplit
specifiedintheregistryis
outofrange.Usingdefault
value.
Warning
0xA0010057L Theparameter
*VMQVlanFilteringis
missingfromtheregistry.
Usingdefaultvalue.
Warning
0xA0010058L Theparameter
*VMQVlanFiltering
specifiedintheregistryis
outofrange.Usingdefault
value.
Warning
0xA0010059L Theparameter
RssQueueCountismissing
fromtheregistry.Using
defaultvalue.
Warning
0xA001005AL Theparameter
RssQueueCountspecified
intheregistryisoutof
range.Usingdefaultvalue.
Warning
Table60:NDISDriverStatusCodes
Value Description Severity Notes
SolarflareServerAdapterUserGuide
SolarflareAdaptersonWindows
Issue20 ©SolarflareCommunications2017 257
0xA001005BL Theparameter
RssAlgorithmismissing
fromtheregistry.Using
defaultvalue.
Warning
0xA001005CL Theparameter
RssAlgorithmspecifiedin
theregistryisoutofrange.
Usingdefaultvalue.
Warning
0xA001005DL Theparameter
*NumRSSQueuesis
missingfromtheregistry.
Usingdefaultvalue.
Warning
0xA001005EL Theparameter
*NumRSSQueuesspecified
intheregistryisoutof
range.Usingdefaultvalue.
Warning
0xA001005FL Theparameter*RssProfile
ismissingfromthe
registry.Usingdefault
value.
Warning
0xA0010060L Theparameter*RssProfile
specifiedintheregistryis
outofrange.Usingdefault
value.
Warning
0xA0010061L Theparameter
*RssBaseProcGroupis
missingfromtheregistry.
Usingdefaultvalue.
Warning
0xA0010062L Theparameter
*RssBaseProcGroup
specifiedintheregistryis
outofrange.Usingdefault
value.
Warning
0xA0010063L Theparameter
*RssBaseProcNumberis
missingfromtheregistry.
Usingdefaultvalue.
Warning
Table60:NDISDriverStatusCodes
Value Description Severity Notes
SolarflareServerAdapterUserGuide
SolarflareAdaptersonWindows
Issue20 ©SolarflareCommunications2017 258
0xA0010064L Theparameter
*RssBaseProcNumber
specifiedintheregistryis
outofrange.Usingdefault
value.
Warning
0xA0010065L Theparameter
*RSSMaxProcGroupis
missingfromtheregistry.
Usingdefaultvalue.
Warning
0xA0010066L Theparameter
*RSSMaxProcGroup
specifiedintheregistryis
outofrange.Usingdefault
value.
Warning
0xA0010067L Theparameter
*RssMaxProcNumberis
missingfromtheregistry.
Usingdefaultvalue.
Warning
0xA0010068L Theparameter
*RssMaxProcNumber
specifiedintheregistryis
outofrange.Usingdefault
value.
Warning
0xA0010069L Theparameter*RscIPv4is
missingfromtheregistry.
Usingdefaultvalue.
Warning
0xA001006AL Theparameter*RscIPv4
specifiedintheregistryis
outofrange.Usingdefault
value.
Warning
0xA001006BL Theparameter*RscIPv6is
missingfromtheregistry.
Usingdefaultvalue.
Warning
0xA001006CL Theparameter*RscIPv6
specifiedintheregistryis
outofrange.Usingdefault
value.
Warning
Table60:NDISDriverStatusCodes
Value Description Severity Notes
SolarflareServerAdapterUserGuide
SolarflareAdaptersonWindows
Issue20 ©SolarflareCommunications2017 259
0xA0020001L Thedriverhasdetermined
thatthenetworkadapter
doesnotsupporttransmit
checksumoffloadsand
thereforehasoverridden
the*IPChksumOffv4,
*TCPChksumOffv4and
*UDPChksumOffv4
registryparameters.
Warning
0xA0020002L Thedriverhasdetermined
thatthenetworkadapter
doesnotsupportLarge
SendOffloadand
thereforehasoverridden
the*LSOv2IPv4and
*LSOv2IPv6registry
parameters.
Warning
0xA0020003L Thedriverhasdisabled
LargeReceiveOffload
(overridingtheLROIPv4
registryparameter)asitis
incompatiblewithIEEE
802.1p/802.1Qtagging.In
ordertouseLargeReceive
Offloadtaggingmustbe
disabled.
Warning
0xA0020004L IPv4LargeReceiveOffload
supportwillbeunavailable
whilstIPv4receive
checksumoffloadorTCP
receivechecksumoffload
isdisabled.
Warning
0xA0020005L IPv4LargeSendOffload
supportwillbeunavailable
whilstIPv4transmit
checksumoffloadorTCP
transmitchecksumoffload
isdisabled.
Warning
Table60:NDISDriverStatusCodes
Value Description Severity Notes
SolarflareServerAdapterUserGuide
SolarflareAdaptersonWindows
Issue20 ©SolarflareCommunications2017 260
0xA0020006L Thedriverhasdetermined
thatthenetworkadapter's
maximumframesizeisnot
configuredcorrectlyand
thereforehasoverridden
*JumboFramesregistry
parameter.Thisissuemay
beresolvedafterasystem
restart.
Warning
0xA0020008L Thedriverhasdetermined
thatthenetworkadapter
doesnotsupportTCP
ConnectionOffloadand
thereforehasoverridden
the*TCPConnection
OffloadIPv4registry
parameter.
Warning
0xA0020009L ThedriverhasdisabledTCP
ConnectionOffload
(overridingthe
*TCPConnection
OffloadIPv4registry
parameter)asitis
incompatiblewithIEEE
802.1p/802.1Qtagging.In
ordertouseTCP
ConnectionOffload
taggingmustbedisabled.
Warning
0xA002000AL Thedriverhasdetermined
thatthenetworkadapter
doesnotsupportchanging
thecurrentMACaddress
andthereforehas
overriddenthe
*NetworkAddressregistry
parameter.
Warning
Table60:NDISDriverStatusCodes
Value Description Severity Notes
SolarflareServerAdapterUserGuide
SolarflareAdaptersonWindows
Issue20 ©SolarflareCommunications2017 261
0xA002000BL ThedriverhasdisabledTCP
ConnectionOffload
(overridingthe
*TCPConnection
OffloadIPv4registry
parameter)asitis
incompatiblewithMTU
valuesgreaterthan1500
bytes.Refertothedriver
releasenotesanderrata
formoreinformation.
Warning
0xA002000CL Thedriverhasdetermined
thatthenetworkadapter
doesnotsupportIPv6
checksumoffloadsand
thereforehasoverridden
the*TCPChksumOffv6and
*UDPChksumOffv6
registryparameters.
Warning
0xA002000DL Thedriverhasdetermined
thatthenetworkadapter
doesnotsupportWakeon
LANandthereforehas
overriddenthe
*WakeOnPattern,
*WakeOnMagicPacketand
*DeviceSleepOn
Disconnectregistry
parameters.
Warning
0xA002000EL Thedriverhasdetermined
thatthenetworkadapter
doesnotsupportprotocol
offloadwhilstthesystemis
inasleepstateand
thereforehasoverridden
the*PMARPOffloadand
*PMNSOffloadregistry
parameters.
Warning
Table60:NDISDriverStatusCodes
Value Description Severity Notes
SolarflareServerAdapterUserGuide
SolarflareAdaptersonWindows
Issue20 ©SolarflareCommunications2017 262
0xA002000FL Thedriverhasdetermined
thatthenetworkadapter
doesnotsupportIPv6
LargeSendOffloadand
thereforehasoverridden
the*LSOv2IPv6registry
parameter.
Warning
0xA0020010L IPv6LargeReceiveOffload
supportwillbeunavailable
whilstIPv6TCPreceive
checksumoffloadis
disabled.
Warning
0xA0020011L IPv6LargeSendOffload
supportwillbeunavailable
whilstIPv6TCPtransmit
checksumoffloadis
disabled.
Warning
0xA0020012L Thedriverhasdetermined
thatthenetworkadapter
doesnotsupportVirtual
MachineQueuesand
thereforehasoverridden
the*VMQregistry
parameter.
Warning
0xA0020013L Thedriverhasbeen
allocatedinsufficientMSI
Xmessagestosupport
VirtualMachineQueues
andthereforehas
overriddenthe*VMQ
registryparameter.
Warning
0xA0020014L IPv4ReceiveSegment
Coalescingsupportwillbe
unavailablewhilstIPv4
receivechecksumoffload
orTCPreceivechecksum
offloadisdisabled.
Warning
Table60:NDISDriverStatusCodes
Value Description Severity Notes
SolarflareServerAdapterUserGuide
SolarflareAdaptersonWindows
Issue20 ©SolarflareCommunications2017 263
0xA0020015L IPv6ReceiveSegment
Coalescingsupportwillbe
unavailablewhilstTCP
receivechecksumoffload
isdisabled.
Warning
0xA0020016L Thedriverhasdetermined
thatthenetworkadapter
doesnotsupportReceive
SideScalingandtherefore
hasoverriddenthe*Rss
registryparameter.
Warning
0xE0000001L Thedrivercouldnot
allocatetheresources
necessaryforoperation.
Error
0xE0000002L Thedriverhasdetermined
thatthenetworkadapteris
notfunctioningproperly.
Error
0xE0000003L Thedriverhas
encounteredaninternal
errorandhasfailed.
Error
0xE0000004L Thedrivercouldnot
connecttotheNDISbus
interfaceandhasfailed.
Error
0xE0000005L Thedrivercouldnot
connecttotheNDISTCP
ConnectionOffload
interfaceandhasfailed.
Error
0xE0030002L Thedriverhas
encounteredan
unrecoverablenetwork
adapterreceivedatapath
error;afullsystemrestart
isrequired.Refertothe
driverreleasenotesand
errataformore
information.
Error
Table60:NDISDriverStatusCodes
Value Description Severity Notes
SolarflareServerAdapterUserGuide
Issue20 ©SolarflareCommunications2017 264
5SolarflareAdaptersonVMware
ThischapterincludesproceduresforinstallationandconfigurationofSolarflare
adaptersonVMware®.FordetailsofSRIOVandVirtualizationrefertoSRIOV
VirtualizationUsingESXionpage351.
SystemRequirementsonpage264
VMwareFeatureSetonpage265
InstallingSolarflareDriversandUtilitiesonVMwareonpage266
ConfiguringTeamsonpage267
ConfiguringVLANsonpage268
RunningAdapterDiagnosticsonpage269
SolarflareUtilitiesPackageonpage270
ConfiguringtheBootROMwithSfbootonpage271
UpgradingAdapterFirmwarewithsfupdateonpage279
PerformanceTuningonVMwareonpage281
5.1SystemRequirements
RefertoSoftwareDriverSupportonpage17forsupportedVMwarehostplatforms.
SolarflareServerAdapterUserGuide
SolarflareAdaptersonVMware
Issue20 ©SolarflareCommunications2017 265
5.2VMwareFeatureSet
Table61liststhefeaturesavailablefromtheVMwarehost.Thefollowingoptions
canalsobeconfiguredontheguestoperatingsystem:
• JumboFrames
•TaskOffloads
•VirtualLANs(VLANs)
Table61:VMwareHostFeatureSet
Jumboframes SupportforMTUs(MaximumTransmissionUnits)from
1500bytesto9000bytes.
•SeeAdapterMTU(MaximumTransmissionUnit)on
page283
Taskoffloads SupportforTCPSegmentationOffload(TSO),Large
ReceiveOffload(LRO),andTCP/UDP/IPchecksum
offloadforimprovedadapterperformanceandreduced
CPUprocessingrequirements.
•SeeTCP/IPChecksumOffloadonpage285
•SeeTCPSegmentationOffload(TSO)onpage285
NetQueue SupportforNetQueue,aperformancetechnologythat
significantlyimprovesperformancein10Gigabit
Ethernetvirtualizedenvironments.
•SeeVMwareESXNetQueueonpage282
Teaming Improveserverreliabilitybycreatingteamsoneither
thehostvSwitch,GuestOSorphysicalswitchtoactasa
singleadapter,providingredundancyagainstsingle
adapterfailure.
•SeeConfiguringTeamsonpage267
VirtualLANs(VLANs) SupportforVLANsonthehost,guestOSandvirtual
switch.
•SeeConfiguringVLANsonpage268
PXEbooting Supportfordisklessbootingtoatargetoperatingsystem
viaPXEboot.
•SeeSfboot:CommandLineOptionsonpage272
•SeeSolarflareBootManageronpage374
SolarflareServerAdapterUserGuide
SolarflareAdaptersonVMware
Issue20 ©SolarflareCommunications2017 266
5.3InstallingSolarflareDriversandUtilitiesonVMware
UsingtheVMwareESXServiceConsoleonpage266
InstallingonVMwareESX5.0,ESXi5.1,5.5and6.0onpage266
GrantingaccesstotheNICfromtheVirtualMachineonpage267
SolarflareUtilitiesPackageonpage270
UsingtheVMwareESXServiceConsole
TheserviceconsoleistheVMwareESXServercommandlineinterface.Itprovides
accesstotheVMwareESXServermanagementtools,includesacommandprompt
fordirectmanagementoftheServer,andkeepstrackofallthevirtualmachineson
theserveraswellastheirconfigurations.
InstallingonVMwareESX5.0,ESXi5.1,5.5and6.0
Toinstallorupdatethe.VIBthroughtheCLI:
esxclisoftwarevibinstall‐v<absolutePATHtothe.vib>
Toinstallorupdatetheofflinebundle
esxclisoftwarevibinstall‐d<absolutePATHtothe.zip>
ToinstallthroughtheUpdateManager
ImportthepackageintotheUpdateManagerandaddtoabaseline,thenfollowthe
normalupdateprocess.To installanewpackageontoahostdeploythepackageas
partofaHostExtensiontypebaselineratherthanaHostUpgradetype.
Faultdiagnostics Supportforcomprehensiveadapterandcablefault
diagnosticsandsystemreports.
•SeeRunningAdapterDiagnosticsonpage269
Firmwareupdates SupportforBootROMandPhytransceiverfirmware
upgradesforinfieldupgradableadapters.
•SeeUpgradingAdapterFirmwarewithsfupdateon
page279
Table61:VMwareHostFeatureSet
SolarflareServerAdapterUserGuide
SolarflareAdaptersonVMware
Issue20 ©SolarflareCommunications2017 267
GrantingaccesstotheNICfromtheVirtualMachine
ToallowguestoperatingsystemsaccesstotheSolarflareNIC,youwillneedto
connectthedevicetoavSwitchtowhichtheguestalsohasaconnection.Youcan
eitherconnecttoanexistingvSwitch,orcreateanewvSwitchforthispurpose.To
createanewvSwitch:
1LogintotheVMwareInfrastructureClient.
2Selectthehostfromtheinventorypanel.
3SelecttheConfigurationtab.
4ChooseNetworkingfromtheHardwareboxontheleftoftheresultingpanel.
5ClickAddNetworkingonthetopright.
6SelectVirtualMachineconnectiontypeandclickNext.
7ChooseCreateaVirtualSwitchorUsevSwitchXasdesired.
8Followtheremainingonscreeninstructions.
5.4ConfiguringTeams
Ateamallowstwoormorenetworkadapterstobeconnectedtoavirtualswitch
(vSwitch).Themainbenefitsofcreatingateamare:
•Increasednetworkcapacityforthevirtualswitchhostingtheteam.
•Passivefailoverintheeventoneoftheadaptersintheteamfails.
NOTE:TheVMwareESXhostonlysupportsNICteamingonasinglephysicalswitch
orstackedswitches.
Tocreateateam
1Fromthehost,selecttheConfigurationtab.
2SelectNetworkingfromtheHardwaresection.
3SelectPropertiesfortheVirtualSwitchyouwanttocreatetheteamfor.
4SelectthevSwitchfromthedialogboxandclickEdit.
5SelectNICTeaming.
Youcanconfigurethefollowingsettings:
•LoadBalancing
•NetworkFailoverDetection
• NotifySwitches
• Failover
• FailoverOrder
SolarflareServerAdapterUserGuide
SolarflareAdaptersonVMware
Issue20 ©SolarflareCommunications2017 268
5.5ConfiguringVLANs
TherearethreemethodsforcreatingVLANsonVMwareESX:
1VirtualSwitchTagging(VST)
2ExternalSwitchTagging(EST)
3VirtualGuestTagging(VGT)
ForESTandVGTtagging,consultthedocumentationfortheswitchorfortheguest
OS.
ToConfigureVirtualSwitchTagging(VST)
WithvSwitchtagging:
•AllVLANtaggingofpacketsisperformedbythevirtualswitch,beforeleaving
theVMwareESXhost.
•Thehostnetworkadaptersmustbeconnectedtotrunkportsonthephysical
switch.
•Theportgroupsconnectedtothevirtualswitchmusthaveanappropriate
VLANIDspecified.
NOTE:VMwarerecommendthatyoucreateoramendVLANdetailsfromthe
physicalconsoleoftheserver,notviatheInfrastructureClient,topreventpotential
disconnections.
1Fromthehost,selecttheConfigurationtab.
2SelectNetworkingfromtheHardwaresection.
3SelectPropertiesfortheVirtualSwitchyouwanttocreatetheteamfor.
4SelectaPortGroupandclickEdit.
5EnteravalidVLANID(0equalsnoVLAN).
6ClickOK.
FurtherReading
•NICteaminginVMwareESXServer:
http://kb.vmware.com/selfservice/microsites/
search.do?cmd=displayKC&docType=kc&externalId=1004088&sliceId=1&doc
TypeID=DT_KB_1_1&dialogID=40304190&stateId=0%200%2037866989
VMwareESXServerhostrequirementsforlinkaggregation:
http://kb.vmware.com/selfservice/microsites/
search.do?language=en_US&cmd=displayKC&externalId=1001938
SolarflareServerAdapterUserGuide
SolarflareAdaptersonVMware
Issue20 ©SolarflareCommunications2017 269
•VLANConfigurationonVirtualSwitch,PhysicalSwitch,andvirtualmachines:
http://kb.vmware.com/selfservice/microsites/
search.do?language=en_US&cmd=displayKC&externalId=1003806
5.6RunningAdapterDiagnostics
YoucanuseEthtooltorunadapterdiagnostictests.Testscanberunoffline(default)
oronline.Offlinerunsthefullsetoftests,possiblycausingnormaloperation
interruptionduringtesting.Onlineperformsalimitedsetoftestswithoutaffecting
normaladapteroperation.
Asrootuser,enterthefollowingcommand:
ethtool‐‐testvmnicXoffline|online
Thetestsrunbythecommandareasfollows:
Table62:AdapterDiagnosticTests
DiagnosticTest Purpose
core.nvram Verifiestheflashmemory'boardconfiguration'areaby
parsingandexaminingchecksums.
core.registers Verifiestheadapterregistersbyattemptingtomodifythe
writablebitsinaselectionofregisters.
core.interrupt Examinestheavailablehardwareinterruptsbyforcingthe
controllertogenerateaninterruptandverifyingthatthe
interrupthasbeenprocessedbythenetworkdriver.
tx/rx.loopback Verifiesthatthenetworkdriverisabletopasspacketsto
andfromthenetworkadapterusingtheMACandPhy
loopbacklayers.
core.memory VerifiesSRAMmemorybywritingvariousdatapatterns
(incrementingbytes,allbitonandoff,alternatingbitson
andoff)toeachmemorylocation,readingbackthedata
andcomparingittothewrittenvalue.
core.mdio VerifiestheMIIregistersbyreadingfromPHYIDregisters
andcheckingthedataisvalid(notallzerosorallones).
VerifiestheMMDresponsebitsbycheckingeachofthe
MMDsinthePhyispresentandresponding.
SolarflareServerAdapterUserGuide
SolarflareAdaptersonVMware
Issue20 ©SolarflareCommunications2017 270
5.7SolarflareUtilitiesPackage
TheSolarflareLinuxandVMwareESXUtilitiesSourcepackage(SF105095LS)is
availablefromtheSolarflaresupportdownloadsite:https://
support.solarflare.com/‐(Downloads>Linux>Misc).
Theutilities(sfboot,sfupdate,sfkey,sfctool)canbebuiltonastandardLinuxOS
serveri.e.RHEL,beforethebinaryutilitiesareextractedfromtheRPMpackageand
copiedtotheESXihost.
1DownloadpackageSF105095LStoatempdirectory(e.g/tmp)onastandard
Linuxmachine:
SF105095LSSolarflare_Linux_and_VMware_ESX_Utilities_Source.zip
2UnzipandbuildthebinaryRPMinthetempdirectoryfromthesourcepackage:
#cd/tmp
#unzipSF105095LSSolarflare_Linux_and_VMware_ESX_Utilities_Source.zip
#rpmbuild‐‐rebuildsfutils<version>.src.rpm
The“Wrote…”lineattheendofthebuildprocessidentifiesthelocationofthe
binaryRPM:
Wrote:/root/rpmbuild/RPMS/x86_64/sfutils<version>.x86_64.rpm
3Identifywherethebinarytoolswouldbeinstalled(butdon’tactuallyinstall
them):
#rpm‐qlp/root/rpmbuild/RPMS/x86_64/sfutils<version>.x86_64.rpm
/usr/sbin/sfaoepackage
/usr/sbin/sfboot
/usr/sbin/sfctool
/usr/sbin/sfkey
/usr/sbin/sfupdate
4Fromthebinaryextracttheutilitytools(sfupdateexample):
#rpm2cpio/root/rpmbuild/RPMS/x86_64/sfutils<version>.x86_64.rpm\
|cpio‐ivd./usr/sbin/sfupdate
NOTEthe.(dot)beforethe/usr/sbin/sfupdatetocreatethedirectories
andcopythefilewithinthecurrentdirectory.
chanXeventq.poll Verifiestheadapterseventhandlingcapabilitiesbyposting
asoftwareeventoneacheventqueuecreatedbythedriver
andcheckingitisdeliveredcorrectly.
Thedriverutilizesmultipleeventqueuestospreadtheload
overmultipleCPUcores(RSS).
phy.bist ExaminesthePHYbyinitializingitandcausinganyavailable
builtinselfteststorun.
Table62:AdapterDiagnosticTests
DiagnosticTest Purpose
SolarflareServerAdapterUserGuide
SolarflareAdaptersonVMware
Issue20 ©SolarflareCommunications2017 271
5CopythebinaryutilitiestotheESXimachineandrunthem.
BydefaultremotecommandexecutionisdisabledonanESXihostsoSSHaccess
mustbeenabledfromtheconsoleorfromthevSphereclienttoallowremotelogin
andsecurecopy‐refertothefollowingdocumentationforSSHenabling
procedures:
https://pubs.vmware.com/vsphere51/
index.jsp?topic=%2Fcom.vmware.vcli.getstart.doc%2Fcli_jumpstart.3.6.html
5.8ConfiguringtheBootROMwithSfboot
Sfboot:CommandUsageonpage271
Sfboot:CommandLineOptionsonpage272
Sfboot:Examplesonpage278
SfbootisacommandlineutilityforconfiguringSolarflareadapterBootROM
options,includingoptionsforPXEandUEFIbooting.Usingsfbootisanalternative
tousingCtrl+BtoaccesstheBootRomagentduringserverstartup.
SeeSolarflareBootManageronpage374formoreinformationontheBootRom
agent.
Sfboot:CommandUsage
LogintotheVMwareServiceConsoleasroot,andenterthefollowingcommand:
sfboot[‐‐adapter=vmnicX][options][parameters]
Notethatwithout‐‐adapter,thesfbootcommandappliestoalladaptersthatare
presentinthetargethost.
Theformatfortheparametersare:
<parameter>=<value>
SolarflareServerAdapterUserGuide
SolarflareAdaptersonVMware
Issue20 ©SolarflareCommunications2017 272
Sfboot:CommandLineOptions
Table63liststheoptionsforsfboot.exe,Table64liststheavailableglobal
parameters,andTable65liststheavailableperadapterparameters.Notethat
commandlineoptionsarecaseinsensitiveandmaybeabbreviated.
NOTE:Abbreviationsinscriptsshouldbeavoided,sincefutureupdatestothe
applicationmayrenderabbreviatedscriptsinvalid.
Table63:SfbootOptions
Option Description
?,h,‐‐help Displayscommandlinesyntaxandprovidesadescriptionofeach
sfbootoption.
V,‐‐version Showsdetailedversioninformationandexits.
‐‐nologo Hidetheversionandcopyrightmessageatstartup.
v,‐‐verbose Showsextendedoutputinformationforthecommandentered.
y,‐‐yes Updatewithoutprompting.
s,‐‐quiet
Aliases:‐‐silent
Suppressesalloutput,includingwarningsanderrors;nouser
interaction.Youshouldquerythecompletioncodetodeterminethe
outcomeofcommandswhenoperatingsilently(seePerformance
TuningonWindowsonpage228).
‐‐log<filename> Logsoutputtothespecifiedfileinthecurrentfolderoranexisting
folder.Specify‐‐silenttosuppresssimultaneousoutputtoscreen,
ifrequired.
‐‐computer<computer_name> Performstheoperationonaspecifiedremotecomputer.
Administratorrightsontheremotecomputerisrequired.
‐‐list ListsallavailableSolarflareadapters.Thisoptionshowstheifname
andMACaddress.
Note:thisoptionmaynotbeusedinconjunctionwithanyother
option.Ifthisoptionisusedwithconfigurationparameters,those
parameterswillbesilentlyignored.
i,‐‐adapter=<vmnicX> PerformstheactionontheidentifiedSolarflarenetworkadapter.
TheadapteridentifiervmnicXcanbethenameorMACaddress,as
outputbythe‐‐listoption.If‐‐adapterisnotincluded,the
actionwillapplytoallinstalledSolarflareadapters.
SolarflareServerAdapterUserGuide
SolarflareAdaptersonVMware
Issue20 ©SolarflareCommunications2017 273
ThefollowingglobalparametersinTable64areusedtocontroltheconfigurable
parametersfortheBootROMdriverwhenrunningpriortotheoperatingsystem
booting.
‐‐clear Resetsalloptionstotheirdefaultvalues.Ifanadapterisspecified,
optionsforthegivenadapterarereset,butglobaloptions(shownin
Table64)arenotreset.Notethat‐‐clearcanalsobeusedwith
parameters,allowingyoutoresettodefaultvalues,andthenapply
theparametersspecified.
r‐‐repair Restoreconfigurationsettingstofirmwaredefaults.
Table63:SfbootOptions
Option Description
Table64:SfbootGlobalParameters
Parameter Description
bootimage=
all|optionrom|uefi|disabled
Specifieswhichbootfirmwareimagesareserveduptothe
BIOSduringstartup.Thisparametercannotbeusedifthe
‐‐adapteroptionhasbeenspecified.
portmode=
default|1x10G|2x10G|4x10G|
2x40G
Configuretheportmodetouse.ThisisforSFN7000and
SFN8000seriesadaptersonly.Thevaluesspecifythe
connectorsavailableafterusinganysplittercables.The
usablevaluesareadapterdependent:
• SFN8722:2x10G
• SFN8x42:4x10G,2x40G(default)
• SFN8522[M]:2x10G(default)
• SFN7xx4F:2x10G,4x10G(default)
SFN7xx2Q:2x10G,4x10G,2x40G(default)
• SFN7xx2F:1x10G,2x10G(default)
Changestothissettingwithsfbootrequireacoldrebootto
becomeeffective.MACaddressassignmentsmaychange
afteralteringthissetting.
SolarflareServerAdapterUserGuide
SolarflareAdaptersonVMware
Issue20 ©SolarflareCommunications2017 274
firmwarevariant=
fullfeature|ultralowlatency|
capturepackedstream|auto
Configurethefirmwarevarianttouse.ThisisforSFN7000
andSFN8000seriesadaptersonly:
•theSFN7002Fadapterisfactorysettofullfeature
•allotheradaptersarefactorysettoauto.
Defaultvalue=auto‐meansthedriverwillselectavariant
thatmeetsitsneeds:
•theVMwaredriveralwaysusesfullfeature
•otherwise,ultralowlatencyisused.
Theultralowlatencyvariantproducesbestlatencywithout
supportforTXVLANinsertionorRXVLANstripping(not
currentlyusedfeatures).ItisrecommendedthatOnload
customersusetheultralowlatencyvariant.
insecurefilters=
enabled|disabled
Ifenabledbypassfiltersecurityonnonprivileged
functions.ThisisforSFN7000andSFN8000seriesadapters
only.Thisreducessecurityinvirtualizedenvironments.The
defaultisdisabled.Whenenabledafunction(PForVF)can
insertfiltersnotqualifiedbytheirownpermanentMAC
address.ThisisarequirementwhenusingOnloadorwhen
usingbondedinterfaces.
macspoofing=
default|enabled|disabled
Ifenabled,nonprivilegedfunctionscancreateunicast
filtersforMACaddressesthatarenotassociatedwiththem.
ThisisforSFN7000andSFN8000seriesadaptersonly.
Thedefaultisdisabled.
Changestothissettingwithsfbootrequireacoldrebootto
becomeeffective.
rxdcsize=8|16|32|64 Specifiesthesizeofthedescriptorcacheforeachreceive
queue.ThisisforSFN7000andSFN8000seriesadapters
only.Thedefaultis:
16iftheportmodesupportsthemaximumnumberof
connectorsfortheadapter
32iftheportmodesupportsareducednumberof
connectors.
Table64:SfbootGlobalParameters
Parameter Description
SolarflareServerAdapterUserGuide
SolarflareAdaptersonVMware
Issue20 ©SolarflareCommunications2017 275
txdcsize=8|16|32|64 Specifiesthesizeofthedescriptorcacheforeachtransmit
queue.ThisisforSFN7000andSFN8000seriesadapters
only.Thedefaultis:
32iftheportmodesupportsthemaximumnumberof
connectorsfortheadapter
64iftheportmodesupportsareducednumberof
connectors.
changemac=
default|enabled|disabled
ThisisforSFN7000andSFN8000seriesadaptersonly.
ChangetheunicastMACaddressfornonprivileged
functionsonthisport.Thisisaglobaloptionandappliesto
allphysicalportsontheNIC.
vicount=<vicount> Setsthetotalnumberofvirtualinterfacesthatwillbe
availableontheNIC.
eventmergetimeout=
<timeoutinnanoseconds>
SpecifiesthetimeoutinnanosecondsforRXeventmerging.
Atimeoutof0meansthateventmergingisdisabled.
Table64:SfbootGlobalParameters
Parameter Description
SolarflareServerAdapterUserGuide
SolarflareAdaptersonVMware
Issue20 ©SolarflareCommunications2017 276
ThefollowingperadapterparametersinTable65areusedtocontrolthe
configurableparametersfortheBootROMdriverwhenrunningpriortothe
operatingsystembooting.
Table65:SfbootPeradapterParameters
Parameter Description
linkspeed=auto|10g|1g|100m Specifiesthenetworklinkspeedoftheadapterusedbythe
BootROM.Thedefaultisauto.Onthe10GBASETadapters,
autoinstructstheadaptertonegotiatethehighestspeed
supportedincommonwithitslinkpartner.OnSFP+
adapters,autoinstructstheadaptertousethehighestlink
speedsupportedbytheinsertedSFP+module.On
10GBASETandSFP+adapters,anyothervaluespecified
willfixthelinkatthatspeed,regardlessofthecapabilities
ofthelinkpartner,whichmayresultinaninabilityto
establishthelink.
autoAutonegotiatelinkspeed(default)
10G10Gbit/sec
1G1Gbit/sec
100M100Mbit/sec
linkupdelay=
<delaytimeinseconds>
Specifiesthedelay(inseconds)theadapterdefersitsfirst
connectionattemptafterbooting,allowingtimeforthe
networktocomeupfollowingapowerfailureorother
restart.Thiscanbeusedtowaitforspanningtreeprotocol
onaconnectedswitchtounblocktheswitchportafterthe
physicalnetworklinkisestablished.Thedefaultis5
seconds.
bannerdelay=
<delaytimeinseconds>
SpecifiesthewaitperiodforCtrlBtobepressedtoenter
adapterconfigurationtool.
<delaytimeinseconds>=0256
bootskipdelay=
<delaytimeinseconds>
SpecifiesthetimeallowedforEsctobepressedtoskip
adapterbooting.
<delaytimeinseconds>=0256
boottype=pxe|uefi|disabled Setstheadapterboottypeeffectiveonnextboot.
pxePXE(PrebooteXecutionEnvironment)booting
disabledDisableadapterbooting
SolarflareServerAdapterUserGuide
SolarflareAdaptersonVMware
Issue20 ©SolarflareCommunications2017 277
pfcount=<pfcount> ThisisthenumberofavailablePCIePFsperphysical
networkport.Thissettingisappliedtoallportsonthe
adapter.
Changestothissettingwithsfbootrequireacoldrebootto
becomeeffective.MACaddressassignmentsmaychange
afteralteringthissetting.
msixlimit=
8|16|32|64|128|256|512|1024
SpecifiesthemaximumnumberofMSIXinterruptsthat
eachPFwilluse.Thedefaultis32.
Note:Usingtheincorrectsettingcanimpactthe
performanceoftheadapter.ContactSolarflaretechnical
supportbeforechangingthissetting.
sriov=enabled|disabled EnableSRIOVsupportforoperatingsystemsthatsupport
this.NotrequiredonSFN7000orSFN8000seriesadapters.
vfcount=<vfcount> Thenumberofvirtualfunctions(VF)advertisedtothe
operatingsystemforeachPhysicalFunctiononthisphysical
networkport.SFN7000andSFN8000seriesadaptershavea
totallimitof2048interrupts.Earlieradapterssupporta
totallimitof127virtualfunctionsperportandatotalof
1024interrupts.
Dependingonthevaluesofmsixlimitandvfmsixlimit,
someofthesevirtualfunctionsmaynotbeconfigured.
Enablingall127VFsperportwithmorethanoneMSIX
interruptperVFmaynotbesupportedbythehostBIOS‐in
whichcaseyoumayget127VFsononeportandnoneon
others.ContactyourBIOSvendororreducetheVFcount.
Thesriovparameterisimpliedifvfcountisgreaterthan
zero.
Changestothissettingwithsfbootrequireacoldrebootto
becomeeffective.
vfmsixlimit=
1|2|4|8|16|32|64|128|256
Themaximumnumberofinterruptsavirtualfunctionmay
use.
Table65:SfbootPeradapterParameters
Parameter Description
SolarflareServerAdapterUserGuide
SolarflareAdaptersonVMware
Issue20 ©SolarflareCommunications2017 278
Sfboot:Examples
•Showthecurrentbootconfigurationforalladapters:
sfboot
Solarflarebootconfigurationutility[v3.0.3]
CopyrightSolarflareCommunications20062010,Level5Networks20022005
eth1:
BootimageOptionROMandUEFI
LinkspeedNegotiatedautomatically
Linkupdelaytime5seconds
Bannerdelaytime2seconds
Bootskipdelaytime5seconds
BoottypeDisabled
MSIXinterruptlimit32
eth2:
BootimageOptionROMandUEFI
LinkspeedNegotiatedautomatically
pfvlans=<tag>[,<tag>[,...]]|none CommaseparatedlistofVLANtagsforeachPFintherange
04094‐seesfboot‐‐helpfordetails.
Settingpfvlans=nonewillclearallVLANtagsontheport.
pfvlansshouldbeincludedafterthepfcountoptiononthe
sfbootcommandline.
IfthenumberofPFsischangedthentheVLANtagswillbe
cleared.
switchmode=
default|sriov|partitioning|
partitioningwithsriov|pfiov
Specifiesthemodeofoperationthattheportwillbeused
in:
default‐singlePFcreated,zeroVFscreated.
sriov‐SRIOVenabled,singlePFcreated,VFsconfigured
withvfcount.
partitioning‐PFsconfiguredwithpfcount,VFs
configuredwithvfcount.SeeNICPartitioningonpage74
fordetails.
partitioningwithsriov‐SRIOVenabled,PFs
configuredwithpfcount,VFsconfiguredwithvfcount.
SeeNICPartitioningonpage74fordetails.
pfiov‐PFIOVenabled,PFsconfiguredwithpfcount,VFs
notsupported.
Changestothissettingwithsfbootrequireacoldrebootto
becomeeffective.
Table65:SfbootPeradapterParameters
Parameter Description
SolarflareServerAdapterUserGuide
SolarflareAdaptersonVMware
Issue20 ©SolarflareCommunications2017 279
Linkupdelaytime5seconds
Bannerdelaytime2seconds
Bootskipdelaytime5seconds
BoottypeDisabled
MSIXinterruptlimit32
5.9UpgradingAdapterFirmwarewithsfupdate
Sfupdate:CommandUsageonpage279
Sfupdate:CommandLineOptionsonpage279
Sfupdate:Examplesonpage281
SfupdateisacommandlineutilityusedtomanageandupgradetheSolarflare
adapterBootROM,Phyandadapterfirmware.Embeddedwithinthesfupdate
executableisfirmwareimagesforvariousSolarflareadapters‐theexactupdates
availableviasfupdatearethereforedependonyouradapter.
Sfupdate:CommandUsage
LogintotheVMwareServiceConsoleasroot,andenterthefollowingcommand:
sfupdate[‐‐adapter=vmnicX][options]
where:
vmnicXistheinterfacenameoftheSolarflareadapteryouwanttoupgrade.
Specifyingtheadapterisoptional‐ifitisnotincludedthecommandisapplied
toallSolarflareadaptersinthemachine.
optionisoneofthecommandoptionslistedinTable66.
Theformatfortheoptionsare:
<option>=<parameter>
Runningthecommandsfupdatewithnoadditionalparameterswillshowthe
currentfirmwareversionforallSolarflareadaptersandwhetherthefirmware
withinsfupdateismoreuptodate.ToupdatethefirmwareforallSolarflare
adaptersrunthecommandsfupdate‐‐write
Solarflarerecommendthatyouusesfupdateinthefollowingway:
1Runsfupdatetocheckthatthefirmwareonallyouradaptersareuptodate.
2Runsfupdate‐‐writetoupdatethefirmwareonalladapters.
Sfupdate:CommandLineOptions
Table66liststheoptionsforsfupdate.
SolarflareServerAdapterUserGuide
SolarflareAdaptersonVMware
Issue20 ©SolarflareCommunications2017 280
Table66:SfupdateOptions
Option Description
h,‐‐help Showshelpfortheavailableoptionsandcommandlinesyntax.
v,‐‐verbose Verboseoutputmode.
s,‐‐silent Suppressalloutputexcepterrors.Usefulforscripting.
V,‐‐version DIsplayversionnumberinformationandexit.
i,‐‐adapter=vmnicX Specifiesthetargetadapterwhenmorethanoneadapterisinstalled
inthelocalhost.
vmnicX=AdapterinterfacenameorMACaddress(asobtainedwith
‐‐list).
‐‐list ShowstheadapterID,adapternameandMACaddressofeach
adapterinstalledinthelocalhost,oronthetargetwhen‐‐
computerisspecified.
‐‐write Writesthefirmwarefromtheimagesembeddedinsfupdate.Touse
anexternalimage,specify‐‐image=<filename>inthecommand.
‐‐writefailsiftheembeddedimageisthesameoraprevious
versiontothatintheadapter.Toforceawriteinthiscase,specify
forceinthecommand.
‐‐force Forceupdateofallfirmware,eveniftheinstalledfirmwareversion
isthesameormorerecent.
Ifrequired,usethisoptionwith‐‐write.
‐‐image=<filename> Specifiesaspecificfirmwareimage.
Thisoptionisnotnormallyrequiredandisonlynecessaryifyouneed
toprovidewritingthesfupdateembeddedimagefile.
‐‐ipxeimage=<filename> InstallaniPXEimagefromthegivenfile,replacingtheSolarflare
bootROMimage.sfupdatewillnotautomaticallyreplacetheiPXE
imageinsubsequentflashupdatesunlessthe‐‐restorebootrom
optionisused.
‐‐restorebootrom ReplaceaniPXEimageinflashwiththestandardSolarflareBoot
ManagerPXEimageincludedinsfupdate.
y,‐yes Promptsforuserconfirmationbeforewritingthefirmware.
SolarflareServerAdapterUserGuide
SolarflareAdaptersonVMware
Issue20 ©SolarflareCommunications2017 281
Sfupdate:Examples
• ListallSolarflareadaptersinstalledonthehostwiththeinstalledfirmware:
sfupdate
Solarflarefirmwareupdateutility[v3.0.3]
CopyrightSolarflareCommunications20062010,Level5Networks20022005
eth1‐MAC:000F53013970
Firmwareversion:v3.0.3
PHYtype:QT2025C
PHYversion:v2.0.2.5
Controllertype:SolarflareSFC4000
Controllerversion:v3.0.3.2127
bootROMversion:v3.0.3.2127
ThePHYfirmwareisuptodate
ThebootROMfirmwareisuptodate
Thecontrollerfirmwareisuptodate
eth2‐MAC:000F53013971
Firmwareversion:v3.0.2
PHYtype:QT2025C
PHYversion:v2.0.2.5
ThePHYfirmwareisuptodate
5.10PerformanceTuningonVMware
Introductiononpage281
TuningSettingsonpage282
OtherConsiderationsonpage286
Introduction
TheSolarflarefamilyofnetworkadaptersaredesignedforhighperformance
networkapplications.Theadapterdriverispreconfiguredwithdefault
performancesettingsthathavebeendesignedtogivegoodperformanceacrossa
broadclassofapplications.Inmanycases,applicationperformancecanbe
improvedbytuningthesesettingstobestsuittheapplication.
Therearethreemetricsthatshouldbeconsideredwhentuninganadapter:
• Throughput
•Latency
•CPUutilization
Differentapplicationsmaybemoreorlessaffectedbyimprovementsinthesethree
metrics.Forexample,transactional(requestresponse)networkapplicationscanbe
verysensitivetolatencywhereasbulkdatatransferapplicationsarelikelytobe
moredependentonthroughput.
SolarflareServerAdapterUserGuide
SolarflareAdaptersonVMware
Issue20 ©SolarflareCommunications2017 282
Thepurposeofthissectionistohighlightadapterdriversettingsthataffectthe
performancemetricsdescribed.Thisguidecoversthetuningofallmembersofthe
Solarflarefamilyofadapters.Performancebetweenadaptersshouldbeidentical,
withtheexceptionoflatencymeasurements.
Latencywillbeaffectedbythetypeofphysicalmediumused:CX4,XFP,10GBaseT
orSFP+.Thisisbecausethephysicalmediainterfacechip(PHY)usedontheadapter
canintroduceadditionallatency.
TuningSettings
InstallVMwareToolsintheGuestPlatform
InstallingVMwaretoolswillgivegreatlyimprovednetworkingperformanceinthe
guest.IfVMwareToolsarenotinstalled,ESXemulatesaPCLancedeviceinthe
guest.IfVMwareToolsareinstalled,theguestwillseeavirtualadapteroftype
vmxnet.
TocheckthatVMwareToolsareinstalled:
1FromtheVMwareInfrastructureClient,poweronthevirtualmachineand
clicktheSummarytab.
2IntheGeneralpanel,checkthestatusofVMwareTools.
ToinstallVMwareTools:
1Poweronthevirtualmachine
2FromtheInventory>VirtualMachinemenu,selectInstall/UpgradeVMware
Tools.
ThiswillmountavirtualCDROMintheguestOS.IftheguestOSisWindows,itcan
autoruntheCDandinstalltools(ifnot,navigatetotheCDROMdeviceandrunthe
setupprogramyourself).IftheguestisaLinuxOS,youmustmounttheCD,install
thetools,andconfigurethem.Forexample,iftheguestisRedHat:
#mount/dev/cdrom/mnt
#rpm–i/mnt/VMwareTools*.rpm
#vmwaretoolsconfig.pl
VMwareESXNetQueue
SolarflareadapterssupportsVMware’sNetQueuetechnology,whichaccelerates
networkperformancein10GigabitEthernetvirtualizedenvironments.NetQueueis
enabledbydefaultinVMwareversions.Thereisusuallynoreasonnottoenable
NetQueue.
NOTE:VMwareNetQueueacceleratesbothreceiveandtransmittraffic.
SolarflareServerAdapterUserGuide
SolarflareAdaptersonVMware
Issue20 ©SolarflareCommunications2017 283
BindingNetQueuequeuesandVirtualMachinestoCPUs
Dependingontheworkload,NetQueuecanshowimprovedperformanceifeachof
thequeues’associatedinterruptandthevirtualmachinearepinnedtothesame
CPU.Thisisparticularlytrueofworkloadswheresustainedhighbandwidthisevenly
distributedacrossmultiplevirtualmachines(suchasyoumightdowhen
benchmarking).TopinaVirtualMachinetooneormoreCPUs:
1LogintotheVMwareInfrastructureClient.
2Expandthehostandselectthevirtualmachinetopinfromtheinventorypanel.
3SelecttheSummarytabforthatvirtualmachine.
4ClickEditSettings.
5FromtheresultingdialogboxselecttheResourcestab
6ClickAdvancedCPUontheleft.
7SelecttheCPU(s)towhichthevirtualmachineistobebound(ontherighthand
sideofthedialogbox).
Tobindaqueue’sinterrupttoaCPU,fromtheVMwareESXconsoleOSenter:
#echomove$IRQVEC$CPU>/proc/vmware/intrtracker
(Where$IRQVECistheinterruptvectorinhex,and$CPUistheCPUnumberin
decimal.)
Todeterminethevaluefor$IRQVECenter:
#cat/proc/vmware/interrupts
LocatetheinterruptsassociatedwiththeSolarflareadapter(e.g.vmnic2).Interrupts
arelistedinorder:thefirstinterruptwillbeforthedefaultqueue,thesecond
interruptforthequeuededicatedtothefirstvirtualmachinetohavebeenstarted,
thethirdinterruptforthequeuededicatedtothesecondvirtualmachinetohave
beenstarted,andsoon.
Iftherearemorevirtualmachine’sthanCPUsonthehost,optimalperformanceis
obtainedbypinningeachvirtualmachineandassociatedinterrupttothesameCPU.
IftherearefewervirtualmachinesthanCPUs,optimalresultsareobtainedby
pinningthevirtualmachineandassociatedinterruptrespectivelytotwocores
whichshareanL2cache.
AdapterMTU(MaximumTransmissionUnit)
ThedefaultMTUof1500bytesensuresthattheadapteriscompatiblewithlegacy
10/100MbpsEthernetendpoints.HoweverifalargerMTUisused,adapter
throughputandCPUutilizationcanbeimproved.CPUutilizationisimproved
becauseittakesfewerpacketstosendandreceivethesameamountofdata.
Solarflareadapterssupportframesizesupto9216bytes(thisdoesnotincludethe
EthernetpreambleorframeCRC).
SolarflareServerAdapterUserGuide
SolarflareAdaptersonVMware
Issue20 ©SolarflareCommunications2017 284
SincetheMTUshouldideallybematchedacrossallendpointsinthesameLAN
(VLAN),andsincetheLANswitchinfrastructuremustbeabletoforwardsuch
packets,thedecisiontodeployalargerthandefaultMTUrequirescareful
consideration.ItisrecommendedthatexperimentationwithMTUbedoneina
controlledtestenvironment.
TochangetheMTUofthevSwitch,fromtheVMwareConsoleOSenter:
#esxcfgvswitch‐‐mtu<size><vSwitch>
ToverifytheMTUsettings,aswellasobtainingalistofvSwitchesinstalledonthe
host,enter:
#esxcfgvswitch‐‐list
ThechangeinMTUsizeofthevSwitchwillpersistacrossrebootsoftheVMwareESX
host.
InterruptModeration(InterruptCoalescing)
Interruptmoderationcontrolsthenumberofinterruptsgeneratedbytheadapter
byadjustingtheextenttowhichreceivepacketprocessingeventsarecoalesced.
Interruptmoderationmaycoalescemorethanonepacketreceptionortransmit
completioneventintoasingleinterrupt.
Bydefault,adaptivemoderationisenabled.Adaptivemoderationmeansthatthe
networkdriversoftwareadaptstheinterruptmoderationsettingaccordingtothe
trafficandworkloadsitsees.
Alternatively,youcansetthemoderationintervalmanually.Youwouldnormally
onlydothisifyouareinterestedinreducinglatency.To dothisyoumustfirstdisable
adaptivemoderationwiththefollowingcommand,wherevmnicXistheinterface
name.
ethtool‐C<vmnicX>adaptiverxoff
NOTE:adaptiverxmayalreadyhavebeendisabled.ConsultyourVMware
documentationfordetails.
Interruptmoderationcanbechangedusingethtool,wherevmnicXistheinterface
nameandintervalisthemoderationsettinginmicroseconds(μs).Specifying0as
theintervalparameterwillturninterruptmoderationoff:
ethtool–C<vmnicX>rxusecsirq<interval>
Verificationofthemoderationsettingsmaybeperformedbyrunningethtool–c
Thisparameteriscriticalfortuningadapterlatency.Increasingthemoderationvalue
willincreaselatency,butreduceCPUutilizationandimprovepeakthroughput,ifthe
CPUisfullyutilized.Decreasingthemoderationvalueorturningitoffwilldecrease
latencyattheexpenseofCPUutilizationandpeakthroughput.However,formany
transactionrequestresponsetypenetworkapplications,thebenefitofreduced
latencytooverallapplicationperformancecanbeconsiderable.Suchbenefitsmay
outweighthecostofincreasedCPUutilization.
SolarflareServerAdapterUserGuide
SolarflareAdaptersonVMware
Issue20 ©SolarflareCommunications2017 285
NOTE:Theinterruptmoderationtimedictatestheminimumgapbetweentwo
consecutiveinterrupts.Itdoesnotmandateadelayonthetriggeringofaninterrupt
onthereceptionofeverypacket.Forexample,aninterruptmoderationsettingof
30µswillnotdelaythereceptionofthefirstpacketreceived,buttheinterruptfor
anyfollowingpacketswillbedelayeduntil30µsafterthereceptionofthatfirst
packet.
TCP/IPChecksumOffload
ChecksumoffloadmovescalculationandverificationofIPHeader,TCPandUDP
packetchecksumstotheadapter.Thedriverbydefaulthasallchecksumoffload
featuresenabled.Therefore,thereisnoopportunitytoimproveperformancefrom
thedefault.
Checksumoffloadiscontrolledusingethtool:
ReceiveChecksum:
#/sbin/ethtool–K<vmnicX>rx<on|off>
TransmitChecksum:
#/sbin/ethtool–K<vmnicX>tx<on|off>
Verificationofthechecksumsettingsmaybeperformedbyrunningethtoolwiththe
–koption.Solarflarerecommendyoudonotdisablechecksumoffload.
Foradviceonconfiguringchecksumoffloadintheguest,consulttherelevant
Solarflaresectionforthatguest,orthedocumentationfortheguestoperating
system.
TCPSegmentationOffload(TSO)
TCPSegmentationoffload(TSO)offloadsthesplittingofoutgoingTCPdatainto
packetstotheadapter.TCPsegmentationoffloadbenefitsapplicationsusingTCP.
NonTCPprotocolapplicationswillnotbenefit(butwillnotsuffer)fromTSO.
EnablingTCPsegmentationoffloadwillreduceCPUutilizationonthetransmitside
ofaTCPconnection,andsoimprovepeakthroughput,iftheCPUisfullyutilized.
SinceTSOhasnoeffectonlatency,itcanbeenabledatalltimes.ThedriverhasTSO
enabledbydefault.Therefore,thereisnoopportunitytoimproveperformance
fromthedefault.
NOTE:TSOcannotbecontrolledviathehostonVMwareESX.Itcanonlybe
controlledviatheguestOperatingSystem.
TCPLargeReceiveOffload(LRO)
TCPLargeReceiveOffload(LRO)isafeaturewherebytheadaptercoalescesmultiple
packetsreceivedonaTCPconnectionintoasinglecalltotheoperatingsystemTCP
Stack.ThisreducesCPUutilization,andsoimprovespeakthroughputwhentheCPU
isfullyutilized.
SolarflareServerAdapterUserGuide
SolarflareAdaptersonVMware
Issue20 ©SolarflareCommunications2017 286
LROshouldnotbeenabledifyouareusingthehosttoforwardpacketsfromone
interfacetoanother;forexampleifthehostisperformingIProutingoractingasa
layer2bridge.
LROissupported,andenabledbydefault,onVMwareversionslaterthanESX3.5.
TCPProtocolTuning
TCPPerformancecanalsobeimprovedbytuningkernelTCPsettings.Settings
includeadjustingsendandreceivebuffersizes,connectionbacklog,congestion
control,etc.
Typicallyitissufficienttotunejustthemaxbuffervalue.Itdefinesthelargestsize
thebuffercangrowto.Suggestedalternatevaluesaremax=500000(1/2Mbyte).
Factorssuchaslinklatency,packetlossandCPUcachesizeallinfluencetheaffectof
themaxbuffersizevalues.Theminimumanddefaultvaluescanbeleftattheir
defaultsminimum=4096anddefault=87380.
ForadviceontuningtheguestTCPstackconsultthedocumentationfortheguest
operatingsystem.
ReceiveSideScaling(RSS)
SolarflareadapterssupportReceiveSideScaling(RSS).RSSenablespacketreceive
processingtoscalewiththenumberofavailableCPUcores.RSSrequiresaplatform
thatsupportsMSIXinterrupts.RSSisenabledbydefault.
WhenRSSisenabledthecontrollerusesmultiplereceivequeuesintowhichto
deliverincomingpackets.Thereceivequeueselectedforanincomingpacketis
choseninsuchawayastoensurethatpacketswithinaTCPstreamareallsentto
thesamereceivequeuethisensuresthatpacketorderingwithineachstreamis
maintained.EachreceivequeuehasitsowndedicatedMSIXinterruptwhichideally
shouldbetiedtoadedicatedCPUcore.ThisallowsthereceivesideTCPprocessing
tobedistributedamongsttheavailableCPUcores,providingaconsiderable
performanceadvantageoveraconventionaladapterarchitectureinwhichall
receivedpacketsforagiveninterfaceareprocessedbyjustoneCPUcore.
RSSwillbeenabledwheneverNetQueueisnotandSolarflarerecommendusing
NetQueueonVMwareESXhosts.
OtherConsiderations
PCIExpressLaneConfigurations
ThePCIExpress(PCIe)interfaceusedtoconnecttheadaptertotheservercan
functionatdifferentwidths.Thisisindependentofthephysicalslotsizeusedto
connecttheadapter.Thepossiblewidthsaremultiplesx1,x2,x4,x8andx16lanes
of(2.5GbpsforPCIeGen.1,5.0GbpsforPCIeGen.2)ineachdirection.Solarflare
Adaptersaredesignedforx8laneoperation.
SolarflareServerAdapterUserGuide
SolarflareAdaptersonVMware
Issue20 ©SolarflareCommunications2017 287
Onsomeservermotherboards,choiceofPCIeslotisimportant.Thisisbecause
someslots(includingonesthatarephysicallyx8orx16lanes)mayonlyelectrically
supportx4lanes.Inx4laneslots,SolarflarePCIeadapterswillcontinuetooperate,
butnotatfullspeed.TheSolarflaredriverwillwarnyouifitdetectstheadapteris
pluggedintoaPCIeslotwhichelectricallyhasfewerthanx8lanes.
ForSFN5000seriesadapters,whichrequireaPCIeGen.2slotforoptimaloperation,
awarningwillbegiveniftheyareinstalledinaPCIeGen.1slot.Warningmessages
canbeviewedindmesgfrom/var/log/messages.
Memorybandwidth
Manychipsets/CPUsusemultiplechannelstoaccessmainsystemmemory.
Maximummemoryperformanceisonlyachievedwhentheservercanmakeuseof
allchannelssimultaneously.Thisshouldbetakenintoaccountwhenselectingthe
numberofDIMMstopopulateintheserver.Consultyourmotherboard
documentationfordetails.
Intel®QuickData
Intel®QuickDataTechnologyallowsVMwareESXtodatacopybythechipsetinstead
oftheCPU,tomovedatamoreefficientlythroughtheserverandprovidefast,
scalable,andreliablethroughput.
I/OATcanbeenabledonthehostandonguestoperatingsystems.Foradviceon
enablingI/OATintheguest,consulttherelevantSolarflaresectionforthatguest,or
thedocumentationfortheguestoperatingsystem.I/OATmustbeenabledonthe
hostifitistobeusedintheguests.
ToenableI/OATontheVMwareESXhost:
OnsomesystemsthehardwareassociatedwithI/OATmustfirstbeenabledinthe
BIOS
LogintotheConsoleOSontheVMwareESXhost,andenter:
#esxcfgadvcfg‐s1/Net/TcpipUseIoat
ReboottheVMwareESXhost
ToverifyI/OATisenabled,fromtheConsoleOSenter:
#vmkload_mod‐l|grep‐iioat
NOTE:ThefollowingVMwareKBarticleshouldbereadwhenenablingI/OAT:
http://kb.vmware.com/selfservice/microsites/
search.do?language=en_US&cmd=displayKC&externalId=1003712
SolarflareServerAdapterUserGuide
SolarflareAdaptersonVMware
Issue20 ©SolarflareCommunications2017 288
ServerMotherboard,ServerBIOS,ChipsetDrivers
Tuningorenablingothersystemcapabilitiesmayfurtherenhanceadapter
performance.Readersshouldconsulttheirserveruserguide.Possibleopportunities
includetuningPCIememorycontroller(PCIeLatencyTimersettingavailableinsome
BIOSversions).
SolarflareServerAdapterUserGuide
Issue20 ©SolarflareCommunications2017 289
6SolarflareAdaptersonFreeBSD
ThischaptercoversthefollowingtopicsontheFreeBSDplatform:
SystemRequirementsonpage289
FreeBSDPlatformFeatureSetonpage290
InstallingSolarflareDriversonpage290
UnattendedInstallationonpage292
ConfiguringtheSolarflareAdapteronpage294
SettingUpVLANsonpage295
FreeBSDUtilitiesPackageonpage296
ConfiguringtheBootROMwithsfbootonpage297
UpgradingAdapterFirmwarewithsfupdateonpage303
PerformanceTuningonFreeBSDonpage305
ModuleParametersonpage315
KernelandNetworkAdapterStatisticsonpage317
6.1SystemRequirements
RefertoSoftwareDriverSupportonpage17fordetailsofsupportedFreeBSD
distributions.
NOTE:FreeBSDincludesapreviousversionoftheSolarflareadapterdriverthat
doesnotsupportallfeaturesofthisversion.Toupdatethesupplieddriver,see
InstallingSolarflareDriversonpage290.
SolarflareServerAdapterUserGuide
SolarflareAdaptersonFreeBSD
Issue20 ©SolarflareCommunications2017 290
6.2FreeBSDPlatformFeatureSet
Table67liststhefeaturessupportedbySolarflareadaptersonFreeBSD.
6.3InstallingSolarflareDrivers
TheFreeBSDdriversforSolarflareareavailableinasourcepackage.
•ApackageisavailableforFreeBSD10.0and10.1:
‐ thispackagemightperformcorrectlywithotherFreeBSDkernels,buthas
notbeentestedwiththem
‐ forfurtherdetailsseetheReleaseNotes.
NOTE:TheSolarflareadaptershouldbephysicallyinstalledinthehostcomputer
beforeyouattempttoinstalldrivers.Youmusthaverootpermissionstoinstallthe
adapterdrivers.
Table67:FreeBSDFeatureSet
Jumboframes SupportforMTUs(MaximumTransmissionUnits)to
9000bytes.
•SeeConfiguringJumboFramesonpage295
Taskoffloads SupportforTCPSegmentationOffload(TSO),Large
ReceiveOffload(LRO),andTCP/UDP/IPchecksum
offloadforimprovedadapterperformanceand
reducedCPUprocessingrequirements.
•SeeConfiguringTaskOffloadingonpage295
ReceiveSideScaling(RSS) SupportforRSSmulticoreloaddistribution
technology.
•SeeReceiveSideScaling(RSS)onpage310
VirtualLANs(VLANs) SupportformultipleVLANsperadapter.
•SeeSettingUpVLANsonpage295
PXEandbooting Supportfordisklessbootingtoatargetoperating
systemviaPXEorUEFIboot.
•SeeConfiguringtheBootROMwithsfbooton
page297
•SeeSolarflareBootManageronpage374
Firmwareupdates SupportforBootROM,PHYtransceiverandadapter
firmwareupgrades.
•SeeUpgradingAdapterFirmwarewith
sfupdateonpage303
SolarflareServerAdapterUserGuide
SolarflareAdaptersonFreeBSD
Issue20 ©SolarflareCommunications2017 291
Thissourcecanbeused:
•Tocompileandinstalladriveronadevelopmentmachine.
Thedevelopmentmachinemusthavethefollowinginstalled:
‐ developmenttools
‐ theportssystem,anditsMakefiles
‐ thekernelsource.
•Tocreateabinarydriverpackage,forinstallingonothertargetmachines.
Atargetmachine:
‐ musthavethesamekernelandarchitectureasthedevelopmentmachine
thatbuiltthepackage
‐ doesnotrequireanyofthedevelopmenttoolsorsource.
Toinstallthedriver,usepkgaddorpkg_add.
Thefollowinginstructionsassumethatthesourcepackagehasbeendownloadedto
the/tmpdirectory.
1Ensureyouaretherootuser.Ifnot:
su‐
2ToavoidusingthepreviousdriverthatisdistributedwiththeOS,renameit:
mv/boot/kernel/sfxge.ko/boot/kernel/sfxge.ko_default
‐ Ifdesired,itcaninsteadberemoved:
rm/boot/kernel/sfxge.ko
3Unpackthedownloadedsource:
cd/tmp
tarxvfsfxgefreebsd<version_no>.txz
Forexample:
cd/tmp
tarxvfsfxgefreebsd4.5.3.1002.txz
4Changedirectoryintothesource:
cdsfxgefreebsd<version_no>
Forexample:
cdsfxgefreebsd4.5.3.1002
5Buildthepackage:
makepackage
‐ Ifyoudonothavetheportssysteminstalledyouwillseethiserror:
Theportssystemmustbeinstalledfirst.
‐ Youcaninstalltheportssystembyrunning:
portsnapfetchextract
SolarflareServerAdapterUserGuide
SolarflareAdaptersonFreeBSD
Issue20 ©SolarflareCommunications2017 292
6Installthepackage:
makeinstall
‐ thedriver(foruseonthismachine)isinstalledin/boot/modules/
sfxge.ko
‐ thebinarydriverpackage(foruseonothermachines)isinstalledinthe
builddirectoryinwork/package/sfxgekmod<version_no>.txz,andin
/usr/ports/packages/All/sfxgekmod<version_no>.txz
7Loadthedriver:
kldload/boot/modules/sfxge.ko
ForinformationonconfiguringthisnetworkinterfaceseeConfiguringtheSolarflare
Adapteronpage294.
6.4UnattendedInstallation
UnattendedinstallationsofFreeBSDcanbeperformedbyPXEbootingoverthe
network,andusingthebsdinstallcommand.Setthisupasfollows:
• EnsurethatDHCPisavailable,withPXEbootoptions.
• EnsurethataTFTPserverisavailable.
• EnsurethataFreeBSDserverisavailable.
ThisisrequiredonlytogeneratetheFreeBSDPXEbootimage:
‐ Downloadthemfsbsdutility(availablefromhttp://mfsbsd.vx.sk/).
InstallitontheFreeBSDserver.1
‐ DownloadtheISOimagefortherequiredFreeBSDrelease.
MountthisbootimageontheFreeBSDserver.
‐ Configureandcustomizethebootimage.
ChangeanyPXEbootsettingsasnecessary.
Modifythe/etc/installerconfigfileinthebootimagetoaddany
postinstalltasks.
‐ UsethemfsbsdutilitytobuildthePXEbootimage,usingthemodified
bootimageassource.
•CopythePXEbootimagetotheTFTPserver
AddaFreeBSDoptiontoitspxelinuxbootmenu.
•PXEbootthetargetserverandselecttheFreeBSDimage.
•TheFreeBSDserverthatwasusedtogeneratetheFreeBSDPXEbootimagecan
nowbereused.
1. ThemfsbsdutilityrunsonlyunderFreeBSD.
SolarflareServerAdapterUserGuide
SolarflareAdaptersonFreeBSD
Issue20 ©SolarflareCommunications2017 293
FreeBSDinstallandbootingisdocumentedasfollows:
•ForinformationonbootingaFreeBSDsystemoverthenetwork,see:
https://www.freebsd.org/cgi/man.cgi?query=diskless&sektion=8
Forgeneralinformationonusingbsdinstall,see:
https://www.freebsd.org/doc/handbook/bsdinstall.html
Forareferencedescriptionofthebsdinstallcommand,see:
https://www.freebsd.org/cgi/man.cgi?query=bsdinstall&sektion=8
especiallytheSCRIPTINGsection.
Table68showsanexampletimelineforanunattendedinstallation.
Table68:InstallationStages
InControl StagesofBoot Setupneeded
BIOS PXEcodeonthe
adapterruns.
AdaptermustbeinPXEboot
mode.SeeSolarflareBoot
Manageronpage374.
SFBootROM(PXE) DHCPrequestfromPXE
(SFBootROM).
DHCPserverfilenameand
nextserveroptions.
SFBootROM(PXE) TFTPrequestfor
filenametonext
server,e.g.pxelinux.0
TFTPserver.
pxelinux TFTPretrievalof
pxelinuxconfiguration.
pxelinuxconfigurationon
TFTPserver.
pxelinux TFTPmenuretrievalof
FreeBSDkernelimage.
pxelinuxconfiguration
Kernel,kernelcommand
FreeBSDkernel/
installer
Installerretrieves
configuration.
FreeBSDimage
Installationoccurs Machinereboots /etc/installerconfigfile
TargetFreeBSDkernel kernelreconfigures
networkadapters.
DHCPserver.
SolarflareServerAdapterUserGuide
SolarflareAdaptersonFreeBSD
Issue20 ©SolarflareCommunications2017 294
6.5ConfiguringtheSolarflareAdapter
Thedriverswillbeloadedaspartoftheaspartoftheinstallation.Howeverthe
adapterwillnotbeconfigured(addingIPaddressandnetmask).
EachSolarflarenetworkadapterinterfacewillbenamedsfxge<n>where<n>isa
uniqueidentifier.TherewillbeoneinterfaceperphysicalportontheSolarflare
adapter.
Toconfiguretheinterfaceandbringituptoallowdatatopass,enterthefollowing:
ifconfigsfxge<n>inet<IPv4address>netmask<netmask>up
Thisconfigurestheinterfaceandinitializesitwiththeupcommand.
NOTE:Thismethodofconfiguringistemporary.Ifyourebootyourcomputerthe
settingswillbelost.Tomakethesesettingspermanent,createentriesinthe
configurationfileasdescribedbelow.
UsingIPv6
ToconfigureusingIPv6,createanIPv6interfacesfxge<n>interfacewithalinklocal
IPv6addressbyentering:
ifconfigsfxge<n>inet6<IPv6address>prefixlen<IPv6prefixlength>
Thisusesautomaticlinklocaladdressconfiguration,whichisenabledbydefaultin
FreeBSD.ItwillgiveanIPv6interfacenameofsfxge<n>:1
UsingaConfigurationFilewithIPv4
Configurationissetinthe/etc/rc.conffile.TherearethreeoptionswithIPv4:
•UsingastaticIPv4address.Tousethisoption,add:
ifconfig_sfxge<n>="inet<IPv4address>netmask<netmask>"
•Usingahostname.Tousethisoption,add:
ifconfig_sfxge<n>="inet<hostname>"
andmodify/etc/hostsand/etc/netmasks
•UsingDHCP.Tousethisoption,add:
ifconfig_sfxge<n>="DHCP"
UsingConfigurationfileswithIPv6
Configurationissetinthe/etc/rc.conffile:
•ForautomaticconfigurationbyStateLessAddressAutoConfiguration(SLAAC),
add:
ifconfig_sfxge<n>_ipv6="inet6accept_rtadv"
SolarflareServerAdapterUserGuide
SolarflareAdaptersonFreeBSD
Issue20 ©SolarflareCommunications2017 295
ConfiguringTaskOffloading
Solarflareadapterssupporttransmit(Tx)andreceive(Rx)checksumoffload,aswell
asTCPsegmentationoffload.Toensuremaximumperformancefromtheadapter,
alltaskoffloadsshouldbeenabled,whichisthedefaultsettingontheadapter.For
moreinformation,seePerformanceTuningonFreeBSDonpage305.
ConfiguringJumboFrames
Solarflareadapterssupportaframesize(MTU)from1500bytesto9000bytes.
ThedefaultmaximumdriverMTUsizeis1500bytes.Forexample,tosetanew
framesize(MTU)of9000bytes,enterthefollowingcommand:
ifconfigsfxge<n>inetmtu9000
ToviewthecurrentMTU,enter:
#ifconfigsfxge<n>
sfxge0:flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST>metric0mtu1500
...
IfyouwanttohaveanMTUconfiguredwhentheinterfaceisbroughtup,addanmtu
parametertothesinglelineofinterfaceconfigurationdatainthe/etc/rc.conf
file.Forexample:
ifconfig_sfxge<n>="inet<IPv4address>netmask<netmask>mtu<MTUsize>"
6.6SettingUpVLANs
VLANsofferamethodofdividingonephysicalnetworkintomultiplebroadcast
domains.Inenterprisenetworks,thesebroadcastdomainsusuallymatchwithIP
subnetboundaries,sothateachsubnethasitsownVLAN.TheadvantagesofVLANs
include:
•Performance
•Easeofmanagement
•Security
•Trunks
•Youdon'thavetoconfigureanyhardwaredevice,whenphysicallymovingyour
servertoanotherlocation.
TohaveasingleinterfaceexistonmultipleVLANs(iftheportontheconnected
switchissetto“trunked”mode)seethefollowingdocumentation:
http://people.freebsd.org/~arved/vlan/vlan_en.html
SolarflareServerAdapterUserGuide
SolarflareAdaptersonFreeBSD
Issue20 ©SolarflareCommunications2017 296
6.7FreeBSDUtilitiesPackage
TheSolarflareFreeBSDUtilitiespackageissuppliedasasourcepackageora64bit
binarypackage,andisavailablefromhttps://support.solarflare.com/.Itcontains
thefollowingutilities:
Bydefault,sfbootandsfupdateareinstalledto/usr/local/sbin,andsfreport
isinstalledto/usr/local/bin.
Buildingandinstallingthesourcepackage
Tobuildandinstallthesourcepackage:
1Unpackthesourcepackage:
tar‐xf<sourcepackagename>
2Gotoitsdirectory:
cd<sourcepackagedir>
3Buildandinstallabinarypackagefromthesource:
makeinstall
Alternatively,tobuildandinstallinseparatesteps:
a) Buildabinarypackagefromthesource:
makepackage
b) Installtheresultingbinarypackage:
pkginstall./work/pkg/sfutils<version>.txz
Installingthe64bitbinarypackage
1Installthebinarypackage:
pkginstall<pathtopackagefile>
Table69:UtilitiesPackage
UtilityFile Description
sfupdate Acommandlineutilitythatcontainsanadapterfirmwareversion
whichcanupdateSolarflareadapterfirmware.
sfboot AcommandlineutilityforconfiguringSolarflareadapterBootROM
options,includingPXEandUEFIbooting.
sfreport Acommandlineutilitythatgeneratesadiagnosticlogfileproviding
diagnosticdataabouttheserverandSolarflareadapters.
SolarflareServerAdapterUserGuide
SolarflareAdaptersonFreeBSD
Issue20 ©SolarflareCommunications2017 297
6.8ConfiguringtheBootROMwithsfboot
Sfboot:CommandUsageonpage297
Sfboot:CommandLineOptionsonpage297
Sfboot:Examplesonpage303
SfbootisacommandlineutilityforconfiguringSolarflareadapterBootROM
options,includingPXEandUEFIbooting.UsingsfbootisanalternativetousingCtrl
+BtoaccesstheBootRomagentduringserverstartup.
SeeSolarflareBootManageronpage374formoreinformationontheBootRom
agent.
Sfboot:CommandUsage
Thegeneralusageforsfbootisasfollows(asroot):
sfboot[‐‐adapter=sfxge<n>][options][parameters]
Notethatwithout‐‐adapter,thesfbootcommandappliestoalladaptersthatare
presentinthetargethost.
Theformatfortheparametersare:
<parameter>=<value>
Sfboot:CommandLineOptions
Table70liststheoptionsforsfboot,Table71liststheavailableglobalparameters,
andTable72liststheavailableperadapterparameters.
Table70:SfbootOptions
Option Description
h,‐‐help Displayscommandlinesyntaxandprovidesadescriptionofeach
sfbootoption.
V,‐‐version Showsdetailedversioninformationandexits.
v,‐‐verbose Showsextendedoutputinformationforthecommandentered.
s,‐‐silent Suppressesalloutput,includingwarningsanderrors;nouser
interaction.Youshouldquerythecompletioncodetodeterminethe
outcomeofcommandswhenoperatingsilently.
‐‐log<filename> Logsoutputtothespecifiedfileinthecurrentfolderoranexisting
folder.Specify‐‐silenttosuppresssimultaneousoutputtoscreen,
ifrequired.
‐‐computer<computer_name> Performstheoperationonaspecifiedremotecomputer.
Administratorrightsontheremotecomputerisrequired.
SolarflareServerAdapterUserGuide
SolarflareAdaptersonFreeBSD
Issue20 ©SolarflareCommunications2017 298
ThefollowingglobalparametersinTable71areusedtocontroltheconfigurable
parametersfortheBootROMdriverwhenrunningpriortotheoperatingsystem
booting.
‐‐list ListsallavailableSolarflareadapters.Thisoptionshowsthe
adaptersIDnumber,ifnameandMACaddress.
Note:thisoptionmaynotbeusedinconjunctionwithanyother
option.Ifthisoptionisusedwithconfigurationparameters,those
parameterswillbesilentlyignored.
d,‐‐adapter=<sfxge<n>> PerformstheactionontheidentifiedSolarflarenetworkadapter.
TheadapteridentifiersfxgecanbetheadapterIDnumber,ifname
orMACaddress,asoutputbythe‐‐listoption.If‐‐adapterisnot
included,theactionwillapplytoallinstalledSolarflareadapters.
‐‐clear Resetsalloptionstotheirdefaultvalues.Ifanadapterisspecified,
optionsforthegivenadapterarereset,butglobaloptions(shownin
Table71)arenotreset.Notethat‐‐clearcanalsobeusedwith
parameters,allowingyoutoresettodefaultvalues,andthenapply
theparametersspecified.
Table70:SfbootOptions
Option Description
Table71:SfbootGlobalParameters
Parameter Description
bootimage=
all|optionrom|uefi|disabled
Specifieswhichbootfirmwareimagesareserveduptothe
BIOSduringstartup.Thisparametercannotbeusedifthe
‐‐adapteroptionhasbeenspecified.
portmode=
default|1x10G|2x10G|4x10G|
2x40G
Configuretheportmodetouse.ThisisforSFN7000and
SFN8000seriesadaptersonly.Thevaluesspecifythe
connectorsavailableafterusinganysplittercables.The
usablevaluesareadapterdependent:
• SFN8x42:4x10G,2x40G(default)
• SFN8522[M]:2x10G(default)
• SFN7xx4F:2x10G,4x10G(default)
SFN7xx2Q:2x10G,4x10G,2x40G(default)
• SFN7xx2F:1x10G,2x10G(default)
Changestothissettingwithsfbootrequireacoldrebootto
becomeeffective.MACaddressassignmentsmaychange
afteralteringthissetting.
SolarflareServerAdapterUserGuide
SolarflareAdaptersonFreeBSD
Issue20 ©SolarflareCommunications2017 299
firmwarevariant=
fullfeature|ultralowlatency|
capturepackedstream|auto
Configurethefirmwarevarianttouse.ThisisforSFN7000
andSFN8000seriesadaptersonly:
•theSFN7002Fadapterisfactorysettofullfeature
•allotheradaptersarefactorysettoauto.
Defaultvalue=auto‐meansthedriverwillselectavariant
thatmeetsitsneeds:
•theVMwaredriveralwaysusesfullfeature
•otherwise,ultralowlatencyisused.
Theultralowlatencyvariantproducesbestlatencywithout
supportforTXVLANinsertionorRXVLANstripping(not
currentlyusedfeatures).ItisrecommendedthatOnload
customersusetheultralowlatencyvariant.
insecurefilters=
enabled|disabled
Ifenabledbypassfiltersecurityonnonprivileged
functions.ThisisforSFN7000andSFN8000seriesadapters
only.Thisreducessecurityinvirtualizedenvironments.The
defaultisdisabled.Whenenabledafunction(PForVF)can
insertfiltersnotqualifiedbytheirownpermanentMAC
address.ThisisarequirementwhenusingOnloadorwhen
usingbondedinterfaces.
macspoofing=enabled|disabled Ifenabled,nonprivilegedfunctionscancreateunicast
filtersforMACaddressesthatarenotassociatedwiththem.
ThisisforSFN7000andSFN8000seriesadaptersonly.
Thedefaultisdisabled.
Changestothissettingwithsfbootrequireacoldrebootto
becomeeffective.
rxdcsize=8|16|32|64 Specifiesthesizeofthedescriptorcacheforeachreceive
queue.ThisisforSFN7000andSFN8000seriesadapters
only.Thedefaultis:
16iftheportmodesupportsthemaximumnumberof
connectorsfortheadapter.
32iftheportmodesupportsareducednumberof
connectors.
Table71:SfbootGlobalParameters
Parameter Description
SolarflareServerAdapterUserGuide
SolarflareAdaptersonFreeBSD
Issue20 ©SolarflareCommunications2017 300
ThefollowingperadapterparametersinTable72areusedtocontrolthe
configurableparametersfortheBootROMdriverwhenrunningpriortothe
operatingsystembooting.
txdcsize=8|16|32|64 Specifiesthesizeofthedescriptorcacheforeachtransmit
queue.ThisisforSFN7000andSFN8000seriesadapters
only.Thedefaultis:
32iftheportmodesupportsthemaximumnumberof
connectorsfortheadapter.
64iftheportmodesupportsareducednumberof
connectors.
vicount=<vicount> Setsthetotalnumberofvirtualinterfacesthatwillbe
availableontheNIC.
eventmergetimeout=
<timeoutinnanoseconds>
SpecifiesthetimeoutinnanosecondsforRXeventmerging.
Atimeoutof0meansthateventmergingisdisabled.
Table71:SfbootGlobalParameters
Parameter Description
Table72:SfbootPeradapterParameters
Parameter Description
linkspeed=auto|10g|1g|100m Specifiesthenetworklinkspeedoftheadapterusedbythe
BootROM.Thedefaultisauto.Onthe10GBASETadapters,
autoinstructstheadaptertonegotiatethehighestspeed
supportedincommonwithitslinkpartner.OnSFP+
adapters,autoinstructstheadaptertousethehighestlink
speedsupportedbytheinsertedSFP+module.On
10GBASETandSFP+adapters,anyothervaluespecified
willfixthelinkatthatspeed,regardlessofthecapabilities
ofthelinkpartner,whichmayresultinaninabilityto
establishthelink.
autoAutonegotiatelinkspeed(default)
10G10Gbit/sec
1G1Gbit/sec
100M100Mbit/sec
SolarflareServerAdapterUserGuide
SolarflareAdaptersonFreeBSD
Issue20 ©SolarflareCommunications2017 301
linkupdelay=
<delaytimeinseconds>
Specifiesthedelay(inseconds)theadapterdefersitsfirst
connectionattemptafterbooting,allowingtimeforthe
networktocomeupfollowingapowerfailureorother
restart.Thiscanbeusedtowaitforspanningtreeprotocol
onaconnectedswitchtounblocktheswitchportafterthe
physicalnetworklinkisestablished.Thedefaultis5
seconds.
bannerdelay=
<delaytimeinseconds>
SpecifiesthewaitperiodforCtrlBtobepressedtoenter
adapterconfigurationtool.
<delaytimeinseconds>=0256
bootskipdelay=
<delaytimeinseconds>
SpecifiesthetimeallowedforEsctobepressedtoskip
adapterbooting.
<delaytimeinseconds>=0256
boottype=pxe|uefi|disabled Setstheadapterboottypeeffectiveonnextboot.
pxePXE(PrebooteXecutionEnvironment)booting
disabledDisableadapterbooting
pfcount=<pfcount> ThisisthenumberofavailablePCIePFsperphysical
networkport.Thissettingisappliedtoallportsonthe
adapter.
Changestothissettingwithsfbootrequireacoldrebootto
becomeeffective.MACaddressassignmentsmaychange
afteralteringthissetting.
msixlimit=
8|16|32|64|128|256|512|1024
SpecifiesthemaximumnumberofMSIXinterruptsthat
eachPFwilluse.Thedefaultis32.
Note:Usingtheincorrectsettingcanimpactthe
performanceoftheadapter.ContactSolarflaretechnical
supportbeforechangingthissetting.
sriov=enabled|disabled EnableSRIOVsupportforoperatingsystemsthatsupport
this.NotrequiredonSFN7000orSFN8000seriesadapters.
Table72:SfbootPeradapterParameters
Parameter Description
SolarflareServerAdapterUserGuide
SolarflareAdaptersonFreeBSD
Issue20 ©SolarflareCommunications2017 302
vfcount=<vfcount> Thenumberofvirtualfunctions(VF)advertisedtothe
operatingsystemforeachPhysicalFunctiononthisphysical
networkport.SFN7000andSFN8000seriesadaptershavea
totallimitof2048interrupts.Earlieradapterssupporta
totallimitof127virtualfunctionsperportandatotalof
1024interrupts.
Dependingonthevaluesofmsixlimitandvfmsixlimit,
someofthesevirtualfunctionsmaynotbeconfigured.
Enablingall127VFsperportwithmorethanoneMSIX
interruptperVFmaynotbesupportedbythehostBIOS‐in
whichcaseyoumayget127VFsononeportandnoneon
others.ContactyourBIOSvendororreducetheVFcount.
Thesriovparameterisimpliedifvfcountisgreaterthan
zero.
Changestothissettingwithsfbootrequireacoldrebootto
becomeeffective.
vfmsixlimit=
1|2|4|8|16|32|64|128|256
Themaximumnumberofinterruptsavirtualfunctionmay
use.
pfvlans=<tag>[,<tag>[,...]]|none CommaseparatedlistofVLANtagsforeachPFintherange
04094‐seesfboot‐‐helpfordetails.
switchmode=
default|sriov|partitioning|
partitioningwithsriov|pfiov
Specifiesthemodeofoperationthattheportwillbeused
in:
default‐singlePFcreated,zeroVFscreated.
sriov‐SRIOVenabled,singlePFcreated,VFsconfigured
withvfcount.
partitioning‐PFsconfiguredwithpfcount,VFs
configuredwithvfcount.SeeNICPartitioningonpage74
fordetails.
partitioningwithsriov‐SRIOVenabled,PFs
configuredwithpfcount,VFsconfiguredwithvfcount.
SeeNICPartitioningonpage74fordetails.
pfiov‐PFIOVenabled,PFsconfiguredwithpfcount,VFs
notsupported.
Changestothissettingwithsfbootrequireacoldrebootto
becomeeffective.
Table72:SfbootPeradapterParameters
Parameter Description
SolarflareServerAdapterUserGuide
SolarflareAdaptersonFreeBSD
Issue20 ©SolarflareCommunications2017 303
Sfboot:Examples
•Showthecurrentbootconfigurationforalladapters:
sfboot
Solarflarebootconfigurationutility[v3.0.5]
CopyrightSolarflareCommunications20062010,Level5Networks20022005
sfxge0:
BootimageDisabled
MSIXinterruptlimit32
sfxge1:
BootimageDisabled
MSIXinterruptlimit32
• ListallSolarflareadaptersinstalledonthelocalhost:
sfboot‐‐list
Solarflarebootconfigurationutility[v3.0.5]
CopyrightSolarflareCommunications20062010,Level5Networks20022005
sfxge0‐000F53013840
sfxge1‐000F53013841
6.9UpgradingAdapterFirmwarewithsfupdate
ToUpdateAdapterFirmware
Reinstallthesfutilspackage,asdescribedinFreeBSDUtilitiesPackageon
page296.
Sfupdate:CommandUsage
Thegeneralusageforsfupdateisasfollows(asroot):
sfupdate[‐‐adapter=sfxge<n>][options]
where:
sfgxe<n>istheinterfacenameoftheSolarflareadapteryouwanttoupgrade.
optionisoneofthecommandoptionslistedinTable73.
Theformatfortheoptionsare:
‐‐<option>=<parameter>
Runningthecommandsfupdatewithnoadditionalparameterswillshowthe
currentfirmwareversionforallSolarflareadaptersandwhetherthefirmware
withinsfupdateismoreuptodate.ToupdatethefirmwareforallSolarflare
adaptersrunthecommandsfupdate‐‐write
Solarflarerecommendthatyouusesfupdateinthefollowingway:
1Runsfupdatetocheckthatthefirmwareonallyouradaptersareuptodate.
SolarflareServerAdapterUserGuide
SolarflareAdaptersonFreeBSD
Issue20 ©SolarflareCommunications2017 304
2Runsfupdate‐‐writetoupdatethefirmwareonalladapters.
Sfupdate:CommandLineOptions
Table73liststheoptionsforsfupdate.
Sfupdate:Examples
•Displayfirmwareversionsforalladapters:
sfupdate
sfupdate:SolarflareFirmwareUpdateUtility[v3.0.5.2164]
CopyrightSolarflareCommunications20062010,Level5Networks20022005
Networkadapterdriverversion:v3.0.5.2163
sfxge0‐MAC:00:0F:53:01:38:90
Firmwareversion:v3.0.5
BootROMversion:v3.0.5.2163
Table73:SfupdateOptions
Option Description
h,‐‐help Showshelpfortheavailableoptionsandcommandlinesyntax.
v,‐‐verbose Enableverboseoutputmode.
s,‐‐silent Suppressalloutputexceptforerrors.Usefulforscripts.
V,‐‐version Displayversioninformationandexit.
i,‐‐adapter=sfxge<n> Specifiesthetargetadapterwhenmorethanoneadapterisinstalledinthe
machine.
sfxge<n>=AdapterifnameorMACaddress(asobtainedwith‐‐list).
‐‐list ShowstheadapterID,adapternameandMACaddressofeachadapter
installedinthemachine.
‐‐write Rewritesthefirmwarefromtheimagesembeddedinthesfupdatetool.
Torewriteusinganexternalimage,specify
‐‐image=<filename>inthecommand.
‐‐writefailsiftheembeddedimageisthesameorapreviousversion.To
forceawriteinthiscase,specifytheoption‐‐force.
‐‐force Forceupdateofallfirmware,eveniftheinstalledfirmwareversionisthe
sameormorerecentthantheimagesembeddedintheutility.
‐‐image=(filename) Updatethefirmwareusingtheimagecontainedinthespecifiedfile,rather
thantheimageembeddedintheutility.Usewiththe‐‐writeand,if
needed,‐‐forceoptions.
y,‐‐yes Promptsforuserconfirmationbeforerewritingthefirmware.
SolarflareServerAdapterUserGuide
SolarflareAdaptersonFreeBSD
Issue20 ©SolarflareCommunications2017 305
PHYversion:v2.0.2.5
Controllerversion:v3.0.5.2161
TheBootROMfirmwareisuptodate
ThePHYfirmwareisuptodate
TheimagecontainsamorerecentversionoftheController[v3.0.5.2163]
vs[v3.0.5.2161]
Usethe‐w|‐‐writeoptiontoperformanupdate
sfxge1‐MAC:00:0F:53:01:38:91
Firmwareversion:v3.0.5
BootROMversion:v3.0.5.2163
PHYversion:v2.0.2.5
Controllerversion:v3.0.5.2161
TheBootROMfirmwareisuptodate
ThePHYfirmwareisuptodate
TheimagecontainsamorerecentversionoftheController[v3.0.5.2163]
vs[v3.0.5.2161]
Usethe‐w|‐‐writeoptiontoperformanupdate
6.10PerformanceTuningonFreeBSD
Introductiononpage305
Tuningsettingsonpage306
OtherConsiderationsonpage311
Introduction
TheSolarflarefamilyofnetworkadaptersaredesignedforhighperformance
networkapplications.Theadapterdriverispreconfiguredwithdefault
performancesettingsthathavebeendesignedtogivegoodperformanceacrossa
broadclassofapplications.Occasionally,applicationperformancecanbeimproved
bytuningthesesettingstobestsuittheapplication.
Therearethreemetricsthatshouldbeconsideredwhentuninganadapter:
• Throughput
•Latency
•CPUutilization
Differentapplicationsmaybemoreorlessaffectedbyimprovementsinthesethree
metrics.Forexample,transactional(requestresponse)networkapplicationscanbe
verysensitivetolatencywhereasbulkdatatransferapplicationsarelikelytobe
moredependentonthroughput.
Thepurposeofthissectionistohighlightadapterdriversettingsthataffectthe
performancemetricsdescribed.ThissectioncoversthetuningofallSolarflare
adapters.
SolarflareServerAdapterUserGuide
SolarflareAdaptersonFreeBSD
Issue20 ©SolarflareCommunications2017 306
Latencywillbeaffectedbythetypeofphysicalmediumused:10GBaseT,twinaxial
(directattach),fiberorKX4.Thisisbecausethephysicalmediainterfacechip(PHY)
usedontheadaptercanintroduceadditionallatency.Likewise,latencycanalsobe
affectedbythetypeofSFP/SFP+/QSFPmodulefitted.
Inaddition,youmayneedtoconsiderotherissuesinfluencingperformance,suchas
applicationsettings,servermotherboardchipset,CPUspeed,cachesize,RAMsize,
additionalsoftwareinstalledonthesystem,suchasafirewall,andthespecification
andconfigurationoftheLAN.Considerationofsuchissuesisnotwithinthescopeof
thisguide.
Tuningsettings
Portmode
TheselectedportmodeforSFN7000andSFN8000seriesadaptersshould
correspondtothespeedandnumberofconnectorsinuse,afterusinganysplitter
cables.Ifarestrictedsetofconnectorsisconfigured,thedrivercanthentransfer
resourcesfromtheunusedconnectorstothoseconfigured,potentiallyimproving
performance.
AdapterMTU(MaximumTransmissionUnit)
ThedefaultMTUof1500bytesensuresthattheadapteriscompatiblewithlegacy
10/100MbpsEthernetendpoints.HoweverifalargerMTUisused,adapter
throughputandCPUutilizationcanbeimproved.CPUutilizationisimproved,
becauseittakesfewerpacketstosendandreceivethesameamountofdata.
SolarflareadapterssupportanMTUofupto9216bytes(thisdoesnotincludethe
EthernetpreambleorframeCRC).
SincetheMTUshouldideallybematchedacrossallendpointsinthesameLAN
(VLAN),andsincetheLANswitchinfrastructuremustbeabletoforwardsuch
packets,thedecisiontodeployalargerthandefaultMTUrequirescareful
consideration.ItisrecommendedthatexperimentationwithMTUbedoneina
controlledtestenvironment.
TheMTUischangeddynamicallyusingifconfig,wheresfxge<n>istheinterface
nameand<size>istheMTUsizeinbytes:
#ifconfigsfxge<n>mtu<size>
VerificationoftheMTUsettingmaybeperformedbyrunningifconfigwithno
optionsandcheckingtheMTUvalueassociatedwiththeinterface.Thechangein
MTUsizecanbemadetopersistacrossrebootsbyeditingthe/etc/rc.conffile
andaddinganmtuparametertothesinglelineofinterfaceconfigurationdata.For
example:
ifconfig_sfxge<n>="inet<IPv4address>netmask<netmask>mtu<size>"
SolarflareServerAdapterUserGuide
SolarflareAdaptersonFreeBSD
Issue20 ©SolarflareCommunications2017 307
InterruptModeration(InterruptCoalescing)
Interruptmoderationreducesthenumberofinterruptsgeneratedbytheadapterby
coalescingmultiplereceivedpacketeventsand/ortransmitcompletionevents
togetherintoasingleinterrupt.
Theinterruptmoderationintervalsetstheminimumtime(inmicroseconds)
betweentwoconsecutiveinterrupts.Coalescingoccursonlyduringthisinterval:
•Whenthedrivergeneratesaninterrupt,itstartstimingthemoderation
interval.
•Anyeventsthatoccurbeforethemoderationintervalexpiresarecoalesced
togetherintoasingleinterrupt,thatisraisedonlywhentheintervalexpires.
Anewmoderationintervalthenstarts,duringwhichnointerruptisraised.
•Aneventthatoccursafterthemoderationintervalhasexpiredgetsitsown
dedicatedinterrupt,thatisraisedimmediately.
Anewmoderationintervalthenstarts,duringwhichnointerruptisraised.
Interruptmoderationsettingsarecriticalfortuningadapterlatency:
• Increasingtheinterruptmoderationintervalwill:
‐ generatelessinterrupts
‐ reduceCPUutilization(becausetherearelessinterruptstoprocess)
‐ increaselatency
‐ improvepeakthroughput.
• Decreasingtheinterruptmoderationintervalwill:
‐ generatemoreinterrupts
‐ increaseCPUutilization(becausetherearemoreinterruptstoprocess)
‐ decreaselatency
‐ reducepeakthroughput.
• Turningoffinterruptmoderationwill:
‐ generatethemostinterrupts
‐ givethehighestCPUutilization
‐ givethelowestlatency
‐ givethebiggestreductioninpeakthroughput.
Formanytransactionrequestresponsetypenetworkapplications,thebenefitof
reducedlatencytooverallapplicationperformancecanbeconsiderable.Such
benefitstypicallyoutweighthecostofincreasedCPUutilization.Itisrecommended
that:
• Interruptmoderationisdisabledforapplicationsthatrequirebestlatencyand
jitterperformance,suchasmarketdatahandling.
• Interruptmoderationisenabledforhighthroughputsingle(orfew)connection
TCPstreamingapplications,suchasiSCSI.
SolarflareServerAdapterUserGuide
SolarflareAdaptersonFreeBSD
Issue20 ©SolarflareCommunications2017 308
Interruptmoderationischangeddynamicallyusingsysctl.
Tosettheinterruptmoderation,wheresfxge<n>istheinterfacename,andthe
<interval>isinmicroseconds(μs):
sysctldev.sfxge.<n>.int_mod=<interval>
Toturnoffinterruptmoderation,setanintervalofzero(0):
sysctldev.sfxge.<n>.int_mod=0
Thechangeininterruptmoderationcanbemadetopersistacrossrebootsbyediting
thefile/etc/sysctl.confandaddingdev.sfxge.<n>.int_mod=<interval>on
anewline.
NOTE:TheperformancebenefitsofTCPLargeReceiveOffloadarelimitedif
interruptmoderationisdisabled.SeeTCPLargeReceiveOffload(LRO)onpage309.
TCP/IPChecksumOffload
ChecksumoffloadmovescalculationandverificationofIPHeader,TCPandUDP
packetchecksumstotheadapter.Thedriverhasallchecksumoffloadfeatures
enabledbydefault.Therefore,thereisnoopportunitytoimproveperformance
fromthedefault.
Checksumoffloadischangeddynamicallyusingifconfig,withthefollowing
parameters:
rxcsum,txcsum,rxcsum6,txcsum6
EnableRxandTxchecksumoffloadforIPv4andIPv6
rxcsum,txcsum,rxcsum6,txcsum6
DisableRxandTxchecksumoffloadforIPv4andIPv6
Toenablechecksumoffload,wheresfxge<n>istheinterfacename:
#ifconfigsfxge<n>rxcsumtxcsumrxcsum6txcsum6
Todisablechecksumoffload:
#ifconfigsfxge<n>‐rxcsum‐txcsum‐rxcsum6‐txcsum6
Verificationofthechecksumoffloadsettingmaybeperformedbyrunning
ifconfigwithnooptionsandcheckingthechecksumoffloadvalueassociatedwith
theinterface.Thechangeinchecksumoffloadcanbemadetopersistacrossreboots
byeditingthe/etc/rc.conffileandaddingtheappropriateparameterstothe
singlelineofinterfaceconfigurationdata.Forexample:
ifconfig_sfxge<n>="inet<IPv4address>netmask<netmask>rxcsumtxcsumrxcsum6txcsum6"
NOTE:Solarflarerecommendyoudonotdisablechecksumoffload.
TCPSegmentationOffload(TSO)
TCPSegmentationOffload(TSO)offloadsthesplittingofoutgoingTCPdatainto
packetstotheadapter.TSObenefitsapplicationsusingTCP.Applicationsusing
protocolsotherthanTCPwillnotbeaffectedbyTSO.
SolarflareServerAdapterUserGuide
SolarflareAdaptersonFreeBSD
Issue20 ©SolarflareCommunications2017 309
TheFreeBSDTCP/IPstackprovidesalargeTCPsegmenttothedriver,whichsplits
thedataintoMSSsize,eachwithadjustedsequencespaceandahardware
calculatedchecksum.
EnablingTSOwillreduceCPUutilizationonthetransmitsideofaTCPconnection
andimprovepeakthroughput,iftheCPUisfullyutilized.SinceTSOhasnoeffecton
latency,itcanbeenabledatalltimes.ThedriverhasTSOenabledbydefault.
Therefore,thereisnoopportunitytoimproveperformancefromthedefault.
TSOischangeddynamicallyusingifconfig.
ToenableTSO,wheresfxge<n>istheinterfacename:
#ifconfigsfxge<n>tso
TodisableTSO:
#ifconfigsfxge<n>‐tso
VerificationoftheTSOsettingmaybeperformedbyrunningifconfigwithno
optionsandcheckingtheTSOvalueassociatedwiththeinterface.ThechangeinTSO
canbemadetopersistacrossrebootsbyeditingthe/etc/rc.conffileandadding
theappropriateparametertothesinglelineofinterfaceconfigurationdata.For
example:
ifconfig_sfxge<n>="inet<IPv4address>netmask<netmask>tso"
TCPandIPchecksumoffloadsmustbeenabledforTSOtowork.
NOTE:Solarflarerecommendthatyoudonotdisablethissetting.
TCPLargeReceiveOffload(LRO)
TCPLargeReceiveOffload(LRO)isafeaturewherebytheadaptercoalescesmultiple
packetsreceivedonaTCPconnectionintoasinglelargerpacketbeforepassingthis
ontothenetworkstackforreceiveprocessing.ThisreducesCPUutilizationand
improvespeakthroughputwhentheCPUisfullyutilized.TheeffectivenessofLRO
isboundedbytheinterruptmoderationdelay,andislimitedifinterruptmoderation
isdisabled(seeInterruptModeration(InterruptCoalescing)onpage307).Enabling
LROdoesnotitselfnegativelyimpactlatency.
TheSolarflarenetworkadapterdriverenablesLRObydefault.
LROischangeddynamicallyusingifconfig.
ToenableLRO,wheresfxge<n>istheinterfacename:
#ifconfigsfxge<n>lro
TodisableLRO:
#ifconfigsfxge<n>‐lro
VerificationoftheLROsettingmaybeperformedbyrunningifconfigwithno
optionsandcheckingtheLROvalueassociatedwiththeinterface.ThechangeinLRO
canbemadetopersistacrossrebootsbyeditingthe/etc/rc.conffileandadding
theappropriateparametertothesinglelineofinterfaceconfigurationdata.For
example:
SolarflareServerAdapterUserGuide
SolarflareAdaptersonFreeBSD
Issue20 ©SolarflareCommunications2017 310
ifconfig_sfxge<n>="inet<IPv4address>netmask<netmask>lro"
NOTE:LROshouldNOTbeenabledwhenusingthehosttoforwardpacketsfrom
oneinterfacetoanother.Forexample,ifthehostisperformingIProuting.
TCPProtocolTuning
TCPPerformancecanalsobeimprovedbytuningkernelTCPsettings.Settings
includeadjustingsendandreceivebuffersizes,connectionbacklog,congestion
control,etc.
Initialbufferingsettingsshouldprovidegoodperformance.Howeverforcertain
applications,tuningbuffersettingscansignificantlybenefitthroughput.Tochange
buffersettings,adjustthetcp_rmemandtcp_wmemusingthesysctlcommand:
• Receivebuffering:
sysctlnet.ipv4.tcp_rmem="<min><default><max>"
•Transmitbuffering:
sysctlnet.ipv4.tcp_wmem="<min><default><max>"
(tcp_rmemandtcp_wmemcanalsobeadjustedforIPV6andgloballywiththe
net.ipv6andnet.corevariableprefixesrespectively).
Typicallyitissufficienttotunejustthemaxbuffervalue.Itdefinesthelargestsize
thebuffercangrowto.Suggestedalternatevaluesaremax=500000(1/2Mbyte).
Factorssuchaslinklatency,packetlossandCPUcachesizeallinfluencetheaffectof
themaxbuffersizevalues.Theminimumanddefaultvaluescanbeleftattheir
defaultsminimum=4096anddefault=87380.
Seehttps://wiki.freebsd.org/NetworkPerformanceTuningformoredetails.
ReceiveSideScaling(RSS)
SolarflareadapterssupportReceiveSideScaling(RSS).RSSenablespacketreceive
processingtoscalewiththenumberofavailableCPUcores.RSSrequiresaplatform
thatsupportsMSIXinterrupts.
WhenRSSisenabledthecontrollerusesmultiplereceivequeuestodeliverincoming
packets.Thereceivequeueselectedforanincomingpacketischosentoensurethat
packetswithinaTCPstreamareallsenttothesamereceivequeuethisensures
thatpacketorderingwithineachstreamismaintained.Eachreceivequeuehasits
owndedicatedMSIXinterruptwhichideallyshouldbetiedtoadedicatedCPUcore.
ThisallowsthereceivesideTCPprocessingtobedistributedamongsttheavailable
CPUcores,providingaconsiderableperformanceadvantageoveraconventional
adapterarchitectureinwhichallreceivedpacketsforagiveninterfaceareprocessed
byjustoneCPUcore.
BydefaultthedriverenablesRSSandconfiguresoneRSSReceivequeueperCPU
core.ThenumberofRSSReceivequeuesischangedusingkenvtomodifythekernel
environmentvariablehw.sfxge.<n>.max_rss_channels.Thedrivermustbe
reloadedafterthechangeusingthekldloadcommand.
SolarflareServerAdapterUserGuide
SolarflareAdaptersonFreeBSD
Issue20 ©SolarflareCommunications2017 311
Toset<m>RSSReceivequeues,wheresfxge<n>istheinterfacename:
kenvhw.sfxge.<n>.max_rss_channels=<m>
kldload/boot/modules/sfxge.ko
Sometimes,itcanbedesirabletodisableRSSwhenrunningsinglestream
applications,sinceallinterfaceprocessingmaybenefitfromtakingplaceonasingle
CPU.Todoso,setasingleRSSReceivequeue:
kenvhw.sfxge.<n>.max_rss_channels=1
kldload/boot/modules/sfxge.ko
ThechangeinRSSReceivequeuescanbemadetopersistacrossrebootsbyediting
thefile/boot/loader.confandaddinghw.sfxge.<n>.max_rss_channels=<m>
onanewline.
IfnoMSI/MSIXinterruptsareavailablethenthedriverwillfallbacktouseasingle
legacyinterrupt.RSSwillbeunavailableforthatport.
NOTE:RSSalsoworksforUDPpackets.ForUDPtraffictheSolarflareadapterwill
selecttheReceiveCPUbasedonIPsourceanddestinationaddresses.Solarflare
adapterssupportIPv4andIPv6RSS.
OtherConsiderations
PCIExpressLaneConfigurations
ThePCIExpress(PCIe)interfaceusedtoconnecttheadaptertotheservercan
functionatdifferentspeedsandwidths.Thisisindependentofthephysicalslotsize
usedtoconnecttheadapter.Thepossiblewidthsaremultiplesx1,x2,x4,x8andx16
lanesof(2.5GbpsforPCIeGen1,5.0GbpsforPCIeGen2and8.0GbpsforPCIeGen
3)ineachdirection.Solarflareadaptersaredesignedforx8orx16laneoperation.
Onsomeservermotherboards,choiceofPCIeslotisimportant.Thisisbecause
someslots(includingthosethatarephysicallyx8orx16lanes)mayonlyelectrically
supportx4lanes.Inx4laneslots,SolarflarePCIeadapterswillcontinuetooperate,
butnotatfullspeed.TheSolarflaredriverwillwarnifitdetectsthattheadapteris
pluggedintoaPCIeslotwhichelectricallyhasfewerthanx8lanes.
SolarflareSFN5000andSFN6000seriesadaptersrequireaPCIeGen2x8slotfor
optimaloperation.SolarflareSFN7000andSFN8000seriesadaptersrequireaPCIe
Gen3x8orx16slotforoptimalperformance.TheSolarflaredriverwillwarnifit
detectsthattheadapterisplacedinasuboptimalslot.
Inaddition,thelatencyofcommunicationsbetweenthehostCPUs,systemmemory
andtheSolarflarePCIeadaptermaybePCIeslotdependent.Someslotsmaybe
“closertotheCPU,andthereforehavelowerlatencyandhigherthroughput.If
possible,installtheadapterinaslotwhichislocaltothedesiredNUMAnode
Pleaseconsultyourserveruserguideformoreinformation.
SolarflareServerAdapterUserGuide
SolarflareAdaptersonFreeBSD
Issue20 ©SolarflareCommunications2017 312
CPUPowerManagement
ThepowerdservicecontrolstheCPUclockspeeddynamicallyaccordingtocurrent
processingdemand.Forlatencysensitiveapplications,wheretheapplication
switchesbetweenhavingpacketstoprocessandhavingperiodsofidletimewaiting
toreceiveapacket,dynamicclockspeedcontrolmayincreasepacketlatency.
Solarflarerecommenddisablingthepowerdserviceifminimumlatencyisthemain
consideration.
Tostoppowerd,type:
/etc/rc.d/powerdstop
Todisablepowerdacrossreboots,ensurethissettingispresentin/etc/rc.conf:
powerd_enable="NO"
Memorybandwidth
Manychipsetsusemultiplechannelstoaccessmainsystemmemory.Maximum
memoryperformanceisonlyachievedwhenthechipsetcanmakeuseofall
channelssimultaneously.Thisshouldbetakenintoaccountwhenselectingthe
numberofmemorymodules(DIMMs)topopulateintheserver.Foroptimal
memorybandwidthinthesystem,itislikelythat:
•allDIMMslotsshouldbepopulated
•allNUMAnodesshouldhavememoryinstalled.
Pleaseconsultthemotherboarddocumentationfordetails.
ServerMotherboard,ServerBIOS,ChipsetDrivers
Tuningorenablingothersystemcapabilitiesmayfurtherenhanceadapter
performance.Readersshouldconsulttheirserveruserguide.Possibleopportunities
includetuningPCIememorycontroller(PCIeLatencyTimersettingavailableinsome
BIOSversions).
TuningRecommendations
Thefollowingtablesproviderecommendationsfortuningsettingsfordifferent
applications.
Throughput‐Table74
Latency‐Table75
Forwarding‐Table76
SolarflareServerAdapterUserGuide
SolarflareAdaptersonFreeBSD
Issue20 ©SolarflareCommunications2017 313
RecommendedThroughputTuning
Table74showsrecommendedtuningsettingsforthroughput:
RecommendedLatencyTuning
Table75showsrecommendedtuningsettingsforlatency:
Table74:ThroughputTuningSettings
TuningParameter How?
MTUSize Configuretomaximumsupportedbynetwork:
ifconfigsfxge<n>mtu<size>
Interruptmoderation Leaveatdefault(Enabled).
TCP/IPChecksumOffload Leaveatdefault(Enabled).
TCPSegmentationOffload Leaveatdefault(Enabled).
TCPLargeReceiveOffload Leaveatdefault(Enabled).
TCPProtocolTuning Leaveatdefault
ReceiveSideScaling(RSS) Applicationdependent
BufferAllocationMethod Leaveatdefault.Someapplicationsmay
benefitfromspecificsetting.
PCIExpressLaneConfiguration Ensuretheadapterisinanx8slot(2.0orlater),
andthatcurrentspeed(notthesupported
speed)readsbackas“x8and5GT/s”,or“x8and
8GT/s”,or“x8andUnknown.
CPUPowerManagement Leaveenabled
Memorybandwidth Ensurememoryutilizesallmemorychannels
onsystemmotherboard
Table75:LatencyTuningSettings
TuningParameter How?
MTUSize Configuretomaximumsupportedbynetwork:
ifconfigsfxge<n>mtu<size>
Interruptmoderation Disablewith:
sysctldev.sfxge.<n>.int_mod=0
TCP/IPChecksumOffload Leaveatdefault(Enabled).
TCPSegmentationOffload Leaveatdefault(Enabled).
SolarflareServerAdapterUserGuide
SolarflareAdaptersonFreeBSD
Issue20 ©SolarflareCommunications2017 314
RecommendedForwardingTuning
Table76showsrecommendedtuningsettingsforforwarding:
TCPLargeReceiveOffload Disablewith:
ifconfigsfxge<n>‐lro
TCPProtocolTuning Leaveatdefault,butchangingdoesnotimpact
latency
ReceiveSideScaling Applicationdependent
BufferAllocationMethod Leaveatdefault.Someapplicationsmay
benefitfromspecificsetting.
PCIExpressLaneConfiguration Ensuretheadapterisinanx8slot(2.0orlater),
andthatcurrentspeed(notthesupported
speed)readsbackas“x8and5GT/s”,or“x8and
8GT/s”,or“x8andUnknown.
CPUPowerManagement Disablewith:
/etc/rc.d/powerdstop
Memorybandwidth Ensurememoryutilizesallmemorychannels
onsystemmotherboard
Table76:ForwardingTuningSettings
TuningParameter How?
MTUSize Configuretomaximumsupportedbynetwork:
ifconfigsfxge<n>mtu<size>
Interruptmoderation Configureanexplicitinterruptmoderation
intervalwith:
sysctldev.sfxge.<n>.int_mod=150
TCP/IPChecksumOffload Leaveatdefault(Enabled).
TCPSegmentationOffload Leaveatdefault(Enabled).
TCPLargeReceiveOffload Disablewith:
ifconfigsfxge<n>‐lro
TCPProtocolTuning Leaveatdefault
ReceiveSideScaling(RSS) Leaveatdefault
Table75:LatencyTuningSettings
TuningParameter How?
SolarflareServerAdapterUserGuide
SolarflareAdaptersonFreeBSD
Issue20 ©SolarflareCommunications2017 315
6.11ModuleParameters
Table77liststheavailableparametersintheSolarflareFreeBSDdrivermodule:
•allparametershaveahw.sfxge.prefix
•forexample,thefullnameoftheparametershownasrx_ringis
hw.sfxge.rx_ring:
BufferAllocationMethod Leaveatdefault.Someapplicationsmay
benefitfromspecificsetting.
PCIExpressLaneConfiguration Ensuretheadapterisinanx8slot(2.0orlater),
andthatcurrentspeed(notthesupported
speed)readsbackas“x8and5GT/s”,or“x8and
8GT/s”,or“x8andUnknown.
CPUPowerManagement Leaveenabled
Memorybandwidth Ensurememoryutilizesallmemorychannels
onsystemmotherboard
Table76:ForwardingTuningSettings
TuningParameter How?
Table77:DriverModuleParameters
Parameter Description Possible
Value
Default
Value
rx_ring SizeofRxandTxrings(maximumnumberof
descriptors)perqueue.
Valuesusedbythedriver(defaultorspecified
whenmoduleisloaded)canbeobtainedusing
thesamesysctl.
512,
1024,
2048,
4096
1024
tx_ring SizeofRxandTxrings(maximumnumberof
descriptors)perqueue.
Valuesusedbythedriver(defaultorspecified
whenmoduleisloaded)canbeobtainedusing
thesamesysctl.
512,
1024,
2048
1024
lro.table_size SizeoftheLROhashtable.Mustbeapowerof
2.
uint 128
lro.chain_max MaximumlengthofchainsintheLROhash
table.
uint 20
lro.idle_ticks Time(injiffies)afterwhichanidleconnection's
LROstateisdiscarded.
uint 101
SolarflareServerAdapterUserGuide
SolarflareAdaptersonFreeBSD
Issue20 ©SolarflareCommunications2017 316
lro.slow_start_packets Numberofpacketsthatmustpassinorder
beforestartingLRO.
uint 20000
lro.loss_packets Numberofpacketsthatmustpassinorder
followinglossbeforerestartingLRO.
uint 20
tx_dpl_get_max Maximumnumberofpacketsqueuedinthe
softwaregetlistforatransmitqueue.
Thegetlistisusedtogetpacketstobeput
ontotheTxring.Itshouldbebigenoughto
avoiddropsoflocallygeneratedTCPpackets
whenmany(1000+)streamsarerunningin
parallel.Accessingthislistrequiresthe
transmitqueuelock.
Ifapacketisdroppedbecausethislimithas
beenexceeded,thesendergetsanENOBUFS
error,andthetx_get_overflowcounter
grows.
uint 65536
tx_dpl_get_non_tcp_max MaximumnumberofnonTCPpacketsqueued
inthesoftwaregetlistforatransmitqueue.
Thisparametercanrestrictutilizingthequeue
fornonTCP(e.g.UDP)packets,whichcan
easilyoverflowanyqueuebecausethereisno
backpressure.
Ifapacketisdroppedbecausethislimithas
beenexceeded,thesendergetsanENOBUFS
error,andthetx_get_non_tcp_overflow
countergrows.
uint 1024
tx_dpl_put_max Maximumnumberofpacketsqueuedinthe
softwareputlistforatransmitqueue.
Theputlistisusedtoputpacketstemporarily
whenthetransmitqueuelockcannotbe
obtained.Thepacketsaremovedtothegetlist
assoonasthetransmitqueuelockisacquired
andthequeueisserved.
Ifapacketisdroppedbecausethislimithas
beenexceeded,thesendergetsanENOBUFS
error,andthetx_put_overflowcounter
grows.
uint 1024
Table77:DriverModuleParameters
Parameter Description Possible
Value
Default
Value
SolarflareServerAdapterUserGuide
SolarflareAdaptersonFreeBSD
Issue20 ©SolarflareCommunications2017 317
6.12KernelandNetworkAdapterStatistics
TheLinuxcommandsysctlwilldisplayanextensiverangeofstatisticsoriginated
fromtheMAContheSolarflarenetworkadapter.Todisplaystatisticsusethe
followingcommand:
sysctldev.sfxge.<n>.stats
wheresfgxe<n>istheinterfacename.
Tablesbelowlistthecompleteoutputfromthesysctldev.sfxge.<n>.stats
command.See:
Table78onpage317
Table79onpage320
Table80onpage321.
Perportstatistics(Table80onpage321)arefromthephysicaladapterport.Other
statisticsarefromthespecifiedPCIefunction.
NOTE:sysctldev.sfxge.<n>.statsoutputdependsonthefeaturessupported
bytheadaptertype.
tso_fw_assisted WhethertoassistTSOusingthefirmware.
ApplicabletoSFN7000andSFN8000series
adaptersonly.
0|1 1
<n>.max_rss_channels ThenumberofRSSReceivequeuesfor
interfacesfxge<n>.SeeReceiveSideScaling
(RSS)onpage310.Theactualnumbermaybe
lowerduetoavailabilityofMSIXinterrupts.
Thereisamaximumof32MSIXinterrupts
acrossallnetworkdevices.
Ifnovalueisset(thedefault),thenumberis
limitedonlybythenumberofCPUsandMSIX
interrupts.
unit
Table77:DriverModuleParameters
Parameter Description Possible
Value
Default
Value
Table78:Eventqueuestatistics
Field Description
ev_all Totalnumberofevents.
ev_rx Numberofpacketsreceivedbydriver.
ev_rx_ok Numberofreceivedpacketsnotdiscarded.
SolarflareServerAdapterUserGuide
SolarflareAdaptersonFreeBSD
Issue20 ©SolarflareCommunications2017 318
ev_rx_recovery Notsupported.
ev_rx_frm_trunc Numberofpacketstruncatedbecausean
internalFIFOisfull.
AsapacketisreceiveditisfedbytheMACinto
a128KFIFO.IfforanyreasonthePCIinterface
cannotkeeppaceandisunabletoemptythe
FIFOatasufficientrate,theMACwillbeunable
tofeedmoreofthepackettotheFIFO.Inthis
eventtheMACwilltruncatethepacketmarking
itassuch,anddiscardtheremainder.Thedriver
onseeinga'partial'packetwhichhasbeen
truncatedwilldiscardit.
ev_rx_tobe_disc Numberofpacketsmarkedbytheadaptertobe
discardedbecauseofoneofthefollowing:
• mismatchedunicastaddressandunicast
promiscuousmodeisnotenabled
•packetisapauseframe
•packethaslengthdiscrepancy
•internalFIFOoverflowcondition
•length<60bytes.
ev_rx_pause_frm_err Numberofpausepacketsreceived.
ev_rx_buf_owner_id_err Eventcausedbyinternaldrivererror.
ev_rx_ipv4_hdr_chksum_err NumberofpacketsreceivedwithIPheader
checksumerror.
ev_rx_tcp_udp_chksum_err NumberofpacketsreceivedwithTCP/UDP
checksumerror.
ev_rx_eth_crc_err NumberofpacketsreceivedwhoseCRCdidnot
matchtheinternallygeneratedCRCvalue.
ev_rx_ip_frag_err NumberofIPfragmentsreceived(notethisis
notanerror).
ev_rx_mcast_pkt NumberofIPmulticastpacketsreceived.
ev_rx_mcast_hash_match NumberofIPmulticastpacketsreceivedwhich
havematchedtheIPmulticastmatchfilter.
ev_rx_tcp_ipv4 NumberofTCP/IPv4packetsreceived.
Table78:Eventqueuestatistics
Field Description
SolarflareServerAdapterUserGuide
SolarflareAdaptersonFreeBSD
Issue20 ©SolarflareCommunications2017 319
ev_rx_tcp_ipv6 NumberofTCP/IPv6packetsreceived.
ev_rx_udp_ipv4 NumberofUDP/IPv4packetsreceived.
ev_rx_udp_ipv6 NumberofUDP/IPv6packetsreceived.
ev_rx_other_ipv4 NumberofIPv4packetsreceivedwhicharenot
TCPorUDP.
ev_rx_other_ipv6 NumberofIPv6packetsreceivedwhicharenot
TCPorUDP.
ev_rx_non_ip NumberofpacketsreceivedwhicharenotIP.
ev_rx_overrun Numberofreceivedpacketsdroppedby
receiverbecauseofFIFOoverrun.
ev_tx Numberoftransmittedpackets.
ev_tx_wq_ff_full Numberoftransmittedpacketsdropped
becauseofFIFOoverrun.
ev_tx_pkt_err Numberoftransmittedpacketsdropped
becauseofdrivererror.
ev_tx_pkt_too_big Numberoftransmittedpacketsdropped
becauseofdrivererror.
ev_tx_unexpected Numberoftransmittedpacketsdropped
becauseofdrivererror.
ev_global Internaldriverevent.
ev_global_phy Internaldriverevent.
ev_global_mnt Internaldriverevent.
ev_global_rx_recovery Internaldriverevent.
ev_driver Internaldriverevent.
ev_driver_srm_upd_done Internaldriverevent.
ev_driver_tx_descq_fls_done Internaldriverevent.
ev_driver_rx_descq_fls_done Internaldriverevent.
ev_driver_rx_descq_fls_failed Internaldriverevent.
ev_driver_rx_dsc_error Internaldriverevent.
ev_driver_tx_dsc_error Internaldriverevent.
Table78:Eventqueuestatistics
Field Description
SolarflareServerAdapterUserGuide
SolarflareAdaptersonFreeBSD
Issue20 ©SolarflareCommunications2017 320
ev_drv_gen Internaldriverevent.
ev_mcdi_response Internaldriverevent.
Table79:Driverstatistics
Field Description
lro_merges NumberofpacketsabsorbedbyLRO.
lro_bursts NumberofburstsspottedbyLRO.
lro_slow_start Numberofpacketsnotmergedbecause
connectionmaybeinslowstart.
lro_misorder Numberofoutoforderpacketsseenintracked
streams.
lro_too_many Incrementedwhenthedriveristryingtotrack
toomanystreams.
lro_new_stream Numberofdistinctstreamsthedriverhas
tracked.
lro_drop_idle Numberofstreamsdiscardedbecausethey
wentidle.
lro_drop_closed NumberofstreamsthathaveseenaFINorRST.
tso_bursts NumberoftimesTSOtransmitinvokedbythe
kernel.
tso_packets NumberofpacketssentviatheTSOtransmit
path.
tso_long_headers Numberofpacketswithheaderstoolongfor
standardblocks.
tx_collapses Numberofpacketswithtoomanyfragments
collapsed.
tx_drops Numberofpacketsdroppedbythedriver
becauseof:
•transmitqueueininappropriatestate
•memoryallocationorDMAmapping
failuresrequiredtohandlepacketwith
longheaderbyTSO
• mbufcollapsefailure.
Table78:Eventqueuestatistics
Field Description
SolarflareServerAdapterUserGuide
SolarflareAdaptersonFreeBSD
Issue20 ©SolarflareCommunications2017 321
tx_get_overflow Numberofpacketsearlydroppedbythedriver
becauseofsoftwaretransmitqueueoverflow
(seehw.sfxge.tx_dpl_get_maxand
hw.sfxge.tx_dpl_put_maxinTable77on
page315).
tx_put_overflow Numberofpacketsearlydroppedbythedriver
becauseofsoftwaretransmitqueueoverflow
(seehw.sfxge.tx_dpl_get_maxand
hw.sfxge.tx_dpl_put_maxinTable77on
page315).
tx_get_non_tcp_overflow NumberofnonTCPpacketsearlydroppedby
thedriverbecauseofsoftwaretransmitqueue
limitfornonTCPpackets(see
hw.sfxge.tx_dpl_get_non_tcp_maxin
Table77onpage315).
tx_netdown_drops Numberofpacketsearlydroppedbythedriver
becauseoflinkisdown.
tso_pdrop_too_many NumberofTSOpacketspartiallydroppedby
thedriverbecauseTSOgeneratestoomany
segments(mostlikelybecauseoftinyMSS).
tso_pdrop_no_rsrc NumberofTSOpacketspartiallydroppedby
thedriverbecausethepacketheaderistoobig
andrequirespersegmentmemoryallocation
andDMAmappingwhichfailed.
Table80:Portstatistics
Field Description
rx_octets Numberofbytesreceived.Notincludecollided
bytes.
rx_pkts Numberofpacketsreceived.
rx_unicst_pkts Numberofunicastpacketsreceived.
rx_multicst_pkts Numberofmulticastpacketsreceived.
rx_brdcst_pkts Numberofbroadcastedpacketsreceived.
rx_pause_pkts Numberofpauseframesreceivedwithvalid
pauseop_code.
Table79:Driverstatistics
Field Description
SolarflareServerAdapterUserGuide
SolarflareAdaptersonFreeBSD
Issue20 ©SolarflareCommunications2017 322
rx_le_64_pkts Numberofpacketsreceivedwherethelengthis
lessthanorequalto64bytes.
rx_65_to_127_pkts Numberofpacketsreceivedwherethelengthis
between65and127bytes.
rx_128_to_255_pkts Numberofpacketsreceivedwherethelengthis
between128and255bytes.
rx_256_to_511_pkts Numberofpacketsreceivedwherethelengthis
between256and511bytes.
rx_512_to_1023_pkts Numberofpacketsreceivedwherethelengthis
between512and1023bytes.
rx_1024_to_15xx_pkts Numberofpacketsreceivedwherethelengthis
between1024and1518bytes(1522withVLAN
tag).
rx_ge_15xx_pkts Numberofpacketsreceivedwherethelengthis
between1518bytes(1522withVLANtag)and
9000bytes.
rx_errors Numberofpacketsreceivedwitherrors.
rx_fcs_errors NumberofpacketsreceivedwithFCSerrors.
rx_drop_events Numberofpacketsdroppedbyreceiver.
rx_false_carrier_errors Countoftheinstancesoffalsecarrierdetected.
Falsecarrierisactivityonthereceivechannel
thatdoesnotresultinapacketreceiveattempt
beingmade.
rx_symbol_errors Porterrorcondition.
rx_align_errors Porterrorcondition.
rx_internal_errors Porterrorcondition.
rx_jabber_pkts Porterrorcondition.
rx_lane0_char_err Porterrorcondition.
rx_lane1_char_err Porterrorcondition.
rx_lane2_char_err Porterrorcondition.
rx_lane3_char_err Porterrorcondition.
rx_lane0_disp_err Porterrorcondition.
Table80:Portstatistics
Field Description
SolarflareServerAdapterUserGuide
SolarflareAdaptersonFreeBSD
Issue20 ©SolarflareCommunications2017 323
rx_lane1_disp_err Porterrorcondition.
rx_lane2_disp_err Porterrorcondition.
rx_lane3_disp_err Porterrorcondition.
rx_match_fault Numberofpacketsreceivedwhichdidnot
matchanyfilter.
rx_nodesc_drop_cnt Numberofpacketsdroppedbythenetwork
adapterbecauseofalackofRXdescriptorsin
theRXqueue.
PacketscanbedroppedbytheNICwhenthere
areinsufficientRXdescriptorsintheRXqueue
toallocatetothepacket.Thisproblemoccursif
thereceiverateisveryhighandthenetwork
adapterreceivecycleprocesshasinsufficient
timebetweenprocessingtorefillthequeue
withnewdescriptors.
Anumberofdifferentstepscanbetriedto
resolvethisissue:
• DisabletheirqbalancedaemonintheOS
• Distributethetrafficloadacrossthe
availableCPU/coresbysetting
rss_cpus=cores.RefertoReceiveSide
Scalingsection
•Increasereceivequeuesizeusingethtool.
tx_octets Numberofbytestransmitted.
tx_pkts Numberofpacketstransmitted.
tx_unicst_pkts Numberofunicastpacketstransmitted.
Includesflowcontrolpackets.
tx_multicst_pkts Numberofmulticastpacketstransmitted.
tx_brdcst_pkts Numberofbroadcastpacketstransmitted.
tx_pause_pkts Numberofpauseframestransmittedwithvalid
pauseop_code.
tx_le_64_pkts Numberofframestransmittedwherethe
lengthislessthanorequalto64bytes.
tx_65_to_127_pkts Numberofframestransmittedwherethe
lengthisbetween65and127bytes
Table80:Portstatistics
Field Description
SolarflareServerAdapterUserGuide
SolarflareAdaptersonFreeBSD
Issue20 ©SolarflareCommunications2017 324
tx_128_to_255_pkts Numberofframestransmittedwherethe
lengthisbetween128and255bytes
tx_256_to_511_pkts Numberofframestransmittedwherethe
lengthisbetween256and511bytes
tx_512_to_1023_pkts Numberofframestransmittedwherelengthis
between512and1023bytes
tx_1024_to_15xx_pkts Numberofframestransmittedwherethe
lengthisbetween1024and1518bytes(1522
withVLANtag).
tx_ge_15xx_pkts Numberofframestransmittedwherelengthis
between1518bytes(1522withVLANtag)and
9000bytes.
tx_errors Porterrorcondition.
tx_sgl_col_pkts Porterrorcondition.
tx_mult_col_pkts Porterrorcondition.
tx_ex_col_pkts Porterrorcondition.
tx_late_col_pkts Porterrorcondition.
tx_def_pkts Porterrorcondition.
tx_ex_def_pkts Porterrorcondition.
Table80:Portstatistics
Field Description
SolarflareServerAdapterUserGuide
SolarflareAdaptersonFreeBSD
Issue20 ©SolarflareCommunications2017 325
Netstatstatistics
TheLinuxcommandnetstatalsodisplayssomeofthesestatistics.Theyare
periodicallyupdatedfromtheportanddriverstatistics.SeeTable81:
Table81:Netstatstatistics
Field Value
Ipkts rx_pkts
Ierrs rx_errors
Idrop 0
Ibytes rx_octets
Opkts tx_pkts
Oerrs tx_errors+tx_drops+get_overflow+get_non_tcp_overflow+
put_overflow+netdown_drops+tso_pdrop_too_many+
tso_pdrop_no_rsrc
Obytes tx_octets
Coll tx_sgl_col_pkts+tx_mult_col_pkts+tx_ex_col_pkts+
tx_late_col_pkts
SolarflareServerAdapterUserGuide
Issue20 ©SolarflareCommunications2017 326
7SRIOVVirtualizationUsingKVM
7.1Introduction
ThischapterdescribesSRIOVandvirtualizationusingLinuxKVMandSolarflare
SFN7000orSFN8000seriesadapters.
SRIOVenabledonSolarflareadaptersprovidesacceleratedcutthrough
performanceandisfullycompatiblewithhypervisorbasedservicesand
managementtools.TheadvanceddesignofSolarflareSFN7000andSFN8000series
adaptersincorporatesanumberoffeaturestosupportSRIOV.Thesefeaturescan
besummarizedasfollows:
•PCIeVirtualFunctions(VF).
APCIephysicalfunction,PF,cansupportaconfigurablenumberofPCIevirtual
functions.Intotal240VFscanbeallocatedbetweenthePFs.Theadaptercan
alsosupportatotalof2048MSIXinterrupts.
•Layer2SwitchingCapability.
Alayer2switchconfiguredinfirmwaresupportsthetransportofnetwork
packetsbetweenPCIphysicalfunctions(PF),Virtualfunctions(VF)andthe
externalnetwork.Thisallowsreceivedpacketstobereplicatedacrossmultiple
PFs/VFsandallowspacketstransmittedfromonePFtobereceivedonanother
PForVF.
Figure48:PerAdapter‐ConfigurationOptions
SolarflareServerAdapterUserGuide
SRIOVVirtualizationUsingKVM
Issue20 ©SolarflareCommunications2017 327
SupportedPlatforms
Host
•RedHatEnterpriseLinux6.5‐7.0KVM
GuestVM
•RedHatEnterpriseLinux5.x,6.xand7.x
AccelerationofguestVirtualMachines(VM)runningother(nonLinux)operating
systemsarenotcurrentlysupported,howeverotherschemes,forexample,aKVM
directbridgedconfigurationusingtheWindowsvirtionetdrivercouldbeused.
Driver/Firmware
Featuresdescribedinthechapterrequirethefollowing(minimum)Solarflaredriver
andfirmwareversions.
#ethtool‐ieth<N>
driver:sfc
version:4.4.1.1017
firmwareversion:4.4.2.1011rx0tx0
Theadaptermustbeusingthefullfeaturefirmwarevariantwhichcanbeselected
usingthesfbootutilityandconfirmedwithrx0tx0appearingaftertheversion
numberintheoutputfromethtoolasshownabove.
Thefirmwareupdateutility(sfupdate)andbootROMconfigurationtool(sfboot)
areavailableintheSolarflareLinuxUtilitiespackage(SF107601LSissue28or
later).
Platformsupport‐SRIOV
BIOS
TouseSRIOVmodes,SRIOVmustbeenabledintheplatformBIOSwheretheactual
BIOSsettingcandifferbetweenmachines,butmaybeidentifiedasSRIOV,IOMMU
orVTdandVTxonanIntelplatform.
ThefollowinglinksidentifyLinuxRedHatdocumentationforSRIOVBIOSsettings.
https://access.redhat.com/documentation/enUS/Red_Hat_Enterprise_Linux/7/
html/Virtualization_Deployment_and_Administration_Guide/index.html
https://access.redhat.com/documentation/enUS/Red_Hat_Enterprise_Linux/6/
html/Virtualization_Administration_Guide/sectVirtualizationTroubleshooting
Enabling_Intel_VT_and_AMD_V_virtualization_hardware_extensions_in_BIOS.ht
ml
TheremaybeotherBIOSoptionswhichshouldbeenabledtosupportSRIOV,for
exampleonDELLserversthefollowingBIOSoptionmustalsobeenabled:
IntegratedDevices,SRIOVGlobalEnable
SolarflareServerAdapterUserGuide
SRIOVVirtualizationUsingKVM
Issue20 ©SolarflareCommunications2017 328
UsersareadvisedtoconsulttheservervendorBIOSoptionsdocumentation.
KernelConfiguration
OnanIntelplatform,theIOMMUmustbeexplicitlyenabledbyappending
intel_iommu=ontothekernellineinthe/boot/grub/grub.conffile.The
equivalentsettingonanAMDsystemisamd_iommu=on.
Solarflarerecommendsthatusersalsoenablethepci=reallockernelparameter
inthe/boot/grub/grub.conffile.Thisallowsthekerneltoreassignaddressesto
PCIeapertures(i.e.bridges,ports)inthesystemwhentheBIOSdoesnotallow
enoughPCIaperturesforthemaximumnumberofsupportedVFs.
KVM‐InterruptReMapping
TousePCIeVFpassthrough,theservermustsupportinterruptremapping.Ifthe
targetserverdoesnotsupportinterruptremappingitisnecessarytosetthe
followingoptioninausercreatedfilee.g.kvm_iommu_map_guest.confinthe/
etc/modprobe.ddirectory:
[RHEL6]optionskvmallow_unsafe_assigned_interrupts=1
[RHEL7]optionsvfio_iommu_type1allow_unsafe_assigned_interrupts=1
AlternativeRoutingIDInterpretation(ARI)
TheARIextensiontothePCIExpressBaseSpecificationextendsthecapacityofa
PCIeendpointbyincreasingthenumberofaccessiblefunctions(PF+VF)from8,up
to256.WithoutARIsupport‐whichisafeatureoftheserverhardwareandBIOS,a
serverhostingavirtualizedenvironmentwillbelimitedto8functions.Solarflare
SFN7000andSFN8000seriesadapterscanexposeupto16PFsand240VFsper
adapter.
Usersshouldconsulttheappropriateservervendordocumentationtoensurethat
thehostserversupportsARI.
SupportedAdapters
AllSolarflareSFN7000andSFN8000seriesadaptersfullysupportSRIOV.Features
describedinthischapterarenotsupportedbySolarflareSFN5000orSFN6000series
adapterswhichsupportalimitedSRIOVimplementation.
Thesfbootutilityallowstheusertoconfigure:
•ThenumberofPFsexposedtohostand/orVirtualMachine(VM).
•ThenumberVFsexposedtohostand/orVirtualMachine(VM).
•ThenumberofMSIXinterruptsassignedtoeachPForVF.
TheSolarflareimplementationusesasingledriver(sfc.ko)thatbindstobothPFsand
VFs.
SolarflareServerAdapterUserGuide
SRIOVVirtualizationUsingKVM
Issue20 ©SolarflareCommunications2017 329
sfboot‐ConfigurationOptions
Adapterconfigurationoptionsaresetusingthesfbootutilityv4.5.0orlaterfrom
theSolarflareLinuxUtilitiespackage(SF107601LSissue28orlater).Thefirmware
variantmustbesettofullfeature/Virtualization.
#sfbootfirmwarevariant=fullfeature
Tocheckthecurrentadapterconfigurationrunthesfbootcommand:
#sfboot
Solarflarebootconfigurationutility[v4.5.0]
CopyrightSolarflareCommunications20062014,Level5Networks20022005
eth5:
BootimageOptionROMonly
LinkspeedNegotiatedautomatically
Linkupdelaytime5seconds
Bannerdelaytime2seconds
Bootskipdelaytime5seconds
BoottypeDisabled
PhysicalFunctionsperport1
MSIXinterruptlimit32
NumberofVirtualFunctions2
VFMSIXinterruptlimit8
Firmwarevariantfullfeature/virtualization
InsecurefiltersDisabled
MACspoofingDisabled
VLANtagsNone
SwitchmodeSRIOV
Forsomeconfigurationoptionchangesusingsfboot,theservermustbepower
cycled(poweroff/poweron)beforethechangesareeffective.sfbootwilldisplaya
warningwhenthisisrequired.
Table82identifiessfbootSRIOVconfigurableoptions.
Table82:sfboot‐SRIOVoptions
Option DefaultValue Description
pfcount=<n> 1NumberofPCIePFsperphysicalport.
MACaddressassignmentsmay
change,afternextreboot,following
changeswiththisoption.
pfvlans None AcommaseparatedlistofVLANtags
foreachPF.
sfbootpfvlans=0,100,110,120
ThefirsttagisassignedtothefirstPF,
thereaftertagsareassignedtoPFsin
(lowest)MACaddressorder.
SolarflareServerAdapterUserGuide
SRIOVVirtualizationUsingKVM
Issue20 ©SolarflareCommunications2017 330
macspoofing disabled Ifenabled,nonprivilegedfunctions
maycreateunicastfiltersforMAC
addressesthatarenotassociatedwith
themselves.
Thisshouldbeusedwhenusing
bondedinterfaceswhereabondslave
inheritsthebondmasterhardware
address.
msixlimit=<n> 32 NumberofMSIXinterruptsassigned
toeachPF.Theadaptersupportsa
maximum2048interrupts.The
specifiedvalueforaPFmustbea
powerof2.
switchmode=<mode> default Specifiesthemodeofoperationthat
theportwillbeusedin:
default‐singlePFcreated,zeroVFs
created.
sriov‐SRIOVenabled,singlePF
created,VFsconfiguredwithvf
count.
partitioning‐PFsconfiguredwith
pfcount,VFsconfiguredwithvf
count.SeeNICPartitioningonpage74
fordetails.
partitioningwithsriov‐SRIOV
enabled,PFsconfiguredwithpf
count,VFsconfiguredwithvfcount.
SeeNICPartitioningonpage74for
details.
pfiov‐PFIOVenabled,PFsconfigured
withpfcount,VFsnotsupported.
Layer2switchingbetweenPFs.
vfcount=<n> 240 NumberofvirtualfunctionsperPF.
Table82:sfboot‐SRIOVoptions
Option DefaultValue Description
SolarflareServerAdapterUserGuide
SRIOVVirtualizationUsingKVM
Issue20 ©SolarflareCommunications2017 331
7.2SRIOV
InthesimplestofSRIOVsupportedconfigurationseachphysicalportisexposedas
asinglePF(adapterdefault)andupto240VFs.
TheSolarflarenetdriver(sfc.ko)willdetectthatPF/VFsarepresentfromthesfboot
configurationandautomaticallyconfigurethevirtualadaptersandvirtualportsas
required.
Adapterfirmwarewillalsoconfigurethefirmwareswitchingfunctionsallowing
packetstopassbetweenPFandVFsorfromVFtoVF.
Figure49:SRIOV‐SinglePF,MultipleVFs
vfmsixlimit=<n> 8NumberofMSIXinterruptsperVF.
Theadaptersupportsamaximum
2048interrupts.Thespecifiedvalue
foraPFmustbeapowerof2.
insecure_filters=
<enabled|disabled>
disabled Whenenabled,afunction(PForVF)
caninsertfiltersnotqualifiedbyits
ownpermanentMACaddress.
Table82:sfboot‐SRIOVoptions
Option DefaultValue Description
SolarflareServerAdapterUserGuide
SRIOVVirtualizationUsingKVM
Issue20 ©SolarflareCommunications2017 332
• WithnoVLANconfiguration,thePFsandVFsareinthesameEthernetlayer2
broadcastdomaini.e.apacketbroadcastfromthePFwouldbereceivedbyall
VFs.VLANtagscanoptionallybeassignedtoVFsusingstandardlibvirt
commands.
•TheL2switchsupportsreplicationofreceived/transmittedbroadcastpackets
toallfunctions.
•TheL2switchwillreplicatereceived/transmittedmulticastpacketstoall
functionsthathavesubscribed.
•TheMUXERfunctionisafirmwareenabledlayer2switchingfunctionfor
transmitandreceivetraffic.
Intheexampleabovetherearenovirtualmachines(VM)created.Network
interfacesforthePFandeachVFwillappearinthehost.AnsfcNICdriverloadedin
thehostwillidentifythePFandeachVFasindividualnetworkinterfaces.
SRIOVConfiguration
EnsureSRIOVandtheIOMMUareenabledonthehostserverkernelcommandline
‐RefertoPlatformsupport‐SRIOVonpage327.
1Theexampleconfigures1PFperport(default),2VFsperPF):
sfbootswitchmode=sriovpfcount=1vfcount=2
Solarflarebootconfigurationutility[v4.5.0]
CopyrightSolarflareCommunications20062014,Level5Networks2002
2005
eth8:
BootimageOptionROMonly
LinkspeedNegotiatedautomatically
Linkupdelaytime5seconds
Bannerdelaytime2seconds
Bootskipdelaytime5seconds
BoottypeDisabled
PhysicalFunctionsperport1
MSIXinterruptlimit32
NumberofVirtualFunctions2
VFMSIXinterruptlimit8
Firmwarevariantfullfeature/virtualization
InsecurefiltersDisabled
MACspoofingDisabled
VLANtagsNone
SwitchmodeSRIOV
2CreateVFs‐seeEnablingVirtualFunctionsonpage348.
3Theservershouldbecoldrebootedfollowingchangesusingsfboot.Following
thereboot,ThePFandVFswillbevisibleinthehostusingtheifconfig
commandandlspci(theoutputbelowisfromadualportadapter.VFsare
showninboldtext):
#lspci‐d1924:
03:00.0Ethernetcontroller:SolarflareCommunicationsSFC9120(rev01)
03:00.1Ethernetcontroller:SolarflareCommunicationsSFC9120(rev01)
SolarflareServerAdapterUserGuide
SRIOVVirtualizationUsingKVM
Issue20 ©SolarflareCommunications2017 333
03:00.2Ethernetcontroller:SolarflareCommunicationsDevice1903(rev01)
03:00.3Ethernetcontroller:SolarflareCommunicationsDevice1903(rev01)
03:00.4Ethernetcontroller:SolarflareCommunicationsDevice1903(rev01)
03:00.5Ethernetcontroller:SolarflareCommunicationsDevice1903(rev01)
4Toidentifywhichphysicalportagivennetworkinterfaceisusing:
#cat/sys/class/net/eth<N>/device/physical_port
5ToidentifywhichPFagivenVFisassociatedwithusethefollowingcommand
(inthisexamplethereare4VFsassignedtoPFeth4):
#iplinkshow
19:eth4:<NOCARRIER,BROADCAST,MULTICAST,UP>mtu1500qdiscmqstateDOWNqlen1000
link/ether00:0f:53:21:00:61brdff:ff:ff:ff:ff:ff
vf0MAC76:c1:36:0a:be:2b
vf1MAC1e:b8:a8:ea:c7:fb
vf2MAC52:6e:32:3d:50:85
vf3MACb6:ad:a0:56:39:94
MACaddressesbeginning00:0f:53areSolarflaredesignatedhardwareaddresses.
MACaddressesassignedtoVFsintheaboveexampleoutputhavebeenrandomly
generatedbythehost.MACaddressesvisibletothehostwillbereplacedbylibvirt
generatedMACaddressesinaVM.
7.3KVMNetworkArchitectures
ThissectionidentifiesSRIOVandtheLinuxKVMvirtualizationinfrastructure
configurationstoconsumeadapterportPhysicalFunctions(PF)andVirtual
Functions(VF).
KVMlibvirtBridgedonpage333
KVMDirectBridgedonpage337
KVMLibvirtDirectPassthroughonpage340
KVMLibvirtNetworkHostdevonpage343
GeneralConfigurationonpage348
EnablingVirtualFunctionsonpage348
Whenmigrationisnotaconsideration,Solarflarerecommendsthenetwork
hostdevconfigurationforhighestthroughputandlowestlatencyperformance
KVMlibvirtBridged
ThetraditionalmethodofconfiguringnetworkinginKVMvirtualizedenvironments
usestheparavirtualized(PV)driver,virtionet,inthevirtualmachineandthe
standardLinuxbridgeinthehost.
Thebridgeemulatesalayer2learningswitchtoreplicatemulticastandbroadcast
packetsinsoftwareandsupportsthetransportofnetworktrafficbetweenVMsand
thephysicalport.
SolarflareServerAdapterUserGuide
SRIOVVirtualizationUsingKVM
Issue20 ©SolarflareCommunications2017 334
ThisconfigurationusesstandardLinuxtoolsforconfigurationandneedsonlya
virtualizedenvironmentandguestoperatingsystem.
Performance(latency/throughput)willnotbeasgoodasanetworkhostdev
configurationbecausenetworktrafficmustpassviathehostkernel.
Figure50:KVM‐libvirtbridged
KVMlibvirtbridged‐Configuration
1EnsuretheSolarflareadapterdriver(sfc.ko)isinstalledonthehost.
2Inthehost,configurethePF:
#sfbootswitchmode=defaultpfcount=1
Thesfbootsettingsshownabovearethedefault(shippingstate)settingsfor
theSFN7000seriesadapter.Acoldrebootoftheserverisonlyrequiredwhen
changesaremadeusingsfboot.
3Createvirtualmachines:
VMscanbecreatedfromthestandardLinuxvirtmanagerGUIinterfaceor
theequivalentvirshcommandlinetool.Asroot,runthecommandvirt
managerfromaterminaltostarttheGUIinterface.AVMcanalsobecreated
fromanexistingVMXMLfile.
ThefollowingprocedureassumestheVMiscreated.Theexampleprocedure
willcreateabridge‘br1’andnetwork‘hostnetwork’toconnecttheVMtothe
Solarflareadapterviathebridge.
4Defineabridgein/etc/sysconfig/networkscripts/ifcfgbr1
DEVICE=br1
TYPE=Bridge
BOOTPROTO=none
ONBOOT=yes
DELAY=0
NM_CONTROLLED=no
SolarflareServerAdapterUserGuide
SRIOVVirtualizationUsingKVM
Issue20 ©SolarflareCommunications2017 335
5AssociatethebridgewiththerequiredSolarflarePF(HWADDDR)inaconfigfilein
/etc/sysconfig/networkscripts/ifcfgeth4(thisexampleuseseth4):
DEVICE=eth4
TYPE=Ethernet
HWADDR=00:0F:53:21:00:60
BOOTPROTO=none
ONBOOT=yes
BRIDGE=br1
6Bringupthebridge:
#servicenetworkrestart
7Thebridgewillbevisibleinthehostusingtheifconfigcommand:
#ifconfig‐a
br1Linkencap:EthernetHWaddr00:0F:53:21:00:60
inet6addr:fe80::20f:53ff:fe21:60/64Scope:Link
UPBROADCASTRUNNINGMULTICASTMTU:1500Metric:1
RXpackets:170errors:0dropped:0overruns:0frame:0
TXpackets:6errors:0dropped:0overruns:0carrier:0
collisions:0txqueuelen:0
RXbytes:55760(54.4KiB)TXbytes:468(468.0b)
8DefineanetworkinanXMLfilei.e.hostnetwork.xml:
<network>
<name>hostnetwork</name>
<forwardmode='bridge'/>
<bridgename="br1"/>
</network>
9Defineandstartthenetworkusingvirshnet<option>commands:
#virshnetdefinehostnetwork.xml
Networkhostnetworkdefinedfromhostnetwork.xml
#virshnetstarthostnetwork
Networkhostnetworkstarted
#virshnetautostarthostnetwork
Networkhostnetworkmarkedasautostarted
#virshnetlist‐‐all
NameStateAutostartPersistent
‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐
defaultactiveyesyes
hostnetworkactiveyesyes
10 Onthehostmachine,edittheVMXMLfile:
#virshedit<vmname>
11 AddthenetworkcomponenttotheVMXMLfile:
<interfacetype='network'>
<sourcenetwork='hostnetwork'/>
<modeltype='virtio'/>
</interface>
12 RestarttheVMaftereditingtheXMLfile.
#virshstart<vmname>
SolarflareServerAdapterUserGuide
SRIOVVirtualizationUsingKVM
Issue20 ©SolarflareCommunications2017 336
13 ThebridgedinterfaceisvisibleintheVMwhenviewedfromtheGUIVirtual
MachineManager:
Figure51:VirtualMachineManager‐Showingthenetwork/bridged
interface
XMLDescription
ThefollowingextractisfromtheVMXMLfileaftertheconfigurationprocedurehas
beenapplied(linenumbershavebeenaddedforeaseofdescription):
1.<interfacetype='bridge'>
2.<macaddress='52:54:00:96:0a:8a'/>
3.<sourcebridge='br1'/>
4.<modeltype='virtio'/>
5.<addresstype='pci'domain='0x0000'bus='0x00'slot='0x07'function='0x0'/>
6.</interface>
1Interfacetypemustbespecifiedbytheuseras‘bridge’.
2TheMACaddress.Ifnotspecifiedbytheuserthiswillbeautomaticallyassigned
arandomMACaddressbylibvirt.
3Thesourcebridgeascreatedinconfigurationstep4above.
4Modeltypemustbespecifiedbytheuseras‘virtio’.
5ThePFPCIeaddress(asknownbytheguest)willbeaddedautomaticallyby
libvirt.
ForfurtherinformationaboutthedirectbridgedconfigurationandXMLformats,
refertothefollowinglinks:http://libvirt.org/
formatdomain.html#elementsNICSBridge
SolarflareServerAdapterUserGuide
SRIOVVirtualizationUsingKVM
Issue20 ©SolarflareCommunications2017 337
KVMDirectBridged
InthisconfigurationmultiplemacvtapinterfacesareboundoverthesamePF.For
eachVMcreated,libvirtwillautomaticallyinstantiateamacvtapdriverinstanceand
themacvtapinterfaceswillbevisibleonthehost.
WheretheKVMlibvirtbridgedconfigurationusesthestandardLinuxbridge,adirect
bridgedconfigurationbypassesthisprovidinganinternalbridgingfunctionand
increasingperformance.
Whenusingmacvtapthereisnolinkstatepropagationtotheguestwhichisunable
toidentifyifaphysicallinkisupordown.
Macvtapdoesnotcurrentlyforwardmulticastjoinsfromthegueststothe
underlyingnetworkdriverwiththeresultthatallmulticasttrafficreceivedbythe
physicalportisforwardedtoallguests.Duetothislimitationthisconfigurationis
notrecommendedfordeploymentsthatuseanontrivialamountofmulticast
traffic.
GuestmigrationisfullysupportedasthereisnophysicalhardwarestateintheVM
guests.AguestcanbemigratedtoahostusingadifferentVForahostwithoutan
SRIOVcapableadapter.
Figure52:KVM‐directbridged
SolarflareServerAdapterUserGuide
SRIOVVirtualizationUsingKVM
Issue20 ©SolarflareCommunications2017 338
KVMdirectBridged‐Configuration
1EnsuretheSolarflareadapterdriver(sfc.ko)isinstalledonthehost.
2Inthehost,configurethePF.
#sfbootswitchmode=defaultpfcount=1
Thesfbootsettingsshownabovearethedefault(shippingstate)settingsfor
theSFN7000seriesadapter.Acoldrebootoftheserverisonlyrequiredwhen
changesaremadeusingsfboot.
3Createvirtualmachines:
VMscanbecreatedfromthestandardLinuxvirtmanagerGUIinterfaceor
theequivalentvirshcommandlinetool.Asroot,runthecommandvirt
managerfromaterminaltostarttheGUIinterface.AVMcanalsobecreated
fromanexistingVMXMLfile.
ThefollowingprocedureassumestheVMiscreated.Theexampleprocedure
willcreateaninterfaceconfigurationfileandconnecttheVMdirectlytothe
Solarflareadapter.
4CreateaconfigurationfilefortherequiredSolarflarePF(HWADDR)inaconfigfile
in/etc/sysconfig/networkscripts/ifcfgeth4(thisexampleuseseth4):
DEVICE=eth4
TYPE=Ethernet
HWADDR=00:0F:53:21:00:60
BOOTPROTO=none
ONBOOT=yes
5Bringuptheinterface:
#servicenetworkrestart
6Onthehostmachine,edittheVMXMLfile:
#virshedit<vmname>
7AddtheinterfacecomponenttotheVMXMLfile:
<interfacetype='direct'>
<sourcedev='eth4'mode='bridge'/>
<modeltype=’virtio’/>
</interface>
8RestarttheVMaftereditingtheXMLfile.
#virshstart<vmname>
9ThebridgedinterfaceisvisiblewhenviewedfromtheGUIVirtualMachine
Manager:
SolarflareServerAdapterUserGuide
SRIOVVirtualizationUsingKVM
Issue20 ©SolarflareCommunications2017 339
Figure53:VirtualMachineManager‐Showingthedirectbridgedinterface
XMLDescription
ThefollowingextractisfromtheVMXMLfileaftertheconfigurationprocedurehas
beenapplied(linenumbershavebeenaddedforeaseofdescription):
1.<interfacetype='direct'>
2.<macaddress='52:54:00:db:ab:ca'/>
3.<sourcedev='eth4'mode='bridge'/>
4.<modeltype='virtio'/>
5.<addresstype='pci'domain='0x0000'bus='0x00'slot='0x07'function='0x0'/>
6.</interface>
1Interfacetypemustbespecifiedbytheuserasdirect.
2TheMACaddress.Ifnotspecifiedbytheuserthiswillbeautomaticallyassigned
arandomMACaddressbylibvirt.
3Thesourcedevistheinterfaceidentifierfromthehost‐addedbytheuser.The
usershouldalsospecifythemodewhichmustbe‘bridge’.
4Ifnotspecifiedbytheuser,themodeltypewillbeautomaticallyassignedby
libvirtwhentheguestisstarted.Usevirtioforbestperformance.
5ThePFPCIeaddress(asknownbytheguest)willbeaddedautomaticallyby
libvirt
ForfurtherinformationaboutthedirectbridgedconfigurationandXMLformats,
refertothefollowinglink:
http://libvirt.org/formatdomain.html#elementsNICSBridge
SolarflareServerAdapterUserGuide
SRIOVVirtualizationUsingKVM
Issue20 ©SolarflareCommunications2017 340
KVMLibvirtDirectPassthrough
Usingalibvirtdirectpassthroughconfiguration,VFsareusedinthehostOSto
providenetworkaccelerationforguestVMs.Theguestcontinuestousea
paravirtualizeddriverandisunawarethisisbackedwithaVFfromthenetwork
adapter.
Figure54:SRIOVVFsusedinthehostOS
•TheSolarflarenetdriverisboundoverthetopofeachVF.
•EachmacvtapinterfaceisimplicitlycreatedbylibvirtoverasingleVFnetwork
interfaceandisnotvisibletothehostOS.
•Eachmacvtapinstancebuildsoveradifferentnetworkinterface‐sothereisno
implicitmacvtapbridge.
•Macvtapdoesnotcurrentlyforwardmulticastjoinsfromthegueststothe
underlyingnetworkdriverwiththeresultthatallmulticasttrafficreceivedby
thephysicalportisforwardedtoallguests.Duetothislimitationthis
configurationisnotrecommendedfordeploymentsthatuseanontrivial
amountofmulticasttraffic.
•Guestmigrationisfullysupportedasthereisnophysicalhardwarestateinthe
VMguests.AguestcanbereconfiguredtoahostusingadifferentVForahost
withoutanSRIOVcapableadapter.
•TheMACaddressfromtheVFispassedthroughtotheparavirtualizeddriver.
SolarflareServerAdapterUserGuide
SRIOVVirtualizationUsingKVM
Issue20 ©SolarflareCommunications2017 341
•BecausethereisnoVFpresentinaVM,OnloadandotherSolarflare
applicationssuchasSolarCapturecannotbeusedintheVM.
KVMLibvirtDirectPassthrough‐Configuration
1EnsuretheSolarflareadapterdriver(sfc.ko)isinstalledonthehost.
2Inthehost,configuretheswitchmode,PFandVFs:
#sfbootswitchmode=sriovpfcount=1vfcount=4
Acoldrebootoftheserverisrequiredwhenchangesaremadeusingsfboot.
3CreateVFsinthehost(exampleusesPFeth4):
echo2>/sys/class/net/eth4/device/sriov_numvfs
cat/sys/class/net/eth4/device/sriov_totalvfs
ForLinuxversionsearlierthanRHEL6.5seeEnablingVirtualFunctionson
page348.
4PFsandVFswillbevisibleusingthelspcicommand(VFsinbold):
#lspci‐D‐d1924:
0000:03:00.0Ethernetcontroller:SolarflareCommunicationsSFC9120
0000:03:00.1Ethernetcontroller:SolarflareCommunicationsSFC9120
0000:03:00.2Ethernetcontroller:SolarflareCommunicationsDevice1903
0000:03:00.3Ethernetcontroller:SolarflareCommunicationsDevice1903
0000:03:00.4Ethernetcontroller:SolarflareCommunicationsDevice1903
0000:03:00.5Ethernetcontroller:SolarflareCommunicationsDevice1903
VFswillalsobelistedusingtheifconfigcommand(abbreviatedoutput
below,fromadualportadapter,shows2xPFand4xVF.(pfcount=1vf
count=2).VFsareshowninbold).
eth4Linkencap:EthernetHWaddr00:0F:53:21:00:60
eth5Linkencap:EthernetHWaddr00:0F:53:21:00:61
eth6Linkencap:EthernetHWaddrAE:82:AB:C9:67:49
eth7Linkencap:EthernetHWaddr86:B4:C8:9E:27:D6
eth8Linkencap:EthernetHWaddr72:0B:C7:21:E1:59
eth9Linkencap:EthernetHWaddrD2:B7:68:54:35:A5
5Createvirtualmachines:
VMscanbecreatedfromthestandardLinuxvirtmanagerGUIinterfaceor
theequivalentvirshcommandlinetool.Asroot,runthecommandvirt
managerfromaterminaltostarttheGUIinterface.AVMcanalsobecreated
fromanexistingVMXMLfile.
ThefollowingprocedureassumestheVMiscreated.Theexampleprocedure
willcreateaninterfaceconfigurationfileforeachVFtobepassedthroughto
theVM.
6ForeachVFtobepassedthroughtoaVM,createaconfigurationfileinthe
/etc/sysconfig/networkscriptsdirectoryi.e.ifcfgeth6:
DEVICE=eth6
TYPE=Ethernet
HWADDR=AE:82:AB:C9:67:49
BOOTPROTO=none
ONBOOT=yes
SolarflareServerAdapterUserGuide
SRIOVVirtualizationUsingKVM
Issue20 ©SolarflareCommunications2017 342
Theaboveexampleisthefileifcfgeth6andidentifiestheMACaddress
assignedtotheVF.OnefileisrequiredforeachVF.
7Onthehostmachine,edittheVMXMLfile:
#virshedit<vmname>
8AddtheinterfacecomponenttotheVMXMLfilee.g:
<interfacetype='direct'>
<sourcedev='eth6'mode='passthrough'/>
<modeltype='virtio'/>
</interface>
OneinterfacetypecomponentisrequiredforeachVF.
9RestarttheVMaftereditingtheXMLfile.
#virshstart<vmname>
ThepassedthroughVFinterfaceisvisiblewhenviewedfromtheGUIVirtual
MachineManager
Figure55:VirtualMachineManager‐Showingthepassthroughinterface
XMLDescription
Thefollowing(example)extractisfromtheVMXMLfileafteraVFhasbeenpassed
throughtotheguestusingtheprocedureabove(linenumbershavebeenaddedfor
easeofdescription):
1.<interfacetype='direct'>
2.<macaddress='52:54:00:96:40:28'/>
3.<sourcedev='eth6'mode='passthrough'/>
4.<modeltype='virtio'/>
5.<addresstype='pci'domain='0x0000'bus='0x00'slot='0x07'function='0x0'/>
6.</interface>
SolarflareServerAdapterUserGuide
SRIOVVirtualizationUsingKVM
Issue20 ©SolarflareCommunications2017 343
1AdescriptionofhowtheVFinterfaceismanaged‐addedbytheuser.
2TheMACaddress.Ifnotspecifiedbytheuserthiswillbeautomaticallyassigned
arandomMACaddressbytheguestOS.TheusercanspecifyaMACaddress
wheneditingtheXMLfile.
3ThesourcedevistheVFinterfaceidentifier‐addedbytheuser.Theuser
shouldalsospecifythemodewhichmustbe‘passthrough’.
4Ifnotspecifiedbytheuser,themodeltypewillbeautomaticallyassignedby
libvirtwhentheguestisstarted.
5TheVFPCIeaddress(asknownbytheguest)willbeaddedautomaticallyby
libvirt.
ForfurtherinformationaboutthedirectpassthroughconfigurationandXML
formats,refertothefollowinglink:http://libvirt.org/
formatdomain.html#elementsNICSDirect
KVMLibvirtNetworkHostdev
NetworkHostdevexposesVFsdirectlyintoguestVMsallowingthedatapathtofully
bypassthehostOSandthereforeprovidesmaximumaccelerationfornetwork
traffic.
Figure56:SRIOVVFspassedtoguests
•Thehostdevconfigurationdeliversthehighestthroughputandlowestlatency
performance.Becausetheguestisdirectlylinkedtothevirtualfunction
thereforedirectlyconnectedtotheunderlyinghardware.
SolarflareServerAdapterUserGuide
SRIOVVirtualizationUsingKVM
Issue20 ©SolarflareCommunications2017 344
•MigrationisnotsupportedinthisconfigurationbecausetheVMhasknowledge
ofthenetworkadapterhardware(VF)presentintheserver.
•TheVFisvisibleintheguest.ThisallowsapplicationsusingtheVFinterfaceto
beacceleratedusingOpenOnloadortouseotherSolarflareapplicationssuch
asSolarCapture.
•TheSolarflarenetdriver(sfc.ko)needstobeinstalledintheguest.
KVMLibvirtnetworkhostdev‐Configuration
1CreatetheVMfromtheLinuxvirtmanagerGUIinterfaceorthevirsh
commandlinetool.
2InstallSolarflarenetworkdriver(sfc.ko)intheguestandhost.
3CreatetherequirednumberofVFs:
#sfbootswitchmode=sriovvfcount=4
Acoldrebootoftheserverisrequiredforthistobeeffective.
4FortheselectedPF‐configuretherequirednumberofVFse.g:
#echo4>/sys/class/net/eth8/device/sriov_numvfs
5VFswillnowbevisibleinthehost‐useifconfigandthelscpicommandto
identifytheEthernetinterfacesandPCIeaddresses(VFsshownbelowinbold
text):
#lspci‐D‐d1924:
0000:03:00.0Ethernetcontroller:SolarflareCommunicationsSFC9120(rev01)
0000:03:00.1Ethernetcontroller:SolarflareCommunicationsSFC9120(rev01)
0000:03:00.2Ethernetcontroller:SolarflareCommunicationsDevice1903(rev01)
0000:03:00.3Ethernetcontroller:SolarflareCommunicationsDevice1903(rev01)
0000:03:00.4Ethernetcontroller:SolarflareCommunicationsDevice1903(rev01)
0000:03:00.5Ethernetcontroller:SolarflareCommunicationsDevice1903(rev01)
6UsingthePCIeaddress,unbindtheVFstobepassedthroughtotheguestfrom
thehostsfcdrivere.g.:
#echo0000:03:00.5>/sys/bus/pci/devices/0000\:03\:00.5/driver/unbind
7CheckthattherequiredVFinterfaceisnolongervisibleinthehostusing
ifconfig.
8Onthehost,stopthevirtualmachine:
#virshshutdown<vmname>
9Onthehost,editthevirtualmachineXMLfile:
#virshedit<vmname>
10 ForeachVFthatistobepassedtotheguest,addthefollowing<interface
type>sectiontothefileidentifyingtheVFPCIeaddress(uselscpitoidentify
PCIeaddress):
<interfacetype='hostdev'managed='yes'>
<source>
<addresstype='pci'domain='0x0000'bus='0x03'slot='0x00'function='0x5'/>
</source>
</interface>
SolarflareServerAdapterUserGuide
SRIOVVirtualizationUsingKVM
Issue20 ©SolarflareCommunications2017 345
11 RestartthevirtualmachineinthehostandVFinterfaceswillbevisibleinthe
guest:
#virshstart<vmname>
Thefollowing(example)extractisfromtheVMXMLfileafteraVFhasbeenpassed
throughtotheguestusingtheprocedureabove(linenumbershavebeenaddedfor
easeofdescription):
1.<interfacetype='hostdev'managed='yes'>
2.<macaddress='52:54:00:d1:ec:85'/>
<source>
3.<addresstype='pci'domain='0x0000'bus='0x03'slot='0x00'function='0x5'/>
</source>
4.<aliasname='hostdev0'/>
5.<addresstype='pci'domain='0x0000'bus='0x00'slot='0x07'function='0x0'/>
</interface>
XMLDescription
1AdescriptionofhowtheVFinterfaceismanaged‐addedbyuser.
Whenmanaged=yes,theVFisdetachedfromthehostbeforebeingpassedto
theguestandtheVFwillbeautomaticallyreattachedtothehostafterthe
guestexits.
Ifmanaged=no,theusermustcallvirNodeDeviceDetach(orusethecommand
virshnodedevdetach)beforestartingtheguestorhotpluggingthedevice
andcallvirNodeDeviceReAttach(orusecommandvirshnodedev
reattach)afterhotunplugorafterstoppingtheguest.
2TheVFMACaddress.Ifnotspecifiedbytheuserthiswillbeautomatically
assignedarandomMACaddressbylibvirtTheusercanspecifyaMACaddress
wheneditingtheXMLfile.
3TheVFPCIeaddress,thisistheaddressoftheVFinterfaceasitisidentifiedin
thehost.ThisshouldbeenteredbytheuserwheneditingtheXMLfile.
4Ifnotspecifiedbytheuserthealiasnamewillbeautomaticallyassignedby
libvirtTheusercansupplyanaliaswheneditingtheXMLfile.
5TheVFPCIeaddress(asknownbytheguest)willbeaddedautomaticallyby
libvirt.
ForfurtherinformationaboutthehostdevconfigurationandXMLformats,referto
thefollowinglink:
http://libvirt.org/formatdomain.html#elementsNICSHostdev
SolarflareServerAdapterUserGuide
SRIOVVirtualizationUsingKVM
Issue20 ©SolarflareCommunications2017 346
7.4PFIOV
PhysicalFunctionI/OVirtualizationallowsPFstobepassedtoaVM.Althoughthis
configurationisnotwidelyused,itisincludedhereforcompleteness.Thismode
providesnoadvantageover“NetworkHostdev”andthereforeSolarflare
recommendsthatcustomersdeploy“NetworkhostdevinsteadofPFIOV.PFIOV
doesnotuseSRIOVanddoesnotrequireSRIOVhardwaresupport.
EachphysicalportispartitionedintoanumberofPFswitheachPFpassedtoa
differentVirtualMachine(VM).EachVMsupportsaTCP/IPstackandSolarflare
adapterdriver(sfc.ko).
ThismodeallowsswitchingbetweenPFsviatheLayer2switchfunctionconfigured
infirmware.
Figure57:PFIOV
•Upto16PFsand16MACaddressesaresupportedperadapter.
• WithnoVLANconfiguration,allPFsareinthesameEthernetlayer2broadcast
domaini.e.apacketbroadcastfromanyonePFwouldbereceivedbyallother
PFs.
•PFVLANtagscanoptionallybeassignedwhencreatingPFsusingthesfboot
utility.
•Thelayer2switchsupportsreplicationofreceived/transmittedbroadcast
packetstoallPFsandtotheexternalnetwork.
•Thelayer2switchsupportsreplicationofreceived/transmittedmulticast
packetstoallsubscribers.
•VFsarenotsupportedinthismode.
SolarflareServerAdapterUserGuide
SRIOVVirtualizationUsingKVM
Issue20 ©SolarflareCommunications2017 347
PFIOVConfiguration
ThesfbootutilityfromtheSolarflareLinuxUtilitiespackage(SF107601LS)isused
topartitionphysicalinterfacestotherequirednumberofPFs.
•Upto16PFsand16MACaddressesaresupportedperadapter.
•ThePFsettingappliestoallphysicalports.Portscannotbeconfigured
individually.
•vfcountmustbezero.
1Topartitionallports(exampleconfigures4PFsperport):
#sfbootswitchmode=pfiovpfcount=4
Solarflarebootconfigurationutility[v4.3.1]
CopyrightSolarflareCommunications20062014,Level5Networks2002
2005
eth5:
BootimageOptionROMonly
LinkspeedNegotiatedautomatically
Linkupdelaytime5seconds
Bannerdelaytime2seconds
Bootskipdelaytime5seconds
BoottypeDisabled
PhysicalFunctionsperport4
MSIXinterruptlimit32
NumberofVirtualFunctions0
VFMSIXinterruptlimit8
Firmwarevariantfullfeature/virtualization
InsecurefiltersDisabled
VLANtagsNone
SwitchmodePFIOV
2Arebootoftheserverisrequiredforthechangestobeeffective.
3FollowingrebootthePFswillbevisibleusingtheifconfigoripcommands‐
eachPFwillhaveauniqueMACaddress.Thelspcicommandwillalsoidentify
thePFs:
#lspci‐d1924:
07:00.0Ethernetcontroller:SolarflareCommunicationsDevice0903(rev01)
07:00.1Ethernetcontroller:SolarflareCommunicationsDevice0903(rev01)
07:00.2Ethernetcontroller:SolarflareCommunicationsDevice0903(rev01)
07:00.3Ethernetcontroller:SolarflareCommunicationsDevice0903(rev01)
07:00.4Ethernetcontroller:SolarflareCommunicationsDevice0903(rev01)
07:00.5Ethernetcontroller:SolarflareCommunicationsDevice0903(rev01)
07:00.6Ethernetcontroller:SolarflareCommunicationsDevice0903(rev01)
07:00.7Ethernetcontroller:SolarflareCommunicationsDevice0903(rev01)
SolarflareServerAdapterUserGuide
SRIOVVirtualizationUsingKVM
Issue20 ©SolarflareCommunications2017 348
7.5GeneralConfiguration
EnablingPhysicalFunctions
UsethesfbootutilityfromtheSolarflareLinuxUtilitiespackagetocreatePFs.Up
to16PFand16MACaddressesaresupportedperadapter.
sfbootpfcount=<N>
PFVLANtagscanalsobeassignedusingsfboot.
sfbootpfcount=4,pfvlan=100,110,200,210
ThefirstVLANtagisassignedtothefirstfunction,thereafterthetagsareappliedto
PFsinMACaddressorder.
EnablingVirtualFunctions
OnRHEL6.5andlaterversions,VFcreationiscontrolledthroughsysfs.Usethe
followingcommands(example)tocreateandviewcreatedVFs.
echo2>/sys/class/net/eth8/device/sriov_numvfs
cat/sys/class/net/eth8/device/sriov_totalvfs
OnkernelsnothavingthiscontrolviasysfstheSolarflarenetdrivermoduleoption
max_vfscanbeusedtoenableVFs.Themax_vfsvalueappliestoalladaptersand
canbesettoasingleintegeri.e.alladapterphysicalfunctionswillhavethesame
numberofVFs,orcanbesettoacommaseparatedlisttohavedifferentnumbers
ofVFsperPF.
Thedrivermoduleparametershouldbeenabledinausercreatedfile(e.g.
sfc.conf)inthe/etc/modprobe.ddirectoryandthesfcdrivermustbereloaded
followingchanges.
optionssfcmax_vfs=4
optionssfcmax_vfs=2,4,8
Whenspecifiedasacommaseparatedlist,thefirstVFcountisassignedtothePF
withthelowestindexi.e.thelowestMACaddress,thenthePFwiththenexthighest
MACaddressetc.IfthesfcdriveroptionisusedtocreateVFs,reloadthedriver:
modprobe‐rsfc
modprobesfc
VLANtagscanbedynamicallyassignedtoVFsusinglibvirtcommands,orusing
theipcommand:
iplinkvfNUM[macLLADDR][vlanVLANID]
ToensureVLANtagspersistafterreboot,thesecanbeconfiguredintheVMXML
file.
SolarflareServerAdapterUserGuide
SRIOVVirtualizationUsingKVM
Issue20 ©SolarflareCommunications2017 349
UsingOpenOnloadinaVirtualMachine
OnloadusersshouldrefertotheOnloadUserGuide(SF104474CD)forfurther
informationaboutusingOnloadinaKVM.
WhenOnloadandthesfcnetdriverhavebeeninstalledintheguest,thesfcdriver
moduleoptionnum_visisusedtoallocatetherequirednumberofvirtual
interfaces.OneVIisneededforeachOnloadstackusingaVF.
Drivermoduleoptionsshouldbeenabledinausercreatedfile(e.g.sfc.conf)inthe
/etc/modprobe.ddirectory.
optionssfcnum_vis=<num>
Reloadthedriveraftersetting/changingthisvalue:
#onload_toolreload
7.6FeatureSummary
Table83:FeatureSummary
Default SRIOV Partitioning Partitioning
+SRIOV
PFIOV
NumberofPFs(per
adapter)
numports numports numports
16
numports
16
numports
16
AllPFs(perport)must
beonuniqueVLANs
N/A N/A Yes Yes No
NumVFs(peradapter) 0>0,≤240 0>0,≤240 0
ModesuitableforPF
PCIepassthrough
No No No No Yes
ModesuitableforVF
PCIepassthrough
No Yes No Yes No
sfbootsettings switchmode
=default
switchmode
=sriov
switchmode
=partitioning
switchmode
=partitioning
withsriov
switchmode
=pfiov
pfcount=1 pfcount=1 pfcount>1 pfcount>1 pfcount>1
vfcount=0 vfcount>0 vfcount=0 vfcount>0 vfcount=0
L2switchingbetween
PFandassociatedVFs
N/A Yes N/A Yes N/A
L2switchingbetween
PFsonthesame
physicalport
N/A N/A No No Yes
SolarflareServerAdapterUserGuide
SRIOVVirtualizationUsingKVM
Issue20 ©SolarflareCommunications2017 350
7.7Limitations
UsersareadvisedtorefertotheSolarflarenetdriverreleasenotesfordetailsofall
limitations.
PerPortConfiguration
Forinitialreleases,allPFsonaphysicalporthavethesameexpansionROM
configurationwherePXE/UEFIsettingsarestored.ThismeansthatallPFswillPXE
bootornonewillattempttoPXEboot.UsersshouldensurethataDHCPserver
respondstothefirstMACaddress.
ThePF(pfcount)configurationisaglobalsettingandappliestoallphysicalportson
anadapter.Itisnotcurrentlypossibletoconfigureportsindividually.
PTP
PTPcanonlyrunontheprimaryphysicalfunctionofeachphysicalportandisnot
supportedonVFinterfaces.
SolarflareServerAdapterUserGuide
Issue20 ©SolarflareCommunications2017 351
8SRIOVVirtualizationUsingESXi
ThischapterincludesproceduresforinstallationandconfigurationofSolarflare
adaptersforSRIOVandVirtualizationdeploymentusingVMware®ESXi.Fordetails
ofinstallationandconfigurationonVMwarplatformsrefertoSolarflareAdapters
onVMwareonpage264.
8.1Introduction
ThischapterdescribesSRIOVandDirectPathI/OusingtheVMwareESXihypervisor
andSolarflareSFN7000andSFN8000seriesadapters.
SRIOVenabledonSolarflareadaptersprovidesacceleratedcutthrough
performanceandiscompatiblewithhypervisorbasedservicesandmanagement
tools.TheadvanceddesignofSolarflareSFN7000andSFN8000seriesadapters
incorporatesanumberofspecificfeatureswhendeployingtheadapterinto
virtualizedenvironments.
•PCIePhysicalFunctions(PF)
BypartitioningtheNIC,eachphysicalnetworkportcanbeexposedtothehost
asupto16PCIePhysicalFunctions(PF)witheachhavingauniqueinterface
nameanduniqueMACaddress.
•PCIeVirtualFunctions(VF)
APCIephysicalfunction,PF,cansupportaconfigurablenumberofPCIevirtual
functions.Intotal240VFscanbeallocatedbetweenthePFs.Theadaptercan
alsosupportatotalof2048MSIXinterrupts.
Figure58:PerAdapter‐ConfigurationOptions
SolarflareServerAdapterUserGuide
SRIOVVirtualizationUsingESXi
Issue20 ©SolarflareCommunications2017 352
FeaturesSupported
OnESXiSolarflareadapterssupportthefollowingdeployments:
RecommendedReading
TheinstructionsinthischapterfollowtheproceduresforVFandPFpassthroughas
documentedintheVMwareNetworkingUserGuideforESXi5.5.
PlatformCompatibility
SRIOVandDirectPathI/Oarenotsupportedonallserverplatformsandusersare
advisedtocheckservercompatibility.
DirectPathI/O‐PFPassthroughdoesnotrequireplatformSRIOVsupport.
•CheckforSRIOVsupportintheVMwarecompatibilitywebpage:
http://www.vmware.com/resources/compatibility/search.php
EnsuretheBIOShasallSRIOV/Virtualizationoptionsenabled.
•OnaserverwithSRIOVcorrectlyconfigured,identifyifVirtualFunctions(VF)
canbeexposedtothehostOS.Refertosfbootoptionsbelowfortheprocedure
toconfigureVFsontheSolarflareadapter.
BIOS
TouseSRIOVmodes,SRIOVmustbeenabledintheplatformBIOSwheretheactual
BIOSsettingcandifferbetweenmachines,butmaybeidentifiedasSRIOV,IOMMU
orVTdandVTxonanIntelplatform.
TheremaybeotherBIOSoptionswhichshouldbeenabledtosupportSRIOV,for
exampleonDELLserversthefollowingBIOSoptionmustalsobeenabled:
IntegratedDevices,SRIOVGlobalEnable
UsersareadvisedtoconsulttheservervendorBIOSoptionsdocumentation.
Table84:ESXiVirtualizationFeatures
Feature GuestOS
VFPassthrough Linux6.5to7.x
PFPassthrough(DirectPathI/O) Linux6.5to7.x
WindowsServer2012R2
SolarflareServerAdapterUserGuide
SRIOVVirtualizationUsingESXi
Issue20 ©SolarflareCommunications2017 353
SupportedPlatformOS
Host
•VMwareESXi5.5and6.0
• Solarflarev4.7(orlater)netdrivers
GuestVM
•RedHatEnterpriseLinux6.5to7.x
• WindowsServer2012R2
• Solarflarev4.5(orlater)netdrivers
AccelerationofVirtualMachines(VM)runningguestoperatingsystemsnotlisted
abovearenotcurrentlysupported.
SupportedAdapters
AllSolarflareSFN7000andSFN8000seriesadaptersfullysupportSRIOV.Features
describedinthischapterarenotsupportedbySolarflareSFN5000orSFN6000series
adapters.
SolarflareDriver/Firmware
Featuresdescribedinthechapterrequirethefollowing(minimum)Solarflaredriver
andfirmwareversions.
#ethtool‐ivmnic<N>
driver:sfc
version:4.7.0.1031
firmwareversion:4.7.0.1020rx0tx0
Theadaptermustbeusingthefullfeaturefirmwarevariantwhichcanbeselected
usingthesfbootutilityandconfirmedwithrx0tx0appearingaftertheversion
numberintheoutputfromethtoolasshownabove.
Thefirmwareupdateutility(sfupdate)andbootROMconfigurationtool(sfboot)
areavailableintheSolarflareLinuxUtilitiespackage(SF107601LSissue36or
later).
SolarflareServerAdapterUserGuide
SRIOVVirtualizationUsingESXi
Issue20 ©SolarflareCommunications2017 354
8.2ConfigurationProcedure‐SRIOV
UsethefollowingproceduretoconfiguretheadapterandserverforSRIOV.
InstalltheSolarflareDriverontheESXihostonpage354
InstallSolarflareUtilitiesontheESXihostonpage355
InstallSolarflareDriversintheGuestonpage354
ConfigureVFsontheHost/Adapteronpage357
VirtualMachineonpage358
vSwitchandPortGroupConfigurationonpage360
VFPassthroughonpage364
8.3ConfigurationProcedure‐DirectPathI/O
UsethefollowingproceduretoconfiguretheadapterandserverforPFpassthrough.
InstalltheSolarflareDriverontheESXihostonpage354
InstallSolarflareUtilitiesontheESXihostonpage355
InstallSolarflareDriversintheGuestonpage354
PartitiontheAdapteronpage370
VirtualMachineonpage358
MakePFPassthroughDevicesavailabletotheGuestonpage371
AssignPFPassthroughDevicestotheVMonpage372
ListingDevicesinaWindowsGuestonpage373
8.4InstallSolarflareDriversintheGuest
ForbothVFandPFpassthroughconfigurations,theSolarflareadapterdrivermust
beinstalledinthevirtualmachineguestOS.
DriversareavailablefromtheSolarflaredownloadsiteforLinuxandWindows
guests:https://support.solarflare.com/.
Driverinstallationproceduresonaguestarethesameasinstallationforahost.
8.5InstalltheSolarflareDriverontheESXihost
SolarflareVMwareESXidriversareavailablefrom:https://support.solarflare.com/.
RefertoInstallingSolarflareDriversandUtilitiesonVMwareonpage266for
instructionstoinstallVIBdriverpackagesthroughtheCLI.
SolarflareServerAdapterUserGuide
SRIOVVirtualizationUsingESXi
Issue20 ©SolarflareCommunications2017 355
8.6InstallSolarflareUtilitiesontheESXihost
Solarflareutilities‐includingsfboot,sfupdateandsfkeyaredistributedinthe
SolarflareLinuxUtilitiespackage(SF107601LSissue36orlater)from:
https://support.solarflare.com/.
RefertoSolarflareUtilitiesPackageonpage270forinstructionstoinstallthe
utilitiesontheESXihostserver.
NOTE:TheSolarflaredrivermustbeinstalledbeforeusingsfbootoranyofthe
utilities.
sfboot‐ConfigurationOptions
Thesfbootutilityallowstheusertoconfigure:
•ThenumberofPFsexposedperporttohostand/orVirtualMachine(VM).
•ThenumberVFsexposedperporttohostand/orVirtualMachine(VM).
•ThenumberofMSIXinterruptsassignedtoeachPForVF.
• FirmwareVariantandswitchmode.
Tocheckthecurrentadapterconfigurationrunthesfbootcommand:
#sfboot
Solarflarebootconfigurationutility[v4.7.0]
CopyrightSolarflareCommunications20062015,Level5Networks20022005
vmnic6:
BootimageDisabled
PhysicalFunctionsonthisport1
PFMSIXinterruptlimit32
VirtualFunctionsoneachPF4
VFMSIXinterruptlimit16
Portmode2x10G
FirmwarevariantFullfeature/virtualization
InsecurefiltersEnabled
MACspoofingDisabled
VLANtagsNone
SwitchmodeSRIOV
RXdescriptorcachesize32
TXdescriptorcachesize16
TotalnumberofVIs2048
RatelimitsNone
Eventmergetimeout8740nanoseconds
AnalternativebootableISOimageoftheSolarflareUtilitiesisavailablefromthe
SolarflaredownloadsiteunderDownloads>Linux>Misc.
SolarflareServerAdapterUserGuide
SRIOVVirtualizationUsingESXi
Issue20 ©SolarflareCommunications2017 356
FirmwareVariant
Thefirmwarevariantmustbesettofullfeature/virtualization.
#sfboot‐‐adapter=vmnic6firmwarevariant=fullfeature
SRIOV(VFPassthrough)sfbootSettings
Thefollowingexamplecreates4VFsforeachphysicalport.
#sfbootswitchmode=sriovpfcount=1vfcount=4
Whenusedwithoutthe‐‐adapteroption,thecommandappliestoalladapters
DirectPathI/O(PFPassthrough)sfbootSettings
ThefollowingexamplepartitionstheNICsothateachphysicalportisexposedas4
PCIePFs.
#sfbootswitchmode=partitioningpfcount=4vfcount=0
Forsomeconfigurationoptionchangesusingsfboot,theservermustbepower
cycled(poweroff/poweron)beforethechangesareeffective.sfbootwilldisplaya
warningwhenthisisrequired.
SolarflareServerAdapterUserGuide
SRIOVVirtualizationUsingESXi
Issue20 ©SolarflareCommunications2017 357
8.7ConfigureVFsontheHost/Adapter
ThefollowinghostprocedureisusedtoexposeVFsfromtheSolarflareadapter.
1SetthesfcdrivermoduleparameterfortherequirednumberofVFs:
esxclisystemmoduleparametersset‐msfc‐pmax_vfs=4
esxclisystemmoduleparameterslist‐msfc
2UsesfboottocreateVFsontheadapter:
sfbootswitchmode=sriovvfcount=4
Theservermustberestarted(poweroff/poweron)forthesechangestotake
effect.
3Followingrestart‐listVFsexposedinthehost:
#lspci|grepSolarflare
0000:04:00.0Networkcontroller:SolarflareSFC9120[vmnic6]
0000:04:00.1Networkcontroller:SolarflareSFC9120[vmnic7]
0000:04:00.2Networkcontroller:Solarflare[PF_0.4.0_VF_0]
0000:04:00.3Networkcontroller:Solarflare[PF_0.4.0_VF_1]
0000:04:00.4Networkcontroller:Solarflare[PF_0.4.0_VF_2]
0000:04:00.5Networkcontroller:Solarflare[PF_0.4.0_VF_3]
0000:04:00.6Networkcontroller:Solarflare[PF_0.4.1_VF_0]
0000:04:00.7Networkcontroller:Solarflare[PF_0.4.1_VF_1]
0000:04:01.0Networkcontroller:Solarflare[PF_0.4.1_VF_2]
0000:04:01.1Networkcontroller:Solarflare[PF_0.4.1_VF_3]
Theexampleaboveisadualportadapter.Eachphysicalportisexposedas1PF
and4VFs(PFsareshowninboldtext).
SolarflareServerAdapterUserGuide
SRIOVVirtualizationUsingESXi
Issue20 ©SolarflareCommunications2017 358
8.8VirtualMachine
TheproceduresintheChapterassumetheVMhasalreadybeencreated.Users
shouldconsulttheVMwaredocumentationtocreatetheVM.Therecommended
methodistousetheVMwarevSphereWebClient:
TheVMmustbecompatiblewithversion10(orlater).
VMCompatibility
TheVMmustbecompatiblewithESXi5.5(orlater).WhentheVMisnotcompatible,
thefollowingprocedureviathevSphereWebClientwillupgradecompatibility:
•LocatetheVMfromthelistedhostsintheWebClient.
•RightclicktheVM>EditSettings
• UndertheVirtualHardwaretab>Upgrade
•Checkthe“ScheduleVMCompatibilityUpgrade”checkbox
• SelectESXi5.5andlaterfromthedropdownlist
•ClickOKtoclosethedialog
• Shutdownandrestarttheguest
AftertheVMhasbeenshutdownandrestarted,thecompatibilitywillbedisplayed
undertheSettingstab:
SolarflareServerAdapterUserGuide
SRIOVVirtualizationUsingESXi
Issue20 ©SolarflareCommunications2017 359
8.9ListAdapters‐WebClient
Tolistavailableadapters.
NavigatetotheHost>Networking>PhysicalAdapters
Selectinganadapterandclickingtheedit(pencil)iconallowsadaptersettingstobe
edited.
SolarflareServerAdapterUserGuide
SRIOVVirtualizationUsingESXi
Issue20 ©SolarflareCommunications2017 360
8.10vSwitchandPortGroupConfiguration
UsingthevSphereWebClient,navigatetothehost.
RightclickandselectAllvCenterActions>AddNetworkingtodisplaytheAdd
Networkingwizard.
SelectVirtualMachinePortGroupforaStandardSwitch,clickNext.
InSelecttargetdevice‐selectanexistingstandardswitchorcreateanewswitch,
clickNext.
SolarflareServerAdapterUserGuide
SRIOVVirtualizationUsingESXi
Issue20 ©SolarflareCommunications2017 361
Whencreatinganewstandardswitch,clickthe+iconunderAssignedadapters.
Selecttherequiredphysicaladapter(s)which,asuplinks,willconnectthevswitch
withanetwork.
SolarflareServerAdapterUserGuide
SRIOVVirtualizationUsingESXi
Issue20 ©SolarflareCommunications2017 362
LabeltheportgroupandassignanetworklabelandVLANIDifrequired.VFswill
laterbeassignedtothesameportgroupandwillbeabletosend/receivetraffic
throughtheuplinkadapter(s).
ReviewsettingsandclickFinishtocomplete.
SolarflareServerAdapterUserGuide
SRIOVVirtualizationUsingESXi
Issue20 ©SolarflareCommunications2017 363
ThevSwitchandassociateduplinkadapter(s)topologycanbeviewedasfollows:
Selectthehost>Managetab>Networking>Virtualswitches
SolarflareServerAdapterUserGuide
SRIOVVirtualizationUsingESXi
Issue20 ©SolarflareCommunications2017 364
8.11VFPassthrough
ThefollowingprocedureusestheVMwarevSphereWebClienttoconfigureSRIOV
VFpassthrough.
TheprocedureisdocumentedintheVMwareNetworkingUserGuideforESXi5.5.
Assumptions
Theprocedureassumesthefollowingtasksarecomplete:
•AVMhasbeencreatedandtheguestOSinstalled.
•ASolarflareSFN7000orSFN8000seriesadapterisphysicallyinstalledonthe
host.
•TheSolarflareVMwarenetdriverpackageisinstalledonthehost.
•ASolarflarenetdriverisinstalledintheVM.
•TheSolarflareadapterexposesVFstothehostOS.
•OnthehostavswitchhasbeencreatedandthePF(s)fromtheSolarflare
adapterareselectedasuplinks.
EnableSRIOVontheHostAdapter
1InthevSphereWebClient,navigatetothehost.
2SelecttheManagetab>Networking>PhysicalAdapterstolistallavailable
hostadapters.
3SelecttherequiredSolarflareadapter,thenselectthepencil(edit)icon.
SolarflareServerAdapterUserGuide
SRIOVVirtualizationUsingESXi
Issue20 ©SolarflareCommunications2017 365
4FromtheadapterEditSettingsdialogenableSRIOVandspecifythenumberof
VFswhichcanbeusedbytheVM.
NOTE:Thenumberofvirtualfunctionsshouldnotexceedthevaluesetbythe
maxvfsSolarflaredriveroption.
5Thehostmustberestartedfollowingadaptersettingschanges.Selectand
rightclockthehostintheWebClientwindowforrebootoptions.
SolarflareServerAdapterUserGuide
SRIOVVirtualizationUsingESXi
Issue20 ©SolarflareCommunications2017 366
AssignaVFasaSRIOVPassthroughadaptertotheVM
1InthevSphereWebClient,navigatetotheVM.
2PowerOFFtheVM.
3SelecttheManagetab>Settings>VMHardware,thenclicktheEditbuttonto
displaytheVM‐EditSettingswindow.
4ToaddaVF,selectNetworkfromtheNewdevicedropdownlistandclickthe
Addbutton.
5ExpandtheNewNetworksection:
6ConnecttheVMtoaportgroupidentifyingthenetworktheVFistoconnectto.
Ifthereisnouplinkassociatedwiththeportgroup,VFsattachedtothesame
portgroupcansentbetweenthemselves,butnottoanynetwork.
SolarflareServerAdapterUserGuide
SRIOVVirtualizationUsingESXi
Issue20 ©SolarflareCommunications2017 367
7SelectAdapterTypeasSRIOVpassthrough.
8Selectthephysicaladapterassociatedwiththeportgroupandwhichwillback
thepassthroughvirtualmachineadapter.ESXiwillselectanunusedVF
associatedwiththisadapter.
SolarflareServerAdapterUserGuide
SRIOVVirtualizationUsingESXi
Issue20 ©SolarflareCommunications2017 368
9FromtheEditSettingswindow,expandtheMemorysectionandcheckthe
Reserveallguestmemory(Alllocked)checkbox.
ReservingallmemoryisrequiredforbothSRIOVandDirectPathconfigurations
becausetheadapterPF/VFmustbeabletoDMAtotheguestmemorywhich
needstobepresentinphysicalRAM.
10 FromtheEditSettingswindow,clicktheOKbuttontoclose.
SolarflareServerAdapterUserGuide
SRIOVVirtualizationUsingESXi
Issue20 ©SolarflareCommunications2017 369
11 WiththeVMselected,clicktheManagetabandtheVMHardwareoptionto
viewhardwareconfiguration.TheSolarflareadapterPFandVFarelistedinthis
window.
ListingPassthroughDevicesinaLinuxGuest
WhentheVMhasbeenrestartedthepassedthroughVFdevicesarevisibleinthe
Linuxguestusingbothlspciandtheifconfigcommands.
SolarflareServerAdapterUserGuide
SRIOVVirtualizationUsingESXi
Issue20 ©SolarflareCommunications2017 370
8.12DirectPathI/O
DirectPathI/OallowsaVMaccesstoPFonplatformshavinganIOMMU.Platform
supportforSRIOVisnotrequired.
SolarflareSFN7000andSFN8000seriesadapterscanbepartitionedintomultiple
PCIePFs,supportingupto16PCIephysicalfunctions.
FordetailsofNICPartitioningseeNICPartitioningonpage74.
PartitiontheAdapter
TheSolarflareNICcanbepartitionedtoexposeupto16PFsusingthesfboot
commandfromtheESXihostcommandlineinterface:
#sfboot‐‐adapter=vmnic6vfcount=0pfcount=4switchmode=partitioning
Theservermustbecoldpowercycled.Whentheserverrestarts,PFswillbevisible
inthehost:
#lspci‐vvv|grepSolarflare
0000:07:00.0EthernetcontrollerNetworkcontroller:SolarflareSFC9140[vmnic8]
0000:07:00.1EthernetcontrollerNetworkcontroller:SolarflareSFC9140[vmnic9]
0000:07:00.2EthernetcontrollerNetworkcontroller:SolarflareSFC9140[vmnic4]
0000:07:00.3EthernetcontrollerNetworkcontroller:SolarflareSFC9140[vmnic5]
0000:07:00.4EthernetcontrollerNetworkcontroller:SolarflareSFC9140[vmnic10]
0000:07:00.5EthernetcontrollerNetworkcontroller:SolarflareSFC9140[vmnic11]
0000:07:00.6EthernetcontrollerNetworkcontroller:SolarflareSFC9140[vmnic12]
0000:07:00.7EthernetcontrollerNetworkcontroller:SolarflareSFC9140[vmnic13]
Intheaboveexampleadualportadapterispartitionedtoexpose4PFsperphysical
port.
SolarflareServerAdapterUserGuide
SRIOVVirtualizationUsingESXi
Issue20 ©SolarflareCommunications2017 371
MakePFPassthroughDevicesavailabletotheGuest
ThisprocedureusesthevSphereWebClientandfollowstheprocedurefromthe
vmwaredocumentationforDirectPathI/O:
VMwareNetworkingUserGuideforESXi5.5
1Navigatetothehost.SelecttheManagetab>Settingsoption.
2UndertheHardwaresection,selectPCIDevices.
3RightclickanydevicelistedandselectEditfromthepopupmenu.Orclickthe
edit(pencil)icon.
4FromtheAllPCIDeviceswindow,tickthecheckboxoftherequiredPFdevices:
SolarflareServerAdapterUserGuide
SRIOVVirtualizationUsingESXi
Issue20 ©SolarflareCommunications2017 372
CAUTION:ThePrimaryPFfromeachphysicalportcannotbepassedthroughtoa
guest.PF0,havingconfigurationprivileges,isusedbythesfcdriverinthe
hypervisorandshouldnotbepassedtoaVM.
NOTE:Whenselectingnewdevicesthesewillbemarkedas“Available(pending)”.
Thehostmustberestartedtoeffectthechanges.
AssignPFPassthroughDevicestotheVM
1LocateandselecttheVMinthevSphereWebClient.
2PowerOFFtheVM.
3SelecttheManagetab,selectSettingsthenVMHardware,thenclicktheEdit
buttontoopentheVMEditSettingswindow.
4SelecttheVirtualHardwaretabandthentheMemoryoption:
5FortheMemoryoption,settheLimitto“Unlimited”.
6Next,selectPCIDevicefromtheNewdevicedropdownlist,thenclicktheAdd
button.
7SelecttherequiredSolarflarePFdevicetobepassedthrough.
SolarflareServerAdapterUserGuide
SRIOVVirtualizationUsingESXi
Issue20 ©SolarflareCommunications2017 373
8Repeat‐selectingNewDevicethenAddforeachPFtobepassedthrough.
9ClicktheOKbuttonwhendone.
10 PowerONtheVM.
ListingDevicesinaWindowsGuest
StarttheSolarflareAdapterManagerGUIbyselectingStart>selectarrowicon>
fromthedesktopandselecttheConfigureadaptersonthisPC.
ThiswillstartSAM,afterarefresh,SelectedPFswillbevisibleasSolarflareadapters.
SolarflareServerAdapterUserGuide
Issue20 ©SolarflareCommunications2017 374
9SolarflareBootManager
9.1Introduction
SolarflareadapterssupportthefollowingPrebootExecutionEnvironment(PXE)
optionsenablingdisklesssystemstobootfromaremotetargetoperatingsystem:
• SolarflareBootManager(basedongPXE)‐thedefaultPXEclientinstalledonall
Solarflareadapters.
•UEFInetworkboot.
•iPXE‐supportedonSolarflareXtremeScaleSFN8000(andlaterseries)
adapters.
TheSolarflareBootManagercomplieswiththePXE2.1specification.
BootManagerExposed
SolarflareadaptersareshippedwithbootROMsupport‘exposed,thatistheBoot
Managerrunsduringthemachinebootupstageallowingtheusertoenterthesetup
screens(viaCtrl+B)andenablePXEsupportwhenthisisrequired.
TheBootManagercanalsobeinvokedusingtheSolarflaresuppliedsfbootutility.
Forinstructionsonthesfbootmethodrefertothesfbootcommandsinthe
relevantOSspecificsectionsofthisuserguide.
Usingthesfbootutility,thebootimageoptionsidentifywhichbootimagesare
exposedontheadapterduringboottime.Thebootimage=uefioptionallowsthe
SolarflareUEFIdrivertobeloadedbytheUEFIplatformwhichcanbeconfiguredto
PXEbootfromtheSolarflareadapter.
TheboottypeoptionsallowstheusertoselectPXEbootortodisablePXEboot.
Thisiseffectiveonthenextreboot.
NOTE:Ifnetworkbootingisnotrequired,startuptimecanbedecreasedwhenthe
bootimageoptionis‘disabled’sothattheCTRLBoptionisnotexposedduring
systemstartup.
PXEEnabled
SomeSolarflaredistributorsareabletoshipSolarflareadapterswithPXEboot
enabled.Customersshouldcontacttheirdistributorforfurtherinformation.
SolarflareSFN8000seriesadaptersareshippedwiththePXEbootenabledandset
toPXEboot.
SolarflareServerAdapterUserGuide
SolarflareBootManager
Issue20 ©SolarflareCommunications2017 375
NOTE:PXE,UEFInetworkbootisnotsupportedforSolarflareadaptersonIBM
Systempservers.
FirmwareUpgrade‐Recommended
BeforeconfiguringtheSolarflareBootManager,itisrecommendthatserversare
runningthelatestadapterfirmwarewhichcanbeupdatedasfollows:
•FromaWindowsenvironmentusethesuppliedCommandLineTool
sfupdate.exe.SeeSfupdate:FirmwareUpdateToolonpage198formore
details.
•FromaLinuxorVMwareenvironmentupdatethefirmwareviasfupdate.See
OSspecificsectionsofthisdocumentforsfupdatecommands.
Thissectioncoversthefollowingsubjects.
SolarflareBootManageronpage375
iPXESupportonpage376
sfupdateOptionsforPXEupgrade/downgradeonpage376
StartingPXEBootonpage378
iPXEImageCreateonpage382
MultiplePF‐PXEBootonpage384
9.2SolarflareBootManager
ThestandardSolarflareBootManager,basedongPXE,issupportedonall
Solarflareadapters.
ThebootROMagent,preprogrammedintotheadapter’sflashimage,runsduring
themachinebootupstageand,ifenabled,supportsPXEbootingtheserver.
TheBootManagercanbeconfiguredusingitsembeddedsetupscreens(enteredvia
Ctrl+Bduringsystemboot)orviatheSolarflaresuppliedsfbootutility.
ThebootROMagentfirmwareversioncanbeupgradedusingtheSolarflare
suppliedsfupdateutility.RefertotheOSspecificsectionsofthisdocumentfor
detailsofsfupdatecommands.
TheuseoftheSolarflareBootManagerisfullysupportedbySolarflare(including
meetinganySLAagreementsinplaceforprioritisedandoutofhourssupport).
SolarflareServerAdapterUserGuide
SolarflareBootManager
Issue20 ©SolarflareCommunications2017 376
9.3iPXESupport
iPXEbootissupportedonSolarflareXtremeScaleSFN8000series(andlater
adapters).
AniPXEbootimagecanbeprogrammedintotheadaptersflashviatheSolarflare
suppliedsfupdateutility.
iPXEisanalternativeopensourcenetworkbootfirmwareprovidingbothPXE
supportandadditionalfeaturessuchasHTTPandiSCSIboot.Solarflarehave
integrated,maintainandsupportiPXEdriversfortheSFN8000seriesadaptersin
theiPXEopensourcecodebase.
UserscanuseiPXEfeaturesnotprovidedwithinthegPXEbasedSolarflareBoot
ROMagent.However,iPXEisanopensourceprojectwithitsowndevelopmentand
testprocessnotunderthedirectcontroloftheSolarflareengineeringteam.
SolarflarewillmonitortheiPXEdevelopmentmailinglistsandparticipatetoensure
theiPXEdriverforSolarflareadaptersoperatescorrectly.
NOTE:ItisrecommendedthatcustomershavingsupportquestionsontheiPXE
featuresetworkdirectlywiththeiPXEopensourcecommunity.
9.4sfupdateOptionsforPXEupgrade/downgrade
Thissectiondescribessfupdatewhenusedtoinstall/upgrade/downgradePXE
images.RefertosfupdateinOSspecificsectionsofthisdocumentforacompletelist
ofsfupdateoptions.
EachversionofsfupdatecontainsafirmwareimageandSolarflareBootManager
image.
CurrentVersions
Runthesfupdatecommandtoidentifycurrentimageversions:
enp5s0f0‐MAC:000F5341C700sfb
Firmwareversion:v6.3.0
Controllertype:SolarflareSFC9200family
Controllerversion:v6.2.5.1000
BootROMversion:v5.0.3.1002
UEFIROMversion:v2.4.3.1
WhenaniPXEimagehasbeenflashedovertheSolarflareBootManager:
enp5s0f0‐MAC:000F5341C700
Controllertype:SolarflareSFC9200family
Controllerversion:v6.2.5.1000
BootROMversion:iPXE
UEFIROMversion:v2.4.3.1
SolarflareServerAdapterUserGuide
SolarflareBootManager
Issue20 ©SolarflareCommunications2017 377
NOTE:sfupdateisnotabletodisplayversionnumbersforiPXEimages.
sfupdate‐SolarflareBootManagerimage
•ToinstallthefirmwareimageandSolarflare,gPXEbased,BootManagerimage:
#sfupdate[‐‐adapter=]‐‐write[‐‐force][‐‐backup]
•ToreinstallfirmwareandSolarflareBootManagerimagefromsfupdate:
#sfupdate[‐‐adapter=]‐‐write‐‐restorebootrom
•ToreinstallonlyaSolarflareBootManagerimagefrombackup:
#sfupdate[‐‐adapter=]‐‐write‐‐img=<image.dat>
Usethe‐‐forceoptionwhendowngrading.Usethe‐‐backupoptiontocreatea
backupimage(.dat)fileofthecurrentfirmwareandSolarflareBootManagerimage.
sfupdate‐iPXEimage
•ToinstalltheiPXEimage,butkeepcurrentfirmware:
#sfupdate[‐‐adapter=]‐‐write[‐‐backup]‐‐ipxeimage=<image.mrom>
Usethe‐‐backupoptiontocreateabackupoftheexistingfirmwareandPXEboot
ROMimage.
•ToupgradefirmwareandretaintheiPXEimage:
#sfupdate[‐‐adapter=]‐‐write[‐‐force]
Usingthe‐‐forceoptionallowsfirmwaretobedowngradedbutkeepsthecurrent
iPXEimage.
CAUTION:sfupdatedoesnotdoversioncheckingforiPXEthereforeitispossibleto
downgradetheimagewithoutanydisplayedwarningandwithoutusingthe‐force
option.
SolarflareServerAdapterUserGuide
SolarflareBootManager
Issue20 ©SolarflareCommunications2017 378
9.5StartingPXEBoot
TheBootManagercanbeconfiguredusinganyofthefollowingmethods:
•Onserverstartup,pressCtrl+Bwhenpromptedduringthebootsequence.This
startstheSolarflareBootManagerGUI.
•FromaWindowsEnvironment,youcan:
‐ UseSAM.SeeUsingSAMforBootROMConfigurationonpage181.
‐ Usethesuppliedsfbootcommandlinetool.SeeSfboot:BootROM
ConfigurationToolonpage190.
•FromaLinuxenvironment,youcanusethesfbootutility.SeeConfiguring
theBootManagerwithsfbootonpage88.
•FromaVMwareenvironment,youcanusethesfbootutility.See
SolarflareUtilitiesPackageonpage270.
sfbootisacommandlineutilityprogramfromtheSolarflareLinuxUtilitiesRPM
package(SF107601LS)availablefromsupport@solarflare.com.
PXErequiresDHCPandTFTPServers,theconfigurationoftheseserversdependson
thedeploymentserviceused.
Linux
SeeUnattendedInstallation‐RedHatEnterpriseLinuxonpage68andUnattended
Installation‐SUSELinuxEnterpriseServeronpage69formoredetailsof
unattendedinstallationonLinux
SolarflareServerAdapterUserGuide
SolarflareBootManager
Issue20 ©SolarflareCommunications2017 379
ConfiguringtheBootManagerforPXE
ThissectiondescribesconfiguringtheadapterviatheCtrl+Boptionduringserver
startup.
NOTE:IftheBIOSsupportsconsoleredirection,andyouenableit,thenSolarflare
recommendsthatyouenableANSIterminalemulationonboththeBIOSandyour
terminal.SomeBIOSsareknowntonotrendertheSolarflareBootManager
properlywhenusingvt100terminalemulation.
1Onstartingorrestartingtheserver,pressCtrl+Bwhenprompted.The
SolarflareBootManagerisdisplayed.
TheinitialSelectAdapterpageliststheavailableadapters.Intheabove
example,thataretwoadapters,onPCIbus04andPCIbus05.
2UsethearrowkeystohighlighttheadapteryouwanttobootviaPXEandpress
Enter.TheAdapterMenuisdisplayed.
SolarflareServerAdapterUserGuide
SolarflareBootManager
Issue20 ©SolarflareCommunications2017 380
3UsethearrowkeystohighlighttheGlobaladapterOptionsandpressEnter.The
GlobalAdapterOptionsmenuisdisplayed.
4Selecttherequiredbootimage:
a) UsethearrowkeystohighlighttheBootImage.
b) Usethespacebartochoosetherequiredimage.
c) PresstheEsckeytoexittheGlobalAdapterOptions.
TheAdapterMenuisagaindisplayed.
5UsethearrowkeystohighlightthePFyouwanttobootviaPXEandpressEnter.
ThePFOptionsmenuisdisplayed.
SolarflareServerAdapterUserGuide
SolarflareBootManager
Issue20 ©SolarflareCommunications2017 381
6SetthePFtousePXEboot:
a) UsethearrowkeystohighlighttheBootType.
b) UsethespacebartoselectPXE.
Solarflarerecommendleavingothersettingsattheirdefaultvalues.Fordetails
onthedefaultvaluesforthevariousadaptersettings,seeTable9.8on
page387.
7PresstheEsckeyrepeatedlyuntiltheSolarflareBootManagerexits.
8ChooseSaveChangesandexit.
SolarflareServerAdapterUserGuide
SolarflareBootManager
Issue20 ©SolarflareCommunications2017 382
9.6iPXEImageCreate
SolarflaredonotprovideprebuiltiPXEimages.
TheSolarflareiPXEbootROMimagecanbegeneratedfromtheromomaticiPXE
webbuilderwizardavailablefrom:
https://romomatic.eu/
1SelecttheAdvancedoption:
2SelectanOutputformat:
SolarflareServerAdapterUserGuide
SolarflareBootManager
Issue20 ©SolarflareCommunications2017 383
3EnterNICDetails:
a) EntertheSolarflarePCIvendoridentifier:1924.
b) EntertheSFN8000PCIDeviceCode:0a03
c) SelecttheGITversion(masterisrecommended).
4Generatetheimagefile.
ClicktheProceedbuttontostartimagegenerationthendownloadthecreated
imagefiletothetargetserver.
5ApplytheimagetotheSolarflareadapterusingsfupdate:
#sfupdate[‐‐adapter=]‐‐write‐‐ipxeimage=<filename.mrom>
SolarflareServerAdapterUserGuide
SolarflareBootManager
Issue20 ©SolarflareCommunications2017 384
9.7MultiplePF‐PXEBoot
Usingthesfbootcommandlineutilityv4.5.0(orlaterversion)itispossibletoPXE
bootwhenmultiplePhysicalFunctionshavebeenenabled.Theprimaryfunctionon
eachport(PF0/PF1)isaprivilegedfunctionandcanbeselectedforconfiguration.
OtherPFsinheritfromtheirprivilegedfunction‐so,forexample,withtwophysical
portsand2PFsperport:
•PF0andPF2willhavethesameboottype
•PF1andPF3willhavethesameboottype
Configurationofnonprivilegedfunctionsisnotcurrentlysupported.
Inthefollowingexample2PFs(and2VFs)areenabledforeachphysicalinterface.
#sfboot
Solarflarebootconfigurationutility[v4.5.0]
eth2:
BootimageOptionROMonly
LinkspeedNegotiatedautomatically
Linkupdelaytime5seconds
Bannerdelaytime2seconds
Bootskipdelaytime5seconds
BoottypeDisabled
PhysicalFunctionsperport2
MSIXinterruptlimit32
NumberofVirtualFunctions2
VFMSIXinterruptlimit8
Firmwarevariantfullfeature/virtualization
InsecurefiltersDisabled
MACspoofingDisabled
VLANtags100,110
SwitchmodePartitioningwithSRIOV
eth3:
BootimageOptionROMonly
LinkspeedNegotiatedautomatically
Linkupdelaytime5seconds
Bannerdelaytime2seconds
Bootskipdelaytime5seconds
BoottypeDisabled
PhysicalFunctionsperport2
MSIXinterruptlimit32
NumberofVirtualFunctions2
VFMSIXinterruptlimit8
Firmwarevariantfullfeature/virtualization
InsecurefiltersDisabled
MACspoofingDisabled
VLANtags100,110
SolarflareServerAdapterUserGuide
SolarflareBootManager
Issue20 ©SolarflareCommunications2017 385
SwitchmodePartitioningwithSRIOV
eth4:
Interfacespecificbootoptionsarenotavailable.Adapterwideoptions
areavailableviaeth2(000F53253990).
eth5:
Interfacespecificbootoptionsarenotavailable.Adapterwideoptions
areavailableviaeth2(000F53253990).
UsingtheBootManager
WhenmultiplePhysicalFunctionshavebeenenabled,theSolarflareBootManger
GUIutility(CTRLB)willlistthem:
Figure59:BootManagerlistsmultiplePFs
SolarflareServerAdapterUserGuide
SolarflareBootManager
Issue20 ©SolarflareCommunications2017 386
However,thesettingsforeachPFarereadonly,andtheonlysupportedactionisto
FlashLEDsontheportbeingused.
Figure60:ReadonlysettingsformultiplePFs
Recoveryfromincorrectsettings
CertainsettingsmustbecorrectforsuccessfulPXEbooting,suchas:
•portmode
•VLANtagging.
Ifthesesettingsbecomeincorrect,forexamplebecauseaserverismovedtoa
differentpartofthenetwork.PXEbootingwillthenfail.
Tocorrectthesesettings,youmustusetheSolarflareBootMangerGUIutility.(You
cannotusethesfbootcommandlineutility,becausethereisnoOStohostit.)This
ispossibleonlyinsinglePhysicalFunctionmode.
IfmultiplePhysicalFunctionshavebeenenabled,theincorrectsettingsareread
only.Insuchcases,youmustresettheadaptertoitsdefaultsettings(seeDefault
AdapterSettingsonpage387).ThisreturnstheadaptertoasinglePhysicalFunction
mode,andremovesallVLANtags.YoucanthenusetheBootMangertomakethe
settingsthatyourequire.
SolarflareServerAdapterUserGuide
SolarflareBootManager
Issue20 ©SolarflareCommunications2017 387
9.8DefaultAdapterSettings
ResettinganadapterdoesnotchangethebootROMimage.Toresetanadapterto
itsdefaultsettings:
1Startorrestarttheserverandwhenprompted,pressCtrl+B.TheSolarflare
BootManagerisdisplayed.
2UsethearrowkeystohighlighttheadapteryouwanttorestoreandpressEnter.
TheAdapterMenuisdisplayed.
SolarflareServerAdapterUserGuide
SolarflareBootManager
Issue20 ©SolarflareCommunications2017 388
3UsethearrowkeystohighlightResettoDefaultsandpressEnter.TheResetto
Defaultsconfirmationisdisplayed.
4UsethearrowkeystohighlightOKandpressEnter.Thesettingsareresettothe
defaults.
NOTE:UnderWindows,youcanalsoresetthesettingsbyclickingDefaultfrom
SAM.
Table9.8liststhevariousadaptersettingsandtheirdefaultvalues.
Table85:DefaultAdapterSettings
Setting DefaultValue
BootImage OptionROM&UEFI
Linkspeed Auto
Linkupdelay 5seconds
Bannerdelay 2seconds
Bootskipdelay 5seconds
BootType PXE
InitiatorDHCP
InitiatorIQNDHCP
LUNbusyretrycount
TargetDHCP
TCPport
BootLUN
SolarflareServerAdapterUserGuide
SolarflareBootManager
Issue20 ©SolarflareCommunications2017 389
DHCPVendor
MPIOattempts
MSIXLimit 32
Table85:DefaultAdapterSettings
Setting DefaultValue
SolarflareServerAdapterUserGuide
Issue20 ©SolarflareCommunications2017 390
   Index
A
AcceleratedVirtualI/O1
B
BootFirmware
Configuring183
BootROMExposed374
C
Checksumoffload
ConfigureonVMware285
ConfigurewithSAM163
Completioncodes215
ConfigureMTU
FreeBSD306
Linux104
ConfigureQSFP+Adapter49
ConfiguretheBootManager181
CPUSpeedService
TuningonLinux116
D
Default387
DirectPathI/O370
Dynamiclinkaggregation
seealsoTeaming217
E
EthernetLinkSpeed
ConfigurewithSAM166
Ethtool
ConfigureInterruptmoderationon
Linux105
ConfigureInterruptmoderationon
VMware284
Configuresegmentationoffload
107
Configuringadapter70
Runningadapterdiagnosticson
Linux135
Runningadapterdiagnosticson
VMware269
ethtoolstatistics125
ExtractSolarflareDrivers149
F
Faulttolerantteams
seealsoTeaming220
Failover221
FiberOpticCable
Attaching36
I
Insertingtheadapter34
IntelQuickData
OnLinux117
OnVMware287
InterruptAffinity113
InterruptandIrqbalance
TuningonLinux113
InterruptModeration
ConfigureonFreeBSD307
ConfigurewithSAM163
TuningonWindows230
iPXEImageCreate382
iPXESupport376
J
JumboFrames
ConfiguringonLinux72
SolarflareServerAdapterUserGuide
Index
Issue20 ©SolarflareCommunications2017 391
K
KernelDriver1
KernelModulePackages(KMP)61
KVMDirectBridged337
KVMlibvirtBridged333
KVMLibvirtDirectPassthrough340
KVMNetworkArchitectures333
L
LargeReceiveOffload(LRO)
ConfigureonFreeBSD309
ConfigureonLinux107
ConfigureonVMware285
ConfigureonWindows233
LargeSendOffload(LSO)
ConfigureonWindows232
LED46
LicenseInstallwithsfkey100
Linkaggregation217
Linux
ConfigureMTU104
M
MaximumFrameSize
TuningonWindows230
Memorybandwidth
OnVMware287
OnWindows237
TuningonLinux117
N
NetworkAdapterProperties
Configuration184
NICPartitioning74
O
OpenOnload2
P
PCIExpressLaneConfiguration
OnFreeBSD311
OnLinux115
OnVMware286
OnWindows236
PFIOV346
PowerdService
TuningonFreeBSD312
PXE
ConfigurewiththeBootROM
agent379
PXEEnabled374
R
ReceiveFlowSteering(RFS)83
ReceiveSegmentCoalescing(RSC)
ConfigureonWindows232
ReceiveSideScaling(RSS)81
ConfigureonWindows233
ConfigurewithSAM163
TuningonVMware286
RedHat
Installingon63
RJ45cable
Attaching35
Specifications36
S
SAM
BootROMconfiguration181
BootROMLinksettings182
Disableadapterbooting183
Driverandcablediagnostics177
Viewingadapterstatistics176
Segmentationoffload
ConfigureonFreeBSD308
ConfigureonLinux107
ConfigureonVMware285
ServerPowerSavingMode
OnWindows238
sfboot
OnVMware271
OnWindows190
sfcable205
SolarflareServerAdapterUserGuide
Index
Issue20 ©SolarflareCommunications2017 392
sfnet211
sfteam
OnWindows200
sfupdate
OnFreeBSD303
OnVMware279
OnWindows198
sfupdateOptionsforPXEupgrade/
downgrade376
SingleOpticalFiber‐RXConfiguration
51
SolarflareAcceleratedRFS(SARFS)84
SolarflareAppFlex™Technology
Licensing18
SolarflareBootManager375
SolarflareBootROMAgent374
SRIOV331
SRIOVVirtualizationUsingESXi351
Standbyandpowermanagement
ConfigurewithSAM238
Staticlinkaggregation
seealsoTeaming219
SUSE
Installingon64
SystemRequirements
FreeBSD289
Linux59
VMware264
Windows137
T
TCPProtocolTuning
OnLinux109
OnVMware286
OnWindows238
Teaming
seealsosfteamonWindows200
AddingadapterswithSAM172
ConfigureonVMware267
DeletingfromSAM173
Keyadapter225
ReconfiguringwithSAM170
SettinguponLinux73
VLANs222
TransmitPacketSteering(XPS)85
TuningRecommendations
OnFreeBSD312
OnLinux118
OnWindows242
U
UnattendedInstallation
Driverdisks67
SUSE69
Windows150
V
VFPassthrough364
VirtualMachine358
VirtualNICsupport2
VLAN
DeletingfromSAM176
SettingupwithSAM174
VMware
ConfigureMTU283
ESXServiceConsole266
NetQueue282
VMwareTools282
vSwitchandPortGroupConfiguration
360
W
Windows
InstallingfromtheCommand
Prompt146
Repairingandmodifying
installation145
UsingADDLOCAL148
WindowsCommandLineUtilities189
Windowseventlogerrormessages
244
SolarflareServerAdapterUserGuide
Index
Issue20 ©SolarflareCommunications2017 393

Navigation menu