ndis 6.20 overview bob combs lead program manager core networking [email protected] narsi...
TRANSCRIPT
NDIS 6.20 Overview
Bob CombsLead Program ManagerCore [email protected]
Narsi NagampalliLead Software Development EngineerCore [email protected]
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
Windows 7 NDIS 6.20
Windows Server 2008 / Vista SP1 NDIS 6.1
Windows Vista NDIS 6.0
Windows Server 2003 SP2 NDIS 5.2
Windows XP / Server 2003 NDIS 5.1
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:
Related SessionsSession Day / Time
Network Power Management in Windows 7 Tues. 5:15-6:15
Windows Logo Program Tests for NDIS Mon. 11-12 andWed. 9:45-10:45
Discussion: Porting Drivers to NDIS 6.20 Wed. 8:30-9:30
Lab: How to Debug an NDIS 6.20 Driver Mon. 2:45-3:45 andWed. 9:45-10:45
Mobile Broadband Driver Development for Windows 7 Mon. 1:30-2:30
Developing TCP Chimney Drivers for Windows 7 Tues. 11-12
Implementing Efficient RSS Capable Hardware and Drivers for Windows 7 Tues. 1:30-2:30
Virtual Machine Queue Architecture Review Tues. 2:45-3:45
Virtual Machine Queue Driver Development Tues. 4-5
Driver Scalability Mon. 11-12 andTues. 11-12