- Data traffic is received by the physical NIC and placed into an Rx queue (ring buffer) within the physical NIC
- The physical NIC sends the packet and a descriptor to the main memory buffer through direct memory access. The packet descriptor contains only the memory location and size of the packet
- The physical NIC sends an IRQ to the CPU
- The CPU transfers control to the physical NIC driver, which services the IRC receives the packet, and moves it into the network stack where it eventually arrives in a socket and is placed into a socket receive buffer.
- The packet data is copied from the socket receive buffer to the OVS virtual switch
- OVS processes the packet and forwards it to the virtual machine. This entails switching the packet between kernel and user space
- The packet arrives at the virtual NIC of the Virtual Machine and is placed into the Rx queue
- The vNIC sends the packet and packet descriptor to the virtual memory buffer through direct memory access
- The virtual NIC sends an IRQ to the vCPU
- The vCPU transfers control to the vNIC drive, which services the IRQ, receives the packet, and moves it to the network stack where it eventually arrives in a socket and is placed into a socket receive buffer
- The packet data is copied and sent to the application in the VM
High Level Packet Flow for Virtual Machine
by
Tags:
Leave a Reply