|
|
| 90 |
} |
90 |
} |
| 91 |
|
91 |
|
| 92 |
Ipv4L3Protocol::Ipv4L3Protocol() |
92 |
Ipv4L3Protocol::Ipv4L3Protocol() |
| 93 |
: m_identification (0) |
|
|
| 94 |
|
| 95 |
{ |
93 |
{ |
| 96 |
NS_LOG_FUNCTION (this); |
94 |
NS_LOG_FUNCTION (this); |
| 97 |
} |
95 |
} |
|
|
| 740 |
if (mayFragment == true) |
738 |
if (mayFragment == true) |
| 741 |
{ |
739 |
{ |
| 742 |
ipHeader.SetMayFragment (); |
740 |
ipHeader.SetMayFragment (); |
| 743 |
ipHeader.SetIdentification (m_identification); |
741 |
ipHeader.SetIdentification (m_identification[protocol]); |
| 744 |
m_identification++; |
742 |
m_identification[protocol]++; |
| 745 |
} |
743 |
} |
| 746 |
else |
744 |
else |
| 747 |
{ |
745 |
{ |
| 748 |
ipHeader.SetDontFragment (); |
746 |
ipHeader.SetDontFragment (); |
| 749 |
// TBD: set to zero here; will cause traces to change |
747 |
// RFC 6864 does not state anything about atomic datagrams |
| 750 |
ipHeader.SetIdentification (m_identification); |
748 |
// identification requirement: |
| 751 |
m_identification++; |
749 |
// >> Originating sources MAY set the IPv4 ID field of atomic datagrams |
|
|
750 |
// to any value. |
| 751 |
ipHeader.SetIdentification (m_identification[protocol]); |
| 752 |
m_identification[protocol]++; |
| 752 |
} |
753 |
} |
| 753 |
if (Node::ChecksumEnabled ()) |
754 |
if (Node::ChecksumEnabled ()) |
| 754 |
{ |
755 |
{ |