|
|
| 958 |
nextHeader = buf[0]; |
958 |
nextHeader = buf[0]; |
| 959 |
nextHeaderPosition = buf[1]; |
959 |
nextHeaderPosition = buf[1]; |
| 960 |
} |
960 |
} |
|
|
961 |
NS_ASSERT_MSG(nextHeader != Ipv6Header::IPV6_EXT_HOP_BY_HOP, "Double Ipv6Header::IPV6_EXT_HOP_BY_HOP in packet, aborting"); |
| 962 |
NS_ASSERT_MSG(nextHeaderPosition != 0, "Zero-size IPv6 Option Header, aborting"); |
| 961 |
|
963 |
|
| 962 |
/* process all the extensions found and the layer 4 protocol */ |
964 |
/* process all the extensions found and the layer 4 protocol */ |
| 963 |
do { |
965 |
do { |
|
|
| 966 |
|
968 |
|
| 967 |
if (ipv6Extension) |
969 |
if (ipv6Extension) |
| 968 |
{ |
970 |
{ |
| 969 |
nextHeaderPosition += ipv6Extension->Process (p, nextHeaderPosition, ip, dst, &nextHeader, isDropped); |
971 |
uint8_t nextHeaderStep = 0; |
|
|
972 |
nextHeaderStep = ipv6Extension->Process (p, nextHeaderPosition, ip, dst, &nextHeader, isDropped); |
| 973 |
nextHeaderPosition += nextHeaderStep; |
| 974 |
|
| 975 |
NS_ASSERT_MSG(nextHeaderStep != 0, "Zero-size IPv6 Option Header, aborting"); |
| 970 |
|
976 |
|
| 971 |
if (isDropped) |
977 |
if (isDropped) |
| 972 |
{ |
978 |
{ |