Linux 7.3, MCTP-Over-USB v1.1 지원 추가
요약
Linux 7.3 커널에 MCTP-Over-USB v1.1 사양 지원이 추가됩니다. 이번 업데이트는 패킷 스패닝 모드 도입을 통해 USB 고속 모드 요구 사항을 완화하고 패킷 크기를 확장합니다.
핵심 포인트
- MCTP-Over-USB v1.1 사양 지원을 위한 패치 적용
- 패킷 스패닝 도입으로 USB 전송 효율 및 패킷 크기 증가
- 새로운 라이브러리 mctp-usblib 도입을 통한 구현 복잡성 관리
- Linux 7.3 머지 윈도우를 통해 정식 반영 예정
Linux 7.3, MCTP-Over-USB v1.1 지원 추가

지난해 Linux 6.15에서 최초의 MCTP-Over-USB 드라이버 지원이 이루어졌으며, MCTP-Over-USB v1.1 사양은 올해 초에 발표되었습니다. 지난 5월, DMTF는 USB 1.1 이상 지원, 전속도 (full-speed) 모드 전송, MCTP 패킷 스패닝 (packet spanning) 기능 및 향상된 오류 복원력을 포함하는 v1.1 사양을 발표했습니다.
지난주 Git 병합 덕분에 net-next는 MCTP-over-USB 1.1 사양을 지원하게 되었습니다:
"DSP0283 (MCTP over USB transport binding)의 버전 1.1.0이 출시되었습니다. 이번 패치 시리즈는 현재의 v1.0.1 지원을 v1.1.x의 변경 사항에 맞게 업데이트합니다.
v1.1의 주요 변경 사항은 "패킷 스패닝 (packet spanning)" 모드의 도입입니다. 이 모드에서는 단일 MCTP 패킷이 여러 USB 패킷(그 자체로 하나의 USB 벌크 전송 (USB bulk transfer)을 형성)으로 나뉠 수 있습니다. 이를 통해 여러 개의 64바이트 전속도 (full-speed) USB 벌크 전송에 걸쳐 포함된 MCTP 패킷을 보낼 수 있게 되어 USB 고속 (high-speed) 모드에 대한 요구 사항이 완화되었으며, 최대 MCTP 패킷 크기도 증가했습니다. 이제 전송 헤더 (transport header)에서 패킷 길이(packet length)를 13비트(기존 8비트)로 사용할 수 있습니다.
패킷 스패닝을 처리하는 것은 송신 및 수신 경로에 어느 정도 복잡성을 초래합니다. 패킷 경계가 USB 전송 경계와 일치해야 하는 제약 조건이 일부 사라지며, 별도의 전송 간에 상태를 유지해야 할 수도 있기 때문입니다. 이러한 복잡성을 제어하기 위해, 전송 패킹(packing) 및 언패킹(unpacking) 구현을 위한 새로운 라이브러리인 "mctp-usblib"을 도입합니다. 호스트 드라이버는 이 라이브러리를 사용하는 소비자이며, 향후 가젯 드라이버 (gadget driver)도 동일한 구현을 사용할 수 있습니다. 또한 이제 라이브러리의 API 경계에서 테스트를 구현할 수 있습니다.
이 시리즈는 mctp-usblib으로의 점진적인 전환을 구현한 다음, 새 라이브러리에 패킷 스패닝 모드를 구현합니다. 이를 준비하기 위해 몇 가지 상수와 v1.0 전용 동작을 변경하는 작업을 수행했습니다. mctp-usblib에 패킷 스패닝이 구현되면, 호스트 측 드라이버에서 이를 활성화합니다."
이제 해당 코드가 net-next에 포함되었으므로, 이달 말에 머지 윈도우 (merge window)가 열릴 때 Linux 7.3에 반영될 것으로 보입니다.
AI 자동 생성 콘텐츠
본 콘텐츠는 Phoronix의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기