[Ns-developers] release update [feedback needed]

Mathieu Lacage mathieu.lacage at sophia.inria.fr
Wed Jun 10 08:19:27 PDT 2009


On Wed, 2009-06-10 at 17:04 +0200, Tommaso Pecorella wrote:

> New "bug" (or it's a feature, depending on the fact that it's a  
> documented behaviour).
> 
> With the new Tags, i.e., he ByteTags and PacketTags, an odd behaviour  
> can be seen. BTW, I really like the differentiation between the two  
> tag types.
> 
> ByteTags: all works as expected. Better, I haven't found any odd  
> behaviour.
> 
> PacketTags: when you aggregate/deaggregate a bunch of packets, the  
> respective PacketTags are lost. On the opposite ByteTags are preserved.
> The aggregation/deaggregation happens for example using 802.11 AMSDU.  
> I'm not totally keen about considering this the intended behaviour,  
> but again it's a matter of knowledge.

It's the intended behavior. If you think about it, there is simply no
other possible behavior. These are _packet_ tags and there can be only
one tag of a given type within a packet so, if you have two packets and
you aggregate them with AddAtEnd, you cannot merge their packet tags
because, bad things would happen if both had the same types of packet
tags with different values in them: which one do you pick ? Right now,
we keep only the tags from the first packet on the basis that the other
behaviors are very marginally 'better' so, we pick the easiest solution
to implement. 

> Seriously, I'd consider this as a bug. I couldn't yet verify if the  
> tags are lost during the aggregation or the deaggregation, but it's a  
> matter of finding some time to hack a simulation code I have.
> 
> Anyway, this is the actual behaviour. Right now it's not affecting  
> anything but the seldom used PacketTags. On the other hand it severely  
> limits the usefulness of the PacketTag itself.

Packet tags should not be used when packets are expected to be
assembled/reassembled (fragmentation works fine).

> I'll send a full bug report as soon as I'll have some time to track  
> down the exact point where the tags are wiped out, even tho it might  
> be needed to fix both the Packet::AddAtEnd (used in the aggregation  
> process) and the MsduAggregator::Deaggregate.

I can save you time: AddAtEnd is where the tags are "dropped" but it's
unlikely that the algorithm implemented in there to "merge" tags from
two packets will change unless you have a clear usecase with an
implementable solution which provides a major improvement in terms of
user-visible behavior.

Mathieu



More information about the Ns-developers mailing list