Security issue notifications
Problem:
ApplicationSpace::transmission_interest() does not reflect the full set of components that Normal mode actually transmits. This means the has_transmission check in transmission.rs
can return false for the application space even when there are pending frames, leading to missed coalescing opportunities.
Application space:
|
impl<Config: endpoint::Config> transmission::interest::Provider for ApplicationSpace<Config> { |
|
#[inline] |
|
fn transmission_interest<Q: transmission::interest::Query>( |
|
&self, |
|
query: &mut Q, |
|
) -> transmission::interest::Result { |
|
self.ack_manager.transmission_interest(query)?; |
|
self.ping.transmission_interest(query)?; |
|
self.crypto_stream.transmission_interest(query)?; |
|
self.recovery_manager.transmission_interest(query)?; |
|
self.stream_manager.transmission_interest(query)?; |
|
self.datagram_manager.transmission_interest(query)?; |
|
self.dc_manager.transmission_interest(query)?; |
|
Ok(()) |
|
} |
|
} |
Normal sending mode:
|
impl<Config: endpoint::Config> transmission::interest::Provider for Normal<'_, Config> { |
|
fn transmission_interest<Q: transmission::interest::Query>( |
|
&self, |
|
query: &mut Q, |
|
) -> transmission::interest::Result { |
|
self.ack_manager.transmission_interest(query)?; |
|
self.handshake_status.transmission_interest(query)?; |
|
self.stream_manager.transmission_interest(query)?; |
|
self.datagram_manager.transmission_interest(query)?; |
|
self.local_id_registry.transmission_interest(query)?; |
|
self.path_manager.transmission_interest(query)?; |
|
self.crypto_stream.transmission_interest(query)?; |
|
self.recovery_manager.transmission_interest(query)?; |
|
self.path_manager |
|
.active_path() |
|
.transmission_interest(query)?; |
|
self.ping.transmission_interest(query)?; |
|
self.dc_manager.transmission_interest(query)?; |
|
Ok(()) |
|
} |
|
} |
We need to think about a way to refactor the logic for detecting transmission interest, so that we know the transmission interest at the space level.
Need By Date:
Solution:
Refactor the sending logic.
Requirements / Acceptance Criteria:
The application space transmission check should check for every components.
Out of scope:
Security issue notifications
Problem:
ApplicationSpace::transmission_interest()does not reflect the full set of components thatNormalmode actually transmits. This means the has_transmission check in transmission.rscan return false for the application space even when there are pending frames, leading to missed coalescing opportunities.
Application space:
s2n-quic/quic/s2n-quic-transport/src/space/application.rs
Lines 688 to 703 in f38edab
Normal sending mode:
s2n-quic/quic/s2n-quic-transport/src/transmission/application.rs
Lines 195 to 215 in f38edab
We need to think about a way to refactor the logic for detecting transmission interest, so that we know the transmission interest at the space level.
Need By Date:
Solution:
Refactor the sending logic.
Requirements / Acceptance Criteria:
The application space transmission check should check for every components.
Out of scope: