5.1. תנאים מוקדמים
חבילה זו מורכבת כעת עבור דרישות המעבד הנמוכות ביותר האפשריות. מה שעדיין דורש תמיכה ב-SSE3 לפחות על ידי המעבד.
ניתן למצוא את רשימת כרטיסי הרשת הנתמכים ב-DPDK במעלה הזרם ב-NIC נתמכים22. אבל הרבה מאלה מושבתים כברירת מחדל ב-Upstream Project מכיוון שהם עדיין לא במצב יציב. קבוצת המשנה של כרטיסי הרשת ש-DPDK אפשרה בחבילה כזמינה באובונטו 16.04 היא:
אינטל
• 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)
צ'לסיו
• cxgbe29 (שליחות קטלנית 5)
סיסקו
• אניק30 (כרטיס ממשק וירטואלי של UCS) פרוירטואליזציה
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
אחרים
• af_packet33 (שקע AF_PACKET לינוקס)
• טבעת34 (זיכרון)
בנוסף, זה מאפשר באופן ניסיוני את שני מנהלי ההתקן של PMD הבאים, שכן הם מייצגים התקנים (וירטואליים) שנגישים מאוד למשתמשי קצה.
פרואירטואליזציה
• xenvirt35 (קסן)
אחרים
• pcap36 (מנהל התקן של קובץ או ליבה)
יש לבטל את הקצאת כרטיסים ממנהל ההתקן של הליבה שלהם, ובמקום זאת להיות מוקצה ל-uio_pci_generic של vfio-pci. uio_pci_generic מבוגר יותר ובדרך כלל מגיע לעבודה ביתר קלות.
ה-vfio-pci החדש יותר דורש שתפעיל את הפרמטרים הבאים של הליבה כדי להפעיל את iommu.
iommu=pt intel_iommu=on
בנוסף עבור vfio-pci, עליך להגדיר ולהקצות את קבוצות iommu בהתאם.
הערה: בסביבה מבוססת וירטיו זה מספיק "לבטל" התקנים ממנהל ההתקן של הליבה. בלי זה DPDK תסרב להשתמש במכשיר כדי למנוע בעיות עם הליבה ו-DPDK שעובדים על המכשיר בו זמנית. מכיוון ש-DPDK יכול לעבוד ישירות על התקני virtio, אין צורך להקצות למשל uio_pci_generic להתקנים אלה.
ניתן לבצע תצורה ידנית ובדיקת מצב באמצעות sysfs או עם הכלי dpdk_nic_bind
dpdk_nic_bind --עזרה
נוֹהָג:
------
dpdk_nic_bind [אפשרויות] DEVICE1 DEVICE2 ....
כאשר DEVICE1, DEVICE2 וכו', מצוינים באמצעות תחביר PCI "domain:bus:slot.func" או תחביר "bus:slot.func". עבור מכשירים המחוברים למנהלי התקנים של ליבת לינוקס, הם עשויים
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
יש להתייחס גם לפי שם ממשק לינוקס, למשל eth0, eth1, em0, em1 וכו'.
אפשרויות:
--עזרה, --שימוש:
הצג מידע שימוש וצא
-s, --סטטוס:
הדפס את המצב הנוכחי של כל ממשקי הרשת הידועים.
עבור כל מכשיר, הוא מציג את תחום ה-PCI, האוטובוס, החריץ והתפקוד, יחד עם תיאור טקסט של המכשיר. תלוי אם ההתקן נמצא בשימוש על ידי מנהל התקן ליבה, מנהל ההתקן של igb_uio, או ללא מנהל התקן, מידע רלוונטי אחר יוצג:
* שם ממשק לינוקס למשל if=eth0
* מנהל ההתקן שבו נעשה שימוש, למשל drv=igb_uio
* כל מנהלי התקנים מתאימים שאינם משתמשים כעת במכשיר זה
למשל unused=igb_uio
הערה: אם הדגל הזה מועבר יחד עם אפשרות כריכה/ביטול, תצוגת הסטטוס תתרחש תמיד לאחר ביצוע הפעולות האחרות.
-b driver, --bind=driver:
בחר את מנהל ההתקן לשימוש או "ללא" כדי לבטל את קישור ההתקן
-u, --unbind:
בטל קישור של מכשיר (שווה ערך ל-"-b none")
--כּוֹחַ:
כברירת מחדל, לא ניתן לשנות מכשירים המשמשים את לינוקס - כפי שמצוין על ידי מסלולים בטבלת הניתוב. השימוש בדגל --force עוקף התנהגות זו, ומאפשר לקישור פעיל להתנתק בכוח.
אזהרה: הדבר עלול להוביל לאובדן החיבור לרשת ויש להשתמש בו בזהירות.
דוגמאות:
---------
כדי להציג את מצב המכשיר הנוכחי: dpdk_nic_bind --status
כדי לאגד את eth1 מהנהג הנוכחי ולעבור להשתמש ב-igb_uio dpdk_nic_bind --bind=igb_uio eth1
כדי לבטל את 0000:01:00.0 משימוש בכל מנהל התקן dpdk_nic_bind -u 0000:01:00.0
כדי לאגד את 0000:02:00.0 ו-0000:02:00.1 למנהל ההתקן של ליבת ixgbe dpdk_nic_bind -b ixgbe 02:00.0 02:00.