/// <summary> /// Constructor /// </summary> /// <param name="bas"> /// A <see cref="ByteArraySegment"/> /// </param> public GREPacket(ByteArraySegment bas, Packet ParentPacket) { // slice off the header portion this.header = new ByteArraySegment(bas); this.header.Length = GREFields.FlagsLength + GREFields.ProtocolLength; if (this.HasCheckSum) { this.header.Length += GREFields.ChecksumLength; } if (this.HasReserved) { this.header.Length += GREFields.ReservedLength; } if (this.HasKey) { this.header.Length += GREFields.KeyLength; } if (this.HasSequence) { this.header.Length += GREFields.SequenceLength; } // parse the encapsulated bytes this.payloadPacketOrData = EthernetPacket.ParseEncapsulatedBytes(this.header, this.Protocol); this.ParentPacket = ParentPacket; }
/// <summary> /// Constructor /// </summary> /// <param name="bas">A <see cref="ByteArraySegment" /></param> /// <param name="parentPacket">The parent packet.</param> public GREPacket(ByteArraySegment bas, Packet parentPacket) { // slice off the header portion // ReSharper disable once UseObjectOrCollectionInitializer Header = new ByteArraySegment(bas); Header.Length = GREFields.FlagsLength + GREFields.ProtocolLength; if (HasCheckSum) { Header.Length += GREFields.ChecksumLength; } if (HasReserved) { Header.Length += GREFields.ReservedLength; } if (HasKey) { Header.Length += GREFields.KeyLength; } if (HasSequence) { Header.Length += GREFields.SequenceLength; } // parse the encapsulated bytes PayloadPacketOrData = new Lazy <PacketOrByteArraySegment>(() => EthernetPacket.ParseEncapsulatedBytes(Header, Protocol), LazyThreadSafetyMode.PublicationOnly); ParentPacket = parentPacket; }
/// <summary> /// Constructor /// </summary> /// <param name="bas"> /// A <see cref="ByteArraySegment" /> /// </param> public LinuxSLLPacket(ByteArraySegment bas) { this.header = new ByteArraySegment(bas); this.header.Length = LinuxSLLFields.SLLHeaderLength; // parse the payload via an EthernetPacket method this.payloadPacketOrData = EthernetPacket.ParseEncapsulatedBytes(this.header, this.EthernetProtocolType); }
/// <summary> /// Constructor /// </summary> /// <param name="bas"> /// A <see cref="ByteArraySegment" /> /// </param> public Ieee8021QPacket(ByteArraySegment bas) { // set the header field, header field values are retrieved from this byte array this.header = new ByteArraySegment(bas); this.header.Length = Ieee8021QFields.HeaderLength; // parse the payload via an EthernetPacket method this.payloadPacketOrData = EthernetPacket.ParseEncapsulatedBytes(this.header, this.Type); }
/// <summary> /// Constructor /// </summary> /// <param name="bas"> /// A <see cref="ByteArraySegment" /> /// </param> public LinuxSLLPacket(ByteArraySegment bas) { Header = new ByteArraySegment(bas); Header.Length = LinuxSLLFields.SLLHeaderLength; // parse the payload via an EthernetPacket method PayloadPacketOrData = new Lazy <PacketOrByteArraySegment>(() => EthernetPacket.ParseEncapsulatedBytes(Header, EthernetProtocolType)); }
/// <summary> /// Constructor /// </summary> /// <param name="bas"> /// A <see cref="ByteArraySegment" /> /// </param> public Ieee8021QPacket(ByteArraySegment bas) { // set the header field, header field values are retrieved from this byte array Header = new ByteArraySegment(bas); Header.Length = Ieee8021QFields.HeaderLength; // parse the payload via an EthernetPacket method PayloadPacketOrData = new Lazy <PacketOrByteArraySegment>(() => EthernetPacket.ParseEncapsulatedBytes(Header, Type), LazyThreadSafetyMode.PublicationOnly); }
/// <summary> /// Constructor /// </summary> /// <param name="bas"> /// A <see cref="ByteArraySegment"/> /// </param> public Ieee8021QPacket(ByteArraySegment bas) { // set the header field, header field values are retrieved from this byte array header = new ByteArraySegment(bas); RandomUtils.EnsurePacketLength(this, Ieee8021QFields.HeaderLength, header.Length); header.Length = Ieee8021QFields.HeaderLength; // parse the payload via an EthernetPacket method payloadPacketOrData = EthernetPacket.ParseEncapsulatedBytes(header, Type); }
public LinuxSLLPacket(byte[] Bytes, int Offset, PosixTimeval Timeval) : base(Timeval) { base.header = new ByteArraySegment(Bytes, Offset, LinuxSLLFields.SLLHeaderLength); base.payloadPacketOrData = EthernetPacket.ParseEncapsulatedBytes(base.header, this.EthernetProtocolType, Timeval); }