1. Intel 10G Network Adapter
1.1 Linux Based Driver for the 10G PCI-E
o Driver 버전 : November 19, 2010
o Important Notes
¡ Ixgbe driver는 default LRO(Large Receive Offload) 설정이 되어 있음
¡ LRO는 대량의 패킷을 받을 때 CPU의 부하를 줄여줌
¡ 하지만 Routing, Forwarding, Bridging과 incompatible함
- Routing, Forwarding, Bridging이 필요할 때는 컴파일타임에 LRO 설정을 제거해야 함
- 그렇지 않을 경우 성능 저하나 커널패닉이 발생할 수 도 있음
o 제공 기능
¡ Native VLANs
¡ Channel Bonding (teaming)
¡ SNMP
¡ Generic Receive Offload
¡ Data Center Bridging
o MSI-X
¡ Message Signaled Interrupts
- Interrupt Pin 방식이 아닌 인터럽트를 메시지로 보내는 방식
- PCI-e 에서 사용
- Device는 최대 2048개의 인터럽트를 한번에 보낼 수 있음
- 따라서 기존의 인터럽트 핀 방식에 비해서 성능 향상을 가질 수 있음
o Ethtool
¡ H/W 정보를 볼 때 유용
- ethtool –S : provides H/W level stats
- ethtool –c : interrupt coalescing
- ethtool –g : ring buffer information
- ethtool –k : hw assist information
- ethtool –i : driver information
root@Cnode10:/home/collector/nProbe# ethtool -i eth2
driver: ixgbe
version: 2.0.44-k2
firmware-version: 1.5-0
bus-info: 0000:02:00.0
o lspci
¡ pci 에 연결된 정보를 좀더 자세하게 알 수 있음
¡ ethtool –i eth2에서 찾은 bus-info (02:00.0)을 활용하여 해당 슬롯의 정보를 파악
root@Cnode10:/home/collector/nProbe# lspci -v -s 02:00.0 -v
02:00.0 Ethernet controller: Intel Corporation 82599EB 10-Gigabit Network Connection (rev 01)
Subsystem: QUANTA Computer Inc Device 8975
Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr+ Stepping- SERR+ FastB2B- DisINTx+
Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
Latency: 0, Cache Line Size: 256 bytes
Interrupt: pin A routed to IRQ 24
Region 0: Memory at def80000 (64-bit, prefetchable) [size=512K]
Region 2: I/O ports at cc00 [size=32]
Region 4: Memory at def7c000 (64-bit, prefetchable) [size=16K]
Capabilities: [40] Power Management version 3
Flags: PMEClk- DSI+ D1- D2- AuxCurrent=0mA PME(D0+,D1-,D2-,D3hot+,D3cold-)
Status: D0 PME-Enable- DSel=0 DScale=1 PME-
Capabilities: [50] Message Signalled Interrupts: Mask+ 64bit+ Queue=0/0 Enable-
Address: 0000000000000000 Data: 0000
Masking: 00000000 Pending: 00000000
Capabilities: [70] MSI-X: Enable+ Mask- TabSize=64
Vector table: BAR=4 offset=00000000
PBA: BAR=4 offset=00002000
Capabilities: [a0] Express (v2) Endpoint, MSI 00
DevCap: MaxPayload 512 bytes, PhantFunc 0, Latency L0s <512ns, L1 <64us
ExtTag- AttnBtn- AttnInd- PwrInd- RBE+ FLReset+
DevCtl: Report errors: Correctable+ Non-Fatal+ Fatal+ Unsupported+
RlxdOrd+ ExtTag- PhantFunc- AuxPwr- NoSnoop+ FLReset-
MaxPayload 128 bytes, MaxReadReq 512 bytes
DevSta: CorrErr+ UncorrErr- FatalErr- UnsuppReq+ AuxPwr- TransPend-
LnkCap: Port #0, Speed 5GT/s, Width x8, ASPM L0s, Latency L0 unlimited, L1 <32us
ClockPM- Suprise- LLActRep- BwNot-
LnkCtl: ASPM Disabled; RCB 64 bytes Disabled- Retrain- CommClk-
ExtSynch- ClockPM- AutWidDis- BWInt- AutBWInt-
LnkSta: Speed 5GT/s, Width x4, TrErr- Train- SlotClk+ DLActive- BWMgmt- ABWMgmt-
Capabilities: [e0] Vital Product Data <?>
Capabilities: [100] Advanced Error Reporting <?>
Capabilities: [140] Device Serial Number 1a-66-8f-ff-ff-69-eb-60
Capabilities: [150] #0e
Capabilities: [160] #10
Kernel driver in use: ixgbe
Kernel modules: ixgbe
link speed 를 변경하고 싶을 때
ethtool -s eth2 advertise 0x1000 (10Gbps/Full) ethtool -s eth2 advertise 0x020 (1Gbps/Full)