|
|
| 347 |
uint32_t identification = fragmentHeader.GetIdentification (); |
347 |
uint32_t identification = fragmentHeader.GetIdentification (); |
| 348 |
Ipv6Address src = ipv6Header.GetSourceAddress (); |
348 |
Ipv6Address src = ipv6Header.GetSourceAddress (); |
| 349 |
|
349 |
|
| 350 |
std::pair<Ipv6Address, uint32_t> fragmentsId = std::make_pair<Ipv6Address, uint32_t> (src, identification); |
350 |
std::pair<Ipv6Address, uint32_t> fragmentsId = std::pair<Ipv6Address, uint32_t> (src, identification); |
| 351 |
Ptr<Fragments> fragments; |
351 |
Ptr<Fragments> fragments; |
| 352 |
|
352 |
|
| 353 |
Ipv6Header ipHeader = ipv6Header; |
353 |
Ipv6Header ipHeader = ipv6Header; |
|
|
| 441 |
hopbyhopHeader->SetNextHeader (Ipv6Header::IPV6_EXT_FRAGMENTATION); |
441 |
hopbyhopHeader->SetNextHeader (Ipv6Header::IPV6_EXT_FRAGMENTATION); |
| 442 |
} |
442 |
} |
| 443 |
|
443 |
|
| 444 |
unfragmentablePart.push_back (std::make_pair<Ipv6ExtensionHeader *, uint8_t> (hopbyhopHeader, Ipv6Header::IPV6_EXT_HOP_BY_HOP)); |
444 |
unfragmentablePart.push_back (std::pair<Ipv6ExtensionHeader *, uint8_t> (hopbyhopHeader, Ipv6Header::IPV6_EXT_HOP_BY_HOP)); |
| 445 |
unfragmentablePartSize += extensionHeaderLength; |
445 |
unfragmentablePartSize += extensionHeaderLength; |
| 446 |
} |
446 |
} |
| 447 |
else if (nextHeader == Ipv6Header::IPV6_EXT_ROUTING) |
447 |
else if (nextHeader == Ipv6Header::IPV6_EXT_ROUTING) |
|
|
| 465 |
routingHeader->SetNextHeader (Ipv6Header::IPV6_EXT_FRAGMENTATION); |
465 |
routingHeader->SetNextHeader (Ipv6Header::IPV6_EXT_FRAGMENTATION); |
| 466 |
} |
466 |
} |
| 467 |
|
467 |
|
| 468 |
unfragmentablePart.push_back (std::make_pair<Ipv6ExtensionHeader *, uint8_t> (routingHeader, Ipv6Header::IPV6_EXT_ROUTING)); |
468 |
unfragmentablePart.push_back (std::pair<Ipv6ExtensionHeader *, uint8_t> (routingHeader, Ipv6Header::IPV6_EXT_ROUTING)); |
| 469 |
unfragmentablePartSize += extensionHeaderLength; |
469 |
unfragmentablePartSize += extensionHeaderLength; |
| 470 |
} |
470 |
} |
| 471 |
else if (nextHeader == Ipv6Header::IPV6_EXT_DESTINATION) |
471 |
else if (nextHeader == Ipv6Header::IPV6_EXT_DESTINATION) |
|
|
| 485 |
destinationHeader->SetNextHeader (Ipv6Header::IPV6_EXT_FRAGMENTATION); |
485 |
destinationHeader->SetNextHeader (Ipv6Header::IPV6_EXT_FRAGMENTATION); |
| 486 |
} |
486 |
} |
| 487 |
|
487 |
|
| 488 |
unfragmentablePart.push_back (std::make_pair<Ipv6ExtensionHeader *, uint8_t> (destinationHeader, Ipv6Header::IPV6_EXT_DESTINATION)); |
488 |
unfragmentablePart.push_back (std::pair<Ipv6ExtensionHeader *, uint8_t> (destinationHeader, Ipv6Header::IPV6_EXT_DESTINATION)); |
| 489 |
unfragmentablePartSize += extensionHeaderLength; |
489 |
unfragmentablePartSize += extensionHeaderLength; |
| 490 |
} |
490 |
} |
| 491 |
} |
491 |
} |
|
|
| 611 |
m_moreFragment = moreFragment; |
611 |
m_moreFragment = moreFragment; |
| 612 |
} |
612 |
} |
| 613 |
|
613 |
|
| 614 |
m_packetFragments.insert (it, std::make_pair<Ptr<Packet>, uint16_t> (fragment, fragmentOffset)); |
614 |
m_packetFragments.insert (it, std::pair<Ptr<Packet>, uint16_t> (fragment, fragmentOffset)); |
| 615 |
} |
615 |
} |
| 616 |
|
616 |
|
| 617 |
void Ipv6ExtensionFragment::Fragments::SetUnfragmentablePart (Ptr<Packet> unfragmentablePart) |
617 |
void Ipv6ExtensionFragment::Fragments::SetUnfragmentablePart (Ptr<Packet> unfragmentablePart) |