.. SPDX-License-Identifier: GPL-2.0+ .. include:: ../../../../../disclaimer-vi.rst :Original: Documentation/networking/device_drivers/ethernet/intel/ice.rst :Translator: Google Translate (machine translation) :Upstream-at: 8541d8f725c6 .. warning:: Tài liệu này được dịch tự động bằng máy và chưa được review bởi người dịch. Nội dung có thể không chính xác hoặc khó hiểu ở một số chỗ. Khi có sự khác biệt với bản gốc, bản gốc luôn là chuẩn. Bản dịch chất lượng cao (được review) được đặt trong thư mục vi_VN/. ========================================================================= Trình điều khiển cơ sở Linux cho Bộ điều khiển Ethernet Intel(R) dòng 800 ========================================================================= Trình điều khiển Intel Ice Linux. Bản quyền(c) 2018-2021 Tập đoàn Intel. Nội dung ======== - Tổng quan - Xác định bộ chuyển đổi của bạn - Ghi chú quan trọng - Các tính năng và cấu hình bổ sung - Tối ưu hóa hiệu suất Trình điều khiển Chức năng Ảo (VF) được liên kết cho trình điều khiển này là iavf. Thông tin trình điều khiển có thể được lấy bằng ethtool và lspci. Đối với các câu hỏi liên quan đến yêu cầu phần cứng, hãy tham khảo tài liệu được cung cấp cùng với bộ điều hợp Intel của bạn. Tất cả các yêu cầu phần cứng được liệt kê đều áp dụng để sử dụng với Linux. Trình điều khiển này hỗ trợ XDP (Đường dẫn dữ liệu nhanh) và không sao chép AF_XDP. Lưu ý rằng XDP bị chặn đối với kích thước khung hình lớn hơn 3KB. Xác định bộ điều hợp của bạn ============================ Để biết thông tin về cách xác định bộ điều hợp của bạn và để có phiên bản Intel mới nhất trình điều khiển mạng, hãy tham khảo trang web Hỗ trợ của Intel: ZZ0000ZZ Ghi chú quan trọng ================== Việc giảm gói có thể xảy ra khi nhận được căng thẳng ---------------------------------------------------- Các thiết bị dựa trên Bộ điều khiển Ethernet Intel(R) Series 800 được thiết kế để chịu được độ trễ hệ thống ở mức giới hạn trong các giao dịch PCIe và DMA. Nếu các giao dịch này mất nhiều thời gian hơn độ trễ có thể chấp nhận được thì nó có thể ảnh hưởng đến khoảng thời gian các gói được lưu vào bộ đệm trong thiết bị và bộ nhớ liên quan, có thể dẫn đến các gói bị rơi. Những gói tin này bị rơi thường không có tác động đáng chú ý đến thông lượng và hiệu suất trong khối lượng công việc tiêu chuẩn. Nếu những lần giảm gói này có vẻ ảnh hưởng đến khối lượng công việc của bạn thì những điều sau đây có thể được cải thiện tình hình: 1) Đảm bảo rằng bộ nhớ vật lý của hệ thống của bạn có hiệu suất cao cấu hình, theo khuyến nghị của nhà cung cấp nền tảng. Một điểm chung khuyến nghị là tất cả các kênh nên được điền một DIMM duy nhất mô-đun. 2) Trong cài đặt BIOS/UEFI trên hệ thống của bạn, hãy chọn cấu hình "Hiệu suất". 3) Bản phân phối của bạn có thể cung cấp các công cụ như "điều chỉnh", có thể giúp điều chỉnh cài đặt kernel để đạt được cài đặt tiêu chuẩn tốt hơn cho các khối lượng công việc khác nhau. Định cấu hình SR-IOV để cải thiện bảo mật mạng ------------------------------------------------ Trong môi trường ảo hóa, trên Bộ điều hợp mạng Ethernet Intel(R) hỗ trợ SR-IOV, chức năng ảo (VF) có thể có hành vi nguy hiểm. Lớp hai khung do phần mềm tạo ra, như IEEE 802.3x (điều khiển luồng liên kết), IEEE 802.1Qbb (điều khiển luồng dựa trên mức độ ưu tiên) và các loại khác thuộc loại này thì không dự kiến và có thể điều tiết lưu lượng giữa máy chủ và bộ chuyển mạch ảo, giảm hiệu suất. Để giải quyết vấn đề này và đảm bảo cách ly khỏi luồng lưu lượng truy cập ngoài ý muốn, định cấu hình tất cả các cổng được bật SR-IOV để gắn thẻ VLAN từ giao diện quản trị trên PF. Cấu hình này cho phép các khung hình không mong muốn và có khả năng độc hại sẽ bị loại bỏ. Xem "Định cấu hình gắn thẻ VLAN trên cổng bộ điều hợp đã bật SR-IOV" sau trong phần này README để được hướng dẫn cấu hình. Không dỡ trình điều khiển cổng nếu VF có VM đang hoạt động được liên kết với nó ------------------------------------------------------------------------------- Không dỡ trình điều khiển của cổng nếu Chức năng ảo (VF) có chức năng ảo đang hoạt động Máy (VM) bị ràng buộc với nó. Làm như vậy sẽ khiến cổng có vẻ bị treo. Khi VM tắt hoặc giải phóng VF, lệnh sẽ hoàn thành. Các tính năng và cấu hình bổ sung ====================================== công cụ đạo đức --------------- Trình điều khiển sử dụng giao diện ethtool để cấu hình trình điều khiển và chẩn đoán cũng như hiển thị thông tin thống kê. Công cụ đạo đức mới nhất Phiên bản này là cần thiết cho chức năng này. Tải xuống tại: ZZ0000ZZ NOTE: Giá trị rx_bytes của ethtool không khớp với giá trị rx_bytes của Netdev, do CRC 4 byte bị thiết bị tước bỏ. Sự khác biệt giữa hai giá trị rx_bytes sẽ là 4 x số lượng gói Rx. cho ví dụ: nếu gói Rx là 10 và Netdev (thống kê phần mềm) hiển thị rx_bytes là "X", thì ethtool (thống kê phần cứng) sẽ hiển thị rx_bytes là "X+40" (4 byte CRC x 10 gói). thiết lập lại ethtool --------------------- Trình điều khiển hỗ trợ 3 loại thiết lập lại: - Đặt lại PF - chỉ đặt lại các thành phần được liên kết với PF đã cho, không tác động đến các PF khác - Đặt lại CORE - toàn bộ bộ điều hợp bị ảnh hưởng, đặt lại tất cả PF - Đặt lại GLOBAL - giống như CORE nhưng các thành phần mac và phy cũng được khởi tạo lại Chúng được ánh xạ tới các cờ đặt lại ethtool như sau: - Thiết lập lại PF: # ethtool --reset giảm tải bộ lọc irq dma - Đặt lại CORE: # ethtool --reset irq-shared dma-shared filter-shared offload-shared \ chia sẻ ram - Đặt lại GLOBAL: # ethtool --reset irq-shared dma-shared filter-shared offload-shared \ chia sẻ phy chia sẻ ram chia sẻ mac Trong chế độ switchdev, bạn có thể đặt lại VF bằng cách sử dụng biểu tượng cổng: # ethtool --reset giảm tải bộ lọc irq dma Xem tin nhắn liên kết --------------------- Thông báo liên kết sẽ không được hiển thị trên bảng điều khiển nếu việc phân phối hạn chế tin nhắn hệ thống. Để xem thông báo liên kết trình điều khiển mạng trên bảng điều khiển của bạn, hãy đặt dmesg thành 8 bằng cách nhập thông tin sau:: # dmesg-n 8 NOTE: Cài đặt này không được lưu trong các lần khởi động lại. Cá nhân hóa thiết bị động ------------------------------ Cá nhân hóa thiết bị động (DDP) cho phép bạn thay đổi cách xử lý gói đường dẫn của thiết bị bằng cách áp dụng gói hồ sơ cho thiết bị khi chạy. Cấu hình có thể được sử dụng để, ví dụ, thêm hỗ trợ cho các giao thức mới, thay đổi các giao thức hiện có hoặc thay đổi cài đặt mặc định. Cấu hình DDP cũng có thể được cuộn trở lại mà không cần khởi động lại hệ thống. Tải gói DDP trong quá trình khởi tạo thiết bị. Người lái xe tìm ZZ0000ZZ trong root firmware của bạn (thường là ZZ0001ZZ hoặc ZZ0002ZZ) và kiểm tra xem nó có chứa gói DDP hợp lệ không tập tin. NOTE: Bản phân phối của bạn có thể đã cung cấp tệp DDP mới nhất, nhưng nếu Ice.pkg bị thiếu, bạn có thể tìm thấy nó trong kho phần mềm linux hoặc từ intel.com. Nếu driver không tải được gói DDP thì máy sẽ vào Safe Chế độ. Chế độ an toàn vô hiệu hóa các tính năng nâng cao và hiệu suất và chỉ hỗ trợ lưu lượng truy cập cơ bản và chức năng tối thiểu, chẳng hạn như cập nhật NVM hoặc tải xuống trình điều khiển mới hoặc gói DDP. Chế độ an toàn chỉ áp dụng cho người bị ảnh hưởng chức năng vật lý và không ảnh hưởng đến bất kỳ PF nào khác. Xem "Ethernet Intel(R) Hướng dẫn sử dụng bộ điều hợp và thiết bị" để biết thêm chi tiết về DDP và Chế độ an toàn. NOTES: - Nếu bạn gặp sự cố với tệp gói DDP, bạn có thể cần phải tải xuống trình điều khiển được cập nhật hoặc tệp gói DDP. Xem thông điệp tường trình để biết thêm thông tin. - File Ice.pkg là một liên kết tượng trưng đến file gói DDP mặc định. - Bạn không thể cập nhật gói DDP nếu bất kỳ trình điều khiển PF nào đã được tải. Đến ghi đè lên một gói, dỡ bỏ tất cả các PF và sau đó tải lại trình điều khiển bằng gói mới gói. - Chỉ PF được tải đầu tiên trên mỗi thiết bị mới có thể tải xuống gói cho thiết bị đó. Bạn có thể cài đặt các tệp gói DDP cụ thể cho các thiết bị vật lý khác nhau trong cùng một hệ thống. Để cài đặt tệp gói DDP cụ thể: 1. Tải xuống tệp gói DDP mà bạn muốn cho thiết bị của mình. 2. Đổi tên tệp Ice-xxxxxxxxxxxxxxxx.pkg, trong đó 'xxxxxxxxxxxxxxxx' là số sê-ri thiết bị PCI Express 64-bit duy nhất (ở dạng hex) của thiết bị bạn muốn gói được tải xuống. Tên tập tin phải bao gồm đầy đủ số sê-ri (bao gồm số 0 đứng đầu) và tất cả đều là chữ thường. Ví dụ, nếu số sê-ri 64-bit là b887a3ffffca0568 thì tên tệp sẽ là băng-b887a3ffffca0568.pkg. Để tìm số sê-ri từ địa chỉ bus PCI, bạn có thể sử dụng lệnh sau:: # lspci -vv -s af:00.0 | grep -i nối tiếp Khả năng: [150 v1] Số sê-ri thiết bị b8-87-a3-ff-ff-ca-05-68 Bạn có thể sử dụng lệnh sau để định dạng số sê-ri mà không cần dấu gạch ngang:: # lspci -vv -s af:00.0 ZZ0000ZZ awk '{print $7}' | sed s/-//g b887a3ffffca0568 3. Sao chép tệp gói DDP đã đổi tên vào ZZ0000ZZ. Nếu thư mục chưa có tồn tại, hãy tạo nó trước khi sao chép tập tin. 4. Dỡ bỏ tất cả PF trên thiết bị. 5. Tải lại trình điều khiển bằng gói mới. NOTE: Sự hiện diện của tệp gói DDP dành riêng cho thiết bị sẽ ghi đè quá trình tải của tệp gói DDP mặc định (ice.pkg). Giám đốc luồng Ethernet Intel(R) -------------------------------- Giám đốc luồng Ethernet Intel thực hiện các tác vụ sau: - Chỉ đạo nhận các gói theo luồng của chúng đến các hàng đợi khác nhau - Cho phép kiểm soát chặt chẽ việc định tuyến luồng trong nền tảng - Phù hợp với các luồng và lõi CPU cho mối quan hệ dòng chảy NOTE: Trình điều khiển này hỗ trợ các loại luồng sau: -IPv4 - TCPv4 - UDPv4 - SCTPv4 -IPv6 - TCPv6 - UDPv6 - SCTPv6 Mỗi loại luồng hỗ trợ các kết hợp địa chỉ IP hợp lệ (nguồn hoặc đích) và các cổng UDP/TCP/SCTP (nguồn và đích). Bạn có thể cung cấp chỉ địa chỉ IP nguồn, địa chỉ IP nguồn và cổng đích hoặc bất kỳ địa chỉ nào sự kết hợp của một hoặc nhiều trong số bốn tham số này. NOTE: Trình điều khiển này cho phép bạn lọc lưu lượng dựa trên linh hoạt do người dùng xác định mẫu hai byte và bù đắp bằng cách sử dụng các trường mặt nạ và def người dùng ethtool. Chỉ Các loại luồng L3 và L4 được hỗ trợ cho các bộ lọc linh hoạt do người dùng xác định. Đối với một loại luồng nhất định, bạn phải xóa tất cả các bộ lọc Intel Ethernet Flow Director trước khi thay đổi bộ đầu vào (đối với loại luồng đó). Bộ lọc giám đốc luồng --------------------- Bộ lọc Giám đốc luồng được sử dụng để điều hướng lưu lượng truy cập phù hợp với quy định đặc điểm. Chúng được kích hoạt thông qua giao diện ntuple của ethtool. Để kích hoạt hoặc tắt Intel Ethernet Flow Director và các bộ lọc sau:: # ethtool -K ntuple NOTE: Khi bạn tắt nhiều bộ lọc, tất cả các bộ lọc do người dùng lập trình sẽ bị xóa khỏi bộ đệm trình điều khiển và phần cứng. Tất cả các bộ lọc cần thiết phải được thêm lại khi ntuple được kích hoạt lại. Để hiển thị tất cả các bộ lọc đang hoạt động:: # ethtool -u Để thêm bộ lọc mới:: # ethtool -U loại luồng src-ip [m ] dst-ip [m ] src-port [m ] dst-port [m ] hành động Ở đâu: - thiết bị Ethernet để lập trình - có thể là ip4, tcp4, udp4, sctp4, ip6, tcp6, udp6, sctp6 - địa chỉ IP cần khớp - địa chỉ IPv4 cần che dấu NOTE: Những bộ lọc này sử dụng mặt nạ đảo ngược. - số cổng cần khớp - số nguyên 16 bit để tạo mặt nạ NOTE: Những bộ lọc này sử dụng mặt nạ đảo ngược. - hàng đợi hướng lưu lượng truy cập tới (-1 loại bỏ lưu lượng truy cập phù hợp) Để xóa bộ lọc:: # ethtool -U xóa Trong đó là ID bộ lọc được hiển thị khi in tất cả các bộ lọc đang hoạt động, và cũng có thể được chỉ định bằng cách sử dụng "loc " khi thêm bộ lọc. EXAMPLES: Để thêm bộ lọc chuyển gói đến hàng đợi 2:: # ethtool -U loại luồng tcp4 src-ip 192.168.10.1 dst-ip \ 192.168.10.2 src-port 2000 dst-port 2001 hành động 2 [loc 1] Để đặt bộ lọc chỉ sử dụng địa chỉ IP nguồn và đích:: # ethtool -U loại luồng tcp4 src-ip 192.168.10.1 dst-ip \ 192.168.10.2 hành động 2 [loc 1] Để đặt bộ lọc dựa trên mẫu và phần bù do người dùng xác định :: # ethtool -U loại luồng tcp4 src-ip 192.168.10.1 dst-ip \ 192.168.10.2 hành động 0x4FFFF do người dùng xác định 2 [loc 1] trong đó giá trị của trường user-def chứa phần bù (4 byte) và mẫu (0xffff). Để phù hợp với lưu lượng truy cập TCP được gửi từ 192.168.0.1, cổng 5300, được chuyển hướng đến 192.168.0.5, cổng 80, sau đó gửi nó đến hàng đợi 7:: # ethtool -U enp130s0 kiểu luồng tcp4 src-ip 192.168.0.1 dst-ip 192.168.0.5 src-port 5300 dst-port 80 hành động 7 Để thêm bộ lọc TCPv4 có mặt nạ một phần cho mạng con IP nguồn:: # ethtool -U loại luồng tcp4 src-ip 192.168.0.0 m 0.255.255.255 dst-ip 192.168.5.12 src-port 12600 dst-port 31 hành động 12 NOTES: Đối với mỗi loại luồng, các bộ lọc được lập trình đều phải có cùng một kết quả phù hợp. bộ đầu vào. Ví dụ: có thể chấp nhận việc đưa ra hai lệnh sau:: # ethtool -U enp130s0 loại luồng ip4 src-ip 192.168.0.1 src-port 5300 hành động 7 # ethtool -U enp130s0 kiểu luồng ip4 src-ip 192.168.0.5 src-port 55 hành động 10 Tuy nhiên, việc đưa ra hai lệnh tiếp theo là không được chấp nhận vì lệnh đầu tiên chỉ định src-ip và thứ hai chỉ định dst-ip:: # ethtool -U enp130s0 loại luồng ip4 src-ip 192.168.0.1 src-port 5300 hành động 7 # ethtool -U enp130s0 loại luồng ip4 dst-ip 192.168.0.5 src-port 55 hành động 10 Lệnh thứ hai sẽ thất bại và có lỗi. Bạn có thể lập trình nhiều bộ lọc với cùng các trường, sử dụng các giá trị khác nhau, nhưng trên một thiết bị, bạn không thể lập trình hai bộ lọc tcp4 với các trường khớp khác nhau. Trình điều khiển băng không hỗ trợ khớp trên một phần phụ của trường, do đó các trường mặt nạ một phần không được hỗ trợ. Bộ lọc Giám đốc Luồng Flex Byte ------------------------------- Trình điều khiển cũng hỗ trợ khớp dữ liệu do người dùng xác định trong tải trọng gói. Dữ liệu linh hoạt này được chỉ định bằng trường "user-def" của ethtool lệnh theo cách sau: .. table:: ============================== ============================ ``31 28 24 20 16`` ``15 12 8 4 0`` ``offset into packet payload`` ``2 bytes of flexible data`` ============================== ============================ Ví dụ, :: ... user-def 0x4FFFF ... yêu cầu bộ lọc tìm 4 byte vào tải trọng và khớp giá trị đó với 0xFFFF. Phần bù dựa trên phần đầu của tải trọng chứ không phải phần đầu của gói tin. Như vậy :: loại luồng tcp4 ... user-def 0x8BEAF ... sẽ khớp các gói TCP/IPv4 có giá trị 0xBEAF 8 byte vào Tải trọng TCP/IPv4. Lưu ý rằng tiêu đề ICMP được phân tích cú pháp thành 4 byte tiêu đề và 4 byte tải trọng. Do đó, để khớp với byte đầu tiên của tải trọng, bạn thực sự phải thêm 4 byte vào sự bù đắp. Cũng lưu ý rằng bộ lọc ip4 phù hợp với cả khung ICMP cũng như khung thô. (không xác định) khung ip4, trong đó tải trọng sẽ là tải trọng L3 của IP4 khung. Độ lệch tối đa là 64. Phần cứng sẽ chỉ đọc tối đa 64 byte dữ liệu từ tải trọng. Phần bù phải chẵn vì dữ liệu linh hoạt là 2 byte dài và phải được căn chỉnh theo byte 0 của tải trọng gói. Phần bù linh hoạt do người dùng xác định cũng được coi là một phần của bộ đầu vào và không thể lập trình riêng cho nhiều bộ lọc cùng loại. Tuy nhiên, dữ liệu linh hoạt không phải là một phần của bộ đầu vào và nhiều bộ lọc có thể sử dụng cùng một offset nhưng khớp với các dữ liệu khác nhau. Luồng băm RSS ------------- Cho phép bạn đặt byte băm cho mỗi loại luồng và bất kỳ sự kết hợp nào của một hoặc nhiều tùy chọn hơn cho cấu hình byte băm Nhận tỷ lệ bên (RSS). :: # ethtool -N rx-flow-hash ở đâu: tcp4 biểu thị TCP qua IPv4 udp4 biểu thị UDP qua IPv4 gtpc4 biểu thị GTP-C qua IPv4 gtpc4t biểu thị GTP-C (bao gồm TEID) qua IPv4 gtpu4 biểu thị GTP-U trên IPV4 gtpu4e biểu thị GTP-U và Tiêu đề mở rộng trên IPV4 gtpu4u biểu thị GTP-U PSC Đường lên trên IPV4 gtpu4d biểu thị GTP-U PSC Đường xuống qua IPV4 tcp6 biểu thị TCP qua IPv6 udp6 biểu thị UDP qua IPv6 gtpc6 biểu thị GTP-C qua IPv6 gtpc6t biểu thị GTP-C (bao gồm TEID) qua IPv6 gtpu6 biểu thị GTP-U trên IPV6 gtpu6e biểu thị GTP-U và Tiêu đề mở rộng trên IPV6 gtpu6u biểu thị GTP-U PSC Đường lên trên IPV6 gtpu6d biểu thị GTP-U PSC Đường xuống qua IPV6 Và