<Sebelum | Contents [show] | Seterusnya>
5.1. Prasyarat
Pakej ini pada masa ini disusun untuk keperluan CPU terendah yang mungkin. Yang masih memerlukan sekurang-kurangnya SSE3 untuk disokong oleh CPU.
Senarai kad rangkaian yang disokong DPDK huluan boleh didapati di NIC yang disokong22. Tetapi banyak daripada mereka dilumpuhkan secara lalai dalam Projek huluan kerana mereka belum berada dalam keadaan stabil. Subset kad rangkaian yang DPDK telah dayakan dalam pakej seperti yang tersedia dalam Ubuntu 16.04 ialah:
Intel
• e100023 (82540, 82545, 82546)
• e1000e24 (82571..82574, 82583, ICH8..ICH10, PCH..PCH2)
• igb25 (82575..82576, 82580, I210, I211, I350, I354, DH89xx)
• ixgbe26 (82598..82599, X540, X550)
• i40e27 (X710, XL710, X722)
• fm10k28 (FM10420)
Chelsio
• cxgbe29 (Terminator 5)
Cisco
• enik30 (Kad Antara Muka Maya UCS) Paravirtualisasi
23 http://dpdk.org/doc/guides/nics/e1000em.html
24 http://dpdk.org/browse/dpdk/tree/drivers/net/e1000/
25 http://dpdk.org/browse/dpdk/tree/drivers/net/e1000/
26 http://dpdk.org/doc/guides/nics/ixgbe.html
27 http://dpdk.org/browse/dpdk/tree/drivers/net/i40e/
28 http://dpdk.org/doc/guides/nics/fm10k.html
29 http://dpdk.org/doc/guides/nics/cxgbe.html
30 http://dpdk.org/browse/dpdk/tree/drivers/net/enic
• virtio-net31 (QEMU)
• vmxnet332
Sebagainya
• paket_f33 (Soket AF_PACKET Linux)
• cincin34 (ingatan)
Di atasnya, ia secara eksperimen membolehkan dua pemacu PMD berikut kerana ia mewakili peranti (maya) yang sangat boleh diakses oleh pengguna akhir.
Paravirtualisasi
• xenvirt35 (Xen)
Sebagainya
• pcap36 (fail atau pemacu kernel)
Kad perlu dibatalkan daripada pemacu kernel mereka dan sebaliknya diberikan kepada uio_pci_generic vfio-pci. uio_pci_generic lebih lama dan biasanya mula bekerja dengan lebih mudah.
Vfio-pci yang lebih baharu memerlukan anda mengaktifkan parameter kernel berikut untuk mendayakan iommu.
iommu=pt intel_iommu=on
Di atas untuk vfio-pci, anda perlu mengkonfigurasi dan menetapkan kumpulan iommu dengan sewajarnya.
Nota: Dalam persekitaran berasaskan virtio sudah cukup untuk "menyahtugas" peranti daripada pemacu kernel. Tanpa itu DPDK akan menolak untuk menggunakan peranti untuk mengelakkan masalah dengan kernel dan DPDK yang berfungsi pada peranti pada masa yang sama. Memandangkan DPDK boleh berfungsi secara langsung pada peranti virtio, ia tidak perlu memberikan contohnya uio_pci_generic kepada peranti tersebut.
Konfigurasi manual dan semakan status boleh dilakukan melalui sysfs atau dengan alat dpdk_nic_bind
dpdk_nic_bind --help
Penggunaan:
------
dpdk_nic_bind [pilihan] DEVICE1 DEVICE2 ....
di mana DEVICE1, DEVICE2 dll, ditentukan melalui sintaks "domain:bus:slot.func" PCI atau sintaks "bus:slot.func". Untuk peranti yang terikat kepada pemacu kernel Linux, mereka boleh
31 http://dpdk.org/doc/guides/nics/virtio.html
32 http://dpdk.org/doc/guides/nics/vmxnet3.html
33 http://dpdk.org/browse/dpdk/tree/drivers/net/af_packet
34 http://dpdk.org/doc/guides/nics/pcap_ring.html#rings-based-pmd
35 http://dpdk.org/doc/guides/xen/pkt_switch.html#xen-pmd-frontend-prerequisites
36 http://dpdk.org/doc/guides/nics/pcap_ring.html#libpcap-based-pmd
juga dirujuk oleh nama antara muka Linux cth eth0, eth1, em0, em1, dsb.
Pilihan:
--bantuan, --penggunaan:
Paparkan maklumat penggunaan dan berhenti
-s, --status:
Cetak status semasa semua antara muka rangkaian yang diketahui.
Untuk setiap peranti, ia memaparkan domain PCI, bas, slot dan fungsi, bersama-sama dengan penerangan teks peranti. Bergantung pada sama ada peranti sedang digunakan oleh pemacu kernel, pemacu igb_uio, atau tiada pemacu, maklumat lain yang berkaitan akan dipaparkan:
* nama antara muka Linux cth if=eth0
* pemandu yang digunakan cth drv=igb_uio
* mana-mana pemandu yang sesuai yang tidak menggunakan peranti itu pada masa ini
cth unused=igb_uio
NOTA: jika bendera ini dihantar bersama-sama dengan pilihan bind/unbind, paparan status akan sentiasa berlaku selepas operasi lain telah berlaku.
-b pemandu, --bind=driver:
Pilih pemacu untuk digunakan atau "tiada" untuk membuka ikatan peranti
-u, --buka ikatan:
Nyahikat peranti (Bersamaan dengan "-b none")
--paksa:
Secara lalai, peranti yang digunakan oleh Linux - seperti yang ditunjukkan dengan mempunyai laluan dalam jadual penghalaan - tidak boleh diubah suai. Menggunakan bendera --force mengatasi gelagat ini, membenarkan pautan aktif dinyahikat secara paksa.
AMARAN: Ini boleh menyebabkan kehilangan sambungan rangkaian dan harus digunakan dengan berhati-hati.
Contoh:
---------
Untuk memaparkan status peranti semasa: dpdk_nic_bind --status
Untuk mengikat eth1 daripada pemacu semasa dan bergerak menggunakan igb_uio dpdk_nic_bind --bind=igb_uio eth1
Untuk menyahikat 0000:01:00.0 daripada menggunakan mana-mana pemandu dpdk_nic_bind -u 0000:01:00.0
Untuk mengikat 0000:02:00.0 dan 0000:02:00.1 kepada pemacu kernel ixgbe dpdk_nic_bind -b ixgbe 02:00.0 02:00.