← Documents Documentation/networking/device_drivers/ethernet/intel/igb.rst GitHub 원문 ↗

Linux 6.18.37 · Networking

Linux Base Driver for Intel(R) Ethernet Network Connection

Intel igb의 SR-IOV module parameter, VLAN filter, jumbo frame, WoL·multiqueue, anti-spoofing과 i210 CBS offload를 설명합니다.

Source pathDocumentation/networking/device_drivers/ethernet/intel/igb.rst
Source versionLinux v6.18.37
TranslationDUJINLABS 전문 번역 + 해설

요약·해설과 원문, 전문 번역을 서로 분리했습니다. API 이름, symbol, source path는 원문 표기를 사용합니다.

1. 요약·해설

원문의 핵심 논리와 kernel programming 관점의 보충 설명입니다. 아래의 전문 번역과는 별도로 작성했습니다.

요약·해설

igb.rst:1-208

igb는 Intel Gigabit adapter의 port별 SR-IOV resource, hardware VLAN 처리, legacy link 기능과 i210 traffic shaping을 다룹니다. module parameter는 function position에 따라 적용되므로 multi-port system에서는 VF 수와 bus mapping을 확인해야 합니다.

Port별 max_vfs
max_vfs=2,4첫 port: VF 2개둘째 port: VF 4개VMDq >= 1

comma로 구분한 값이 function 순서대로 적용됩니다.

SR-IOV VLAN 변경
단계Command결과
1vf 0 vlan 100VLAN 100 설정
2vf 0 vlan 0기존 VLAN 제거
3vf 0 vlan 200새 VLAN 200 설정

hardware filtering이 계속 켜진 상태에서 filter를 교체합니다.

Jumbo frame 조건
항목값·조건
활성화MTU > 1500
예시MTU 9000
최대 MTU / frame9216 / 9234 bytes
10/100 Mbps미지원, 성능 저하·link loss 가능

속도와 frame 크기의 지원 범위입니다.

WoL과 multiqueue
기능요구사항·제약
WoLshutdown/suspend 전 driver load
WoL portmulti-port의 port A만
VT Quad PortWoL 미지원
MultiqueueMSI-X 필요, default off
FallbackMSI 또는 legacy interrupt

전원 관리와 interrupt queue의 주요 제약입니다.

Spoof detection
VF spoofed packethardware dropPF interruptdmesg에 VF 번호 기록

hardware drop부터 PF log까지의 경로입니다.

i210 CBS offload
항목내용
표준IEEE 802.1Q-2018 8.6.8.2
실행 위치i210 hardware
장점정확도 향상, CPU 절감
Idle slope 단위16.38431 kbps
2576 kbps 요청약 2589 kbps로 올림
지원 modeli210 전용

Credit Based Shaper의 정밀도와 제한입니다.

2. 영어 원문 전체

번역 기준이 된 Linux v6.18.37 원문입니다. 줄 번호는 이 버전의 파일 좌표입니다.

원문 전체 펼치기
1 .. SPDX-License-Identifier: GPL-2.0+
2
3 ==========================================================
4 Linux Base Driver for Intel(R) Ethernet Network Connection
5 ==========================================================
6
7 Intel Gigabit Linux driver.
8 Copyright(c) 1999-2018 Intel Corporation.
9
10 Contents
11 ========
12
13 - Identifying Your Adapter
14 - Command Line Parameters
15 - Additional Configurations
16 - Support
17
18
19 Identifying Your Adapter
20 ========================
21 For information on how to identify your adapter, and for the latest Intel
22 network drivers, refer to the Intel Support website:
23 https://www.intel.com/support
24
25
26 Command Line Parameters
27 ========================
28 If the driver is built as a module, the following optional parameters are used
29 by entering them on the command line with the modprobe command using this
30 syntax::
31
32 modprobe igb [<option>=<VAL1>,<VAL2>,...]
33
34 There needs to be a <VAL#> for each network port in the system supported by
35 this driver. The values will be applied to each instance, in function order.
36 For example::
37
38 modprobe igb max_vfs=2,4
39
40 In this case, there are two network ports supported by igb in the system.
41
42 NOTE: A descriptor describes a data buffer and attributes related to the data
43 buffer. This information is accessed by the hardware.
44
45 max_vfs
46 -------
47 :Valid Range: 0-7
48
49 This parameter adds support for SR-IOV. It causes the driver to spawn up to
50 max_vfs worth of virtual functions. If the value is greater than 0 it will
51 also force the VMDq parameter to be 1 or more.
52
53 The parameters for the driver are referenced by position. Thus, if you have a
54 dual port adapter, or more than one adapter in your system, and want N virtual
55 functions per port, you must specify a number for each port with each parameter
56 separated by a comma. For example::
57
58 modprobe igb max_vfs=4
59
60 This will spawn 4 VFs on the first port.
61
62 ::
63
64 modprobe igb max_vfs=2,4
65
66 This will spawn 2 VFs on the first port and 4 VFs on the second port.
67
68 NOTE: Caution must be used in loading the driver with these parameters.
69 Depending on your system configuration, number of slots, etc., it is impossible
70 to predict in all cases where the positions would be on the command line.
71
72 NOTE: Neither the device nor the driver control how VFs are mapped into config
73 space. Bus layout will vary by operating system. On operating systems that
74 support it, you can check sysfs to find the mapping.
75
76 NOTE: When either SR-IOV mode or VMDq mode is enabled, hardware VLAN filtering
77 and VLAN tag stripping/insertion will remain enabled. Please remove the old
78 VLAN filter before the new VLAN filter is added. For example::
79
80 ip link set eth0 vf 0 vlan 100 // set vlan 100 for VF 0
81 ip link set eth0 vf 0 vlan 0 // Delete vlan 100
82 ip link set eth0 vf 0 vlan 200 // set a new vlan 200 for VF 0
83
84 Debug
85 -----
86 :Valid Range: 0-16 (0=none,...,16=all)
87 :Default Value: 0
88
89 This parameter adjusts the level debug messages displayed in the system logs.
90
91
92 Additional Features and Configurations
93 ======================================
94
95 Jumbo Frames
96 ------------
97 Jumbo Frames support is enabled by changing the Maximum Transmission Unit (MTU)
98 to a value larger than the default value of 1500.
99
100 Use the ifconfig command to increase the MTU size. For example, enter the
101 following where <x> is the interface number::
102
103 ifconfig eth<x> mtu 9000 up
104
105 Alternatively, you can use the ip command as follows::
106
107 ip link set mtu 9000 dev eth<x>
108 ip link set up dev eth<x>
109
110 This setting is not saved across reboots. The setting change can be made
111 permanent by adding 'MTU=9000' to the file:
112
113 - For RHEL: /etc/sysconfig/network-scripts/ifcfg-eth<x>
114 - For SLES: /etc/sysconfig/network/<config_file>
115
116 NOTE: The maximum MTU setting for Jumbo Frames is 9216. This value coincides
117 with the maximum Jumbo Frames size of 9234 bytes.
118
119 NOTE: Using Jumbo frames at 10 or 100 Mbps is not supported and may result in
120 poor performance or loss of link.
121
122
123 ethtool
124 -------
125 The driver utilizes the ethtool interface for driver configuration and
126 diagnostics, as well as displaying statistical information. The latest ethtool
127 version is required for this functionality. Download it at:
128
129 https://www.kernel.org/pub/software/network/ethtool/
130
131
132 Enabling Wake on LAN (WoL)
133 --------------------------
134 WoL is configured through the ethtool utility.
135
136 WoL will be enabled on the system during the next shut down or reboot. For
137 this driver version, in order to enable WoL, the igb driver must be loaded
138 prior to shutting down or suspending the system.
139
140 NOTE: Wake on LAN is only supported on port A of multi-port devices. Also
141 Wake On LAN is not supported for the following device:
142 - Intel(R) Gigabit VT Quad Port Server Adapter
143
144
145 Multiqueue
146 ----------
147 In this mode, a separate MSI-X vector is allocated for each queue and one for
148 "other" interrupts such as link status change and errors. All interrupts are
149 throttled via interrupt moderation. Interrupt moderation must be used to avoid
150 interrupt storms while the driver is processing one interrupt. The moderation
151 value should be at least as large as the expected time for the driver to
152 process an interrupt. Multiqueue is off by default.
153
154 REQUIREMENTS: MSI-X support is required for Multiqueue. If MSI-X is not found,
155 the system will fallback to MSI or to Legacy interrupts. This driver supports
156 receive multiqueue on all kernels that support MSI-X.
157
158 NOTE: On some kernels a reboot is required to switch between single queue mode
159 and multiqueue mode or vice-versa.
160
161
162 MAC and VLAN anti-spoofing feature
163 ----------------------------------
164 When a malicious driver attempts to send a spoofed packet, it is dropped by the
165 hardware and not transmitted.
166
167 An interrupt is sent to the PF driver notifying it of the spoof attempt. When a
168 spoofed packet is detected, the PF driver will send the following message to
169 the system log (displayed by the "dmesg" command):
170 Spoof event(s) detected on VF(n), where n = the VF that attempted to do the
171 spoofing
172
173
174 Setting MAC Address, VLAN and Rate Limit Using IProute2 Tool
175 ------------------------------------------------------------
176 You can set a MAC address of a Virtual Function (VF), a default VLAN and the
177 rate limit using the IProute2 tool. Download the latest version of the
178 IProute2 tool from Sourceforge if your version does not have all the features
179 you require.
180
181 Credit Based Shaper (Qav Mode)
182 ------------------------------
183 When enabling the CBS qdisc in the hardware offload mode, traffic shaping using
184 the CBS (described in the IEEE 802.1Q-2018 Section 8.6.8.2 and discussed in the
185 Annex L) algorithm will run in the i210 controller, so it's more accurate and
186 uses less CPU.
187
188 When using offloaded CBS, and the traffic rate obeys the configured rate
189 (doesn't go above it), CBS should have little to no effect in the latency.
190
191 The offloaded version of the algorithm has some limits, caused by how the idle
192 slope is expressed in the adapter's registers. It can only represent idle slopes
193 in 16.38431 kbps units, which means that if a idle slope of 2576kbps is
194 requested, the controller will be configured to use a idle slope of ~2589 kbps,
195 because the driver rounds the value up. For more details, see the comments on
196 :c:func:`igb_config_tx_modes()`.
197
198 NOTE: This feature is exclusive to i210 models.
199
200
201 Support
202 =======
203 For general information, go to the Intel support website at:
204 https://www.intel.com/support/
205
206 If an issue is identified with the released source code on a supported kernel
207 with a supported adapter, email the specific information related to the issue
209

3. 한국어 전문 번역

영어 원문의 문단 순서와 의미를 유지한 전체 번역입니다. 코드, 함수명, symbol과 URL은 원문 표기를 유지합니다.

개요와 adapter 식별

1-25

이 문서는 `GPL-2.0+` 라이선스를 따릅니다.

Intel(R) Ethernet Network Connection용 Linux Base Driver

Intel Gigabit Linux driver.

Copyright(c) 1999-2018 Intel Corporation.

목차

  • Adapter 식별
  • Command line parameter
  • 추가 configuration
  • 지원

Adapter 식별

adapter 식별 방법과 최신 Intel network driver는 Intel Support website `https://www.intel.com/support`를 참고하십시오.

.. SPDX-License-Identifier: GPL-2.0+

==========================================================
Linux Base Driver for Intel(R) Ethernet Network Connection
==========================================================

Intel Gigabit Linux driver.
Copyright(c) 1999-2018 Intel Corporation.

Contents
========

- Identifying Your Adapter
- Command Line Parameters
- Additional Configurations
- Support


Identifying Your Adapter
========================
For information on how to identify your adapter, and for the latest Intel
network drivers, refer to the Intel Support website:
https://www.intel.com/support

Module parameter 구문

26-44

Command Line Parameter

driver를 module로 build했다면 다음 구문으로 modprobe command에 optional parameter를 전달합니다.

modprobe igb [<option>=<VAL1>,<VAL2>,...]

driver가 지원하는 system의 network port마다 `<VAL#>` 하나가 필요하며 function 순서대로 각 instance에 적용됩니다.

modprobe igb max_vfs=2,4

이 예시는 igb가 지원하는 network port가 두 개라는 뜻입니다.

참고: descriptor는 data buffer와 그 buffer에 관련된 attribute를 기술하며 hardware가 이 정보를 사용합니다.

Command Line Parameters
========================
If the driver is built as a module, the following optional parameters are used
by entering them on the command line with the modprobe command using this
syntax::

    modprobe igb [<option>=<VAL1>,<VAL2>,...]

There needs to be a <VAL#> for each network port in the system supported by
this driver. The values will be applied to each instance, in function order.
For example::

    modprobe igb max_vfs=2,4

In this case, there are two network ports supported by igb in the system.

NOTE: A descriptor describes a data buffer and attributes related to the data
buffer. This information is accessed by the hardware.

max_vfs, VLAN filter와 debug

45-91

max_vfs

유효 범위: 0-7

이 parameter는 SR-IOV 지원을 추가하고 driver가 `max_vfs` 수만큼 Virtual Function을 생성하게 합니다. 값이 0보다 크면 VMDq parameter도 1 이상으로 강제합니다.

driver parameter는 위치로 참조됩니다. dual-port adapter 또는 여러 adapter에서 port마다 N개 VF가 필요하면 comma로 구분한 값을 각 port마다 지정합니다.

modprobe igb max_vfs=4
modprobe igb max_vfs=2,4

첫 command는 첫 port에 VF 4개를, 둘째 command는 첫 port에 2개와 둘째 port에 4개를 생성합니다.

주의: system configuration과 slot 수에 따라 command line의 position을 모든 경우에 예측할 수 없으므로 parameter 사용에 주의해야 합니다.

device와 driver는 VF가 config space에 mapping되는 방식을 제어하지 않습니다. bus layout은 OS마다 다르며 지원 OS에서는 sysfs로 mapping을 확인할 수 있습니다.

SR-IOV 또는 VMDq mode에서는 hardware VLAN filtering과 VLAN tag stripping/insertion이 계속 활성화됩니다. 새 VLAN filter를 추가하기 전에 기존 filter를 제거하십시오.

ip link set eth0 vf 0 vlan 100
ip link set eth0 vf 0 vlan 0
ip link set eth0 vf 0 vlan 200

Debug

유효 범위: 0-16 (`0=none`, `16=all`), default: 0

system log에 표시할 debug message level을 조정합니다.

max_vfs
-------
:Valid Range: 0-7

This parameter adds support for SR-IOV. It causes the driver to spawn up to
max_vfs worth of virtual functions.  If the value is greater than 0 it will
also force the VMDq parameter to be 1 or more.

The parameters for the driver are referenced by position. Thus, if you have a
dual port adapter, or more than one adapter in your system, and want N virtual
functions per port, you must specify a number for each port with each parameter
separated by a comma. For example::

    modprobe igb max_vfs=4

This will spawn 4 VFs on the first port.

::

    modprobe igb max_vfs=2,4

This will spawn 2 VFs on the first port and 4 VFs on the second port.

NOTE: Caution must be used in loading the driver with these parameters.
Depending on your system configuration, number of slots, etc., it is impossible
to predict in all cases where the positions would be on the command line.

NOTE: Neither the device nor the driver control how VFs are mapped into config
space. Bus layout will vary by operating system. On operating systems that
support it, you can check sysfs to find the mapping.

NOTE: When either SR-IOV mode or VMDq mode is enabled, hardware VLAN filtering
and VLAN tag stripping/insertion will remain enabled. Please remove the old
VLAN filter before the new VLAN filter is added. For example::

    ip link set eth0 vf 0 vlan 100        // set vlan 100 for VF 0
    ip link set eth0 vf 0 vlan 0        // Delete vlan 100
    ip link set eth0 vf 0 vlan 200        // set a new vlan 200 for VF 0

Debug
-----
:Valid Range: 0-16 (0=none,...,16=all)
:Default Value: 0

This parameter adjusts the level debug messages displayed in the system logs.

Jumbo frame과 ethtool

92-130

추가 기능과 configuration

Jumbo Frame

MTU를 default 1500보다 큰 값으로 설정하면 jumbo frame이 활성화됩니다.

ifconfig eth<x> mtu 9000 up
ip link set mtu 9000 dev eth<x>
ip link set up dev eth<x>

설정은 reboot 후 유지되지 않습니다. RHEL에서는 `/etc/sysconfig/network-scripts/ifcfg-eth<x>`, SLES에서는 `/etc/sysconfig/network/<config_file>`에 `MTU=9000`을 추가해 영구 적용합니다.

최대 jumbo MTU는 9216이며 최대 jumbo frame 크기 9234 bytes와 일치합니다.

10 Mbps 또는 100 Mbps에서 jumbo frame은 지원되지 않으며 성능 저하나 link loss가 발생할 수 있습니다.

ethtool

driver는 configuration, 진단과 통계 표시를 위해 ethtool interface를 사용합니다. 최신 version은 `https://www.kernel.org/pub/software/network/ethtool/`에서 받을 수 있습니다.

Additional Features and Configurations
======================================

Jumbo Frames
------------
Jumbo Frames support is enabled by changing the Maximum Transmission Unit (MTU)
to a value larger than the default value of 1500.

Use the ifconfig command to increase the MTU size. For example, enter the
following where <x> is the interface number::

    ifconfig eth<x> mtu 9000 up

Alternatively, you can use the ip command as follows::

    ip link set mtu 9000 dev eth<x>
    ip link set up dev eth<x>

This setting is not saved across reboots. The setting change can be made
permanent by adding 'MTU=9000' to the file:

- For RHEL: /etc/sysconfig/network-scripts/ifcfg-eth<x>
- For SLES: /etc/sysconfig/network/<config_file>

NOTE: The maximum MTU setting for Jumbo Frames is 9216. This value coincides
with the maximum Jumbo Frames size of 9234 bytes.

NOTE: Using Jumbo frames at 10 or 100 Mbps is not supported and may result in
poor performance or loss of link.


ethtool
-------
The driver utilizes the ethtool interface for driver configuration and
diagnostics, as well as displaying statistical information. The latest ethtool
version is required for this functionality. Download it at:

https://www.kernel.org/pub/software/network/ethtool/

Wake on LAN과 multiqueue

131-160

Wake on LAN(WoL) 활성화

WoL은 ethtool로 구성하며 다음 shutdown 또는 reboot 때 system에서 활성화됩니다. 이 driver version에서는 shutdown 또는 suspend 전에 igb driver가 load되어 있어야 합니다.

WoL은 multi-port device의 port A에서만 지원합니다. Intel(R) Gigabit VT Quad Port Server Adapter에서는 지원하지 않습니다.

Multiqueue

queue마다 MSI-X vector 하나를 할당하고 link status change와 error 같은 `other` interrupt용 vector 하나를 추가합니다. 모든 interrupt는 interrupt moderation으로 throttle됩니다.

driver가 interrupt 하나를 처리하는 동안 interrupt storm을 피하려면 moderation이 필요하며 값은 예상 interrupt 처리 시간 이상이어야 합니다. multiqueue default는 off입니다.

MSI-X support가 필요합니다. MSI-X가 없으면 MSI 또는 legacy interrupt로 fallback합니다. MSI-X를 지원하는 모든 kernel에서 receive multiqueue를 지원합니다.

일부 kernel에서는 single queue와 multiqueue mode 사이를 전환한 뒤 reboot가 필요합니다.


Enabling Wake on LAN (WoL)
--------------------------
WoL is configured through the ethtool utility.

WoL will be enabled on the system during the next shut down or reboot. For
this driver version, in order to enable WoL, the igb driver must be loaded
prior to shutting down or suspending the system.

NOTE: Wake on LAN is only supported on port A of multi-port devices.  Also
Wake On LAN is not supported for the following device:
- Intel(R) Gigabit VT Quad Port Server Adapter


Multiqueue
----------
In this mode, a separate MSI-X vector is allocated for each queue and one for
"other" interrupts such as link status change and errors. All interrupts are
throttled via interrupt moderation. Interrupt moderation must be used to avoid
interrupt storms while the driver is processing one interrupt. The moderation
value should be at least as large as the expected time for the driver to
process an interrupt. Multiqueue is off by default.

REQUIREMENTS: MSI-X support is required for Multiqueue. If MSI-X is not found,
the system will fallback to MSI or to Legacy interrupts. This driver supports
receive multiqueue on all kernels that support MSI-X.

NOTE: On some kernels a reboot is required to switch between single queue mode
and multiqueue mode or vice-versa.

Anti-spoofing, IProute2와 Credit Based Shaper

161-200

MAC 및 VLAN anti-spoofing

malicious driver가 spoofed packet을 transmit하려 하면 hardware가 drop합니다. spoof attempt를 알리는 interrupt가 PF driver로 전달되고 dmesg에서 다음 system log를 볼 수 있습니다.

Spoof event(s) detected on VF(n)

여기서 n은 spoofing을 시도한 VF입니다.

IProute2로 MAC address, VLAN과 rate limit 설정

IProute2로 VF의 MAC address, default VLAN과 rate limit을 설정할 수 있습니다. 현재 version에 필요한 기능이 없다면 최신 IProute2를 받으십시오.

Credit Based Shaper(Qav mode)

CBS qdisc를 hardware offload mode로 활성화하면 IEEE 802.1Q-2018 section 8.6.8.2와 Annex L의 CBS algorithm이 i210 controller에서 실행되어 더 정확하고 CPU 사용량도 적습니다.

traffic rate가 설정 rate를 넘지 않으면 offloaded CBS는 latency에 거의 영향을 주지 않아야 합니다.

adapter register의 idle slope 표현 방식 때문에 offloaded algorithm에는 제한이 있습니다. 16.38431 kbps 단위만 표현할 수 있어 2576 kbps를 요청하면 driver가 올림해 약 2589 kbps로 구성합니다.

자세한 내용은 `igb_config_tx_modes()` comment를 참고하십시오. 이 기능은 i210 model 전용입니다.


MAC and VLAN anti-spoofing feature
----------------------------------
When a malicious driver attempts to send a spoofed packet, it is dropped by the
hardware and not transmitted.

An interrupt is sent to the PF driver notifying it of the spoof attempt. When a
spoofed packet is detected, the PF driver will send the following message to
the system log (displayed by the "dmesg" command):
Spoof event(s) detected on VF(n), where n = the VF that attempted to do the
spoofing


Setting MAC Address, VLAN and Rate Limit Using IProute2 Tool
------------------------------------------------------------
You can set a MAC address of a Virtual Function (VF), a default VLAN and the
rate limit using the IProute2 tool. Download the latest version of the
IProute2 tool from Sourceforge if your version does not have all the features
you require.

Credit Based Shaper (Qav Mode)
------------------------------
When enabling the CBS qdisc in the hardware offload mode, traffic shaping using
the CBS (described in the IEEE 802.1Q-2018 Section 8.6.8.2 and discussed in the
Annex L) algorithm will run in the i210 controller, so it's more accurate and
uses less CPU.

When using offloaded CBS, and the traffic rate obeys the configured rate
(doesn't go above it), CBS should have little to no effect in the latency.

The offloaded version of the algorithm has some limits, caused by how the idle
slope is expressed in the adapter's registers. It can only represent idle slopes
in 16.38431 kbps units, which means that if a idle slope of 2576kbps is
requested, the controller will be configured to use a idle slope of ~2589 kbps,
because the driver rounds the value up. For more details, see the comments on
:c:func:`igb_config_tx_modes()`.

NOTE: This feature is exclusive to i210 models.

지원

201-208

지원

일반 정보는 `https://www.intel.com/support/`를 참고하십시오.

지원되는 adapter와 kernel에서 공개 source code 문제가 확인되면 구체적인 정보를 `[email protected]`로 보내십시오.

Support
=======
For general information, go to the Intel support website at:
https://www.intel.com/support/

If an issue is identified with the released source code on a supported kernel
with a supported adapter, email the specific information related to the issue
to [email protected].