1## Overview 2 3MCTP D-Bus interfaces are implemented by the MCTP control process daemon 4alias mcptd and aids in the discovery of MCTP enabled devices by application 5layer protocols (like PLDM, SPDM) which are implemented in the userspace. 6Application layer protocols will rely on the discovery of 7`xyz.openbmc_project.MCTP.Endpoint` D-Bus interface to discover MCTP endpoints. 8The supported MCTP message types in an endpoint are exposed by the 9`SupportedMessageTypes` property in the `xyz.openbmc_project.MCTP.Endpoint` 10interface. For example, if the endpoint supports PLDM then pldm daemon will 11complete the PLDM discovery flow with the MCTP endpoint. Also mctpd discovers 12the removal of the MCTP endpoints and removes the D-Bus objects corresponding to 13those endpoints. MCTP bridges are not modelled in the D-Bus. 14 15### D-Bus object modelling 16 17The root D-Bus object path for the mctpd is `/xyz/openbmc_project/mctp`. There 18will be a D-Bus object for every endpoint that is discovered by the mctpd. 19The lifetime of the D-Bus object is the lifetime of the connected MCTP device. 20 21The D-Bus object path for MCTP endpoints are named 22`xyz/openbmc_project/mctp/<NetworkId>/<EID>` where NetworkId is the locally 23defined [network identfier][1] the endpoint is part of and EID is the endpoint 24ID. This aids in the enumeration of the endpoints belonging to an MCTP network. 25The D-Bus object implements the `xyz.openbmc_project.MCTP.Endpoint` interface. 26The object may also optionally implement `xyz.openbmc_project.Common.UUID` 27interface to address the requirement for devices with multiple endpoints and for 28hot-plug devices. 29 30An MCTP Network may provide an optional MCTP Network ID that can be used to 31differentiate different MCTP Networks when more than one MCTP Network can be 32accessed by an entity . The Network ID is also used when an entity has more than 33one point of access to the MCTP Network. The MCTP Network ID enables the entity 34to tell whether the access points provide access to the same MCTP Network or to 35different MCTP Networks. If the implementation supports the optional MCTP 36network ID then it is exposed on the D-Bus. The D-Bus object path is 37`xyz/openbmc_project/mctp/<NetworkId>` where NetworkId is the locally 38defined [network identfier][1] and implements the 39 `xyz.openbmc_project.Common.UUID` interface and the UUID property is the MCTP 40 network ID. 41 42[1]: https://github.com/openbmc/docs/blob/master/designs/mctp/mctp-kernel.md#addressing 43 44