VDM và các chỉ số FEC: liên kết PAM4
Từ 50G mỗi làn trở lên, công suất quang không còn là chỉ báo sức khỏe đủ tin cậy nữa: một liên kết PAM4 với công suất Rx hoàn hảo vẫn có thể chỉ cách lỗi không sửa được đúng một đầu nối bẩn, và dấu hiệu đầu tiên không phải là dBm mà là tỷ lệ lỗi bit. Có hai nguồn cho ra con số đó. Bên trong module, VDM (Versatile Diagnostics Monitoring) của CMIS báo cáo BER trước FEC, SNR và tình trạng laser theo từng làn; trên host, bộ giải mã FEC đếm số codeword đã sửa được và không sửa được. Kết hợp lại, chúng cho thấy liên kết còn cách sự cố bao xa trong khi vẫn đang truyền tải lưu lượng mà không mất dữ liệu.
Vì sao FEC làm thay đổi cách chẩn đoán
Mọi PMD Ethernet 25G+ trên PAM4 (và phần lớn PMD 25G NRZ) đều giả định có FEC Reed-Solomon. Phần quang được phép cho ra tỷ lệ lỗi thô 10⁻⁵–10⁻⁴ vì FEC sửa nó xuống còn 10⁻¹² hoặc tốt hơn. Hệ quả: một liên kết đang suy giảm sẽ cho MAC thấy hoàn toàn không có lỗi nào cho đến khi vượt qua giới hạn của FEC, rồi lỗi đột ngột. BER trước FEC là chỉ báo dự trữ duy nhất biến đổi mượt mà.
| FEC | Mã | Sửa được mỗi codeword | Giới hạn BER trước FEC cho đầu ra 10⁻¹² (gần đúng) | Dùng cho |
|---|---|---|---|---|
| BASE-R (“FC-FEC”, Clause 74) | Fire code (2112, 2080) | chuỗi burst 11 bit | ≈ 10⁻⁷ … 10⁻⁸, tăng ích ~2 dB | 10G/25G NRZ, CA-25G-S |
| RS-FEC KR4 (Clause 91/108) | RS(528, 514) trên GF(2¹⁰) | 7 ký hiệu | ≈ 5 × 10⁻⁵ | 25GBASE-CR/SR/LR, 100GBASE-SR4/CWDM4/CR4 |
| RS-FEC KP4 (Clause 119/134) | RS(544, 514) | 15 ký hiệu | ≈ 2,4 × 10⁻⁴ | mọi làn PAM4 50G: 50G/100G/200G/400G/800G |
| Ghép chuỗi / oFEC (coherent) | mã trong + mã ngoài | — | ≈ 10⁻² … 2 × 10⁻² | 400ZR (CFEC), OpenZR+ (oFEC) |
Sai lệch cấu hình: FEC, tự động đàm phán và huấn luyện liên kết.
VDM — module báo cáo những gì
VDM nằm trong các trang 20h–2Fh của CMIS (phân theo bank, mỗi bank 8 làn) và được công bố ở trang 01h. Mỗi đại lượng quan sát (observable) có một descriptor (loại, làn), một mẫu trực tiếp, bốn ngưỡng và cờ, hoàn toàn giống các đại lượng giám sát kinh điển.
| Trang | Nội dung |
|---|---|
| 20h–23h | descriptor: đại lượng quan sát nào, làn nào, bộ ngưỡng nào |
| 24h–27h | mẫu (2 byte mỗi mẫu) |
| 28h–2Bh | ngưỡng: báo động cao/thấp, cảnh báo cao/thấp |
| 2Ch–2Fh | cờ và mask |
Các loại đại lượng quan sát (CMIS 4.0/5.x)
| ID | Đại lượng quan sát | Đơn vị / định dạng | Cho bạn biết điều gì |
|---|---|---|---|
| 1 | Tuổi laser | % (U16) | ước tính của nhà sản xuất về tuổi thọ đã tiêu hao |
| 2 | Dòng TEC | % so với tối đa (S16) | tải của bộ làm mát — Nhiệt độ và điện áp |
| 3 | Sai số tần số laser | MHz (S16) | DWDM/ZR: độ lệch khỏi lưới kênh |
| 4 | Nhiệt độ laser | °C (S16, 1/256) | laser được làm mát |
| 5 / 6 | eSNR, đầu vào phía media / host | dB (U16, 1/256) | SNR điện sau cân bằng — chính là “độ mở mắt” (eye height) của PAM4; > 18–20 dB là an toàn, < 15 dB là cận biên (tùy nhà sản xuất) |
| 7 / 8 | Tham số chuyển mức PAM4, phía media / host | dB | độ tuyến tính của bốn mức |
| 9 / 10 | BER trước FEC nhỏ nhất, phía media / host | F16 | giá trị tốt nhất trong khoảng thời gian |
| 11 / 12 | BER trước FEC lớn nhất | F16 | giá trị xấu nhất trong khoảng thời gian — con số cần đặt cảnh báo |
| 13 / 14 | BER trước FEC trung bình | F16 | — |
| 15 / 16 | BER trước FEC hiện tại | F16 | mẫu gần nhất |
| 17–24 | FERC (frame error ratio count) nhỏ nhất / lớn nhất / trung bình / hiện tại, phía media / host | F16 | khung không sửa được sau FEC — phải bằng 0 |
| 128+ | bộ coherent (CMIS 5.x): dòng phân cực bộ điều chế, CD, DGD, SOPMD, OSNR, eSNR, hệ số Q, công suất Rx tổng/tín hiệu, độ lệch tần số sóng mang… | nhiều loại | module 400ZR/ZR+ |
F16 là định dạng tỷ lệ 16 bit của CMIS: số mũ 5 bit và phần định trị (mantissa) 11 bit, giá trị = mantissa × 10^(số mũ − 24). Một BER trước FEC bằng 1,5 × 10⁻⁶ được lưu dưới dạng mantissa 1500 với số mũ 15. Phía media = đường quang; phía host = giao diện điện tới ASIC của switch — một BER phía host xấu chỉ hướng tới đầu nối hoặc board mạch, không phải sợi quang.
Bộ đếm FEC phía host
Switch hoặc NIC đếm, theo từng cổng và thường theo cả từng làn:
| Bộ đếm | Khỏe mạnh | Cần chú ý | Đang lỗi |
|---|---|---|---|
| Codeword đã sửa | tăng chậm (BER trước FEC 10⁻⁸ … 10⁻⁶) | tăng nhanh (10⁻⁵ tại KP4) | gần chạm giới hạn |
| Codeword không sửa được | 0 | bất kỳ mức tăng nào | tăng đều đặn = mất khung |
| Lỗi ký hiệu theo từng làn | cân bằng giữa các làn | một làn trội hẳn lên | sợi quang/đầu nối/laser của làn đó |
| BER trước FEC (suy ra) | < 10⁻⁷ | 10⁻⁶ … 10⁻⁵ | > 10⁻⁴ (KP4) |
Nơi đọc các con số này: show interfaces … fec / phy detail trên phần lớn NOS (Kiểm tra module quang trên switch), ethtool -S (fec_corrected_blocks, fec_uncorrectable_blocks) và ethtool --show-fec trên Linux, show interfaces counters fec trên SONiC. Các bộ đếm mang tính lũy kế — hãy xóa về 0 rồi theo dõi tốc độ tăng.
Đọc kết hợp cả hai
| Công suất Rx | BER trước FEC / eSNR | Không sửa được | Chẩn đoán |
|---|---|---|---|
| trong cửa sổ | < 10⁻⁷, eSNR cao | 0 | khỏe mạnh, còn dự trữ |
| trong cửa sổ | 10⁻⁵, eSNR giảm trên một làn | 0 | làn đó đang suy giảm: sợi MPO bẩn, VCSEL lão hóa, đầu nối cận biên — khắc phục trước khi nó lỗi hẳn (Chẩn đoán theo từng làn) |
| thấp | cao | có | vấn đề quỹ công suất — Công suất Rx và quỹ công suất tuyến |
| trong cửa sổ, cả hai đầu | cao ở phía host | có | vấn đề điện: tiếp xúc cage/đầu nối, board mạch, chất lượng DAC, cài đặt cân bằng (equalisation) sai |
| trong cửa sổ | cao ở phía media, mọi làn | có | tán sắc, sai cấp cự ly, bước sóng lệch khỏi bộ ghép kênh, cực tính sai một phần |
| tốt | 0 lỗi, liên kết chập chờn | 0 | không phải vấn đề tín hiệu — sai lệch FEC/AN, nhiệt, phần mềm |
Ngưỡng và cảnh báo
Ngưỡng VDM do nhà sản xuất đặt ra; cảnh báo cao điển hình cho BER trước FEC nằm ở khoảng một phần mười giới hạn FEC (2 × 10⁻⁵ tại KP4). Để cảnh báo, hãy dùng tốc độ và xu hướng: một BER trước FEC tăng một bậc thập phân trong một tuần là một lệnh công việc cần xử lý, bất kể ngưỡng là gì (Giám sát). Lỗi không sửa được sau FEC luôn luôn là một sự cố cần xử lý.
Nơi không có VDM
Module SFF-8472 và SFF-8636 không có VDM: liên kết NRZ 10G/25G/100G phải dựa vào bộ đếm FEC của host và vào công suất Rx. Một số module SFF-8636 đưa ra SNR hoặc BER riêng của nhà sản xuất trong các trang 20h–21h hoặc trong các byte dành riêng cho nhà sản xuất — chỉ đọc được bằng công cụ của chính nhà sản xuất đó. Với NRZ không có FEC (10G LR, 1G), bộ đếm CRC/lỗi đầu vào trên giao diện là cách nhìn duy nhất ở mức bit.
Trong CodingBox
Với module CMIS, CodingBox đọc các descriptor và mẫu VDM và hiển thị chúng theo từng làn cùng với các đại lượng giám sát kinh điển trên DDM, giải mã các tỷ lệ F16 thành những con số thông thường. Bộ đếm FEC của host nằm ngoài module và ngoài bộ lập trình — chúng đến từ switch.