190 likes | 1.04k Views
NDIS 6.20 Overview. Bob Combs Lead Program Manager Core Networking bobcombs@microsoft.com. Narsi Nagampalli Lead Software Development Engineer Core Networking nrao@microsoft.com. Agenda. NDIS Version History Features added for NDIS 6.1 over 6.0 Features of 6.20
E N D
NDIS 6.20 Overview Bob Combs Lead Program Manager Core Networking bobcombs@microsoft.com Narsi Nagampalli • Lead Software Development Engineer • Core Networking nrao@microsoft.com
Agenda • NDIS Version History • Features added for NDIS 6.1 over 6.0 • Features of 6.20 • Porting guidelines to NDIS 6.20 • Miniport drivers • Protocol drivers • Q&A
NDIS Version History • Deprecation of NDIS 5.x post Windows 7 • Deprecation of IrDA post Windows 7
Added Features of NDIS 6.1 Over 6.0 • Header-Data split • Cache locality • IPsec Task Offload v2 • Supports IPv6 • Co-exists with LSOv2 • New encryption & authentication algorithms • Direct OID requests • De-serialized OID requests • Can be issued at DISPATCH IRQL • MSI-X dynamic configuration • Used in dynamic RSS configuration • NetDMA V2 • Support for IOATv2 • Support for power management
Features of NDIS 6.20 • Power management enhancements • Virtual machine queue (VMQ) • Support for more than 64 processors • Receive-side throttle (RST) • Media extensibility • Deprecated interfaces
Power Management • Issues with current Wake on LAN (WoL) implementation • Spurious wakes from Address Resolution Protocol (ARP) / Neighbor Solicitation (NS) • Wake patterns not specific enough • Wake on LAN enhancements • Targeted wake patterns; e.g. TCP SYN • Protocol offloads in low power • IPv4 ARP • IPv6 NS • Wake on WLAN enhancements • 802.11 rekey management • Wake on Media Connect • OS puts NIC in D3 when media is disconnected
Hyper-V Network Performance Improvement • Virtual Machine Queues • Classification of received packets based on destination VM • Packets can DMA directly to the guest shared memory • Scaling to multiple processors • Chimney support for child partitions • No driver changes needed
Support for More than 64 Processors • OS has removed limitation of 64 processors (32 in x86 version) • Support for processor groups • Updated NDIS interfaces • Receive-side scaling (RSS) • Processor information DDIs • Resource allocation • Read-write lock
Receive-Side Throttling • Glitch free – Multimedia applications are starved by long DPCs • NDIS 6.20 improves glitch-free implementation • Better network throughput • More efficient algorithm • NDIS 6.20 miniport drivers support RST • NDIS controls the number of packets indicated in a DPC
Media Extensibility • Network layer can be media-agnostic • Reduce complexity for non-802.3 media implementations • Eliminate ARP and DHCP emulation • Raw IP frame support • Generic media type (Raw IP) • Used by WWAN in next release of Windows • New media-specific out-of-band data • Media-specific information tag assigned by Microsoft • Multiple media-specific information tags
Revised Interfaces • NDIS_MAX_PROCESSOR_COUNT /MAXIMUM_PROCESSORS • Use NdisGoupMaxProcessorCount instead • NdisSystemProcessorCount • Use NdisGroupMaxProcessorCount instead • NdisSystemActiveProcessorCount • Use NdisGroupActiveProcessorCount instead • NdisGetProcessorInformation • Use NdisGetProcessorInformationEx instead • NdisMQueueDpc • Use NdisMQueueDpcEx instead • MINIPORT_ISR_HANDLER and MINIPORT_MSI_ISR_HANDLER • TargetProcessors parameter should not be used • MediaSpecificInformation • Use MediaSpecificInformationEx instead • OID_GEN_PHYSICAL_MEDIUM • Use OID_GEN_PHYSICAL_MEDIUM_EX instead
Porting NDIS 6.x Miniport Drivers to NDIS 6.20 • Replace preprocessor definition NDIS61_MINIPORT with NDIS620_MINIPORT • Pass NDIS version 6 as major version and 20 as minor version • Provide a DirectOIDRequest handler • Use the latest version of capability advertisement • Power management • RSS • Hardware assist (VMQ) • Support RST in processing receive interrupts • Don’t use deprecated DDIs • Use >64 processor conformant DDI • Use new NDIS read-write lock DDI when needed
Porting NDIS 6.x Protocol Drivers to NDIS 6.20 • Replace preprocessor definition NDIS61 with NDIS620 • Pass NDIS version 6 as major version and 20 as minor version • Don’t use deprecated DDIs • Use >64 processor conformant DDIs • Use new NDIS Read-Write lock DDI when needed • Use the latest version of interfaces • Power management • RSS • Above mostly applicable to Intermediate (IM) Protocol edge and filter drivers
Call to Action • Update hardware and drivers to NDIS 6.20 to take advantage of Windows 7 functionality • Use Windows 7 for driver and NIC testing
Resources • Windows 7 WDK will be available as of WinHEC • Windows Logo Program: http://www.microsoft.com/whdc/winlogo/default.mspx • NDIS 6 Feedback alias:ndis6fb@microsoft.com