#linux #mctp #sockets #protocols #component #endpoint #bind

mctp-linux

管理组件传输协议(MCTP)的Linux传输

1 个不稳定版本

0.1.0 2024年6月24日

#550Unix API


用于 2 crates

Apache-2.0

25KB
411

管理组件传输协议(MCTP)使用Linux套接字

此crate提供对mctp基础crate的实现,使用Linux套接字支持MCTP消息。

有关内核套接字支持的概述,请参阅https://codeconstruct.com.au/docs/mctp-on-linux-introduction/

使用标准套接字API,我们实现了mctp::Endpoint trait,允许上层在不需要套接字接口的更多细节的情况下实现MCTP应用程序。


lib.rs:

基于Linux套接字的MCTP支持的接口。

此crate提供了一些标准libc套接字操作的包装,使用MCTP特定的寻址结构。

MctpSocket提供了对阻塞套接字操作sendtorecvfrombind的支持。

use mctp_linux;

let sock = mctp_linux::MctpSocket::new()?;
let bind_addr = mctp_linux::MctpSockAddr::new(
    mctp::MCTP_ADDR_ANY.0,
    mctp_linux::MCTP_NET_ANY,
    1,
    0
);
sock.bind(&bind_addr)?;

let mut buf = [0; 64];
let (len, src) = sock.recvfrom(&mut buf)?;

MctpLinuxEp提供了一个轻量级的包装,表示一个远程端点,通过EID引用。它为与该端点进行通信创建一个套接字。这对于执行单端点通信的简单消费者来说是一种便利;一般的MCTP请求者可能需要不同的套接字模型。

依赖关系

~43KB