Network Power Management for Windows 7 Bob Combs Lead Program Manager Core Networking bobcombs@microsoft.com
Agenda Power Management Background Wake on LAN / Wake on Wireless LAN Power Management Offloads Capability Advertisement Wireless Offload Wake Patterns Wake on Media Connect Keywords and Windows Management Instrumentation (WMI)
WoL Today Today Wake on LAN (WoL) - Wake up on magic packet Wake up on patterns Off by default When WoL is enabled, it wakes too often Wakes due to frequent Address Resolution Protocol (ARP) requests Wakes due to directed packet From http://www.energystar.gov/ia/partners/prod_development/revisions/downloads/computer/TierII_Network_Issue_Slides.pdf
Network Power Management Goals Sleep when idle, by default Reduce runtime idle power consumption by reducing power consumed by network devices when idle PC that sleeps for 14 hours a day saves between 598 and 760 kWh/yr (~1/10 automobile) Average savings of $63,500 per year for an organization with 1,000 PCs Environmental impact: saves between 420 kg and 534 kg of carbon dioxide generated with energy production
Windows 7 Power Management Features Power management offloads Address Resolution Protocol (ARP) Neighbor Solicitation (NS) Wake-on-LAN (WoL) On by default Revised set of wake pattern bitmaps Wake patterns include packet types Wake-on-Wireless LAN (WoWLAN) Same as WoL plus … Offload 802.11 Robust Security Network (RSN) rekey Wake on Media Connect (a.k.a. D3 on Disconnect)
Capability Advertisement Miniport driver reports capabilities to NDIS during initialization WoL pattern type packets supported Total number of patterns supported (pattern type & bitmap patterns) Protocols that can be offloaded to the NIC Number of ARP supported Number of NS supported
New Power Management OIDs OID to query the hardware capabilities of the NIC Returns the supported capabilities of the NIC OID to query/set the miniport driver capabilities Query the capabilities of the NIC that are currently enabled Enable/disable the capabilities of the NIC OIDs to manage WoL patterns Add/remove bitmap patterns List the current set of patterns in the NIC OIDs to manage protocol offloads (ARP, NS) Add/remove/list protocol offloads
Wake Patterns Magic packet Bitmap pattern Wake Packet Type (new for Windows 7) Can be used in place of bitmap pattern NDIS_PM_WOL_PACKET specifies packet type WoL patterns IPv4 TCP SYN packet IPv6 TCP SYN packet 802.1x EAPOL request identity message Same as previous NDIS
Address Resolution Protocol Offloads ARP request processing in the NIC Takes a Host IPv4 address and a Host MAC address NIC should support multiple IPv4-MAC address tuples NS processing in the NIC Takes a Solicitation IPv6 address, a MAC address, and a list of up to 2 Target IPv6 addresses Typically need at least two NS sets
Wireless Offload 802.11 RSN rekey processing on NIC 802.11 waking Offload Group Temporal Key (GTK) rekeying (WPA2) while system is asleep OS initiates offload of Pairwise Master Key (PMK) and Temporal Key (TK) 802.11 waking Wake reloads PMK & TK OS initiates reload Wake events are the same as wired, plus Association with current Access Point (AP) is lost 802.1x EAP request/identity packet received 4-way handshake request received / TK unicast expires
Windows Wake Patterns OFFLOAD SUPPORTED ENTERPRISE HOME ARP & NS OFFLOAD Magic Packet NETBIOS name query TCP SYN v4 TCP SYN v6 LLMNR v6 LLMNR v4 ARP OFFLOAD only NS NO OFFLOADs Magic packet ARP
Wake on Media Connect While machine is in system working state (S0) On LAN cable disconnect Miniport driver is notified NIC is placed in device sleep (D3) On reconnect NIC asserts WAKE# NDIS puts the device into working state (D0) If the system goes to sleep while the cable is disconnected, wake on media connect is canceled
Media Disconnect Sequence
Media Reconnect Sequence
Standard Keywords for Power Management SubkeyName ParamDesc Value EnumDesc *WakeOnPattern Wake on pattern match Disabled 1 (Default) Enabled *WakeOnMagicPacket Wake on Magic Packet *DeviceSleepOnDisconnect Device sleep on disconnect *PMARPOffload ARP offload *PMNSOffload NS offload *PMWiFiRekeyOffload WiFi rekeying offload
WMI Interfaces WMI interfaces to query and set configuration settings WMI interfaces to query current and hardware capabilities Diagnostics - nicstats Display power management capabilities and enable status
NDIS 6.20 Power Management Logo Requirements NDIS 6.20 WoL logo Support at least 6 WoL patterns Support at least 8 WoL patterns required by 2010 Network presence offloads Support ARP and NS optionally ARP and NS offloads required by 2010
Call to Action Update hardware and drivers to NDIS 6.20 to take advantage of new Windows 7 functionality Provide support for at least 8 wake patterns Implement ARP and NS power management offloads on NIC Support new packet type patterns Implement 802.11 RSN Rekey offload for wireless NICs
Resources Windows 7 WDK will be available as of WinHEC Windows Logo Program Web site: http://www.microsoft.com/whdc/winlogo/default.mspx NDIS 6 Feedback alias: ndis6fb@microsoft.com
Related Sessions Session Day / Time NDIS 6.20 Overview Mon. 9:45-10:45 and Tues. 9:45-10:45 Windows Logo Program Tests for NDIS Mon. 11-12 and Wed. 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 and Mobile Broadband Driver Development for Windows 7 Mon. 1:30-2:30 Virtual Machine Queue Architecture Review Tues. 2:45-3:45 Virtual Machine Queue Driver Development Tues. 4-5 Developing TCP Chimney Drivers for Windows 7 Tues. 11-12
Questions?