.. SPDX-License-Identifier: GPL-2.0+ .. include:: ../../../../../disclaimer-vi.rst :Original: Documentation/networking/device_drivers/ethernet/intel/i40e.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 700 ========================================================================= Trình điều khiển Intel 40 Gigabit Linux. Bản quyền(c) 1999-2018 Tập đoàn Intel. Nội dung ======== - Tổng quan - Xác định bộ chuyển đổi của bạn - Giám đốc luồng Ethernet Intel(R) - Cấu hình bổ sung - Các vấn đề đã biết - Hỗ trợ Thông tin trình điều khiển có thể được lấy bằng ethtool, lspci và ifconfig. Hướng dẫn cập nhật ethtool có thể được tìm thấy trong phần Bổ sung Cấu hình sau trong tài liệu này. Đố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. Xác định bộ điều hợp của bạn ============================ Trình điều khiển tương thích với các thiết bị dựa trên những điều sau: * Bộ điều khiển Ethernet Intel(R) X710 * Bộ điều khiển Ethernet Intel(R) XL710 * Kết nối mạng Ethernet Intel(R) X722 * Bộ điều khiển Ethernet Intel(R) XXV710 Để có hiệu suất tốt nhất, hãy đảm bảo cài đặt NVM/FW mới nhất trên máy tính của bạn thiết bị. Để biết thông tin về cách xác định bộ chuyển đổi của bạn và về NVM/FW mới nhất hình ảnh và trình điều khiển mạng Intel, hãy tham khảo trang web Hỗ trợ Intel: ZZ0000ZZ Thiết bị SFP+ và QSFP+ ---------------------- Để biết thông tin về phương tiện được hỗ trợ, hãy tham khảo tài liệu này: ZZ0000ZZ NOTE: Một số bộ điều hợp chỉ dựa trên Bộ điều khiển Ethernet Intel(R) Series 700 hỗ trợ các mô-đun Intel Ethernet Optics. Trên các bộ điều hợp này, các mô-đun khác không được hỗ trợ và sẽ không hoạt động. Trong mọi trường hợp Intel khuyến nghị sử dụng Intel Quang học Ethernet; các mô-đun khác có thể hoạt động nhưng không được Intel xác nhận. Liên hệ với Intel để biết các loại phương tiện được hỗ trợ. NOTE: Đối với các kết nối dựa trên Bộ điều khiển Ethernet Intel(R) Series 700, hỗ trợ phụ thuộc vào bo mạch hệ thống của bạn. Vui lòng xem nhà cung cấp của bạn để biết chi tiết. NOTE: Trong các hệ thống không có đủ luồng khí để làm mát bộ chuyển đổi và module quang, bạn phải sử dụng module quang nhiệt độ cao. Hàm ảo (VF) ----------------------- Sử dụng sysfs để kích hoạt VF. Ví dụ:: #echo $num_vf_enabled > /sys/class/net/$dev/device/sriov_numvfs #enable VF #echo 0 > /sys/class/net/$dev/device/sriov_numvfs #disable VF Ví dụ: các hướng dẫn sau sẽ định cấu hình PF eth0 và VF đầu tiên trên VLAN 10:: $ ip liên kết đặt dev eth0 vf 0 vlan 10 Chỉ đạo gói thẻ VLAN ------------------------ Cho phép bạn gửi tất cả các gói có thẻ VLAN cụ thể đến một SR-IOV cụ thể hàm ảo (VF). Hơn nữa, tính năng này cho phép bạn chỉ định một VF cụ thể được coi là đáng tin cậy và cho phép VF đáng tin cậy đó yêu cầu chọn lọc chế độ lăng nhăng trên Chức năng vật lý (PF). Để đặt VF là đáng tin cậy hoặc không đáng tin cậy, hãy nhập lệnh sau vào hộp Giám sát viên:: Bộ liên kết # ip dev eth0 vf 1 tin cậy [bật|tắt] Khi VF được chỉ định là đáng tin cậy, hãy sử dụng các lệnh sau trong VM để đặt VF ở chế độ lăng nhăng. :: Đối với tất cả lăng nhăng: Liên kết #ip đã bật quảng cáo eth2 Trong đó eth2 là giao diện VF trong VM Đối với Multicast lăng nhăng: Liên kết #ip đã bật eth2 allmulticast Trong đó eth2 là giao diện VF trong VM NOTE: Theo mặc định, ethtool priv-flag vf-true-promisc-support được đặt thành "tắt", nghĩa là chế độ lăng nhăng cho VF sẽ bị hạn chế. Để thiết lập chế độ lăng nhăng để VF thành lăng nhăng thực sự và cho phép VF nhìn thấy tất cả truy cập vào, sử dụng lệnh sau :: #ethtool -set-priv-flags p261p1 vf-true-promisc-support bật Cờ riêng tư vf-true-promisc-support không kích hoạt chế độ lăng nhăng; đúng hơn, nó chỉ định loại chế độ lăng nhăng nào (có giới hạn hoặc đúng) mà bạn sẽ nhận được khi bạn kích hoạt chế độ lăng nhăng bằng cách sử dụng các lệnh liên kết ip ở trên. Lưu ý rằng đây là cài đặt chung ảnh hưởng đến toàn bộ thiết bị. Tuy nhiên, vf-true-promisc-support priv-flag chỉ được hiển thị với PF đầu tiên của thiết bị. PF vẫn ở chế độ lăng nhăng hạn chế (trừ khi ở chế độ MFP) bất kể cài đặt vf-true-promisc-support. Bây giờ hãy thêm giao diện VLAN trên giao diện VF :: Liên kết #ip thêm liên kết eth2 tên eth2.100 loại vlan id 100 Lưu ý rằng thứ tự bạn đặt VF ở chế độ hỗn tạp và thêm Giao diện VLAN không thành vấn đề (bạn có thể thực hiện trước). Kết quả cuối cùng ở ví dụ này là VF sẽ nhận được tất cả lưu lượng truy cập được gắn thẻ VLAN 100. 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. - Hỗ trợ nhiều tham số để phân loại dòng chảy và tải linh hoạt cân bằng (chỉ ở chế độ SFP). NOTE: Trình điều khiển Linux i40e hỗ trợ các loại luồng sau: IPv4, TCPv4 và UDPv4. Đối với một loại luồng nhất định, nó hỗ trợ các kết hợp địa chỉ IP hợp lệ (nguồn hoặc đích) và cổng UDP/TCP (nguồn và đích). cho Ví dụ: bạn chỉ có thể cung cấp địa chỉ IP nguồn, địa chỉ IP nguồn và cổng đích hoặc bất kỳ sự kết hợp nào của một hoặc nhiều trong số bốn tham số này. NOTE: Trình điều khiển Linux i40e cho phép bạn lọc lưu lượng truy cập dựa trên mẫu hai byte linh hoạt do người dùng xác định và phần bù bằng cách sử dụng ethtool user-def và các trường mặt nạ. Chỉ hỗ trợ các loại luồng L3 và L4 cho các luồng do người dùng xác định bộ lọc linh hoạt. Đối với một loại luồng nhất định, bạn phải xóa tất cả Intel Ethernet Flow Đạo diễn lọc trước khi thay đổi bộ đầu vào (đối với loại luồng đó). Để bật hoặc tắt Intel Ethernet Flow Director:: # ethtool -K ethX ntuple Khi 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. Để thêm bộ lọc hướng gói đến hàng đợi 2, hãy sử dụng khóa chuyển -U hoặc -N :: # ethtool -N ethX 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 -N ethX loại luồng tcp4 src-ip 192.168.10.1 dst-ip \ 192.168.10.2 hành động 2 [loc 1] Để xem danh sách các bộ lọc hiện có:: # ethtool <-u|-n> ethX Bộ lọc hoàn hảo định tuyến nhắm mục tiêu ứng dụng (ATR) ------------------------------------------------------- ATR được bật theo mặc định khi kernel ở chế độ nhiều hàng đợi truyền. Quy tắc lọc ATR Intel Ethernet Flow Director được thêm vào khi luồng TCP-IP bắt đầu và bị xóa khi luồng kết thúc. Khi luồng Ethernet Intel TCP-IP Quy tắc giám đốc được thêm từ ethtool (bộ lọc Sideband), ATR bị tắt bởi người lái xe. Để kích hoạt lại ATR, dải bên có thể bị tắt bằng ethtool -K tùy chọn. Ví dụ:: ethtool -K [bộ chuyển đổi] ntuple [tắt|bật] Nếu dải bên được bật lại sau khi ATR được bật lại, ATR vẫn được bật cho đến khi Luồng TCP-IP được thêm vào. Khi tất cả các quy tắc dải biên TCP-IP bị xóa, ATR sẽ tự động kích hoạt lại. Các gói phù hợp với quy tắc ATR được tính trong số liệu thống kê fdir_atr_match trong ethtool, cũng có thể được sử dụng để xác minh xem quy tắc ATR có còn tồn tại hay không. Bộ lọc hoàn hảo Sideband ------------------------ Bộ lọc hoàn hảo dải biên đượ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. Để thêm một bộ lọc mới sử dụng lệnh sau :: ethtool -U loại luồng src-ip dst-ip src-port \ dst-port hành động Ở đâu: - thiết bị ethernet để lập trình - có thể là ip4, tcp4, udp4 hoặc sctp4 - địa chỉ IP cần khớp - số cổng cần khớp - 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) Sử dụng lệnh sau để hiển thị tất cả các bộ lọc đang hoạt động:: ethtool -u Sử dụng lệnh sau để 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. Ví dụ sau khớ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 và 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 Đố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 loại 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. Việc khớp trên một phần phụ của trường không được trình điều khiển i40e hỗ trợ, do đó các trường mặt nạ một phần không được hỗ trợ. 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: +-----------------------------+--------------------------+ ZZ0000ZZ 15 12 8 4 0 | +-----------------------------+--------------------------+ ZZ0001ZZ 2 byte dữ liệu linh hoạt | +-----------------------------+--------------------------+ 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 khung IP4. Độ 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. Để tạo các bộ lọc hướng lưu lượng truy cập đến một Chức năng ảo cụ thể, hãy sử dụng tham số "hành động". Chỉ định hành động dưới dạng giá trị 64 bit, trong đó giá trị 32 bit thấp hơn bit đại diện cho số hàng đợi, trong khi 8 bit tiếp theo đại diện cho VF nào. Lưu ý rằng 0 là PF, do đó mã định danh VF được bù bằng 1. Ví dụ:: ... action 0x800000002 ... chỉ định hướng lưu lượng truy cập đến Chức năng ảo 7 (8 trừ 1) vào hàng đợi 2 của VF đó. Lưu ý rằng các bộ lọc này sẽ không vi phạm các quy tắc định tuyến nội bộ và sẽ không định tuyến lưu lượng truy cập mà lẽ ra sẽ không được gửi đến Virtual được chỉ định Chức năng. Đặt cờ riêng tư liên kết xuống khi đóng ------------------------------------------- Khi cờ riêng liên kết xuống khi đóng được đặt thành "bật", liên kết của cổng sẽ ngừng hoạt động khi giao diện bị hỏng bằng lệnh ifconfig ethX down. Sử dụng ethtool để xem và đặt liên kết xuống khi đóng, như sau:: ethtool --show-priv-flags ethX ethtool --set-priv-flags ethX liên kết xuống khi đóng [bật|tắt] Đặt cờ riêng mdd-auto-reset-vf ------------------------------------------ Khi cờ riêng mdd-auto-reset-vf được đặt thành "bật", VF có vấn đề sẽ được tự động đặt lại nếu phát hiện bộ mô tả không đúng định dạng. Nếu cờ là được đặt thành "tắt", VF có vấn đề sẽ bị tắt. Sử dụng ethtool để xem và đặt mdd-auto-reset-vf, như sau:: ethtool --show-priv-flags ethX ethtool --set-priv-flags ethX mdd-auto-reset-vf [bật|tắt] 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. Khung Jumbo ------------ Hỗ trợ Khung Jumbo được bật bằng cách thay đổi Đơn vị truyền tối đa (MTU) đến giá trị lớn hơn giá trị mặc định là 1500. Sử dụng lệnh ifconfig để tăng kích thước MTU. Ví dụ: nhập sau đây trong đó là số giao diện:: ifconfig eth mtu 9000 trở lên Ngoài ra, bạn có thể sử dụng lệnh ip như sau :: bộ liên kết ip mtu 9000 dev eth liên kết ip thiết lập dev eth Cài đặt này không được lưu trong các lần khởi động lại. Việc thay đổi cài đặt có thể được thực hiện vĩnh viễn bằng cách thêm 'MTU=9000' vào tệp:: /etc/sysconfig/network-scripts/ifcfg-eth // cho RHEL /etc/sysconfig/network/ // cho SLES NOTE: Cài đặt MTU tối đa cho Khung Jumbo là 9702. Giá trị này trùng khớp với kích thước Khung Jumbo tối đa là 9728 byte. NOTE: Trình điều khiển này sẽ cố gắng sử dụng nhiều bộ đệm có kích thước trang để nhận mỗi gói lớn. Điều này sẽ giúp tránh được vấn đề thiếu bộ đệm khi phân bổ các gói nhận. 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 Các lệnh và tùy chọn ethtool được hỗ trợ để lọc ---------------------------------------------------- -n --show-nfc Truy xuất cấu hình phân loại luồng mạng nhận. rx-flow-hash tcp4|udp4|ah4|esp4|sctp4|tcp6|udp6|ah6|esp6|sctp6 Truy xuất các tùy chọn băm cho loại lưu lượng mạng được chỉ định. -N --config-nfc Định cấu hình phân loại luồng mạng nhận. rx-flow-hash tcp4|udp4|ah4|esp4|sctp4|tcp6|udp6|ah6|esp6|sctp6 m|v|t|s|d|f|n|r... Định cấu hình các tùy chọn băm cho loại lưu lượng mạng được chỉ định. udp4 UDP qua IPv4 udp6 UDP qua IPv6 f Băm byte 0 và 1 của tiêu đề Lớp 4 của gói Rx. n Băm byte 2 và 3 của tiêu đề lớp 4 của gói Rx. Cấu hình tốc độ và song công ------------------------------ Khi giải quyết các vấn đề về tốc độ và cấu hình song công, bạn cần phân biệt giữa bộ điều hợp dựa trên đồng và bộ điều hợp dựa trên sợi quang. Ở chế độ mặc định, Bộ điều hợp mạng Ethernet Intel(R) sử dụng cáp đồng các kết nối sẽ cố gắng tự động đàm phán với đối tác liên kết của mình để xác định thiết lập tốt nhất. Nếu bộ điều hợp không thể thiết lập liên kết với đối tác liên kết bằng cách sử dụng tính năng tự động đàm phán, bạn có thể cần phải định cấu hình bộ điều hợp và liên kết theo cách thủ công hợp tác với các cài đặt giống hệt nhau để thiết lập các gói liên kết và truyền. Điều này nên chỉ cần thiết khi cố gắng liên kết với một switch cũ hơn không hỗ trợ tự động đàm phán hoặc một tốc độ cụ thể hoặc chế độ song công. Đối tác liên kết của bạn phải phù hợp với cài đặt bạn chọn. Tốc độ 1 Gbps và cao hơn không thể bị ép buộc. Sử dụng cài đặt quảng cáo tự động thương lượng để đặt thủ công các thiết bị ở tốc độ 1 Gbps trở lên. NOTE: Bạn không thể đặt tốc độ cho các thiết bị dựa trên Ethernet Intel(R) Thiết bị dựa trên bộ điều hợp mạng XXV710. Quảng cáo tốc độ, song công và tự động thương lượng được định cấu hình thông qua tiện ích ethtool. Thận trọng: Chỉ những quản trị viên mạng có kinh nghiệm mới nên buộc tốc độ và song công hoặc thay đổi quảng cáo tự động đàm phán theo cách thủ công. Các cài đặt ở công tắc phải luôn phù hợp với cài đặt bộ chuyển đổi. Hiệu suất của bộ điều hợp có thể bị ảnh hưởng hoặc bộ chuyển đổi có thể không hoạt động nếu bạn định cấu hình bộ chuyển đổi khác với chuyển đổi. Tuy nhiên, Bộ điều hợp mạng Ethernet Intel(R) sử dụng các kết nối dựa trên sợi quang, sẽ không cố gắng tự động thương lượng với đối tác liên kết của mình vì những bộ điều hợp đó chỉ hoạt động ở chế độ song công hoàn toàn và chỉ ở tốc độ gốc. NAPI ---- NAPI (Chế độ bỏ phiếu Rx) được hỗ trợ trong trình điều khiển i40e. Xem ZZ0000ZZ để biết thêm thông tin. Kiểm soát dòng chảy ------------------- Kiểm soát luồng Ethernet (IEEE 802.3x) có thể được cấu hình bằng ethtool để kích hoạt nhận và truyền các khung tạm dừng cho i40e. Khi truyền được kích hoạt, các khung tạm dừng được tạo ra khi bộ đệm gói nhận vượt qua vùng đệm được xác định trước ngưỡng. Khi nhận được kích hoạt, thiết bị truyền sẽ tạm dừng trong một thời gian độ trễ được chỉ định khi nhận được khung tạm dừng. NOTE: Bạn phải có đối tác liên kết có khả năng kiểm soát luồng. Kiểm soát luồng được bật theo mặc định. Sử dụng ethtool để thay đổi cài đặt kiểm soát luồng. Để bật hoặc tắt Kiểm soát luồng Rx hoặc Tx:: ethtool -Một eth? rx tx Lưu ý: Lệnh này chỉ bật hoặc tắt Kiểm soát luồng nếu tự động đàm phán được bị vô hiệu hóa. Nếu bật tự động đàm phán, lệnh này sẽ thay đổi các tham số được sử dụng để tự động đàm phán với đối tác liên kết. Để bật hoặc tắt tính năng tự động đàm phán:: ethtool -s eth? autoneg Lưu ý: Tự động đàm phán Kiểm soát luồng là một phần của tự động đàm phán liên kết. Tùy theo trên thiết bị của bạn, bạn có thể không thay đổi được cài đặt tự động thương lượng. 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