적합성 코드: 바이트 3–10, 36과 확장 테이블
호스트는 모듈의 벤더 이름이 아니라 컴플라이언스 코드로 그것이 무엇인지 압니다 — “나는 10GBASE-LR이다” 또는 "나는 1000BASE-T 구리 SFP다"라고 말하는 비트 필드와, 비트 필드 공간이 바닥난 뒤 발명된 모든 것을 위한 단일 확장 코드입니다. 호스트는 이를 이용해 모듈 유형의 이름을 정하고, 어떤 속도를 제공할지 정하고, FEC와 브레이크아웃을 선택하며 — 엄격한 플랫폼에서는 — 코드가 포트와 맞지 않는 모듈을 거부합니다. 이를 올바르게 하는 것이 모듈을 코딩할 때 가장 중요한 단 하나의 일입니다.
코딩의 두 세대
| 메커니즘 | 위치 | 동작 방식 |
|---|---|---|
| 기존 비트 필드 | SFF-8472 바이트 3–10; SFF-8636 바이트 131–138과 164 | 표준마다 비트 1개; 여러 개를 세팅할 수 있음(듀얼레이트, 멀티프로토콜) |
| 확장 규격 컴플라이언스 | SFF-8472 바이트 36; SFF-8636 바이트 192 | SFF-8024 Table 4-4의 값 1개: 25G, 100G, 200G, 400G, MSA PMD |
| 애플리케이션 | CMIS 디스크립터 | 호스트 인터페이스 ID + 미디어 인터페이스 ID + 레인 수, 모듈당 여러 개 — CMIS 참고 |
25G나 100G 모듈은 기존 비트 대부분을 비워 두고 바이트 36이나 192에 식별 정보를 담습니다; 10G/1G 모듈은 그 반대입니다. 10G/25G 듀얼레이트 모듈은 둘 다 사용합니다.
SFF-8472 바이트 3–10(SFP 계열)
| 바이트 | 비트 7 | 비트 6 | 비트 5 | 비트 4 | 비트 3 | 비트 2 | 비트 1 | 비트 0 |
|---|---|---|---|---|---|---|---|---|
| 3 — 10G 이더넷 / 인피니밴드 | 10GBASE-ER | 10GBASE-LRM | 10GBASE-LR | 10GBASE-SR | IB 1X SX | IB 1X LX | IB 1X copper active | IB 1X copper passive |
| 4 — ESCON / SONET | ESCON MMF 1310 LED | ESCON SMF 1310 레이저 | OC-192 단거리 | SONET 전송 거리 비트 1 | SONET 전송 거리 비트 2 | OC-48 긺 | OC-48 중간 | OC-48 짧음 |
| 5 — SONET | 예약됨 | OC-12 SM 긺 | OC-12 SM 중간 | OC-12 짧음 | 예약됨 | OC-3 SM 긺 | OC-3 SM 중간 | OC-3 짧음 |
| 6 — 이더넷 | BASE-PX | BASE-BX10 | 100BASE-FX | 100BASE-LX/LX10 | 1000BASE-T | 1000BASE-CX | 1000BASE-LX | 1000BASE-SX |
| 7 — FC 링크 길이 / 기술 | 매우 긺(V) | 짧음(S) | 중간(I) | 긺(L) | 미디엄(M) | 예약됨 | 단파장 레이저, 선형 Rx(SA) | 장파장 레이저(LC) |
| 8 — FC 기술 / 케이블 | 인클로저 간 전기 연결(EL) | OFC 미포함 단파장 레이저(SN) | OFC 포함 단파장 레이저(SL) | 장파장 레이저(LL) | 액티브 케이블 | 패시브 케이블 | 예약됨 | 예약됨 |
| 9 — FC 미디어 | 트윈 액시얼(TW) | 트위스티드 페어(TP) | 미니어처 동축(MI) | 비디오 동축(TV) | 멀티모드 62.5 µm(M6) | 멀티모드 50 µm(M5/M5E) | 예약됨 | 싱글모드(SM) |
| 10 — FC 속도 | 1200 MB/s | 800 MB/s | 1600 MB/s | 400 MB/s | 3200 MB/s | 200 MB/s | 바이트 62 참고 | 100 MB/s |
바이트 62(Fibre Channel speed 2)는 64GFC 이상의 속도 목록을 이어갑니다. 바이트 36에는 확장 코드가 들어갑니다. 바이트 12는 공칭 레이트를 ×100 Mb/s 단위로 나타내고(FFh → 바이트 66에서 ×250 Mb/s 단위), 바이트 11은 인코딩을, 바이트 13은 레이트 셀렉트용 레이트 식별자를 나타냅니다.
일반적인 SFP 코딩
| 모듈 | 바이트 3 | 바이트 6 | 바이트 8 | 바이트 36 | 바이트 12 | 바이트 11 | 파장 |
|---|---|---|---|---|---|---|---|
| 1000BASE-SX | 00h | 01h | 00h | 00h | 0Dh(1.3 Gb/s) | 01h 8B/10B | 850 nm |
| 1000BASE-LX | 00h | 02h | 00h | 00h | 0Dh | 01h | 1310 nm |
| 1000BASE-T 구리 | 00h | 08h | 00h | 00h | 0Dh | 01h | 0(해당 없음) |
| 10GBASE-SR | 10h | 00h | 00h | 00h | 67h(10.3 Gb/s) | 06h 64B/66B | 850 nm |
| 10GBASE-LR | 20h | 00h | 00h | 00h | 67h | 06h | 1310 nm |
| 10G 패시브 DAC | 00h | 00h | 04h | 00h | 67h | 06h | 0, 바이트 60 = 케이블 컴플라이언스 |
| 25GBASE-SR | 00h | 00h | 00h | 02h | FFh(바이트 66 = 67h → 25.75 Gb/s) | 06h | 850 nm |
| 25GBASE-LR | 00h | 00h | 00h | 03h | FFh / 67h | 06h | 1310 nm |
| 25G 패시브 DAC CA-25G-N | 00h | 00h | 04h | 0Dh | FFh / 67h | 06h | 0 |
| 10G/25G 듀얼레이트 SR | 10h | 00h | 00h | 02h | FFh / 67h | 06h | 850 nm |
길이 바이트 14–19는 서로 일치해야 합니다: SR 모듈은 OM3/OM4 전송 거리를 선언하고, LR 모듈은 킬로미터를, DAC는 바이트 18에 미터를 선언합니다.
SFF-8636 바이트 131–138, 164(QSFP 계열)
| 바이트 | 내용 |
|---|---|
| 131 — 10/40G 이더넷 | 비트 7 확장(바이트 192 사용), 6 10GBASE-LRM, 5 10GBASE-LR, 4 10GBASE-SR, 3 40GBASE-CR4, 2 40GBASE-SR4, 1 40GBASE-LR4, 0 40G 액티브 케이블(XLPPI) |
| 132 — SONET | OC-48 장거리/중거리/단거리, 40G OTN |
| 133 — SAS/SATA | SAS 6 / 12 / 24 Gb/s |
| 134 — 기가비트 이더넷 | 비트 3 1000BASE-T, 2 1000BASE-CX, 1 1000BASE-LX, 0 1000BASE-SX |
| 135 — FC 링크 길이와 기술 | SFP 바이트 7과 비트 의미 동일 |
| 136 — FC 송신기 기술 | SFP 바이트 8과 동일한 EL, SN, SL, LL 비트 |
| 137 — FC 미디어 | TW, TP, MI, TV, M6, M5, OM3, SM |
| 138 — FC 속도 | 100 … 3200 MB/s, 확장 플래그 |
| 164 — 확장 모듈 | 인피니밴드 레이트: SDR, DDR, QDR, FDR, EDR |
| 192 — 확장 컴플라이언스 | Table 4-4 값 |
일반적인 예: 40GBASE-SR4 → 바이트 131 = 04h, 바이트 192 = 00h; 100GBASE-SR4 → 바이트 131 = 80h(확장), 바이트 192 = 02h; 100G CWDM4 → 80h / 06h; 100GBASE-CR4 DAC → 80h / 0Bh, 커넥터 23h.
CMIS — 비트 대신 애플리케이션
CMIS 모듈은 최대 15개의 애플리케이션을 나열하며, 각각 호스트 전기 인터페이스와 미디어 인터페이스(SFF-8024 코드 둘 다)를 짝짓고 레인 수를 명시합니다. 400G DR4 모듈은 400GAUI-8 ↔ 400GBASE-DR4(8:4)와 100GAUI-2 ↔ 100GBASE-DR(2:1, 4×100G 브레이크아웃용)를 광고할 수 있습니다. 호스트는 데이터 경로마다 하나를 선택합니다; 광고되지 않은 것은 구성할 수 없습니다. 자세한 내용과 선택 흐름: CMIS.
호스트가 코드를 사용하는 방법
- 이름 지정 — CLI의 유형 문자열(
10GBASE-LR,QSFP-100G-SR4)은 이 바이트에서 유도되며, 흔히 정해진 순서로 처음 세팅된 비트를 사용합니다. - 속도 제공 — 호스트는 코드가 있는 레이트만 나열합니다; 바이트 36 = 02h이지만 바이트 3 비트가 없는 25G 모듈에는 10G가 제공되지 않습니다(속도와 레이트).
- FEC 선택 — 확장 코드는 FEC 가정을 담고 있으며(CA-25G-L/S/N; RS-FEC 유무에 따른 CAUI-4), 일부 호스트는 여기서 FEC를 설정합니다(FEC와 링크 트레이닝).
- 구리 대 광 — 바이트 8 비트 2–3, 커넥터 23h, 바이트 147의 구리 기술은 호스트를 DAC 처리 방식(자동 협상, 링크 트레이닝)으로 전환시킵니다.
- 정책 — 엄격한 플랫폼은 코드를 포트의 모드 및 자체 호환성 데이터베이스와 비교합니다; 벤더 블록이 승인되었더라도 일치하지 않으면 unsupported 또는 speed and type not supported가 발생합니다(벤더 락).
코딩 규칙
- 하드웨어가 실제로 충족하는 비트만 세팅하십시오; SR 모듈에 10GBASE-LR을 선언하면 "링크 없음"이 "오류 있는 링크"로 바뀔 뿐입니다.
- 식별 정보 전체를 일관되게 유지하십시오: 컴플라이언스 ↔ 파장 ↔ 길이 ↔ 인코딩 ↔ 공칭 레이트 ↔ 커넥터 ↔ 송신기 기술.
- 25G 이상은 바이트 36/192를 채우고, 바이트 12/140을 FFh로 설정하며 바이트 66/222에 ×250 Mb/s 레이트를 넣으십시오.
- DAC는 파장 대신 케이블 기술 비트, 미터 단위 길이, 커넥터 23h, 감쇠/컴플라이언스 바이트를 코딩하십시오.
- 이후 체크섬을 다시 계산하십시오(체크섬).
CodingBox에서
Check transceiver 화면은 위의 모든 비트를 일반 이름으로 디코딩하고 CMIS 애플리케이션을 나열합니다; EEPROM editor는 코드 바이트를 필드별로 편집하고, 결과 유형 문자열을 보여주며, 쓸 때 CC_BASE와 CC_EXT를 고칩니다.
바이트 맥락에서 본 전체 비트 표: SFF-8472 A0h 맵(바이트 3–10, 36, 62), SFF-8636 상위 페이지 맵(131–138, 164, 192), XFP 맵(131–138).