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