Skip to content

prevent silently dropping Packet in TrafficControlLayer::Send

Sagar Patel requested to merge msagarpatel/ns-3-dev:fixTclSend into master

Without this fix, packets are silently dropped by TrafficControlLayer::Send when (1) TrafficControlLayer is disabled on this Node, and (2) the relevant NetDevice queue is full. Packets will not be silently dropped anymore since the NetDevice should fire a TraceSource if it is unable to enqueue the Packet.

Background

I encountered this problem while running a simulation with TrafficControlLayer disabled. I noticed that TCP was detecting packet loss, but none of the TraceSources I hooked into fired to indicate that a packet was being dropped. It took a while to find, but Packets are silently dropped in TrafficControlLayer::Send (ie. no TraceSource is fired) when the target NetDevice queue is full.

The proposed fix is an improvement because TCL will send the Packet to the NetDevice regardless of whether the the NetDevice's queue is full. If the NetDevice's queue is full, then the NetDevice should fire a TraceSource to indicate that the Packet has been dropped. I believe this is the desired behavior if TCL is disabled.

Edited by Sagar Patel

Merge request reports

Loading