in simulation/src/sixlowpan/model/sixlowpan-header.cc [867:975]
uint32_t SixLowPanIphc::GetSerializedSize () const
{
uint32_t serializedSize = 2;
if ( GetCid () )
{
serializedSize++;
}
switch ( GetTf () )
{
case TF_FULL:
serializedSize += 4;
break;
case TF_DSCP_ELIDED:
serializedSize += 3;
break;
case TF_FL_ELIDED:
serializedSize++;
break;
default:
break;
}
if ( GetNh () == false )
{
serializedSize++;
}
if ( GetHlim () == HLIM_INLINE)
{
serializedSize++;
}
switch (GetSam () )
{
case HC_INLINE:
if ( GetSac () == false )
{
serializedSize += 16;
}
break;
case HC_COMPR_64:
serializedSize += 8;
break;
case HC_COMPR_16:
serializedSize += 2;
break;
case HC_COMPR_0:
default:
break;
}
if ( GetM () == false)
{
switch (GetDam () )
{
case HC_INLINE:
if ( GetDac () == false )
{
serializedSize += 16;
}
break;
case HC_COMPR_64:
serializedSize += 8;
break;
case HC_COMPR_16:
serializedSize += 2;
break;
case HC_COMPR_0:
default:
break;
}
}
else
{
switch (GetDam () )
{
case HC_INLINE:
if ( GetDac () == false )
{
serializedSize += 16;
}
else
{
serializedSize += 6;
}
break;
case HC_COMPR_64:
if ( GetDac () == false )
{
serializedSize += 6;
}
break;
case HC_COMPR_16:
if ( GetDac () == false )
{
serializedSize += 4;
}
break;
case HC_COMPR_0:
default:
if ( GetDac () == false )
{
serializedSize++;
}
break;
}
}
return serializedSize;
}