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

Linux 6.18.37 · Networking

Linux Driver for Intel(R) Ethernet Network Connection

Intel e1000e의 per-port module parameter, interrupt moderation과 delay, copybreak·NVM 보호, interrupt mode, Jumbo Frame, speed·duplex와 WoL 제한을 설명합니다.

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

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

1. 요약·해설

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

요약·해설

e1000e.rst:1-378

e1000e는 각 port에 module parameter를 function 순서대로 적용하며, interrupt rate와 delay, platform-specific workaround, NVM 보호를 세밀하게 제어합니다. Jumbo Frame과 WoL 지원은 adapter 모델과 port에 따라 달라집니다.

Port별 module parameter
modprobe option=VAL1,VAL2,...function orderport 1 / port 2 / ...각 driver instance에 적용

comma로 구분한 값이 function 순서대로 각 network port에 대응합니다.

InterruptThrottleRate mode
Mode동작
0Offsmall-packet latency 우선, CPU 사용 증가
1Dynamic매우 낮은 latency 유지
3Dynamic ConservativeBulk 4000, latency class 최대 20000
4Simplified BalancingTX/RX 비율에 따라 2000-8000
100-100000Fixed cap초당 interrupt 상한

vector별 interrupt moderation mode입니다.

Interrupt tuning 영향
ITR 상한 또는 delay 증가interrupt 수 감소CPU efficiency 개선latency 증가
delay가 지나치게 큼descriptor 고갈dropped receive / transmit
RxIntDelay != 0특정 조건에서 hang 가능NETDEV WATCHDOGcontroller reset

moderation과 delay는 CPU efficiency와 latency 사이의 균형을 바꿉니다.

Delay parameter
Parameter범위Default역할
RxIntDelay0-655350receive interrupt 지연
RxAbsIntDelay0-655358receive 최대 지연
TxIntDelay0-655358transmit interrupt 지연
TxAbsIntDelay0-6553532transmit 최대 지연

모든 delay 단위는 1.024 microseconds입니다.

Interrupt mode
IntModeTypeMultiple queue
0Legacy아니요
1MSI아니요
2MSI-X필수

IntMode와 multiple queue 지원 관계입니다.

NVM write 보호
WriteProtectNVM=1로 driver loadGbE 영역 write/erase 무시NVM lockpower cycle 전 unlock 불가
NVM write 필요완전한 power cycleinitial load에서 WriteProtectNVM=0

load 시 lock된 NVM은 power cycle 전에는 해제할 수 없습니다.

Jumbo Frame 제한
항목조건
활성화MTU > 1500
일반 최대 MTU / frame8996 / 9018 bytes
82578DM·82577LM 최대 packet4088 bytes
10·100 Mbps지원하지 않음
82579 + MACSec구성 불가

일반 한도와 일부 adapter 예외입니다.

Speed·Duplex 결정
copperdefault auto-negotiationpartner와 최적 공통 설정
오래된 또는 강제 설정 switchadapter와 partner를 동일하게 수동 구성
1 Gbps 이상강제 불가autonegotiation advertising 사용
fiberauto-negotiation 없음native speed + full duplex

media type과 link partner에 따라 configuration 방식이 달라집니다.

WoL 적용 조건
ethtool로 WoL 구성e1000e driver load 유지shutdown / suspendWoL 활성화
PT/PF multi-port 대상 모델port A 확인WoL 사용

일부 multi-port device는 port A에서만 지원합니다.

2. 영어 원문 전체

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

원문 전체 펼치기
1 .. SPDX-License-Identifier: GPL-2.0+
2
3 =====================================================
4 Linux Driver for Intel(R) Ethernet Network Connection
5 =====================================================
6
7 Intel Gigabit Linux driver.
8 Copyright(c) 2008-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 e1000e [<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 e1000e InterruptThrottleRate=16000,16000
39
40 In this case, there are two network ports supported by e1000e in the system.
41 The default value for each parameter is generally the recommended setting,
42 unless otherwise noted.
43
44 NOTE: A descriptor describes a data buffer and attributes related to the data
45 buffer. This information is accessed by the hardware.
46
47 InterruptThrottleRate
48 ---------------------
49 :Valid Range: 0,1,3,4,100-100000
50 :Default Value: 3
51
52 Interrupt Throttle Rate controls the number of interrupts each interrupt
53 vector can generate per second. Increasing ITR lowers latency at the cost of
54 increased CPU utilization, though it may help throughput in some circumstances.
55
56 Setting InterruptThrottleRate to a value greater or equal to 100
57 will program the adapter to send out a maximum of that many interrupts
58 per second, even if more packets have come in. This reduces interrupt
59 load on the system and can lower CPU utilization under heavy load,
60 but will increase latency as packets are not processed as quickly.
61
62 The default behaviour of the driver previously assumed a static
63 InterruptThrottleRate value of 8000, providing a good fallback value for
64 all traffic types, but lacking in small packet performance and latency.
65 The hardware can handle many more small packets per second however, and
66 for this reason an adaptive interrupt moderation algorithm was implemented.
67
68 The driver has two adaptive modes (setting 1 or 3) in which
69 it dynamically adjusts the InterruptThrottleRate value based on the traffic
70 that it receives. After determining the type of incoming traffic in the last
71 timeframe, it will adjust the InterruptThrottleRate to an appropriate value
72 for that traffic.
73
74 The algorithm classifies the incoming traffic every interval into
75 classes. Once the class is determined, the InterruptThrottleRate value is
76 adjusted to suit that traffic type the best. There are three classes defined:
77 "Bulk traffic", for large amounts of packets of normal size; "Low latency",
78 for small amounts of traffic and/or a significant percentage of small
79 packets; and "Lowest latency", for almost completely small packets or
80 minimal traffic.
81
82 - 0: Off
83 Turns off any interrupt moderation and may improve small packet latency.
84 However, this is generally not suitable for bulk throughput traffic due
85 to the increased CPU utilization of the higher interrupt rate.
86 - 1: Dynamic mode
87 This mode attempts to moderate interrupts per vector while maintaining
88 very low latency. This can sometimes cause extra CPU utilization. If
89 planning on deploying e1000e in a latency sensitive environment, this
90 parameter should be considered.
91 - 3: Dynamic Conservative mode (default)
92 In dynamic conservative mode, the InterruptThrottleRate value is set to
93 4000 for traffic that falls in class "Bulk traffic". If traffic falls in
94 the "Low latency" or "Lowest latency" class, the InterruptThrottleRate is
95 increased stepwise to 20000. This default mode is suitable for most
96 applications.
97 - 4: Simplified Balancing mode
98 In simplified mode the interrupt rate is based on the ratio of TX and
99 RX traffic. If the bytes per second rate is approximately equal, the
100 interrupt rate will drop as low as 2000 interrupts per second. If the
101 traffic is mostly transmit or mostly receive, the interrupt rate could
102 be as high as 8000.
103 - 100-100000:
104 Setting InterruptThrottleRate to a value greater or equal to 100
105 will program the adapter to send at most that many interrupts per second,
106 even if more packets have come in. This reduces interrupt load on the
107 system and can lower CPU utilization under heavy load, but will increase
108 latency as packets are not processed as quickly.
109
110 NOTE: InterruptThrottleRate takes precedence over the TxAbsIntDelay and
111 RxAbsIntDelay parameters. In other words, minimizing the receive and/or
112 transmit absolute delays does not force the controller to generate more
113 interrupts than what the Interrupt Throttle Rate allows.
114
115 RxIntDelay
116 ----------
117 :Valid Range: 0-65535 (0=off)
118 :Default Value: 0
119
120 This value delays the generation of receive interrupts in units of 1.024
121 microseconds. Receive interrupt reduction can improve CPU efficiency if
122 properly tuned for specific network traffic. Increasing this value adds extra
123 latency to frame reception and can end up decreasing the throughput of TCP
124 traffic. If the system is reporting dropped receives, this value may be set
125 too high, causing the driver to run out of available receive descriptors.
126
127 CAUTION: When setting RxIntDelay to a value other than 0, adapters may hang
128 (stop transmitting) under certain network conditions. If this occurs a NETDEV
129 WATCHDOG message is logged in the system event log. In addition, the
130 controller is automatically reset, restoring the network connection. To
131 eliminate the potential for the hang ensure that RxIntDelay is set to 0.
132
133 RxAbsIntDelay
134 -------------
135 :Valid Range: 0-65535 (0=off)
136 :Default Value: 8
137
138 This value, in units of 1.024 microseconds, limits the delay in which a
139 receive interrupt is generated. This value ensures that an interrupt is
140 generated after the initial packet is received within the set amount of time,
141 which is useful only if RxIntDelay is non-zero. Proper tuning, along with
142 RxIntDelay, may improve traffic throughput in specific network conditions.
143
144 TxIntDelay
145 ----------
146 :Valid Range: 0-65535 (0=off)
147 :Default Value: 8
148
149 This value delays the generation of transmit interrupts in units of 1.024
150 microseconds. Transmit interrupt reduction can improve CPU efficiency if
151 properly tuned for specific network traffic. If the system is reporting
152 dropped transmits, this value may be set too high causing the driver to run
153 out of available transmit descriptors.
154
155 TxAbsIntDelay
156 -------------
157 :Valid Range: 0-65535 (0=off)
158 :Default Value: 32
159
160 This value, in units of 1.024 microseconds, limits the delay in which a
161 transmit interrupt is generated. It is useful only if TxIntDelay is non-zero.
162 It ensures that an interrupt is generated after the initial Packet is sent on
163 the wire within the set amount of time. Proper tuning, along with TxIntDelay,
164 may improve traffic throughput in specific network conditions.
165
166 copybreak
167 ---------
168 :Valid Range: 0-xxxxxxx (0=off)
169 :Default Value: 256
170
171 The driver copies all packets below or equaling this size to a fresh receive
172 buffer before handing it up the stack.
173 This parameter differs from other parameters because it is a single (not 1,1,1
174 etc.) parameter applied to all driver instances and it is also available
175 during runtime at /sys/module/e1000e/parameters/copybreak.
176
177 To use copybreak, type::
178
179 modprobe e1000e.ko copybreak=128
180
181 SmartPowerDownEnable
182 --------------------
183 :Valid Range: 0,1
184 :Default Value: 0 (disabled)
185
186 Allows the PHY to turn off in lower power states. The user can turn off this
187 parameter in supported chipsets.
188
189 KumeranLockLoss
190 ---------------
191 :Valid Range: 0,1
192 :Default Value: 1 (enabled)
193
194 This workaround skips resetting the PHY at shutdown for the initial silicon
195 releases of ICH8 systems.
196
197 IntMode
198 -------
199 :Valid Range: 0-2
200 :Default Value: 0
201
202 +-------+----------------+
203 | Value | Interrupt Mode |
204 +=======+================+
205 | 0 | Legacy |
206 +-------+----------------+
207 | 1 | MSI |
208 +-------+----------------+
209 | 2 | MSI-X |
210 +-------+----------------+
211
212 IntMode allows load time control over the type of interrupt registered for by
213 the driver. MSI-X is required for multiple queue support, and some kernels and
214 combinations of kernel .config options will force a lower level of interrupt
215 support.
216
217 This command will show different values for each type of interrupt::
218
219 cat /proc/interrupts
220
221 CrcStripping
222 ------------
223 :Valid Range: 0,1
224 :Default Value: 1 (enabled)
225
226 Strip the CRC from received packets before sending up the network stack. If
227 you have a machine with a BMC enabled but cannot receive IPMI traffic after
228 loading or enabling the driver, try disabling this feature.
229
230 WriteProtectNVM
231 ---------------
232 :Valid Range: 0,1
233 :Default Value: 1 (enabled)
234
235 If set to 1, configure the hardware to ignore all write/erase cycles to the
236 GbE region in the ICHx NVM (in order to prevent accidental corruption of the
237 NVM). This feature can be disabled by setting the parameter to 0 during initial
238 driver load.
239
240 NOTE: The machine must be power cycled (full off/on) when enabling NVM writes
241 via setting the parameter to zero. Once the NVM has been locked (via the
242 parameter at 1 when the driver loads) it cannot be unlocked except via power
243 cycle.
244
245 Debug
246 -----
247 :Valid Range: 0-16 (0=none,...,16=all)
248 :Default Value: 0
249
250 This parameter adjusts the level of debug messages displayed in the system logs.
251
252
253 Additional Features and Configurations
254 ======================================
255
256 Jumbo Frames
257 ------------
258 Jumbo Frames support is enabled by changing the Maximum Transmission Unit (MTU)
259 to a value larger than the default value of 1500.
260
261 Use the ifconfig command to increase the MTU size. For example, enter the
262 following where <x> is the interface number::
263
264 ifconfig eth<x> mtu 9000 up
265
266 Alternatively, you can use the ip command as follows::
267
268 ip link set mtu 9000 dev eth<x>
269 ip link set up dev eth<x>
270
271 This setting is not saved across reboots. The setting change can be made
272 permanent by adding 'MTU=9000' to the file:
273
274 - For RHEL: /etc/sysconfig/network-scripts/ifcfg-eth<x>
275 - For SLES: /etc/sysconfig/network/<config_file>
276
277 NOTE: The maximum MTU setting for Jumbo Frames is 8996. This value coincides
278 with the maximum Jumbo Frames size of 9018 bytes.
279
280 NOTE: Using Jumbo frames at 10 or 100 Mbps is not supported and may result in
281 poor performance or loss of link.
282
283 NOTE: The following adapters limit Jumbo Frames sized packets to a maximum of
284 4088 bytes:
285
286 - Intel(R) 82578DM Gigabit Network Connection
287 - Intel(R) 82577LM Gigabit Network Connection
288
289 The following adapters do not support Jumbo Frames:
290
291 - Intel(R) PRO/1000 Gigabit Server Adapter
292 - Intel(R) PRO/1000 PM Network Connection
293 - Intel(R) 82562G 10/100 Network Connection
294 - Intel(R) 82562G-2 10/100 Network Connection
295 - Intel(R) 82562GT 10/100 Network Connection
296 - Intel(R) 82562GT-2 10/100 Network Connection
297 - Intel(R) 82562V 10/100 Network Connection
298 - Intel(R) 82562V-2 10/100 Network Connection
299 - Intel(R) 82566DC Gigabit Network Connection
300 - Intel(R) 82566DC-2 Gigabit Network Connection
301 - Intel(R) 82566DM Gigabit Network Connection
302 - Intel(R) 82566MC Gigabit Network Connection
303 - Intel(R) 82566MM Gigabit Network Connection
304 - Intel(R) 82567V-3 Gigabit Network Connection
305 - Intel(R) 82577LC Gigabit Network Connection
306 - Intel(R) 82578DC Gigabit Network Connection
307
308 NOTE: Jumbo Frames cannot be configured on an 82579-based Network device if
309 MACSec is enabled on the system.
310
311
312 ethtool
313 -------
314 The driver utilizes the ethtool interface for driver configuration and
315 diagnostics, as well as displaying statistical information. The latest ethtool
316 version is required for this functionality. Download it at:
317
318 https://www.kernel.org/pub/software/network/ethtool/
319
320 NOTE: When validating enable/disable tests on some parts (for example, 82578),
321 it is necessary to add a few seconds between tests when working with ethtool.
322
323
324 Speed and Duplex Configuration
325 ------------------------------
326 In addressing speed and duplex configuration issues, you need to distinguish
327 between copper-based adapters and fiber-based adapters.
328
329 In the default mode, an Intel(R) Ethernet Network Adapter using copper
330 connections will attempt to auto-negotiate with its link partner to determine
331 the best setting. If the adapter cannot establish link with the link partner
332 using auto-negotiation, you may need to manually configure the adapter and link
333 partner to identical settings to establish link and pass packets. This should
334 only be needed when attempting to link with an older switch that does not
335 support auto-negotiation or one that has been forced to a specific speed or
336 duplex mode. Your link partner must match the setting you choose. 1 Gbps speeds
337 and higher cannot be forced. Use the autonegotiation advertising setting to
338 manually set devices for 1 Gbps and higher.
339
340 Speed, duplex, and autonegotiation advertising are configured through the
341 ethtool utility.
342
343 Caution: Only experienced network administrators should force speed and duplex
344 or change autonegotiation advertising manually. The settings at the switch must
345 always match the adapter settings. Adapter performance may suffer or your
346 adapter may not operate if you configure the adapter differently from your
347 switch.
348
349 An Intel(R) Ethernet Network Adapter using fiber-based connections, however,
350 will not attempt to auto-negotiate with its link partner since those adapters
351 operate only in full duplex and only at their native speed.
352
353
354 Enabling Wake on LAN (WoL)
355 --------------------------
356 WoL is configured through the ethtool utility.
357
358 WoL will be enabled on the system during the next shut down or reboot. For
359 this driver version, in order to enable WoL, the e1000e driver must be loaded
360 prior to shutting down or suspending the system.
361
362 NOTE: Wake on LAN is only supported on port A for the following devices:
363 - Intel(R) PRO/1000 PT Dual Port Network Connection
364 - Intel(R) PRO/1000 PT Dual Port Server Connection
365 - Intel(R) PRO/1000 PT Dual Port Server Adapter
366 - Intel(R) PRO/1000 PF Dual Port Server Adapter
367 - Intel(R) PRO/1000 PT Quad Port Server Adapter
368 - Intel(R) Gigabit PT Quad Port Server ExpressModule
369
370
371 Support
372 =======
373 For general information, go to the Intel support website at:
374 https://www.intel.com/support/
375
376 If an issue is identified with the released source code on a supported kernel
377 with a supported adapter, email the specific information related to the issue
378 to intel-wired-lan@lists.osuosl.org.
379

3. 한국어 전문 번역

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

문서 범위와 module parameter 형식

1-46

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

Intel(R) Ethernet Network Connection용 Linux Driver

Intel Gigabit Linux driver

Copyright(c) 2008-2018 Intel Corporation.

목차

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

Adapter 식별

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

Command line parameter

driver를 module로 build했다면 다음 형식으로 modprobe command에 optional parameter를 지정합니다.

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

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

예를 들어 e1000e가 지원하는 network port가 두 개라면 다음처럼 지정합니다.

modprobe e1000e InterruptThrottleRate=16000,16000

별도 설명이 없으면 각 parameter의 default value가 일반적으로 권장 설정입니다.

descriptor는 data buffer와 관련 attribute를 설명하며 hardware가 이 정보를 읽습니다.

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

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

Intel Gigabit Linux driver.
Copyright(c) 2008-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


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 e1000e [<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 e1000e InterruptThrottleRate=16000,16000

In this case, there are two network ports supported by e1000e in the system.
The default value for each parameter is generally the recommended setting,
unless otherwise noted.

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

InterruptThrottleRate

47-114

InterruptThrottleRate

유효 범위는 `0`, `1`, `3`, `4`, `100-100000`, default는 `3`입니다.

각 interrupt vector가 초당 생성할 interrupt 수를 제어합니다. ITR을 높이면 CPU 사용량이 늘어나는 대신 latency가 낮아지고, 일부 상황에서는 throughput도 개선될 수 있습니다.

100 이상의 고정값은 수신 packet이 더 많아도 adapter가 초당 그 수보다 많은 interrupt를 보내지 않게 합니다. heavy load의 interrupt load와 CPU utilization을 낮추지만 packet 처리가 늦어져 latency가 늘어납니다.

이전 static default `8000`은 모든 traffic에 쓸 수 있는 fallback이었지만 small-packet performance와 latency가 좋지 않아 adaptive interrupt moderation algorithm이 도입되었습니다.

adaptive mode 1과 3은 직전 timeframe의 수신 traffic type에 맞춰 값을 동적으로 조정합니다.

traffic은 `Bulk traffic`, `Low latency`, `Lowest latency`의 세 class로 분류됩니다. 각각 normal-size packet 다수, 적은 traffic 또는 높은 small-packet 비율, 거의 모두 small packet이거나 최소 traffic을 뜻합니다.

  • `0` Off: moderation을 끄고 small-packet latency를 낮출 수 있지만 높은 interrupt rate로 CPU 사용량이 늘어 bulk throughput에는 일반적으로 부적합합니다.
  • `1` Dynamic: vector별 interrupt를 조절하면서 매우 낮은 latency를 유지하려 하며 CPU 사용량이 더 늘 수 있습니다. latency-sensitive 환경에서 고려할 수 있습니다.
  • `3` Dynamic Conservative(default): Bulk traffic에서는 `4000`, Low/Lowest latency에서는 단계적으로 `20000`까지 높입니다. 대부분의 application에 적합합니다.
  • `4` Simplified Balancing: TX/RX bytes-per-second가 비슷하면 `2000`까지 낮아지고 한 방향이 우세하면 `8000`까지 높아질 수 있습니다.
  • `100-100000`: 초당 interrupt 상한을 직접 지정합니다.

`InterruptThrottleRate`는 `TxAbsIntDelay`와 `RxAbsIntDelay`보다 우선합니다. absolute delay를 줄여도 ITR 상한보다 많은 interrupt를 생성하지 않습니다.

InterruptThrottleRate
---------------------
:Valid Range: 0,1,3,4,100-100000
:Default Value: 3

Interrupt Throttle Rate controls the number of interrupts each interrupt
vector can generate per second. Increasing ITR lowers latency at the cost of
increased CPU utilization, though it may help throughput in some circumstances.

Setting InterruptThrottleRate to a value greater or equal to 100
will program the adapter to send out a maximum of that many interrupts
per second, even if more packets have come in. This reduces interrupt
load on the system and can lower CPU utilization under heavy load,
but will increase latency as packets are not processed as quickly.

The default behaviour of the driver previously assumed a static
InterruptThrottleRate value of 8000, providing a good fallback value for
all traffic types, but lacking in small packet performance and latency.
The hardware can handle many more small packets per second however, and
for this reason an adaptive interrupt moderation algorithm was implemented.

The driver has two adaptive modes (setting 1 or 3) in which
it dynamically adjusts the InterruptThrottleRate value based on the traffic
that it receives. After determining the type of incoming traffic in the last
timeframe, it will adjust the InterruptThrottleRate to an appropriate value
for that traffic.

The algorithm classifies the incoming traffic every interval into
classes.  Once the class is determined, the InterruptThrottleRate value is
adjusted to suit that traffic type the best. There are three classes defined:
"Bulk traffic", for large amounts of packets of normal size; "Low latency",
for small amounts of traffic and/or a significant percentage of small
packets; and "Lowest latency", for almost completely small packets or
minimal traffic.

 - 0: Off
      Turns off any interrupt moderation and may improve small packet latency.
      However, this is generally not suitable for bulk throughput traffic due
      to the increased CPU utilization of the higher interrupt rate.
 - 1: Dynamic mode
      This mode attempts to moderate interrupts per vector while maintaining
      very low latency. This can sometimes cause extra CPU utilization. If
      planning on deploying e1000e in a latency sensitive environment, this
      parameter should be considered.
 - 3: Dynamic Conservative mode (default)
      In dynamic conservative mode, the InterruptThrottleRate value is set to
      4000 for traffic that falls in class "Bulk traffic". If traffic falls in
      the "Low latency" or "Lowest latency" class, the InterruptThrottleRate is
      increased stepwise to 20000. This default mode is suitable for most
      applications.
 - 4: Simplified Balancing mode
      In simplified mode the interrupt rate is based on the ratio of TX and
      RX traffic.  If the bytes per second rate is approximately equal, the
      interrupt rate will drop as low as 2000 interrupts per second.  If the
      traffic is mostly transmit or mostly receive, the interrupt rate could
      be as high as 8000.
 - 100-100000:
      Setting InterruptThrottleRate to a value greater or equal to 100
      will program the adapter to send at most that many interrupts per second,
      even if more packets have come in. This reduces interrupt load on the
      system and can lower CPU utilization under heavy load, but will increase
      latency as packets are not processed as quickly.

NOTE: InterruptThrottleRate takes precedence over the TxAbsIntDelay and
RxAbsIntDelay parameters. In other words, minimizing the receive and/or
transmit absolute delays does not force the controller to generate more
interrupts than what the Interrupt Throttle Rate allows.

Rx·Tx interrupt delay와 copybreak

115-180

RxIntDelay

유효 범위는 `0-65535`, `0=off`, default는 `0`입니다.

receive interrupt 생성을 `1.024 microseconds` 단위로 지연합니다. 적절한 tuning은 CPU efficiency를 높일 수 있지만 frame latency가 늘고 TCP throughput이 낮아질 수 있습니다. dropped receive는 값이 너무 높아 receive descriptor가 고갈되었음을 뜻할 수 있습니다.

주의: 0 이외의 값에서는 특정 network condition에서 adapter가 transmit을 멈출 수 있습니다. `NETDEV WATCHDOG`가 기록되고 controller가 자동 reset됩니다. 가능성을 없애려면 `RxIntDelay=0`을 사용하십시오.

RxAbsIntDelay

유효 범위는 `0-65535`, `0=off`, default는 `8`입니다.

receive interrupt 생성의 최대 지연을 `1.024 microseconds` 단위로 제한합니다. `RxIntDelay`가 0이 아닐 때만 유용하며 첫 packet 수신 후 지정한 시간 안에 interrupt를 생성하도록 보장합니다.

TxIntDelay

유효 범위는 `0-65535`, `0=off`, default는 `8`입니다.

transmit interrupt 생성을 `1.024 microseconds` 단위로 지연합니다. 적절히 조정하면 CPU efficiency를 높일 수 있습니다. dropped transmit은 값이 너무 높아 transmit descriptor가 고갈된 것일 수 있습니다.

TxAbsIntDelay

유효 범위는 `0-65535`, `0=off`, default는 `32`입니다.

transmit interrupt 생성의 최대 지연을 `1.024 microseconds` 단위로 제한합니다. `TxIntDelay`가 0이 아닐 때만 유용하며 첫 packet을 wire로 보낸 뒤 지정한 시간 안에 interrupt를 생성하도록 보장합니다.

copybreak

유효 범위는 `0-xxxxxxx`, `0=off`, default는 `256`입니다. 드라이버는 이 크기 이하의 packet을 stack에 넘기기 전에 새 receive buffer로 복사합니다.

모든 driver instance에 적용되는 단일 parameter이며 runtime에는 `/sys/module/e1000e/parameters/copybreak`에서도 사용할 수 있습니다.

modprobe e1000e.ko copybreak=128
RxIntDelay
----------
:Valid Range: 0-65535 (0=off)
:Default Value: 0

This value delays the generation of receive interrupts in units of 1.024
microseconds. Receive interrupt reduction can improve CPU efficiency if
properly tuned for specific network traffic. Increasing this value adds extra
latency to frame reception and can end up decreasing the throughput of TCP
traffic. If the system is reporting dropped receives, this value may be set
too high, causing the driver to run out of available receive descriptors.

CAUTION: When setting RxIntDelay to a value other than 0, adapters may hang
(stop transmitting) under certain network conditions. If this occurs a NETDEV
WATCHDOG message is logged in the system event log. In addition, the
controller is automatically reset, restoring the network connection. To
eliminate the potential for the hang ensure that RxIntDelay is set to 0.

RxAbsIntDelay
-------------
:Valid Range: 0-65535 (0=off)
:Default Value: 8

This value, in units of 1.024 microseconds, limits the delay in which a
receive interrupt is generated. This value ensures that an interrupt is
generated after the initial packet is received within the set amount of time,
which is useful only if RxIntDelay is non-zero. Proper tuning, along with
RxIntDelay, may improve traffic throughput in specific network conditions.

TxIntDelay
----------
:Valid Range: 0-65535 (0=off)
:Default Value: 8

This value delays the generation of transmit interrupts in units of 1.024
microseconds. Transmit interrupt reduction can improve CPU efficiency if
properly tuned for specific network traffic. If the system is reporting
dropped transmits, this value may be set too high causing the driver to run
out of available transmit descriptors.

TxAbsIntDelay
-------------
:Valid Range: 0-65535 (0=off)
:Default Value: 32

This value, in units of 1.024 microseconds, limits the delay in which a
transmit interrupt is generated. It is useful only if TxIntDelay is non-zero.
It ensures that an interrupt is generated after the initial Packet is sent on
the wire within the set amount of time. Proper tuning, along with TxIntDelay,
may improve traffic throughput in specific network conditions.

copybreak
---------
:Valid Range: 0-xxxxxxx (0=off)
:Default Value: 256

The driver copies all packets below or equaling this size to a fresh receive
buffer before handing it up the stack.
This parameter differs from other parameters because it is a single (not 1,1,1
etc.) parameter applied to all driver instances and it is also available
during runtime at /sys/module/e1000e/parameters/copybreak.

To use copybreak, type::

    modprobe e1000e.ko copybreak=128

전원, interrupt mode, CRC와 NVM parameter

181-251

SmartPowerDownEnable

유효 범위는 `0,1`, default는 비활성화인 `0`입니다. 낮은 power state에서 PHY를 끌 수 있게 하며 지원 chipset에서 사용자가 이 parameter를 끌 수 있습니다.

KumeranLockLoss

유효 범위는 `0,1`, default는 활성화인 `1`입니다. ICH8 system의 초기 silicon release에서 shutdown 시 PHY reset을 건너뛰는 workaround입니다.

IntMode

유효 범위는 `0-2`, default는 `0`입니다.

IntMode 값
Interrupt mode
0Legacy
1MSI
2MSI-X

driver load 시 등록할 interrupt type입니다.

IntMode는 driver가 등록하는 interrupt type을 load 시 제어합니다. multiple queue에는 MSI-X가 필요하지만 kernel과 `.config` option 조합에 따라 더 낮은 interrupt level이 강제될 수 있습니다.

각 interrupt type의 값은 다음 command로 확인합니다.

cat /proc/interrupts

CrcStripping

유효 범위는 `0,1`, default는 활성화인 `1`입니다. 수신 packet을 network stack에 올리기 전에 CRC를 제거합니다. BMC가 활성화된 machine에서 driver load 후 IPMI traffic을 받을 수 없으면 이 기능을 꺼 보십시오.

WriteProtectNVM

유효 범위는 `0,1`, default는 활성화인 `1`입니다. 값 1이면 accidental NVM corruption을 막기 위해 hardware가 ICHx NVM의 GbE 영역에 대한 모든 write/erase cycle을 무시합니다.

initial driver load에서 parameter를 0으로 설정하면 비활성화할 수 있습니다. NVM write를 활성화할 때는 machine을 완전히 껐다 켜는 power cycle이 필요합니다. driver load 시 값 1로 NVM이 lock되면 power cycle 전에는 unlock할 수 없습니다.

Debug

유효 범위는 `0-16`이며 `0=none`, `16=all`, default는 `0`입니다. system log에 표시할 debug message level을 조정합니다.

SmartPowerDownEnable
--------------------
:Valid Range: 0,1
:Default Value: 0 (disabled)

Allows the PHY to turn off in lower power states. The user can turn off this
parameter in supported chipsets.

KumeranLockLoss
---------------
:Valid Range: 0,1
:Default Value: 1 (enabled)

This workaround skips resetting the PHY at shutdown for the initial silicon
releases of ICH8 systems.

IntMode
-------
:Valid Range: 0-2
:Default Value: 0

   +-------+----------------+
   | Value | Interrupt Mode |
   +=======+================+
   |   0   |     Legacy     |
   +-------+----------------+
   |   1   |       MSI      |
   +-------+----------------+
   |   2   |      MSI-X     |
   +-------+----------------+

IntMode allows load time control over the type of interrupt registered for by
the driver. MSI-X is required for multiple queue support, and some kernels and
combinations of kernel .config options will force a lower level of interrupt
support.

This command will show different values for each type of interrupt::

  cat /proc/interrupts

CrcStripping
------------
:Valid Range: 0,1
:Default Value: 1 (enabled)

Strip the CRC from received packets before sending up the network stack. If
you have a machine with a BMC enabled but cannot receive IPMI traffic after
loading or enabling the driver, try disabling this feature.

WriteProtectNVM
---------------
:Valid Range: 0,1
:Default Value: 1 (enabled)

If set to 1, configure the hardware to ignore all write/erase cycles to the
GbE region in the ICHx NVM (in order to prevent accidental corruption of the
NVM). This feature can be disabled by setting the parameter to 0 during initial
driver load.

NOTE: The machine must be power cycled (full off/on) when enabling NVM writes
via setting the parameter to zero. Once the NVM has been locked (via the
parameter at 1 when the driver loads) it cannot be unlocked except via power
cycle.

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

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

Jumbo Frame 구성과 adapter 제한

252-311

추가 기능과 configuration

Jumbo Frame

MTU(Maximum Transmission Unit)를 default `1500`보다 크게 바꾸면 Jumbo Frame 지원이 활성화됩니다.

ifconfig 또는 ip command를 사용할 수 있습니다.

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 Frame의 최대 MTU는 `8996`, 최대 frame size는 `9018 bytes`입니다. 10 또는 100 Mbps에서는 지원하지 않으며 performance 저하나 link 손실이 생길 수 있습니다.

다음 adapter는 Jumbo Frame packet을 최대 `4088 bytes`로 제한합니다.

  • Intel(R) 82578DM Gigabit Network Connection
  • Intel(R) 82577LM Gigabit Network Connection

다음 adapter는 Jumbo Frame을 지원하지 않습니다.

  • Intel(R) PRO/1000 Gigabit Server Adapter
  • Intel(R) PRO/1000 PM Network Connection
  • Intel(R) 82562G 10/100 Network Connection
  • Intel(R) 82562G-2 10/100 Network Connection
  • Intel(R) 82562GT 10/100 Network Connection
  • Intel(R) 82562GT-2 10/100 Network Connection
  • Intel(R) 82562V 10/100 Network Connection
  • Intel(R) 82562V-2 10/100 Network Connection
  • Intel(R) 82566DC Gigabit Network Connection
  • Intel(R) 82566DC-2 Gigabit Network Connection
  • Intel(R) 82566DM Gigabit Network Connection
  • Intel(R) 82566MC Gigabit Network Connection
  • Intel(R) 82566MM Gigabit Network Connection
  • Intel(R) 82567V-3 Gigabit Network Connection
  • Intel(R) 82577LC Gigabit Network Connection
  • Intel(R) 82578DC Gigabit Network Connection

system에서 MACSec이 활성화되어 있으면 82579 기반 network device에는 Jumbo Frame을 구성할 수 없습니다.


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 8996. This value coincides
with the maximum Jumbo Frames size of 9018 bytes.

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

NOTE: The following adapters limit Jumbo Frames sized packets to a maximum of
4088 bytes:

  - Intel(R) 82578DM Gigabit Network Connection
  - Intel(R) 82577LM Gigabit Network Connection

The following adapters do not support Jumbo Frames:

  - Intel(R) PRO/1000 Gigabit Server Adapter
  - Intel(R) PRO/1000 PM Network Connection
  - Intel(R) 82562G 10/100 Network Connection
  - Intel(R) 82562G-2 10/100 Network Connection
  - Intel(R) 82562GT 10/100 Network Connection
  - Intel(R) 82562GT-2 10/100 Network Connection
  - Intel(R) 82562V 10/100 Network Connection
  - Intel(R) 82562V-2 10/100 Network Connection
  - Intel(R) 82566DC Gigabit Network Connection
  - Intel(R) 82566DC-2 Gigabit Network Connection
  - Intel(R) 82566DM Gigabit Network Connection
  - Intel(R) 82566MC Gigabit Network Connection
  - Intel(R) 82566MM Gigabit Network Connection
  - Intel(R) 82567V-3 Gigabit Network Connection
  - Intel(R) 82577LC Gigabit Network Connection
  - Intel(R) 82578DC Gigabit Network Connection

NOTE: Jumbo Frames cannot be configured on an 82579-based Network device if
MACSec is enabled on the system.

ethtool 사용 조건

312-323

ethtool

드라이버는 configuration, diagnostics와 통계 표시에 ethtool interface를 사용합니다. 최신 ethtool version이 필요하며 `https://www.kernel.org/pub/software/network/ethtool/`에서 받을 수 있습니다.

82578 같은 일부 부품에서 enable/disable test를 검증할 때는 ethtool test 사이에 몇 초의 간격을 두어야 합니다.

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/

NOTE: When validating enable/disable tests on some parts (for example, 82578),
it is necessary to add a few seconds between tests when working with ethtool.

Speed와 duplex configuration

324-353

Speed와 duplex configuration

speed와 duplex 문제를 다룰 때 copper adapter와 fiber adapter를 구분해야 합니다.

copper connection의 Intel Ethernet Network Adapter는 기본적으로 link partner와 auto-negotiate해 최적 설정을 찾습니다.

auto-negotiation으로 link를 만들 수 없으면 adapter와 partner를 동일한 설정으로 수동 구성해야 할 수 있습니다. 이는 auto-negotiation을 지원하지 않는 오래된 switch 또는 특정 speed/duplex로 강제한 switch와 연결할 때만 필요합니다.

link partner 설정은 반드시 adapter와 일치해야 합니다. 1 Gbps 이상은 강제할 수 없으므로 autonegotiation advertising 설정으로 수동 구성합니다.

speed, duplex, autonegotiation advertising은 ethtool utility로 구성합니다.

주의: 숙련된 network administrator만 speed/duplex를 강제하거나 advertising을 수동 변경해야 합니다. switch와 adapter 설정이 다르면 performance가 저하되거나 adapter가 동작하지 않을 수 있습니다.

fiber connection adapter는 full duplex와 native speed로만 동작하므로 link partner와 auto-negotiate하지 않습니다.

Speed and Duplex Configuration
------------------------------
In addressing speed and duplex configuration issues, you need to distinguish
between copper-based adapters and fiber-based adapters.

In the default mode, an Intel(R) Ethernet Network Adapter using copper
connections will attempt to auto-negotiate with its link partner to determine
the best setting. If the adapter cannot establish link with the link partner
using auto-negotiation, you may need to manually configure the adapter and link
partner to identical settings to establish link and pass packets. This should
only be needed when attempting to link with an older switch that does not
support auto-negotiation or one that has been forced to a specific speed or
duplex mode. Your link partner must match the setting you choose. 1 Gbps speeds
and higher cannot be forced. Use the autonegotiation advertising setting to
manually set devices for 1 Gbps and higher.

Speed, duplex, and autonegotiation advertising are configured through the
ethtool utility.

Caution: Only experienced network administrators should force speed and duplex
or change autonegotiation advertising manually. The settings at the switch must
always match the adapter settings. Adapter performance may suffer or your
adapter may not operate if you configure the adapter differently from your
switch.

An Intel(R) Ethernet Network Adapter using fiber-based connections, however,
will not attempt to auto-negotiate with its link partner since those adapters
operate only in full duplex and only at their native speed.

Wake on LAN과 port 제한

354-370

Wake on LAN(WoL) 활성화

WoL은 ethtool utility로 구성합니다.

WoL은 다음 shutdown 또는 reboot 때 활성화됩니다. 이 driver version에서는 system을 종료하거나 suspend하기 전에 e1000e driver가 load되어 있어야 합니다.

다음 device에서는 port A에서만 Wake on LAN을 지원합니다.

  • Intel(R) PRO/1000 PT Dual Port Network Connection
  • Intel(R) PRO/1000 PT Dual Port Server Connection
  • Intel(R) PRO/1000 PT Dual Port Server Adapter
  • Intel(R) PRO/1000 PF Dual Port Server Adapter
  • Intel(R) PRO/1000 PT Quad Port Server Adapter
  • Intel(R) Gigabit PT Quad Port Server ExpressModule
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 e1000e driver must be loaded
prior to shutting down or suspending the system.

NOTE: Wake on LAN is only supported on port A for the following devices:
- Intel(R) PRO/1000 PT Dual Port Network Connection
- Intel(R) PRO/1000 PT Dual Port Server Connection
- Intel(R) PRO/1000 PT Dual Port Server Adapter
- Intel(R) PRO/1000 PF Dual Port Server Adapter
- Intel(R) PRO/1000 PT Quad Port Server Adapter
- Intel(R) Gigabit PT Quad Port Server ExpressModule

지원

371-378

지원

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

지원되는 adapter와 kernel에서 공개 source code의 문제가 확인되면 구체적인 정보를 `intel-wired-lan@lists.osuosl.org`로 보내십시오.

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 intel-wired-lan@lists.osuosl.org.