ndis 6.20 overview bob combs lead program manager core networking [email protected] narsi...

18

Upload: giles-dorsey

Post on 04-Jan-2016

265 views

Category:

Documents


1 download

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:

[email protected]

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

Questions?