diff --git a/skyscraper8/Ietf/Rfc4236_ULE/UleEventHandler.cs b/skyscraper8/Ietf/Rfc4236_ULE/UleEventHandler.cs index b774498..e746118 100644 --- a/skyscraper8/Ietf/Rfc4236_ULE/UleEventHandler.cs +++ b/skyscraper8/Ietf/Rfc4236_ULE/UleEventHandler.cs @@ -18,6 +18,7 @@ namespace skyscraper8.Ietf.Rfc4236_ULE /// /// Set this to: /// 1* for a CRC error. + /// 2* for an invalid adaptation field control. /// void OnUleError(int pid, int errorNo); } diff --git a/skyscraper8/Ietf/Rfc4236_ULE/UlePacketProcessor.cs b/skyscraper8/Ietf/Rfc4236_ULE/UlePacketProcessor.cs index 6e627e6..b2a8883 100644 --- a/skyscraper8/Ietf/Rfc4236_ULE/UlePacketProcessor.cs +++ b/skyscraper8/Ietf/Rfc4236_ULE/UlePacketProcessor.cs @@ -27,7 +27,11 @@ namespace skyscraper8.Ietf.Rfc4236_ULE public void PushPacket(TsPacket packet) { - + if (packet.AdaptionFieldControl != 1) + { + _eventHandler.OnUleError(_pid, 2); + return; + } if (packet.PayloadUnitStart) { PushPusiPacket(packet); @@ -161,7 +165,7 @@ namespace skyscraper8.Ietf.Rfc4236_ULE PhysicalAddress source = new PhysicalAddress(ms.ReadBytes(6)); ushort etherType = ms.ReadUInt16BE(); byte[] contents = ms.ReadBytes(ms.GetAvailableBytes()); - //_eventHandler.OnEthernetFrame(_pid, destination, source, etherType, contents); + _eventHandler.OnEthernetFrame(_pid, destination, source, etherType, contents); } public void PacketLoss()