← Ethernet 상세 목차DUJINLABS.COM

Hardware · Ethernet detailed manual 07 · Linux v6.18.37

7. ethtool, loopback과 counter ladder로 PHY 문제를 재현한다

하나의 ping 대신 동일한 sequence 번호를 가진 frame을 보내 PHY, MAC, DMA와 userspace counter의 첫 감소 지점을 찾습니다. loopback 위치를 바꿔 송신과 수신 경계를 단계적으로 넓힙니다.

상세 표
2
검증 행
16
절차
4 checkpoints
기준
IEEE 802.3 · phylib/phylink · Linux v6.18.37

CHAPTER 07

7. ethtool, loopback과 counter ladder로 PHY 문제를 재현한다

하나의 ping 대신 동일한 sequence 번호를 가진 frame을 보내 PHY, MAC, DMA와 userspace counter의 첫 감소 지점을 찾습니다. loopback 위치를 바꿔 송신과 수신 경계를 단계적으로 넓힙니다.

counter ladder

PHY symbol error, MAC CRC/good frame, DMA descriptor, netdev와 socket count는 서로 다른 drop 지점을 나타냅니다.

loopback 위치

MAC, PCS, PHY digital, PHY analog, external plug loopback은 포함하는 회로 범위가 다릅니다. 위치를 기록하지 않은 loopback 성공은 의미가 약합니다.

ethtool dump

`ethtool`, `-S`, `--phy-statistics`, `--show-eee`, `-m` 출력은 driver 지원 범위가 다릅니다. raw register와 교차 확인합니다.

재현 행렬

speed, duplex, cable, partner, temperature, cold/warm, EEE와 traffic direction을 한 번에 하나씩 바꿉니다.

레지스터와 관측값을 함께 읽는 표

항목소유 블록설정 또는 의미정상 증거실패 해석
PHY basic/linkPHYAN과 resolved tuple시험 조건과 일치기본 link 조건 불일치
PHY error countersPHY PCS/PMAsymbol, receive, false carrier정상 기준 대비 증가 없음MDI/SI/clock 경계
MAC MMC countersMACgood, CRC, alignment, length, pause보낸 frame와 방향별 일치MAC 전후 drop 위치
DMA countersDMA/driverdescriptor complete, overflow, missedMAC good frame와 근접ring/FIFO 경계
netdev statsLinuxpackets/bytes/errors/droppedDMA 처리량과 일치driver/stack drop
socket/applicationuserspacesequence와 latency손실 없이 최종 도착protocol/queue/application 경계

증상에서 첫 실패 경계를 찾는 표

관측 증상직전 통과 증거우선 확인반증 시험판정
PHY symbol부터 증가TX stimulus 정상cable/magnetics/analoginternal PHY loopback과 external loopback 비교PHY 외부 또는 PMA
symbol 0, MAC CRC 증가PHY PCS 정상PHY-MAC interface timingRGMII/SGMII loopbackMAC interface 경계
MAC good, DMA 감소frame filter 통과descriptor/FIFOring dump와 overflow counterDMA 경계
DMA complete, netdev 감소descriptor CPU ownershipdriver drop reasonNAPI trace와 skb allocationdriver/NAPI 경계
netdev RX, socket 감소stack 진입routing/netfilter/socket queuedrop monitor와 packet tracenetwork stack/userspace
장시간 후에만 실패초기 모든 단계 통과counter wrap, thermal, EEE, ring wrap시간축과 환경 센서 동시 기록누적/경계조건 문제
그림 1. 7. ethtool, loopback과 counter ladder로 PHY 문제를 재현한다의 실행 순서왼쪽에서 오른쪽으로 실제 소유권과 관찰 지점이 이동합니다.
01 sequence frame 생성
02 PHY counter
03 MAC counter
04 DMA descriptor
05 NAPI/netdev
06 protocol stack
07 socket sequence
08 첫 감소 판정

실제 검증 절차

순서실행남길 증거판정 목적
1시험 전 모든 가능한 counter를 raw/이름 두 형태로 저장합니다.baseline snapshot증분 계산 기반
2고정 개수의 sequence frame을 한 방향씩 전송합니다.송신 수와 시간 범위양방향 혼입 방지
3시험 후 counter delta를 한 행에 정렬합니다.첫 감소 지점실패 경계 확정
4loopback 위치를 MAC→PCS→PHY→external 순서로 넓힙니다.위치별 pass/fail최소 실패 범위 식별

주의일부 통계 register는 read-to-clear이거나 폭이 작아 wrap됩니다. 수집 주기와 clear 동작을 기록하지 않으면 delta가 틀립니다.

공개적으로 다시 확인할 수 있는 자료

공개되지 않은 vendor register나 integration별 offset을 추측해서 채우지 않았습니다. 아래 제조사 자료, architecture 문서와 Linux v6.18.37 원본에서 다시 확인할 수 있는 범위만 사용했습니다.

Linux phylink

PHY, fixed-link, in-band PCS와 MAC callback의 관계