Document 387946

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
Same as previous NDIS
• 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
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
• 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
Magic Packet
NETBIOS name query
TCP SYN v4
TCP SYN v6
LLMNR v6
LLMNR v4
Magic Packet
NETBIOS name query
TCP SYN v4
TCP SYN v6
LLMNR v6
LLMNR v4
Magic Packet
NETBIOS name query
TCP SYN v4
TCP SYN v6
NS
LLMNR v6
LLMNR v4
Magic Packet
NETBIOS name query
TCP SYN v4
TCP SYN v6
ARP
NS
LLMNR v6
LLMNR v4
ARP OFFLOAD only
NO OFFLOADs
Magic packet
TCP SYN v4
TCP SYN v6
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
*WakeOnPattern
*WakeOnMagicPacket
*DeviceSleepOnDisconnect
*PMARPOffload
*PMNSOffload
*PMWiFiRekeyOffload
ParamDesc
Wake on pattern match
Wake on Magic Packet
Device sleep on disconnect
ARP offload
NS offload
WiFi rekeying offload
Value
EnumDesc
0
Disabled
1 (Default)
Enabled
0
Disabled
1 (Default)
Enabled
0
Disabled
1 (Default)
Enabled
0
Disabled
1 (Default)
Enabled
0
Disabled
1 (Default)
Enabled
0
Disabled
1 (Default)
Enabled
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
Wed. 9:45-10:45
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?