During lab and test time with Windows Server 2012 Hyper-V some experimenting with PowerShell is needed to try and automate actions and settings. One of the thing we have been playing around with was how to enable and configure jumbo frames.
Many advanced features like Large Send Offload have commandlets of their own (Enable-NetAdapterLso etc.), but not all them and jumbo frames is one of the latter. For those advanced features you can use the NetAdapterAdvancedProperty commandlets (Network Adapter Cmdlets in Windows PowerShell). You can than set/enable those features via the registry keywords & values. Let’s say we want to enable jumbo frames on a virtual adapter named “ISCSI” in a VM.
To know what values to use you can run:
Get-NetAdapterAdvancedProperty -Name ISCSI
As you can see Jumbo Packet has a RegistryValue of 1514 and a DisplayValue of “Disabled”. You can also see that the RegistryKeyword to use to enable and configure jumbo frames is “*JumboPacket”. So to enable jumbo frames you run the following command:
Set-NetAdapterAdvancedProperty -Name “ISCSI” -RegistryKeyword “*JumboPacket” -Registryvalue 9014
The RegistryValue is set to 9014 and the DisplayValue is set to “9014 Bytes”, i.e. it’s enabled.
If you type in an disallowed value it will list the accepted values. Please note also that these can differ from NIC to NIC depending on what is supported. Some will only show 1514, 4088, some will show 1514, 4088, 9014.
Now to disable jumbo frames you just need to reset the RegistryValue back to 1514
Set-NetAdapterAdvancedProperty -Name “ISCSI” -RegistryKeyword “*JumboPacket” -Registryvalue 1514
The result of this command can be seen in the picture below. DisplayName Jumbo Packet has a DisplayValue of “Disabled” again.
Let’s say you want to enable jumbo frames on all network adapters in a host you can run this:
Get-NetAdapterAdvancedProperty -DisplayName “Jumbo Packet” | Set-NetAdapterAdvancedProperty –RegistryValue “9014”
Set-NetAdapterAdvancedProperty -Name * -RegistryKeyword “*JumboPacket” -Registryvalue 9014
I didn’t notice much difference in speed testing this with measure-command.
If you mess things up to much and you want to return all DisplayName settings to a well known status, i.e. the defaults you can run:
Reset-NetAdapterAdvancedProperty –Name SCSCI –DisplayName *
If you’ve just messed around with the jumbo frame settings run
Reset-NetAdapterAdvancedProperty -Name ISCSI –DisplayName “Jumbo Packet”
Or you can do the same for all network adapters:
Reset-NetAdapterAdvancedProperty –Name * –DisplayName “Jumbo Packet”
There you go, you’re well on your way doing the more advanced configurations of your network setup. Enjoy!