Commit c103fa03 authored by Brickner_cp's avatar Brickner_cp

VLanTaggedFrame

parent c843d9da
......@@ -34,7 +34,7 @@ namespace PcapDotNet.Core.Test
get { return RetryNumber != -1; }
}
private const int RetryNumber = -1;
private const int RetryNumber = 1000;
/// <summary>
/// Gets or sets the test context which provides
......@@ -112,6 +112,15 @@ namespace PcapDotNet.Core.Test
ComparePacketsToWireshark(packet);
}
[TestMethod]
public void CompareVLanTaggedFrameTrailerToWiresharkTest()
{
const string PacketString =
"0004f2402ffca870a5002e02810001f408060001080006040001a870a5002e02ac141401000000000000ac1414670000000000000000000000000000";
Packet packet = Packet.FromHexadecimalString(PacketString, DateTime.Now, DataLinkKind.Ethernet);
ComparePacketsToWireshark(packet);
}
[TestMethod]
public void CompareEthernetFcsToWiresharkTest()
{
......
......@@ -91,44 +91,40 @@ namespace PcapDotNet.Core.Test
break;
case "gre.routing.address_family":
if (_routingEntryIndex == greDatagram.Routing.Count)
if (SupportedGre(greDatagram))
{
if (SupportedGre(greDatagram))
if (_routingEntryIndex == greDatagram.Routing.Count)
field.AssertShowDecimal(0);
else
field.AssertShowDecimal((ushort)greDatagram.Routing[_routingEntryIndex].AddressFamily);
}
else
field.AssertShowDecimal((ushort)greDatagram.Routing[_routingEntryIndex].AddressFamily);
field.AssertNoFields();
break;
case "gre.routing.sre_offset":
if (_routingEntryIndex == greDatagram.Routing.Count)
if (SupportedGre(greDatagram))
{
if (SupportedGre(greDatagram))
if (_routingEntryIndex == greDatagram.Routing.Count)
field.AssertShowDecimal(0);
else
field.AssertShowDecimal(greDatagram.Routing[_routingEntryIndex].PayloadOffset);
}
else
field.AssertShowDecimal(greDatagram.Routing[_routingEntryIndex].PayloadOffset);
field.AssertNoFields();
break;
case "gre.routing.src_length":
if (_routingEntryIndex == greDatagram.Routing.Count)
if (SupportedGre(greDatagram))
{
if (SupportedGre(greDatagram))
if (_routingEntryIndex == greDatagram.Routing.Count)
field.AssertShowDecimal(0);
else
field.AssertShowDecimal(greDatagram.Routing[_routingEntryIndex].PayloadLength);
}
else
field.AssertShowDecimal(greDatagram.Routing[_routingEntryIndex].PayloadLength);
field.AssertNoFields();
break;
case "gre.routing.information":
if (_routingEntryIndex == greDatagram.Routing.Count)
{
Assert.IsFalse(SupportedGre(greDatagram));
}
else
if (SupportedGre(greDatagram) && _routingEntryIndex != greDatagram.Routing.Count)
{
switch (greDatagram.Routing[_routingEntryIndex].AddressFamily)
{
......
......@@ -37,6 +37,10 @@ namespace PcapDotNet.Core.Test
field.AssertShowDecimal((ushort)vLanTaggedFrameDatagram.EtherType);
break;
case "vlan.trailer":
field.AssertValue(vLanTaggedFrameDatagram.Trailer);
break;
default:
throw new InvalidOperationException("Invalid VLanTaggedFrame field " + field.Name());
}
......
......@@ -44,7 +44,7 @@ namespace PcapDotNet.Packets.Ethernet
int payloadLength = PayloadByEtherType.Length;
Datagram fcs = FrameCheckSequence;
return new Datagram(Buffer, HeaderLength + payloadLength, Length - HeaderLength - payloadLength - (fcs == null ? 0 : fcs.Length));
return new Datagram(Buffer, StartOffset + HeaderLength + payloadLength, Length - HeaderLength - payloadLength - (fcs == null ? 0 : fcs.Length));
}
}
......
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