Exemple #1
0
            /// <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);
                }
            }
Exemple #2
0
 /// <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;
        }
Exemple #4
0
        /// <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);
            }
        }
Exemple #5
0
            /// <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);
                }
            }
Exemple #6
0
        /// <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;
        }
Exemple #7
0
            /// <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);
                }
            }
Exemple #8
0
        /// <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);
            }
        }