Skip to content

mctpd: add autonomous periodic discovery for point-to-point links - #177

Open
chajasmine-bit wants to merge 1 commit into
CodeConstruct:mainfrom
chajasmine-bit:point-to-point-discovery
Open

mctpd: add autonomous periodic discovery for point-to-point links#177
chajasmine-bit wants to merge 1 commit into
CodeConstruct:mainfrom
chajasmine-bit:point-to-point-discovery

Conversation

@chajasmine-bit

Copy link
Copy Markdown

Point-to-point physical links (e.g., Serial, USB, KCS) do not provide presence interrupts when an endpoint attaches or reboots, requiring manual intervention to trigger endpoint discovery.

Add autonomous periodic probing for point-to-point interfaces in Bus Owner mode. When an interface is brought UP, mctpd periodically sends Get Endpoint ID requests until the endpoint responds, assigns an EID, and publishes the endpoint on D-Bus. Probing automatically pauses when the link goes DOWN and resumes if the peer is removed.

Also add configuration options in mctpd.conf for auto-discovery, probe intervals, and static EID reservations, along with corresponding unit tests.

@jk-ozlabs

Copy link
Copy Markdown
Member

This is a duplicate of #165, right? My review comments on the last upload there that still stand.

@chajasmine-bit

Copy link
Copy Markdown
Author

yes, I accidentally upload changes for point-to-point on #165. I would like use #177 to implement a periodic Get Endpoint ID command for point-to-point case and leave #165 first for other cases implementation.
Thanks for reviewing the changes from #165 and I will check them and update the code here.

@chajasmine-bit
chajasmine-bit force-pushed the point-to-point-discovery branch from 3f0bd7b to 4549bf8 Compare September 11, 2026 16:48
Implement autonomous discovery on addressless point-to-point links
(Serial and USB), addressing Point 3 of issue CodeConstruct#174. Because these
transports have no physical addressing requirements, discovery can
proceed without an external trigger when operating as Bus Owner.

Following the bridge endpoint polling model, periodic probing sends a
physical Get Endpoint ID query (retries disabled) via an sd_event timer.
On response, the daemon assigns an EID and completes peer setup; on
timeout or error, the timer is rescheduled. Active probes and peer routes
are torn down on link DOWN, and probing re-arms on recovery failure if the
link remains UP.

Add 'auto_discovery' (disabled by default) and 'probe_interval_ms'
under [bus-owner], with per-interface overrides in [[interface]].
Aligned with bridged endpoints, collision prevention with concurrent
external setup relies on application behavior.

Assisted-by: Gemini-Next
Signed-off-by: Jasmine Cha <chajasmine@google.com>
@chajasmine-bit
chajasmine-bit force-pushed the point-to-point-discovery branch from 4549bf8 to 6e26d3b Compare September 11, 2026 16:55
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants