No Feedback of Packet Drop Caused by Traffic Control Layer Sent to Upper Layer

23 views
Skip to first unread message

Leo Jacob

unread,
Mar 11, 2019, 1:22:15 PM3/11/19
to ns-3-users
Hi all,

After read the codes of ns-3.29, I noticed that there are no feedback of packet drop caused by traffic control layer sent back to upper layer. I am curious whether it is intentional. The detailed description follows.

Let's consider the datapath of a packet sent through TCPSocket:

1. The packets comes to TcpSocketBase::Send, and is appended to m_txBuffer. The function then schedules an event to call TcpSocketBase::SendPendingData.
2. In TcpSocketBase::SendPendingData, the function will try to send as many packets as possible whenever the congestion window allows, via calling TcpSocketBase::SendDataPacket.
3. The TcpSocketBase::SendDataPacket will call m_tcp->SendPacket (TcpL4Protocol::SendPacket) to send a packet. However, the TcpL4Protocol::SendPacket doesn't have any return value to indicate whether the packet go through the lower stack succesfully. Actually, the packet can be dropped due to the full of internal queue located in TrafficControlLayer's QueueDisc.

The situation can happen when use default initial slow start threshold and TcpSocket::SndBufSize is set to be a quite large value compared to the max size of QueueDisc's internal queue (located in TrafficControlLayer).

Is the behavior intentional or a bug?

Regards,
Leo Jacob

Reply all
Reply to author
Forward
0 new messages