[Cake] Query Regarding Ack_Filter

Jonathan Morton chromatix99 at gmail.com
Wed Dec 12 07:03:35 EST 2018


> On 12 Dec, 2018, at 1:42 pm, Shefali Gupta <shefaligups11 at gmail.com> 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



More information about the Cake mailing list