Hi all,

I am thinking about adding better support for Physical Connectivity between Boards/Chassises in bmcweb. Since Inventory.Board is treated as a chassis, I want to have a way to better connect the different boards with the existing ContainedBy/Contains.

I was thinking of using xyz.openbmc_project.Association to do it. Since it is a list with fixed order, we can use the first chassis it finds for ContainedBy and the rest for Contains. For the root Chassis, it will have itself as the first Chassis and then just not include it.

Is this something we can work with? or do we need something more complicated to support chassis relationship?

----

Another question that is kind of related.
I am also thinking about using Physical Location for each Chassis.
It is already using `xyz.openbmc_project.Inventory.Decorator.LocationCode` as the ServiceLabel https://github.com/openbmc/bmcweb/blob/90e97e1d26b78d899a543831a8051dacbbdde71a/redfish-core/lib/chassis.hpp#L295-L331


With that in mind, I am wondering how LocationCode is configured with EntityManager? Since the number of FRUs is dynamic, there is no way to tell which location the FRU is connected to without a mapping. I am wondering how that can be done with Entity Manager.

I was thinking of doing something like getEntityName in IPMI OEM handler which utilizes a json file for the mapping from entity instance to location. This is a simple way of doing it within EntityManager, but I am not sure if we want to do it this way.

Maybe something related?
https://gerrit.openbmc-project.xyz/c/openbmc/entity-manager/+/42971

Best,

Willy Tu