Files
Mark D. Roth baca92a92d [transport] add new watcher API to be used by subchannel (#40952)
This adds a new transport state watcher API.  The normal connectivity state watcher API is not what we really want in the transport, since we don't expect to see any state-change event except for disconnection, and when that happens, we want to see a lot more info about the disconnection than is available via a connectivity state watch (see [gRFC A94](https://github.com/grpc/proposal/blob/master/A94-subchannel-otel-metrics.md)).  In addition, we also need to get reports of the peer's MAX_CONCURRENT_STREAMS setting as part of implementing connection scaling (see WIP [gRFC A105](https://github.com/grpc/proposal/pull/516)).

This new API goes directly from the subchannel to the transport, bypassing the filter stack.  This is consistent with our desire to remove the transport op API in the filter stack as part the promise migration.

Eventually, this API should be used on the server side too, but that's a project for another day.

As part of this, we also change the way that keepalive data is sent from the subchannel to the channel.  This will also be needed as part of A105, where we need to propagate keepalive info to the channel even when the subchannel's connectivity state does not change.

Closes #40952

COPYBARA_INTEGRATE_REVIEW=https://github.com/grpc/grpc/pull/40952 from markdroth:transport_state_watcher 2dca54560718ffe82e542e58f4de18164087f891
PiperOrigin-RevId: 832072178
2025-11-13 17:27:31 -08:00
..