mirror of
https://github.com/projectacrn/acrn-hypervisor.git
synced 2025-06-24 14:33:38 +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
|
||||
receives the data in a shared virtqueue and sends it to the TAP device.
|
||||
|
||||
Bridge and Tap Device:
|
||||
Bridge and Tap are standard virtual network infrastructures. They play
|
||||
Bridge and TAP Device:
|
||||
Bridge and TAP are standard virtual network infrastructures. They play
|
||||
an important role in communication among the Service VM, the User VM, and the
|
||||
outside world.
|
||||
|
||||
@ -108,7 +108,7 @@ Initialization in Device Model
|
||||
- Present frontend for a virtual PCI based NIC
|
||||
- Setup control plan callbacks
|
||||
- Setup data plan callbacks, including TX, RX
|
||||
- Setup tap backend
|
||||
- Setup TAP backend
|
||||
|
||||
Initialization in virtio-net Frontend Driver
|
||||
============================================
|
||||
@ -365,7 +365,7 @@ cases.)
|
||||
.. code-block:: c
|
||||
|
||||
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 -->
|
||||
__napi_schedule -->
|
||||
virtnet_poll -->
|
||||
@ -406,13 +406,13 @@ cases.)
|
||||
|
||||
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
|
||||
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
|
||||
virtual NIC) and attach a physical NIC and tap device to the bridge.
|
||||
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
|
||||
@ -509,6 +509,32 @@ is the virtual NIC created by acrn-dm:
|
||||
collisions:0 txqueuelen:1000
|
||||
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
|
||||
======================
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user