|
91 |
} |
91 |
} |
92 |
|
92 |
|
93 |
Ipv4L3Protocol::Ipv4L3Protocol() |
93 |
Ipv4L3Protocol::Ipv4L3Protocol() |
94 |
: m_identification (0) |
|
|
95 |
|
96 |
{ |
94 |
{ |
97 |
NS_LOG_FUNCTION (this); |
95 |
NS_LOG_FUNCTION (this); |
98 |
} |
96 |
} |
|
712 |
if (mayFragment == true) |
710 |
if (mayFragment == true) |
713 |
{ |
711 |
{ |
714 |
ipHeader.SetMayFragment (); |
712 |
ipHeader.SetMayFragment (); |
715 |
ipHeader.SetIdentification (m_identification); |
713 |
ipHeader.SetIdentification (m_identification[protocol]); |
716 |
m_identification++; |
714 |
m_identification[protocol]++; |
717 |
} |
715 |
} |
718 |
else |
716 |
else |
719 |
{ |
717 |
{ |
720 |
ipHeader.SetDontFragment (); |
718 |
ipHeader.SetDontFragment (); |
721 |
// TBD: set to zero here; will cause traces to change |
719 |
// RFC 6864 does not state anything about atomic datagrams |
722 |
ipHeader.SetIdentification (m_identification); |
720 |
// identification requirement: |
723 |
m_identification++; |
721 |
// >> Originating sources MAY set the IPv4 ID field of atomic datagrams |
|
|
722 |
// to any value. |
723 |
ipHeader.SetIdentification (m_identification[protocol]); |
724 |
m_identification[protocol]++; |
724 |
} |
725 |
} |
725 |
if (Node::ChecksumEnabled ()) |
726 |
if (Node::ChecksumEnabled ()) |
726 |
{ |
727 |
{ |