<Trước | Nội dung | Tiếp theo>
5.1. Điều kiện tiên quyết
Gói này hiện được biên dịch cho các yêu cầu CPU thấp nhất có thể. Mà vẫn yêu cầu ít nhất SSE3 được hỗ trợ bởi CPU.
Danh sách các card mạng được hỗ trợ DPDK ngược dòng có thể được tìm thấy tại các NIC được hỗ trợ22. Nhưng rất nhiều trong số đó bị vô hiệu hóa theo mặc định trong Dự án ngược dòng vì chúng chưa ở trạng thái ổn định. Tập hợp con các thẻ mạng mà DPDK đã kích hoạt trong gói sẵn có trong Ubuntu 16.04 là:
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 (Kẻ hủy diệt 5)
Cisco
• mê hoặc30 (Thẻ giao diện ảo 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
• mạng ảo31 (QEMU)
• vmxnet332
Khác
• af_packet33 (Ổ cắm Linux AF_PACKET)
• nhẫn34 (ký ức)
Trên hết, nó cho phép thử nghiệm hai trình điều khiển PMD sau vì chúng đại diện cho các thiết bị (ảo) mà người dùng cuối rất dễ truy cập.
paravirtualization
• xenvirt35 (Xên)
Khác
• pcap36 (trình điều khiển tệp hoặc hạt nhân)
Các thẻ phải được bỏ gán khỏi trình điều khiển hạt nhân của chúng và thay vào đó được gán cho uio_pci_generic của vfio-pci. uio_pci_generic cũ hơn và thường làm việc dễ dàng hơn.
Vfio-pci mới hơn yêu cầu bạn kích hoạt các tham số hạt nhân sau để kích hoạt iommu.
iommu = pt intel_iommu = on
Đối với vfio-pci, bạn phải định cấu hình và gán các nhóm iommu cho phù hợp.
Lưu ý: Trong môi trường dựa trên virtio, chỉ cần "bỏ gán" các thiết bị khỏi trình điều khiển hạt nhân. Nếu không có điều đó DPDK sẽ từ chối sử dụng thiết bị để tránh các vấn đề với hạt nhân và DPDK hoạt động trên thiết bị cùng một lúc. Vì DPDK có thể hoạt động trực tiếp trên các thiết bị virtio nên không bắt buộc phải gán ví dụ: uio_pci_generic cho các thiết bị đó.
Cấu hình thủ công và kiểm tra trạng thái có thể được thực hiện thông qua sysfs hoặc bằng công cụ dpdk_nic_bind
dpdk_nic_bind --trợ giúp
Cách sử dụng:
------
dpdk_nic_bind [options] DEVICE1 THIẾT BỊ2 ....
trong đó DEVICE1, DEVICE2, v.v., được chỉ định qua cú pháp PCI "domain: bus: slot.func" hoặc cú pháp "bus: slot.func". Đối với các thiết bị liên kết với trình điều khiển nhân Linux, chúng có thể
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
cũng được gọi bằng tên giao diện Linux, ví dụ như eth0, eth1, em0, em1, v.v.
Tùy chọn:
--trợ giúp, --sử dụng:
Hiển thị thông tin sử dụng và thoát
-s, - trạng thái:
In trạng thái hiện tại của tất cả các giao diện mạng đã biết.
Đối với mỗi thiết bị, nó hiển thị miền PCI, bus, khe cắm và chức năng, cùng với mô tả văn bản của thiết bị. Tùy thuộc vào việc thiết bị đang được sử dụng bởi trình điều khiển nhân, trình điều khiển igb_uio hay không có trình điều khiển, thông tin liên quan khác sẽ được hiển thị:
* tên giao diện Linux, ví dụ if = eth0
* trình điều khiển đang được sử dụng, ví dụ: drv = igb_uio
* bất kỳ trình điều khiển phù hợp nào hiện không sử dụng thiết bị đó
ví dụ: used = igb_uio
LƯU Ý: nếu cờ này được chuyển cùng với tùy chọn ràng buộc / hủy liên kết, hiển thị trạng thái sẽ luôn xảy ra sau khi các hoạt động khác đã diễn ra.
-b trình điều khiển, --bind = trình điều khiển:
Chọn trình điều khiển để sử dụng hoặc "không có" để hủy liên kết thiết bị
-u, --bỏ ràng buộc:
Hủy liên kết thiết bị (Tương đương với "-b none")
--lực lượng:
Theo mặc định, các thiết bị được sử dụng bởi Linux - như được chỉ ra bằng cách có các tuyến trong bảng định tuyến - không thể sửa đổi. Việc sử dụng cờ --force sẽ ghi đè hành vi này, cho phép các liên kết đang hoạt động không bị ràng buộc.
CẢNH BÁO: Điều này có thể dẫn đến mất kết nối mạng và cần được sử dụng một cách thận trọng.
Ví dụ:
---------
Để hiển thị trạng thái thiết bị hiện tại: dpdk_nic_bind --status
Để liên kết eth1 từ trình điều khiển hiện tại và chuyển sang sử dụng igb_uio dpdk_nic_bind --bind = igb_uio eth1
Để hủy liên kết 0000: 01: 00.0 khỏi việc sử dụng bất kỳ trình điều khiển nào dpdk_nic_bind -u 0000: 01: 00.0
Để liên kết 0000: 02: 00.0 và 0000: 02: 00.1 với trình điều khiển hạt nhân ixgbe dpdk_nic_bind -b ixgbe 02: 00.0 02:00.
<Trước | Nội dung | Tiếp theo>