Virtual Machine Queue Driver Development Sambhrama Mundkur Sr. Software Design Engineer Core Networking

Slides:



Advertisements
Similar presentations
Device Virtualization Architecture
Advertisements

purpose Search : automation methods for device driver development in IP-based embedded systems in order to achieve high reliability, productivity, reusability.
Virtual Machine Queue Architecture Review Ali Dabagh Architect Windows Core Networking Don Stanwyck Sr. Program Manager NDIS Virtualization.
Fluffy’s Safe Right? If you want to limit a user’s functionality, don’t make them an administrator.
Network and Application Attacks Contributed by- Chandra Prakash Suryawanshi CISSP, CEH, SANS-GSEC, CISA, ISO 27001LI, BS 25999LA, ERM (ISB) June 2006.
1 SpaceWire Update NASA GSFC November 25, GSFC SpaceWire Status New Link core with split clock domains complete (Much faster) New Router core.
Network Power Management for Windows 7
1 Semester 2 Module 4 Learning about Other Devices Yuda college of business James Chen
Basic IP Traffic Management with Access Lists
Developing TCP Chimney Drivers for Windows 7 Joe Nievelt Vivek Bhanu Software Design Engineer TCP/IP - Networking
PAGE 2 PAGE 3 INTRODUCING HYPER-V EXTENSIBLE SWITCH.
ECE 526 – Network Processing Systems Design Software-based Protocol Processing Chapter 7: D. E. Comer.
Module 8: Concepts of a Network Load Balancing Cluster
1 CCNA 2 v3.1 Module 9. 2 Basic Router Troubleshooting CCNA 2, Module 9.
1 Chapter 9 Computer Networks. 2 Chapter Topics OSI network layers Network Topology Media access control Addressing and routing Network hardware Network.
Advanced OS Chapter 3p2 Sections 3.4 / 3.5. Interrupts These enable software to respond to signals from hardware. The set of instructions to be executed.
Students:Gilad Goldman Lior Kamran Supervisor:Mony Orbach Mid-Semester Presentation Spring 2005 Network Sniffer.
Lesson 9: Creating and Configuring Virtual Networks
Check Disk. Disk Defragmenter Using Disk Defragmenter Effectively Run Disk Defragmenter when the computer will receive the least usage. Educate users.
Microsoft Virtual Academy Module 4 Creating and Configuring Virtual Machine Networks.
Router Architectures An overview of router architectures.
Implementing Efficient RSS Capable Hardware and Drivers for Windows 7
Connecting LANs, Backbone Networks, and Virtual LANs
Driver Verifier Advancements In Windows 7 Daniel Mihai Principal Software Design Engineer Windows Engineering Tools.
NDIS LBFO Miniports (Load Balancing And Failover) Larry Cleeton Program Manager Windows Networking And Communications Microsoft Corporation.
Managing Network connections. Network Cabling Ethernet Topology Bus topology – Connects each node in a line – Has no central connection point Star topology.
5 Chapter Five Web Servers. 5 Chapter Objectives Learn about the Microsoft Personal Web Server Software Learn how to improve Web site performance Learn.
LWIP TCP/IP Stack 김백규.
1-1 Embedded Network Interface (ENI) API Concepts Shared RAM vs. FIFO modes ENI API’s.
Applied research laboratory David E. Taylor Users Guide: Fast IP Lookup (FIPL) in the FPX Gigabit Kits Workshop 1/2002.
Processor or Socket NUMA Node Core LP Processor or Socket NUMA Node Core LP Processor or Socket NUMA Node Core LP Processor or Socket NUMA Node Core.
Router Architecture Overview
1 The Internet and Networked Multimedia. 2 Layering  Internet protocols are designed to work in layers, with each layer building on the facilities provided.
© Jörg Liebeherr (modified by M. Veeraraghavan) 1 ICMP: A helper protocol to IP The Internet Control Message Protocol (ICMP) is the protocol used for error.
Lecture 3 Process Concepts. What is a Process? A process is the dynamic execution context of an executing program. Several processes may run concurrently,
Hyung-Min Lee ©Networking Lab., 2001 Chapter 8 ARP and RARP.
11 NETWORK CONNECTION HARDWARE Chapter 3. Chapter 3: NETWORK CONNECTION HARDWARE2 NETWORK INTERFACE ADAPTER  Provides the link between a computer and.
COP 4930 Computer Network Projects Summer C 2004 Prof. Roy B. Levow Lecture 3.
Mobile Broadband Driver Development for Windows 7
Microsoft Windows Server 2003 TCP/IP Protocols and Services Technical Reference Slide: 1 Lesson 7 Internet Protocol (IP) Routing.
Windows Server 2012 Hyper-V Networking
NT Kernel CS Spring Overview Interrupts and Exceptions: Trap Handler Interrupt Request Levels and IRT DPC’s, and APC’s System Service Dispatching.
Cisco 3 - Switching Perrine. J Page 16/4/2016 Chapter 4 Switches The performance of shared-medium Ethernet is affected by several factors: data frame broadcast.
NDIS 6.20 Overview Bob Combs Lead Program Manager Core Networking Narsi Nagampalli Lead Software Development Engineer Core Networking.
STORE AND FORWARD & CUT THROUGH FORWARD Switches can use different forwarding techniques— two of these are store-and-forward switching and cut-through.
We will focus on operating system concepts What does it do? How is it implemented? Apply to Windows, Linux, Unix, Solaris, Mac OS X. Will discuss differences.
NDIS Intermediate Drivers Larry Cleeton Program Manager Windows Networking And Communications Microsoft Corporation.
NDIS 6.0 Technical Update Alireza Dabagh Development Lead Network Devices Platform microsoft.com Microsoft Corporation.
Windows Logo Program Tests for NDIS 6.20 Eric Li Test Lead Networking Ecosystem Team Michael Nanakul Test Lead Networking Ecosystem.
UDI Advanced Topics DMA and Interrupts Robert Lipe UDI Development Team Lead
Prentice HallHigh Performance TCP/IP Networking, Hassan-Jain Chapter 13 TCP Implementation.
NDIS 6.0 Roadmap and Value Statement
1 © 2003, Cisco Systems, Inc. All rights reserved. CCNA 2 Module 4 Learning About Other Devices.
CCNA3 Module 4 Brierley Module 4. CCNA3 Module 4 Brierley Topics LAN congestion and its effect on network performance Advantages of LAN segmentation in.
© Jörg Liebeherr (modified by M. Veeraraghavan) 1 ICMP The PING Tool Traceroute program IGMP.
Technical Overview of Microsoft’s NetDMA Architecture Rade Trimceski Program Manager Windows Networking & Devices Microsoft Corporation.
LonWorks Introduction Hwayoung Chae.
Contents 1.Overview 2.Multithreading Model 3.Thread Libraries 4.Threading Issues 5.Operating-system Example 2 OS Lab Sun Suk Kim.
Network Virtualization Ben Pfaff Nicira Networks, Inc.
12/30/2017 8:55 AM Особенности и улучшения работы сети в гипервизоре Windows Server 2008 R2 Панов Никита Технический инженер Microsoft MCP Leader
NDIS-WDM Miniport Drivers Larry Cleeton Program Manager Windows Networking And Communications Microsoft Corporation.
Zero-copy Receive Path in Virtio
What’s “Inside” a Router?
An NP-Based Router for the Open Network Lab Overview by JST
Dynamic Packet-filtering in High-speed Networks Using NetFPGAs
Implementing an OpenFlow Switch on the NetFPGA platform
What’s new in Windows Server 2008 R2?
Windows Virtual PC / Hyper-V
Reference Router on NetFPGA 1G
Mr. M. D. Jamadar Assistant Professor
Presentation transcript:

Virtual Machine Queue Driver Development Sambhrama Mundkur Sr. Software Design Engineer Core Networking

Agenda Overview of Virtual Machine Queue (VMQ) VMQ capability advertisement VM Queue allocation and deletion Setting and clearing VMQ filters Shared memory resources allocation VMQ receive path Embedded NIC switch Diagnostics and Tools Questions

VMQ Architecture Parent Partition VM1VM2 Ethernet VM BUS TCP/IP VM NIC 1VM NIC 2 Network Virtual Service Provider Miniport Driver Switch/Routing unit Q1 Default Queue Q2 Routing VLAN filtering Data Copy Port 1Port 2 NIC

Overview of Virtual Machine Queue Performance bottlenecks in receive processing in virtualized environment Each incoming packet has to be examined to identify the target virtual machine (VM) Received data has to be copied from the parent partition’s memory to the child partition’s memory address space Lack of concurrency of interrupts and DPCs

Overview of Virtual Machine Queue (contd.) How does VMQ help? Determine the target VM by MAC filtering in hardware DMA received packets directly to the child partition’s memory address space Provide interrupt and DPC concurrency by indicating received packets based on the target VM Use switch capabilities of the NIC to provide VM to VM loopback functionality

VMQ Capability Advertisement Receive filter capabilities advertised during miniport adapter initialization Use standardized keywords to enable or disable VMQ functionality Capabilities advertised Enabled filters and queue types Number of queues and filters Supported queue properties Lookahead-split support NIC switch capabilities

Queue State Transitions

Queue Allocation Protocol driver issues an OID to allocate a queue and sets the parameters for the queue Per-queue receive indication flag Processor affinity Queue name Lookahead-split parameters NDIS generates a unique Queue ID and sets it before issuing the OID to the miniport driver Protocol driver can set filters after allocating the queue Protocol driver issues an OID to complete the queue allocation Miniport driver can allocate shared memory and other resources Default queue (Queue ID 0) is always allocated

Queue Deletion Protocol driver clears all filters before freeing the queue Protocol driver issues an OID to free the queue Miniport driver Must immediately stop DMA to shared memory resources allocated for this queue Must generate status indication to indicate that the DMA has been stopped Waits for all outstanding NET_BUFFER_LIST (NBLs) for this queue to be returned Frees the allocated shared memory and hardware resources Default queue can never be freed

Updating Queue Parameters Protocol driver can issue an OID to update the queue parameters Queue parameters that can be updated are Processor affinity Queue name

VMQ Filter Operations

Setting and Clearing Filters Filters can be set and cleared any time after the queue has been allocated Protocol issues an OID to set the filter and the filter’s parameters Queue ID Array of header field test parameters. For VMQ two header field tests can be set: Destination MAC address in the packet == specified MAC address VLAN ID in the packet == specified VLAN ID NDIS generates a unique filter ID and issues the OID to the miniport driver

Setting and Clearing Filters Miniport driver programs the hardware based on the filters All header field tests of a particular filter must match to indicate the packet to that queue Multiple filters can be set on a queue Packets must be indicated from the queue if any of the filters pass Protocol driver can set filters on the default queue, too Protocol driver issues an OID to clear a filter Provides the Filter ID of the filter

Shared Memory Resource Allocation Miniport driver calls the new DDI, NdisAllocateSharedMemory, to allocate shared memory resources for a queue Initial allocation occurs when processing the queue allocation complete OID Miniport driver can allocate shared memory as long as the queue has not been freed Miniport driver specifies: Queue ID Length Usage – Lookahead, post-Lookahead etc. NdisAllocateSharedMemory returns: Virtual address of the allocated memory Scatter/gather List Shared memory handle (used in receive indications) Allocation handle (used to free the memory)

Shared Memory Resources If lookahead-split is not enabled, specify that the memory will be used for receive buffer If lookahead-split has been enabled for the queue, allocate two shared memory buffers Specify that usage is for the lookahead buffer Specify that usage is for the post-lookahead (data) buffer Call NdisFreeSharedMemory to free the memory Driver frees the resources when the queue is freed Driver must wait for all NBLs using the shared memory to be returned before calling this DDI

VMQ Packet Structures

VMQ Receive Path Indicate packets on a queue only if it passes all the filter field tests for a particular filter If per-queue receive indication flag is set: NBLs from this queue must not be mixed with others Must set ‘single queue indication’ flag in the Receive Flags Must set flag to indicate that the shared memory information is valid Out-of-band (OOB) information Specify the Queue ID in packet OOB information For VMQ, set the Filter ID in the OOB to zero

VMQ Receive Path Specify the SharedMemoryInfo in the NET_BUFFER Set SharedMemoryHandle returned by NdisAllocateSharedMemory Offset is the offset from the beginning of the shared memory buffer If lookahead split is enabled for the queue, each NET_BUFFER: Must have two MDLs and corresponding SharedMemoryInfo structures The post-lookahead buffer must have a backfill The protocol driver copies the contents of the lookahead buffer to the backfill Backfill must exist even if the packet is entirely in the lookahead buffer MDL Length and DataLength in the packet must be set as before

Queue Statistics NIC must maintain following per-queue statistics: Number of transmitted and received packets Number of transmitted and received bytes NIC can maintain per-packet type statistics The statistics can be queried using the new statistics OID This is a mandatory Direct OID request VMQ miniport driver must provide a Direct OID request handler Return statistics for a particular queue based on Queue ID Default queue can be queried, too

Embedded NIC Switch Embedded switch on the NIC can assist in advanced features Advertise support during miniport adapter initialization Loopback support Protocol driver issues an OID to enable these features Loopback On transmit, Queue ID of the outgoing queue is set in packet OOB data NIC indicates the packet if it matches filters set on any other queue If no match is found, NIC transmits the packet on the wire

Diagnostics OIDs and WMI GUIDs Enumerate the queues allocated on a miniport adapter Query the parameters of a particular queue Enumerate the filters allocated on a particular queue Query the parameters of a particular filter Handled by NDIS NDIS kernel debugger extensions Performance counters exposed by NDIS

Call to Action Update drivers to NDIS 6.20 to take advantage of Windows 7 functionality Implement VMQ support in the miniport driver Attend other related sessions in the DDC

Resources Windows 7 WDK will be available as of WinHEC Windows Logo Program Web site: NDIS 6 feedback alias:

Related Sessions SessionDay / Time Network Power Management for Windows 7Tues. 5:15-6:15 Windows Logo Program Tests for NDISMon and Wed. 9:45-10:45 Discussion: Porting Drivers to NDIS 6.20Wed. 8:30-9:30 Lab: How to Debug an NDIS 6.20 DriverMon. 2:45-3:45 and Wed. 9:45-10:45 Mobile Broadband Driver Development for Windows 7Mon. 1:30-2:30 Virtual Machine Queue Architecture ReviewTues. 2:45-3:45 Virtual Machine Queue Driver DevelopmentTues. 4-5 Implementing Efficient RSS Capable Hardware and Drivers for Windows 7Tues. 1:30-2:30 Developing TCP Chimney Drivers for Windows 7Tues Driver ScalabilityMon and Tues

Questions?