/// <summary> /// Initializes a new instance of the <see cref="PacketDotNet.Ieee80211.DataDataFrame"/> class. /// </summary> /// <param name='bas'> /// Bas. /// </param> public DataDataFrame(ByteArraySegment bas) { header = new ByteArraySegment(bas); FrameControl = new FrameControlField(FrameControlBytes); Duration = new DurationField(DurationBytes); SequenceControl = new SequenceControlField(SequenceControlBytes); ReadAddresses(); //must do this after reading FrameControl header.Length = FrameSize; var availablePayloadLength = GetAvailablePayloadLength(); if (availablePayloadLength > 0) { payloadPacketOrData.Value.TheByteArraySegment = header.EncapsulatedBytes(availablePayloadLength); } }
/// <summary> /// Initializes a new instance of the <see cref="BeaconFrame" /> class. /// </summary> /// <param name='sourceAddress'> /// Source address. /// </param> /// <param name='bssId'> /// Bss identifier (MAC Address of the Access Point). /// </param> /// <param name='informationElements'> /// Information elements. /// </param> public BeaconFrame ( PhysicalAddress sourceAddress, PhysicalAddress bssId, InformationElementList informationElements) { FrameControl = new FrameControlField(); Duration = new DurationField(); SequenceControl = new SequenceControlField(); CapabilityInformation = new CapabilityInformationField(); InformationElements = new InformationElementList(informationElements); FrameControl.SubType = FrameControlField.FrameSubTypes.ManagementBeacon; SourceAddress = sourceAddress; DestinationAddress = PhysicalAddress.Parse("FF-FF-FF-FF-FF-FF"); BssId = bssId; BeaconInterval = 100; }
/// <summary> /// Initializes a new instance of the <see cref="AuthenticationFrame" /> class. /// </summary> /// <param name='sourceAddress'> /// Source address. /// </param> /// <param name='destinationAddress'> /// Destination address. /// </param> /// <param name='bssId'> /// Bss identifier (MAC Address of Access Point). /// </param> /// <param name='informationElements'> /// Information elements. /// </param> public AuthenticationFrame ( PhysicalAddress sourceAddress, PhysicalAddress destinationAddress, PhysicalAddress bssId, InformationElementList informationElements) { FrameControl = new FrameControlField(); Duration = new DurationField(); DestinationAddress = destinationAddress; SourceAddress = sourceAddress; BssId = bssId; SequenceControl = new SequenceControlField(); InformationElements = new InformationElementList(informationElements); FrameControl.SubType = FrameControlField.FrameSubTypes.ManagementAuthentication; }
/// <summary> /// Initializes a new instance of the <see cref="DataDataFrame" /> class. /// </summary> /// <param name="byteArraySegment"> /// byteArraySegment. /// </param> public DataDataFrame(ByteArraySegment byteArraySegment) { Header = new ByteArraySegment(byteArraySegment); FrameControl = new FrameControlField(FrameControlBytes); Duration = new DurationField(DurationBytes); SequenceControl = new SequenceControlField(SequenceControlBytes); ReadAddresses(); //must do this after reading FrameControl Header.Length = FrameSize; var availablePayloadLength = GetAvailablePayloadLength(); if (availablePayloadLength > 0) { PayloadPacketOrData.Value.ByteArraySegment = Header.NextSegment(availablePayloadLength); } }
/// <summary> /// Initializes a new instance of the <see cref="PacketDotNet.Ieee80211.QosDataFrame"/> class. /// </summary> /// <param name='bas'> /// A <see cref="ByteArraySegment"/> /// </param> public QosDataFrame(ByteArraySegment bas) { header = new ByteArraySegment(bas); FrameControl = new FrameControlField(FrameControlBytes); Duration = new DurationField(DurationBytes); SequenceControl = new SequenceControlField(SequenceControlBytes); QosControl = QosControlBytes; ReadAddresses(); header.Length = FrameSize; var availablePayloadLength = GetAvailablePayloadLength(); if (availablePayloadLength > 0) { payloadPacketOrData.TheByteArraySegment = header.EncapsulatedBytes(availablePayloadLength); } }
/// <summary> /// Initializes a new instance of the <see cref="ProbeResponseFrame" /> class. /// </summary> /// <param name='sourceAddress'> /// Source address. /// </param> /// <param name='destinationAddress'> /// Destination address. /// </param> /// <param name='bssId'> /// Bss identifier (Mac address of the access point). /// </param> /// <param name='informationElements'> /// Information elements. /// </param> public ProbeResponseFrame ( PhysicalAddress sourceAddress, PhysicalAddress destinationAddress, PhysicalAddress bssId, InformationElementList informationElements) { FrameControl = new FrameControlField(); Duration = new DurationField(); DestinationAddress = destinationAddress; SourceAddress = sourceAddress; BssId = bssId; SequenceControl = new SequenceControlField(); CapabilityInformation = new CapabilityInformationField(); InformationElements = new InformationElementList(informationElements); FrameControl.SubType = FrameControlField.FrameSubTypes.ManagementProbeResponse; }
/// <summary> /// Constructor /// </summary> /// <param name="bas"> /// A <see cref="ByteArraySegment"/> /// </param> public ActionFrame(ByteArraySegment bas) { header = new ByteArraySegment(bas); FrameControl = new FrameControlField(FrameControlBytes); Duration = new DurationField(DurationBytes); DestinationAddress = GetAddress(0); SourceAddress = GetAddress(1); BssId = GetAddress(2); SequenceControl = new SequenceControlField(SequenceControlBytes); header.Length = FrameSize; var availablePayloadLength = GetAvailablePayloadLength(); if (availablePayloadLength > 0) { payloadPacketOrData.TheByteArraySegment = header.EncapsulatedBytes(availablePayloadLength); } }
/// <summary> /// Constructor /// </summary> /// <param name="byteArraySegment"> /// A <see cref="ByteArraySegment" /> /// </param> public ActionFrame(ByteArraySegment byteArraySegment) { Header = new ByteArraySegment(byteArraySegment); FrameControl = new FrameControlField(FrameControlBytes); Duration = new DurationField(DurationBytes); DestinationAddress = GetAddress(0); SourceAddress = GetAddress(1); BssId = GetAddress(2); SequenceControl = new SequenceControlField(SequenceControlBytes); Header.Length = FrameSize; var availablePayloadLength = GetAvailablePayloadLength(); if (availablePayloadLength > 0) { PayloadPacketOrData.Value.ByteArraySegment = Header.NextSegment(availablePayloadLength); } }