Opened 2 years ago

Last modified 21 months ago

#28090 new defect

Keepalive padding cell bypasses the cell scheduler

Reported by: dgoulet Owned by:
Priority: Medium Milestone: Tor: unspecified
Component: Core Tor/Tor Version:
Severity: Normal Keywords: tor-relay, tor-scheduler, tor-kist, 040-deferred-20190220
Cc: Actual Points:
Parent ID: Points:
Reviewer: Sponsor:


When sending a keepalive cell, we look if the connection outbuf is empty but with the KIST scheduler, that buffer is optimized to be emptied very quickly.

That cell should be able to ask the scheduler if it can queue cells in the outbuf. In an _ideal_ world, that cell would be handled by the scheduler but since it is not a circuit level "cell", we can not quickly fix that.

The fix for padding cell is to ask the scheduler, for a specific channel, if it can queue in the outbuf. The KIST scheduler would do two things: check for pending cells and if the kernel would allow it (tcp buffer size).

This made the #28089 issue more pathological.

Child Tickets

Change History (2)

comment:1 Changed 2 years ago by nickm

Milestone: Tor: 0.3.6.x-finalTor: 0.4.0.x-final

Tor 0.3.6.x has been renamed to 0.4.0.x.

comment:2 Changed 21 months ago by nickm

Keywords: 040-deferred-20190220 added
Milestone: Tor: 0.4.0.x-finalTor: unspecified

Deferring 51 tickets from 0.4.0.x-final. Tagging them with 040-deferred-20190220 for visibility. These are the tickets that did not get 040-must, 040-can, or tor-ci.

Note: See TracTickets for help on using tickets.