Commit 8cce3bb8 authored by Brickner_cp's avatar Brickner_cp

IPv6

Code Coverage 96.13%
parent 5b1f8c19
...@@ -112,6 +112,7 @@ namespace PcapDotNet.Core.Test ...@@ -112,6 +112,7 @@ namespace PcapDotNet.Core.Test
protocol == IpV4Protocol.SpectraLinkRadioProtocol || protocol == IpV4Protocol.SpectraLinkRadioProtocol ||
protocol == IpV4Protocol.MobileAdHocNetwork || protocol == IpV4Protocol.MobileAdHocNetwork ||
protocol == IpV4Protocol.DissimilarGatewayProtocol || protocol == IpV4Protocol.DissimilarGatewayProtocol ||
protocol == IpV4Protocol.SpriteRpc ||
protocol == IpV4Protocol.Shim6 || // TODO: Implement Shim6. protocol == IpV4Protocol.Shim6 || // TODO: Implement Shim6.
protocol == IpV4Protocol.RemoteVirtualDiskProtocol)) protocol == IpV4Protocol.RemoteVirtualDiskProtocol))
return false; return false;
......
...@@ -2239,5 +2239,139 @@ namespace PcapDotNet.Packets.Test ...@@ -2239,5 +2239,139 @@ namespace PcapDotNet.Packets.Test
Packet invalidPacket = new Packet(packet.Buffer, DateTime.Now, DataLinkKind.Ethernet); Packet invalidPacket = new Packet(packet.Buffer, DateTime.Now, DataLinkKind.Ethernet);
Assert.IsFalse(invalidPacket.IsValid); Assert.IsFalse(invalidPacket.IsValid);
} }
[TestMethod]
public void IpV6OptionHomeAddressDataTooShort()
{
Packet packet = PacketBuilder.Build(
DateTime.Now,
new EthernetLayer(),
new IpV6Layer
{
ExtensionHeaders =
new IpV6ExtensionHeaders(
new IpV6ExtensionHeaderDestinationOptions(
IpV4Protocol.Skip, new IpV6Options(new IpV6OptionHomeAddress(IpV6Address.Zero))))
});
Assert.IsTrue(packet.IsValid);
--packet.Buffer[14 + 40 + 2 + 1];
Packet invalidPacket = new Packet(packet.Buffer, DateTime.Now, DataLinkKind.Ethernet);
Assert.IsFalse(invalidPacket.IsValid);
}
[TestMethod]
public void IpV6OptionJumboPayloadDataTooShort()
{
Packet packet = PacketBuilder.Build(
DateTime.Now,
new EthernetLayer(),
new IpV6Layer
{
ExtensionHeaders =
new IpV6ExtensionHeaders(
new IpV6ExtensionHeaderDestinationOptions(
IpV4Protocol.Skip, new IpV6Options(new IpV6OptionJumboPayload(0))))
});
Assert.IsTrue(packet.IsValid);
--packet.Buffer[14 + 40 + 2 + 1];
Packet invalidPacket = new Packet(packet.Buffer, DateTime.Now, DataLinkKind.Ethernet);
Assert.IsFalse(invalidPacket.IsValid);
}
[TestMethod]
public void IpV6OptionQuickStartDataTooShort()
{
Packet packet = PacketBuilder.Build(
DateTime.Now,
new EthernetLayer(),
new IpV6Layer
{
ExtensionHeaders =
new IpV6ExtensionHeaders(
new IpV6ExtensionHeaderDestinationOptions(
IpV4Protocol.Skip, new IpV6Options(new IpV6OptionQuickStart(IpV4OptionQuickStartFunction.RateRequest, 0, 0, 0))))
});
Assert.IsTrue(packet.IsValid);
--packet.Buffer[14 + 40 + 2 + 1];
Packet invalidPacket = new Packet(packet.Buffer, DateTime.Now, DataLinkKind.Ethernet);
Assert.IsFalse(invalidPacket.IsValid);
}
[TestMethod]
public void IpV6OptionRouterAlertDataTooShort()
{
Packet packet = PacketBuilder.Build(
DateTime.Now,
new EthernetLayer(),
new IpV6Layer
{
ExtensionHeaders =
new IpV6ExtensionHeaders(
new IpV6ExtensionHeaderDestinationOptions(
IpV4Protocol.Skip, new IpV6Options(new IpV6OptionRouterAlert(IpV6RouterAlertType.Rsvp))))
});
Assert.IsTrue(packet.IsValid);
--packet.Buffer[14 + 40 + 2 + 1];
Packet invalidPacket = new Packet(packet.Buffer, DateTime.Now, DataLinkKind.Ethernet);
Assert.IsFalse(invalidPacket.IsValid);
}
[TestMethod]
public void IpV6OptionRoutingProtocolLowPowerAndLossyNetworksDataTooShort()
{
Packet packet = PacketBuilder.Build(
DateTime.Now,
new EthernetLayer(),
new IpV6Layer
{
ExtensionHeaders =
new IpV6ExtensionHeaders(
new IpV6ExtensionHeaderDestinationOptions(
IpV4Protocol.Skip,
new IpV6Options(new IpV6OptionRoutingProtocolLowPowerAndLossyNetworks(false, false, false, 0, 0, DataSegment.Empty))))
});
Assert.IsTrue(packet.IsValid);
--packet.Buffer[14 + 40 + 2 + 1];
Packet invalidPacket = new Packet(packet.Buffer, DateTime.Now, DataLinkKind.Ethernet);
Assert.IsFalse(invalidPacket.IsValid);
}
[TestMethod]
public void IpV6OptionTunnelEncapsulationLimitDataTooShort()
{
Packet packet = PacketBuilder.Build(
DateTime.Now,
new EthernetLayer(),
new IpV6Layer
{
ExtensionHeaders =
new IpV6ExtensionHeaders(
new IpV6ExtensionHeaderDestinationOptions(
IpV4Protocol.Skip, new IpV6Options(new IpV6OptionTunnelEncapsulationLimit(0))))
});
Assert.IsTrue(packet.IsValid);
--packet.Buffer[14 + 40 + 2 + 1];
Packet invalidPacket = new Packet(packet.Buffer, DateTime.Now, DataLinkKind.Ethernet);
Assert.IsFalse(invalidPacket.IsValid);
}
[TestMethod]
public void IpV6OptionSmfDpdSequenceHashAssistValueDataTooShort()
{
Packet packet = PacketBuilder.Build(
DateTime.Now,
new EthernetLayer(),
new IpV6Layer
{
ExtensionHeaders =
new IpV6ExtensionHeaders(
new IpV6ExtensionHeaderDestinationOptions(
IpV4Protocol.Skip, new IpV6Options(new IpV6OptionSmfDpdSequenceHashAssistValue(new DataSegment(new byte[1])))))
});
Assert.IsTrue(packet.IsValid);
--packet.Buffer[14 + 40 + 2 + 1];
Packet invalidPacket = new Packet(packet.Buffer, DateTime.Now, DataLinkKind.Ethernet);
Assert.IsFalse(invalidPacket.IsValid);
}
} }
} }
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment