Hello Jonathan, Thanks for the help. The information you provided was useful. We'll let you know if we have any questions. Thanks and Regards, Shefali Gupta Jendaipou Palmei On Wed, Dec 12, 2018 at 5:33 PM Jonathan Morton wrote: > > On 12 Dec, 2018, at 1:42 pm, Shefali Gupta > wrote: > > > > We're trying to implement Ack_Filter in ns-3, while working on your > suggestions in parallel for validating the implementation of COBALT in ns-3. > > > > As far as we understand, we need TCP header information related to SACK > Blocks, ECN, Source Port, SYN flag, ACK Flag, etc for Ack_Filter to work. > > > > Since Cake will be deployed at network devices, we're not able to figure > out how will be the (higher layer) information accessible. > > > > Are we missing out on something that is very obvious? > > The ack-filter is essentially a Layer-4 feature, which does require > unpacking the packet a bit further than usual. In principle it's no > different from the steps needed to unpack a Layer-2 packet to read the > Layer-3 IPv4 or IPv6 headers for routing and flow hashing, or applying an > ECN mark. > > First check whether the next-level protocol is one that's relevant and > understood, then look at the appropriate offsets to find the header data > required. That's basically what Cake does, via some basic helper macros > which are provided by Linux. > > Probably ns-3 has some helper API to do that for you; if not to extract > the fields and flags of the TCP header, then at least to locate it. You > just need to find the right API. > > - Jonathan Morton > >