ETHERNET · FEC · COUNTERS

Ethernet FEC: 정정 횟수와 패킷 손실은 다릅니다

FEC 모드·계수 단위·관측 구간을 맞춘 뒤 MAC과 애플리케이션의 결과를 비교합니다.

블록·비트·패킷을 섞지 않습니다

Linux ethtool의 corrected_blocks는 정정된 수신 블록, uncorrectable_blocks는 정정하지 못한 수신 블록입니다. corrected_bits는 비트 변경 수이며 블록 수가 아닙니다. 이 수치를 패킷 손실률이나 BER로 그대로 바꾸면 단위와 분모가 달라집니다.

분기와 관측 지점을 나눈 자체 개념도
  1. FEC: 코드워드·정정 비트와 현재 모드

  2. MAC: 프레임·CRC 오류·폐기

  3. 애플리케이션: 순서·재시도·데이터 검증

Linux FEC_GET와 통계 정의

정정 실패와 오류 통지는 별개입니다

AMD PG203의 100G RS-FEC full-operation 모드는 정정할 수 없는 코드워드를 오류 표시가 있는 스트림으로 전달해 영향을 받은 패킷을 MAC이 버리게 합니다. 오류 표시를 끄는 다른 모드도 있습니다. 따라서 정정 불가 카운터의 증가만으로 오류가 상위 계층까지 조용히 전달됐다고 결론 내릴 수 없습니다.

이는 특정 100G IP의 동작 예입니다. 이 모드의 정정 한계나 지연 수치를 모든 800G 이상 링크에 적용하지 않습니다. 실제 제품의 FEC 종류, lane 구성, 오류 표시 설정과 카운터 설명을 먼저 고정합니다.

AMD PG203: RS-FEC 하위 모드

같은 구간을 측정합니다

ethtool 통계 배열의 첫 항목은 포트 합계이고 뒤는 lane 또는 PCS별 값입니다. 항목이 없는 경우는 통계 미지원이며 오류 0건이라는 뜻이 아닙니다. 합계와 각 lane 값을 다시 더해 중복 집계하지 않습니다.

시작·끝 시각과 각 카운터 차이, 포트 속도, 모듈, 현재 FEC 모드를 함께 남깁니다. 중간에 reset이나 모드 변경이 있었다면 구간을 분리합니다. Linux의 rx_crc_errors는 CRC 오류 패킷 수이고 rx_dropped는 여러 폐기 원인을 포함하므로 어느 쪽도 FEC 블록 카운터와 일대일로 대응한다고 가정하지 않습니다.

Linux 인터페이스 통계

제품 주장과 실제 측정을 구분합니다

Faisal Haque의 고속 Ethernet 관측 소개를 검토 계기로 삼았습니다. 여기서는 TeraSCOPE/ePA의 클록 단위 추적·정지 성능이나 원본 그림을 검증·재현하지 않았습니다. 특정 장비의 무검출 오류율을 측정한 글이 아니며, 카운터와 수신 데이터의 관측 지점을 맞추는 자체 점검 기준입니다.