Bug 2515

Summary: Byte tags cause a crash when calling Packet->AddAtEnd() for large packets.
Product: ns-3 Reporter: l.salameh
Component: networkAssignee: ns-bugs <ns-bugs>
Status: RESOLVED DUPLICATE    
Severity: critical CC: l.salameh
Priority: P5    
Version: ns-3-dev   
Hardware: All   
OS: All   
Attachments: Patch for byte tag list
Byte tag list fix.

Description l.salameh 2016-10-04 09:44:27 UTC
I encountered this bug when running a TCP experiment where I had added Byte Tags to my packets. On recovering from a large slew of drops, a large amount of packets are available to be read by the Application layer, and TcpRxBuffer aggregates them into one large packet. But Packet->AddAtEnd() throws an assertion failure due to the byte tags.


The problem is the 16 bit used size in ByteTagList, which wraps around for large packets and causes an assertion failure in TagBuffer::ReadU8.

See patch for fix (namely changing uint16_t to uint32_t).
Comment 1 l.salameh 2016-10-04 09:46:01 UTC
Created attachment 2604 [details]
Patch for byte tag list
Comment 2 l.salameh 2016-10-04 09:47:16 UTC
Created attachment 2605 [details]
Byte tag list fix.
Comment 3 l.salameh 2016-10-04 10:55:34 UTC
Whoops I guess this is a duplicate of Bug #2069 which has been fixed in ns-3-dev already.

*** This bug has been marked as a duplicate of bug 2069 ***