mirror of
https://github.com/projectacrn/acrn-hypervisor.git
synced 2025-08-12 05:22:33 +00:00
doc: update virtio-net documentation with macvtap support.
Tracked-On: #4945 Signed-off-by: Vijay Dhanraj <vijay.dhanraj@intel.com> Signed-off-by: David B. Kinder <david.b.kinder@intel.com>
This commit is contained in:
parent
a26a663041
commit
deec563361
@ -70,8 +70,8 @@ ACRN Device Model and virtio-net Backend Driver:
|
|||||||
the virtio-net backend driver to process the request. The backend driver
|
the virtio-net backend driver to process the request. The backend driver
|
||||||
receives the data in a shared virtqueue and sends it to the TAP device.
|
receives the data in a shared virtqueue and sends it to the TAP device.
|
||||||
|
|
||||||
Bridge and Tap Device:
|
Bridge and TAP Device:
|
||||||
Bridge and Tap are standard virtual network infrastructures. They play
|
Bridge and TAP are standard virtual network infrastructures. They play
|
||||||
an important role in communication among the Service VM, the User VM, and the
|
an important role in communication among the Service VM, the User VM, and the
|
||||||
outside world.
|
outside world.
|
||||||
|
|
||||||
@ -108,7 +108,7 @@ Initialization in Device Model
|
|||||||
- Present frontend for a virtual PCI based NIC
|
- Present frontend for a virtual PCI based NIC
|
||||||
- Setup control plan callbacks
|
- Setup control plan callbacks
|
||||||
- Setup data plan callbacks, including TX, RX
|
- Setup data plan callbacks, including TX, RX
|
||||||
- Setup tap backend
|
- Setup TAP backend
|
||||||
|
|
||||||
Initialization in virtio-net Frontend Driver
|
Initialization in virtio-net Frontend Driver
|
||||||
============================================
|
============================================
|
||||||
@ -365,7 +365,7 @@ cases.)
|
|||||||
.. code-block:: c
|
.. code-block:: c
|
||||||
|
|
||||||
vring_interrupt --> // virtio-net frontend driver interrupt handler
|
vring_interrupt --> // virtio-net frontend driver interrupt handler
|
||||||
skb_recv_done --> //registed by virtnet_probe-->init_vqs-->virtnet_find_vqs
|
skb_recv_done --> // registered by virtnet_probe-->init_vqs-->virtnet_find_vqs
|
||||||
virtqueue_napi_schedule -->
|
virtqueue_napi_schedule -->
|
||||||
__napi_schedule -->
|
__napi_schedule -->
|
||||||
virtnet_poll -->
|
virtnet_poll -->
|
||||||
@ -406,13 +406,13 @@ cases.)
|
|||||||
|
|
||||||
sk->sk_data_ready --> // application will get notified
|
sk->sk_data_ready --> // application will get notified
|
||||||
|
|
||||||
How to Use
|
How to Use TAP Interface
|
||||||
==========
|
========================
|
||||||
|
|
||||||
The network infrastructure shown in :numref:`net-virt-infra` needs to be
|
The network infrastructure shown in :numref:`net-virt-infra` needs to be
|
||||||
prepared in the Service VM before we start. We need to create a bridge and at
|
prepared in the Service VM before we start. We need to create a bridge and at
|
||||||
least one tap device (two tap devices are needed to create a dual
|
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.
|
virtual NIC) and attach a physical NIC and TAP device to the bridge.
|
||||||
|
|
||||||
.. figure:: images/network-virt-sos-infrastruct.png
|
.. figure:: images/network-virt-sos-infrastruct.png
|
||||||
:align: center
|
:align: center
|
||||||
@ -509,6 +509,32 @@ is the virtual NIC created by acrn-dm:
|
|||||||
collisions:0 txqueuelen:1000
|
collisions:0 txqueuelen:1000
|
||||||
RX bytes:0 (0.0 b) TX bytes:0 (0.0 b)
|
RX bytes:0 (0.0 b) TX bytes:0 (0.0 b)
|
||||||
|
|
||||||
|
How to Use MacVTap Interface
|
||||||
|
============================
|
||||||
|
In addition to TAP interface, ACRN also supports MacVTap interface.
|
||||||
|
MacVTap replaces the combination of the TAP and bridge drivers with
|
||||||
|
a single module based on MacVLan driver. With MacVTap, each
|
||||||
|
virtual network interface is assigned its own MAC and IP address
|
||||||
|
and is directly attached to the physical interface of the host machine
|
||||||
|
to improve throughput and latencies.
|
||||||
|
|
||||||
|
Create a MacVTap interface in the Service VM as shown here:
|
||||||
|
|
||||||
|
.. code-block:: none
|
||||||
|
|
||||||
|
sudo ip link add link eth0 name macvtap0 type macvtap
|
||||||
|
|
||||||
|
where ``eth0`` is the name of the physical network interface, and
|
||||||
|
``macvtap0`` is the name of the MacVTap interface being created. (Make
|
||||||
|
sure the MacVTap interface name includes the keyword ``tap``.)
|
||||||
|
|
||||||
|
Once the MacVTap interface is created, the User VM can be launched by adding
|
||||||
|
a PCI slot to the device model acrn-dm as shown below.
|
||||||
|
|
||||||
|
.. code-block:: none
|
||||||
|
|
||||||
|
-s 4,virtio-net,<macvtap_name>,[mac=<XX:XX:XX:XX:XX:XX>]
|
||||||
|
|
||||||
Performance Estimation
|
Performance Estimation
|
||||||
======================
|
======================
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user