-
Notifications
You must be signed in to change notification settings - Fork 33
Description
Hi,
This is not really an "issue" with this repo, rather a starting point for discussions around a requirement I am currently analyzing.
I have a MCTP bridge device (a BMC running Linux). The bridge directly manages two other MCTP devices connected over a USB bus downstream. Upstream, the bridge is connected (as a USB device) to a USB host (another BMC) that needs to communicate to these two downstream devices. Here's a diagram that depicts this:
graph TD
USB_Host["MC1 (USB Host)"]
Bridge["MC2 - MCTP Bridge (Linux)"]
Dev1["MCTP Device 1"]
Dev2["MCTP Device 2"]
USB_Host -->|"USB Device"| Bridge
Bridge -->|"USB Host"| Dev1
Bridge -->|"USB Host"| Dev2
An additional requirement is that MC1 should only be allowed to Tx/Rx certain MCTP message types, effectively, MC2 acts as a firewall for the MCTP traffic flowing through it. I have the following questions:
- Are there plans to upstream the USB MCTP gadget driver? IIRC that was used to test the host side driver before upstreaming?
- The MCTP spec itself does not talk about firewalling traffic, but given that we have the AF_MCTP socket for the netdev, would it be reasonable to implement a socket filter on it externally to achieve this firewall?
- For the bridge specific MCTP control commands, implement a bridge mode in the mctpd daemon (on the mctpgx net i/f) on MC2 that can respond to the mandatory set of control commands from MC1 -- most significantly providing it a routing table that includes entries for the two downstream devices.
Any thoughts on if this all makes sense and other possible approaches to tackle these requirements?
Regards,
Santosh