Commit c103fa03 authored by Brickner_cp's avatar Brickner_cp

VLanTaggedFrame

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