Skip to content

williampMSFT/mctp-rs

 
 

Repository files navigation

mctp-rs

A no_std Rust implementation of the Management Component Transport Protocol (MCTP) as defined in the DMTF DSP0236 specification.

Overview

MCTP is a communication protocol designed for platform management subsystems in computer systems. It facilitates communication between management controllers (like BMCs) and managed devices across various bus types. This library provides:

  • Protocol Implementation: Complete MCTP transport layer with packet assembly/disassembly
  • Medium Abstraction: Support for different physical transport layers (SMBus/eSPI included)
  • No-std Compatible: Suitable for embedded and resource-constrained environments

Features

  • espi - Enables eSPI device support via the espi-device crate
  • odp - Enables ODP specific message types - docs

Documentation & Usage

See the crate documentation for up-to-date usage and examples: Rendered Docs

Architecture

The library is structured around:

  • MctpPacketContext: Main entry point for handling MCTP packets
  • MctpMedium: Trait for implementing transport-specific packet handling
  • MctpMessage: Represents a complete MCTP message with reply context
  • Control Commands: Type-safe implementation of MCTP control protocol

License

MIT License - see LICENSE.md for details.

Contributing

  1. Ensure cargo check and cargo test pass
  2. Test with all feature combinations using cargo hack --feature-powerset check
  3. Maintain no_std compatibility
  4. Follow the existing code patterns for protocol message handling

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Rust 99.2%
  • Shell 0.8%