From dae98a04097056854cbecfc8d654e53fa9ea2a04 Mon Sep 17 00:00:00 2001 From: "David B. Kinder" Date: Tue, 18 Sep 2018 17:11:56 -0700 Subject: [PATCH] doc: add network virtualization hld Review, edit, and transcode network virtualization doc Signed-off-by: David B. Kinder --- .../images/network-virt-arch.png | Bin 0 -> 159428 bytes .../images/network-virt-sos-infrastruct.png | Bin 0 -> 9178 bytes doc/developer-guides/index.rst | 1 + doc/developer-guides/network-virt-hld.rst | 556 ++++++++++++++++++ doc/substitutions.txt | 2 +- 5 files changed, 558 insertions(+), 1 deletion(-) create mode 100644 doc/developer-guides/images/network-virt-arch.png create mode 100644 doc/developer-guides/images/network-virt-sos-infrastruct.png create mode 100644 doc/developer-guides/network-virt-hld.rst diff --git a/doc/developer-guides/images/network-virt-arch.png b/doc/developer-guides/images/network-virt-arch.png new file mode 100644 index 0000000000000000000000000000000000000000..6079adf28bf2f660179de43b8b9a2dfde4b6002b GIT binary patch literal 159428 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 z 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ⅆ`6N!v36UG3 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 literal 0 HcmV?d00001 diff --git a/doc/developer-guides/images/network-virt-sos-infrastruct.png b/doc/developer-guides/images/network-virt-sos-infrastruct.png new file mode 100644 index 0000000000000000000000000000000000000000..fc9a8222a7287c046cc0a0848b2c9afeba4728bf GIT binary patch literal 9178 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 virtnet_probe --> init_vqs +----------------------------------------------- + +- Register network driver +- Setup shared virtqueues + +ACRN UOS TX FLOW +================ + +The following shows the ACRN UOS network TX flow, using TCP as an +example, showing the flow through each layer:. + +UOS TCP Layer +------------- + +.. code-block:: c + + tcp_sendmsg --> + tcp_sendmsg_locked --> + tcp_push_one --> + tcp_write_xmit --> + tcp_transmit_skb --> + +UOS IP Layer +------------ + +.. code-block:: c + + ip_queue_xmit --> + ip_local_out --> + __ip_local_out --> + dst_output --> + ip_output --> + ip_finish_output --> + ip_finish_output2 --> + neigh_output --> + neigh_resolve_output --> + +UOS MAC Layer +------------- + +.. code-block:: c + + dev_queue_xmit --> + __dev_queue_xmit --> + dev_hard_start_xmit --> + xmit_one --> + netdev_start_xmit --> + __netdev_start_xmit --> + + +UOS MAC Layer virtio-net Frontend Driver +---------------------------------------- + +.. code-block:: c + + start_xmit --> // virtual NIC driver xmit in virtio_net + xmit_skb --> + virtqueue_add_outbuf --> // add out buffer to shared virtqueue + virtqueue_add --> + + virtqueue_kick --> // notify the backend + virtqueue_notify --> + vp_notify --> + iowrite16 --> // trap here, HV will first get notified + +ACRN Hypervisor +--------------- + +.. code-block:: c + + vmexit_handler --> // vmexit because VMX_EXIT_REASON_IO_INSTRUCTION + pio_instr_vmexit_handler --> + emulate_io --> // ioreq cant be processed in HV, forward it to VHM + acrn_insert_request_wait --> + fire_vhm_interrupt --> // interrupt SOS, VHM will get notified + +VHM Module +---------- + +.. code-block:: c + + vhm_intr_handler --> // VHM interrupt handler + tasklet_schedule --> + io_req_tasklet --> + acrn_ioreq_distribute_request --> // ioreq can't be processed in VHM, forward it to device DM + acrn_ioreq_notify_client --> + wake_up_interruptible --> // wake up DM to handle ioreq + +ACRN Device Model / virtio-net Backend Driver +--------------------------------------------- + +.. code-block:: c + + handle_vmexit --> + vmexit_inout --> + emulate_inout --> + pci_emul_io_handler --> + virtio_pci_write --> + virtio_pci_legacy_write --> + virtio_net_ping_txq --> // start TX thread to process, notify thread return + virtio_net_tx_thread --> // this is TX thread + virtio_net_proctx --> // call corresponding backend (tap) to process + virtio_net_tap_tx --> + writev --> // write data to tap device + +SOS TAP Device Forwarding +------------------------- + +.. code-block:: c + + do_writev --> + vfs_writev --> + do_iter_write --> + do_iter_readv_writev --> + call_write_iter --> + tun_chr_write_iter --> + tun_get_user --> + netif_receive_skb --> + netif_receive_skb_internal --> + __netif_receive_skb --> + __netif_receive_skb_core --> + + +SOS Bridge Forwarding +--------------------- + +.. code-block:: c + + br_handle_frame --> + br_handle_frame_finish --> + br_forward --> + __br_forward --> + br_forward_finish --> + br_dev_queue_push_xmit --> + +SOS MAC Layer +------------- + +.. code-block:: c + + dev_queue_xmit --> + __dev_queue_xmit --> + dev_hard_start_xmit --> + xmit_one --> + netdev_start_xmit --> + __netdev_start_xmit --> + + +SOS MAC Layer IGB Driver +------------------------ + +.. code-block:: c + + igb_xmit_frame --> // IGB physical NIC driver xmit function + +ACRN UOS RX FLOW +================ + +The following shows the ACRN UOS network RX flow, using TCP as an example. +Let's start by receiving a device interrupt. (Note that the hypervisor +will first get notified when receiving an interrupt even in passthrough +cases.) + +Hypervisor Interrupt Dispatch +----------------------------- + +.. code-block:: c + + vmexit_handler --> // vmexit because VMX_EXIT_REASON_EXTERNAL_INTERRUPT + external_interrupt_vmexit_handler --> + dispatch_interrupt --> + common_handler_edge --> + ptdev_interrupt_handler --> + ptdev_enqueue_softirq --> // Interrupt will be delivered in bottom-half softirq + + +Hypervisor Interrupt Injection +------------------------------ + +.. code-block:: c + + do_softirq --> + ptdev_softirq --> + vlapic_intr_msi --> // insert the interrupt into SOS + + start_vcpu --> // VM Entry here, will process the pending interrupts + +SOS MAC Layer IGB Driver +------------------------ + +.. code-block:: c + + do_IRQ --> + ... + igb_msix_ring --> + igbpoll --> + napi_gro_receive --> + napi_skb_finish --> + netif_receive_skb_internal --> + __netif_receive_skb --> + __netif_receive_skb_core -- + +SOS Bridge Forwarding +--------------------- + +.. code-block:: c + + br_handle_frame --> + br_handle_frame_finish --> + br_forward --> + __br_forward --> + br_forward_finish --> + br_dev_queue_push_xmit --> + +SOS MAC Layer +------------- + +.. code-block:: c + + dev_queue_xmit --> + __dev_queue_xmit --> + dev_hard_start_xmit --> + xmit_one --> + netdev_start_xmit --> + __netdev_start_xmit --> + +SOS MAC Layer TAP Driver +------------------------ + +.. code-block:: c + + tun_net_xmit --> // Notify and wake up reader process + +ACRN Device Model / virtio-net Backend Driver +--------------------------------------------- + +.. code-block:: c + + virtio_net_rx_callback --> // the tap fd get notified and this function invoked + virtio_net_tap_rx --> // read data from tap, prepare virtqueue, insert interrupt into the UOS + vq_endchains --> + vq_interrupt --> + pci_generate_msi --> + +VHM Module +---------- + +.. code-block:: c + + vhm_dev_ioctl --> // process the IOCTL and call hypercall to inject interrupt + hcall_inject_msi --> + +ACRN Hypervisor +--------------- + +.. code-block:: c + + vmexit_handler --> // vmexit because VMX_EXIT_REASON_VMCALL + vmcall_vmexit_handler --> + hcall_inject_msi --> // insert interrupt into UOS + vlapic_intr_msi --> + +UOS MAC Layer virtio_net Frontend Driver +---------------------------------------- + +.. code-block:: c + + vring_interrupt --> // virtio-net frontend driver interrupt handler + skb_recv_done --> //registed by virtnet_probe-->init_vqs-->virtnet_find_vqs + virtqueue_napi_schedule --> + __napi_schedule --> + virtnet_poll --> + virtnet_receive --> + receive_buf --> + +UOS MAC Layer +------------- + +.. code-block:: c + + napi_gro_receive --> + napi_skb_finish --> + netif_receive_skb_internal --> + __netif_receive_skb --> + __netif_receive_skb_core --> + +UOS IP Layer +------------ + +.. code-block:: c + + ip_rcv --> + ip_rcv_finish --> + dst_input --> + ip_local_deliver --> + ip_local_deliver_finish --> + + +UOS TCP Layer +------------- + +.. code-block:: c + + tcp_v4_rcv --> + tcp_v4_do_rcv --> + tcp_rcv_established --> + tcp_data_queue --> + tcp_queue_rcv --> + __skb_queue_tail --> + + sk->sk_data_ready --> // application will get notified + +How to Use +========== + +The network infrastructure shown in :numref:`net-virt-infra` needs to be +prepared in the SOS before we start. We need to create a bridge and at +least one tap device (two tap devices are needed to create a dual +virtual NIC) and attach a physical NIC and tap device to the bridge. + +.. figure:: images/network-virt-sos-infrastruct.png + :align: center + :width: 900px + :name: net-virt-infra + + Network Infrastructure in SOS + +You can use Linux commands (e.g. ip, brctl) to create this network. In +our case, we use systemd to automatically create the network by default. +You can check the files with prefix 50- in the SOS +``/usr/lib/systemd/network/``: + +- `50-acrn.netdev `__ +- `50-acrn.network `__ +- `50-acrn_tap0.netdev `__ +- `50-eth.network `__ + +When the SOS is started, run ``ifconfig`` to show the devices created by +this systemd configuration: + +.. code-block:: none + + acrn-br0 Link encap:Ethernet HWaddr B2:50:41:FE:F7:A3 + inet addr:10.239.154.43 Bcast:10.239.154.255 Mask:255.255.255.0 + inet6 addr: fe80::b050:41ff:fefe:f7a3/64 Scope:Link + UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 + RX packets:226932 errors:0 dropped:21383 overruns:0 frame:0 + TX packets:14816 errors:0 dropped:0 overruns:0 carrier:0 + collisions:0 txqueuelen:1000 + RX bytes:100457754 (95.8 Mb) TX bytes:83481244 (79.6 Mb) + + acrn_tap0 Link encap:Ethernet HWaddr F6:A7:7E:52:50:C6 + UP BROADCAST MULTICAST MTU:1500 Metric:1 + RX packets:0 errors:0 dropped:0 overruns:0 frame:0 + TX packets:0 errors:0 dropped:0 overruns:0 carrier:0 + collisions:0 txqueuelen:1000 + RX bytes:0 (0.0 b) TX bytes:0 (0.0 b) + + enp3s0 Link encap:Ethernet HWaddr 98:4F:EE:14:5B:74 + inet6 addr: fe80::9a4f:eeff:fe14:5b74/64 Scope:Link + UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 + RX packets:279174 errors:0 dropped:0 overruns:0 frame:0 + TX packets:69923 errors:0 dropped:0 overruns:0 carrier:0 + collisions:0 txqueuelen:1000 + RX bytes:107312294 (102.3 Mb) TX bytes:87117507 (83.0 Mb) + Memory:82200000-8227ffff + + lo Link encap:Local Loopback + inet addr:127.0.0.1 Mask:255.0.0.0 + inet6 addr: ::1/128 Scope:Host + UP LOOPBACK RUNNING MTU:65536 Metric:1 + RX packets:16 errors:0 dropped:0 overruns:0 frame:0 + TX packets:16 errors:0 dropped:0 overruns:0 carrier:0 + collisions:0 txqueuelen:1000 + RX bytes:1216 (1.1 Kb) TX bytes:1216 (1.1 Kb) + +Run ``brctl show`` to see the bridge ``acrn-br0`` and attached devices: + +.. code-block:: none + + bridge name bridge id STP enabled interfaces + + acrn-br0 8000.b25041fef7a3 no acrn_tap0 + enp3s0 + +Add a pci slot to the device model acrn-dm command line (mac address is +optional): + +.. code-block:: none + + -s 4,virtio-net,,[mac=] + +When the UOS is lauched, run ``ifconfig`` to check the network. enp0s4r +is the virtual NIC created by acrn-dm: + +.. code-block:: none + + enp0s4 Link encap:Ethernet HWaddr 00:16:3E:39:0F:CD + inet addr:10.239.154.186 Bcast:10.239.154.255 Mask:255.255.255.0 + inet6 addr: fe80::216:3eff:fe39:fcd/64 Scope:Link + UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 + RX packets:140 errors:0 dropped:8 overruns:0 frame:0 + TX packets:46 errors:0 dropped:0 overruns:0 carrier:0 + collisions:0 txqueuelen:1000 + RX bytes:110727 (108.1 Kb) TX bytes:4474 (4.3 Kb) + + lo Link encap:Local Loopback + inet addr:127.0.0.1 Mask:255.0.0.0 + inet6 addr: ::1/128 Scope:Host + UP LOOPBACK RUNNING MTU:65536 Metric:1 + RX packets:0 errors:0 dropped:0 overruns:0 frame:0 + TX packets:0 errors:0 dropped:0 overruns:0 carrier:0 + collisions:0 txqueuelen:1000 + RX bytes:0 (0.0 b) TX bytes:0 (0.0 b) + +Performance Estimation +====================== + +We've introduced the network virtualization solution in ACRN, from the +top level architecture to the detailed TX and RX flow. Currently, the +control plane and data plane are all processed in ACRN device model, +which may bring some overhead. But this is not a bottleneck for 1000Mbit +NICs or below. Network bandwidth for virtualization can be very close to +the native bandwidgh. For high speed NIC (e.g. 10Gb or above), it is +necessary to separate the data plane from the control plane. We can use +vhost for acceleration. For most IoT scenarios, processing in user space +is simple and reasonable. diff --git a/doc/substitutions.txt b/doc/substitutions.txt index 82ef0d288..531005937 100644 --- a/doc/substitutions.txt +++ b/doc/substitutions.txt @@ -1,6 +1,6 @@ .. |br| raw:: html .. force a line break in HTML output (blank lines needed here) -
+
.. These are replacement strings for non-ASCII characters used within the project using the same name as the html entity names (e.g., ©) for that character