network_adapter: Support concurrent parallel fetch and PLDM/NSM port telemetry merging
Implement multi-provider D-Bus port telemetry resolution with parallel fetching
in handleNetworkPortGetDBus:
- Support port-level and chassis-level LocationCode decorators to populate
ServiceLabel, LocationType, PartLocationContext, and Google OEM Devpath via
chassis contained_by hierarchy without platform-specific string heuristics
- De-duplicate collection members across multiple D-Bus paths in both
handleChassisNetworkAdapterCollectionGetDBus and buildNetworkPortCollectionDBus
- Support discovering both standard flat PLDM paths
(/<chassisId>/<networkAdapterId>/<portId>) and hierarchical NSM paths
(/<chassisId>/NetworkAdapters/<networkAdapterId>/Ports/<portId>)
- Fetch port properties from PLDM and NSM concurrently in parallel via
managedStore to eliminate sequential round-trip latency
- Prioritize PLDM as the primary/authoritative provider for base link telemetry
(LinkState, LinkStatus, CurrentSpeedGbps)
- Allow NSM to conditionally populate unpopulated link properties if not
already provided by PLDM
- Return HTTP 500 (internalError) if any required properties are missing or
empty from both providers
- Populate port Location (PartLocation.ServiceLabel, LocationType,
PartLocationContext, and Oem.Google.Devpath) using LocationCode decorator and
chassis hierarchy resolution
- Populate Status (State: Enabled, Health: OK)
- Add unit tests covering parallel merged retrieval with PLDM priority,
location/devpath decoration, PLDM-only fallback, and missing property HTTP 500
error handling
Google-Bug-Id:557005946
PiperOrigin-RevId: 989883433
Change-Id: I9b873acc58a3ac44f62cccc377d8249853c0b43d
1 file changed