Feature/fabrics/caps#33
Conversation
Co-authored-by: Jonas Ohland <jonas.ohland@gmail.com> Signed-off-by: Jonas Ohland (Riedel) <jonas.ohland@riedel.net>
- Replace bare throw with Exception::invalidState in Target/Initiator - Restore commented-out error status check in try_run - Remove duplicate copyStringProperty call for link_type - Remove spurious blank line in Address::fromBase64 - Remove unused FabricSourceInterfaces files and getSources declaration - Remove unused ProviderConfig.hpp includes, add missing include in FabricInterfaceProbe.hpp - Fill in empty doxygen stubs, add missing [[nodiscard]] attributes - Rename capabilitiesDummyCheck to validateCapabilities - Report hostname instead of opaque fi_shm address for SHM interfaces - Propagate service field in SHM interface descriptions - Handle unparseable query addresses gracefully in probeInterfaces Co-authored-by: Jonas Ohland <jonas.ohland@gmail.com> Signed-off-by: Jonas Ohland (Riedel) <jonas.ohland@riedel.net>
Separate how capability flags behave on the two code paths: - Query (mxlFabricsGetInterfaces): caps are output-only, not used for filtering. Each returned interface reports its detected capabilities. - Setup (target/initiator): caps express requirements. At least one transfer capability must be set; defaults to REMOTE_WRITE with a warning if missing. Move capability normalization from ProviderConfig into selectSourceInterface so it only applies on the setup path. Derive libfabric caps and requiredCaps from MXL capability flags via helpers, supporting both REMOTE_WRITE and SEND_RECEIVE. Store the resolved ProviderCapabilities in ProviderConfig for later use. Co-authored-by: Jonas Ohland <jonas.ohland@gmail.com> Signed-off-by: Jonas Ohland (Riedel) <jonas.ohland@riedel.net>
…selection Co-authored-by: Jonas Ohland <jonas.ohland@gmail.com> Signed-off-by: Jonas Ohland <jonas.ohland@riedel.net>
…InfoList Co-authored-by: Jonas Ohland <jonas.ohland@gmail.com> Signed-off-by: Jonas Ohland <jonas.ohland@riedel.net>
Co-Authored-By: Jonas Ohland <jonas.ohland@gmail.com> Signed-off-by: Jonas Ohland <jonas.ohland@riedel.net>
Co-authored-by: Jonas Ohland <jonas.ohland@gmail.com> Signed-off-by: Jonas Ohland (Riedel) <jonas.ohland@riedel.net>
Co-authored-by: Jonas Ohland <jonas.ohland@gmail.com> Signed-off-by: Jonas Ohland (Riedel) <jonas.ohland@riedel.net>
Test Results0 tests 0 ✅ 0s ⏱️ Results for commit 6763fa6. |
Co-authored-by: Jonas Ohland <jonas.ohland@gmail.com> Signed-off-by: Jonas Ohland (Riedel) <jonas.ohland@riedel.net>
Co-authored-by: Jonas Ohland <jonas.ohland@gmai.com> Signed-off-by: Jonas Ohland (Riedel) <jonas.ohland@riedel.net>
mlefebvre1
left a comment
There was a problem hiding this comment.
I'm not done reviewing yet, but here's what I have so far..
Co-authored-by: Jonas Ohland <jonas.ohland@gmail.com> Signed-off-by: Jonas Ohland (Riedel) <jonas.ohland@riedel.net>
Co-authored-by: Jonas Ohland <jonas.ohland@gmail.com> Signed-off-by: Jonas Ohland (Riedel) <jonas.ohland@riedel.net>
Co-authored-by: Jonas Ohland <jonas.ohland@gmail.com> Signed-off-by: Jonas Ohland (Riedel) <jonas.ohland@riedel.net>
Co-authored-by: Jonas Ohland <jonas.ohland@gmail.com> Signed-off-by: Jonas Ohland (Riedel) <jonas.ohland@riedel.net>
Co-authored-by: Jonas Ohland <jonas.ohland@gmail.com> Signed-off-by: Jonas Ohland (Riedel) <jonas.ohland@riedel.net>
Co-authored-by: Jonas Ohland <jonas.ohland@gmail.com> Signed-off-by: Jonas Ohland (Riedel) <jonas.ohland@riedel.net>
be8e7a1 to
0bb0699
Compare
Co-authored-by: Jonas Ohland <jonas.ohland@gmail.com> Signed-off-by: Jonas Ohland (Riedel) <jonas.ohland@riedel.net>
| .memoryRegistrationModes = FI_MR_VIRT_ADDR | FI_MR_LOCAL | FI_MR_ALLOCATED | FI_MR_PROV_KEY, | ||
| .endpointType = FI_EP_MSG, | ||
| .caps = libfabricCaps(capabilities, isTarget), | ||
| .supportedAddressFormats = {FI_SOCKADDR_IN, FI_SOCKADDR_IN6}, |
There was a problem hiding this comment.
I need to test if that actually works and how devices with multiple ports present through libfabric. Right now all providers let you choose the port by specifying the node address. I suspect with raw infiniband addresses, the node address is shared between ports.
I would have to find out how that maps to the node/service scheme.
There was a problem hiding this comment.
Yeah, the problem is that the host (or node) portion of FI_SOCKADDR_IB and FI_SOCKADDR_IN6 is the same for interfaces with and auto-assigned ipv6 address.
Co-authored-by: Jonas Ohland <jonas.ohland@gmail.com> Signed-off-by: Jonas Ohland (Riedel) <jonas.ohland@riedel.net>
Co-authored-by: Jonas Ohland <jonas.ohland@gmail.com> Signed-off-by: Jonas Ohland (Riedel) <jonas.ohland@riedel.net>
Co-authored-by: Jonas Ohland <jonas.ohland@gmail.com> Signed-off-by: Jonas Ohland (Riedel) <jonas.ohland@riedel.net>
| .supportedAddressFormats = {FI_SOCKADDR_IN, FI_SOCKADDR_IN6}, | ||
| .supportedProtocols = {FI_PROTO_SOCK_TCP}, | ||
| .requiredCaps = libfabricRequiredCaps(capabilities) | FI_MSG, | ||
| .filteredCaps = FI_TAGGED, |
There was a problem hiding this comment.
Nitpick, but I don't think it's possible to have FI_TAGGED support for FI_EP_MSG`
No description provided.