def test_probe_resp_packet(self): """ Verify attributes of Probe Response instance. """ frame = wifi.WIFI(PROBE_RESP_PACKET) self.assertTrue(isinstance(frame, wifi.ProbeResp), 'invalid Probe Response frame!') self.assertEqual(frame.timestamp, 17596175126, 'invalid timestamp') self.assertEqual(frame.ess, 1, 'invalid ess flag') self.assertEqual(frame.ibss, 0, 'invalid ibss flag') self.assertEqual(frame.priv, 1, 'invalid privacy capability flag') self.assertEqual(frame.short_preamble, 0, 'invalid short preamble flag') self.assertEqual(frame.pbcc, 0, 'invalid pbcc flag') self.assertEqual(frame.chan_agility, 0, 'invalid channel agility flag') self.assertEqual(frame.spec_man, 1, 'invalid spectrum management flag') self.assertEqual(frame.short_slot, 0, 'invalid short slot time flag') self.assertEqual(frame.apsd, 0, 'invalid automatic power save delivery flag') self.assertEqual(frame.dss_ofdm, 0, 'invalid dynamic spec spectrum / ofdm flag') self.assertEqual(frame.del_back, 0, 'invalid delayed block ack flag') self.assertEqual(frame.imm_back, 0, 'invalid immediate block ack flag') self.assertEqual(len(frame.tagged_params), 18, 'invalid number of tagged parameters') vendor_ies = frame.get_vendor_ies() self.assertEqual(len(vendor_ies), 4, 'invalid number of vendor ies') ie_type = frame.get_vendor_ies('00-10-18', 2) self.assertEqual(len(ie_type), 1, 'invalid number of ies for mac block 00-10-18')
def test_probe_req_packet(self): """ Verify attributes of Probe Request instance. """ frame = wifi.WIFI(PROBE_REQ_PACKET) self.assertTrue(isinstance(frame, wifi.ProbeReq), 'invalid Beacon frame!') self.assertEqual(len(frame.tagged_params), 10, 'invalid number of tagged paramters') vendor_ies = frame.get_vendor_ies() self.assertEqual(len(vendor_ies), 5, 'invalid number of vendor ies') ie_type = frame.get_vendor_ies('00-1C-A8', 80) self.assertEqual(len(ie_type), 1, 'invalid number of ies for mac block 00-1C-A8')
def test_cts_packet(self): """ Verify attributes of Clear to Send Instance. """ frame = wifi.WIFI(CTS_PACKET) self.assertTrue(isinstance(frame, wifi.CTS), 'invalid CTS frame!') self.assertEqual(frame.radiotap.mactime, 2028090566, 'invalid radiotap mactime') self.assertEqual(frame.radiotap.chan.freq, 5540, 'invalid channel frequency in radiotap headers') self.assertEqual(frame.radiotap.rate, 6.0, 'invalid rate') self.assertEqual(frame.ra, b'88:41:fc:2a:01:a6', 'invalid receiver address') self.assertEqual(frame.duration, 2808, 'invalid duration field')
def test_rts_packet(self): """ Verify attributes of Request to Sent instance. """ frame = wifi.WIFI(RTS_PACKET) self.assertTrue(isinstance(frame, wifi.RTS), 'invalid RTS frame!') self.assertEqual(frame.radiotap.chan.freq, 5540, 'invalid channel frequency in radiotap headers') self.assertEqual(frame.radiotap.mactime, 2028090499, 'invalid radiotap mactime') self.assertEqual(frame.radiotap.rate, 6.0, 'invalid rate') self.assertEqual(frame.ta, b'88:41:fc:2a:01:a6', 'invalid transmitter address') self.assertEqual(frame.ra, b'88:41:fc:2a:01:aa', 'invalid receiver address') self.assertEqual(frame.duration, 2868, 'invalid duration field')
def test_block_ack_packet(self): """ Verify attributes of Block Acknowledgement instance. """ frame = wifi.WIFI(BLOCK_ACK_PACKET) self.assertTrue(isinstance(frame, wifi.BACK), 'invalid BLOCK ACK frame!') self.assertEqual(frame.radiotap.mactime, 2028093362, 'invalid radiotap mactime') self.assertEqual(frame.radiotap.chan.freq, 5540, 'invalid channel frequency in radiotap headers') self.assertEqual(frame.ta, b'88:41:fc:2a:01:aa', 'invalid transmitter address') self.assertEqual(frame.ra, b'88:41:fc:2a:01:a6', 'invalid receiver address') self.assertEqual(frame.acked_seqs, list(range(713, 754)), 'invalid sequence numbers in acknowledgement')
def test_beacon_packet(self): """ Verify attributes of Beacon instance. """ frame = wifi.WIFI(BEACON_PACKET) self.assertTrue(isinstance(frame, wifi.Beacon), 'invalid Beacon frame!') self.assertEqual(frame.radiotap.mactime, 2020557908, 'invalid radiotap mactime') self.assertEqual(frame.radiotap.chan.freq, 5540, 'invalid channel frequency in radiotap headers') self.assertEqual(frame.ta, b'88:41:fc:2a:01:aa', 'invalid transmitter address') self.assertEqual(frame.ra, b'ff:ff:ff:ff:ff:ff', 'invalid receiver address') self.assertEqual(frame.timestamp, 514355210, 'invalid beacon timestamp') self.assertEqual(frame.seq_num, 497, 'invalid sequence number')
def test_data_non_amsdu_wds_packet(self): """ Verify attributes of Data instance when A-MSDU is not used in WDS(Wireless Distribution System) """ frame = wifi.WIFI(DATA_NON_AMSDU_WDS_PACKET) self.assertTrue(isinstance(frame, wifi.QosData), 'invalid QosData frame!') self.assertEqual(frame.radiotap.mactime, 2045142051, 'invalid radiotap mactime') self.assertEqual(frame.radiotap.chan.freq, 5540, 'invalid channel frequency in radiotap headers') self.assertEqual(frame.from_ds, 1, 'invalid flag value in frame control') self.assertEqual(frame.to_ds, 1, 'invalid flag value in frame control') self.assertEqual(frame.amsdupresent, 0, 'invalid a-msdu information') self.assertEqual(frame.ta, b'88:41:fc:7a:0f:d3', 'invalid transmitter address') self.assertEqual(frame.ra, b'88:41:d8:2a:01:aa', 'invalid receiver address') self.assertEqual(frame.seq_num, 1859, 'invalid sequence number') self.assertEqual(len(frame.payload), 1, 'invalid a-msdu aggregation formed')