1 #! /usr/bin/env python 2 3 # This file is part of Scapy 4 # Scapy is free software: you can redistribute it and/or modify 5 # it under the terms of the GNU General Public License as published by 6 # the Free Software Foundation, either version 2 of the License, or 7 # any later version. 8 # 9 # Scapy is distributed in the hope that it will be useful, 10 # but WITHOUT ANY WARRANTY; without even the implied warranty of 11 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 # GNU General Public License for more details. 13 # 14 # You should have received a copy of the GNU General Public License 15 # along with Scapy. If not, see <http://www.gnu.org/licenses/>. 16 17 # scapy.contrib.description = AVS WLAN Monitor Header 18 # scapy.contrib.status = loads 19 20 from scapy.packet import * 21 from scapy.fields import * 22 from scapy.layers.dot11 import * 23 24 AVSWLANPhyType = { 0 : "Unknown", 25 1 : "FHSS 802.11 '97", 26 2 : "DSSS 802.11 '97", 27 3 : "IR Baseband", 28 4 : "DSSS 802.11b", 29 5 : "PBCC 802.11b", 30 6 : "OFDM 802.11g", 31 7 : "PBCC 802.11g", 32 8 : "OFDM 802.11a" } 33 34 AVSWLANEncodingType = { 0 : "Unknown", 35 1 : "CCK", 36 2 : "PBCC", 37 3 : "OFDM"} 38 39 AVSWLANSSIType = { 0 : "None", 40 1 : "Normalized RSSI", 41 2 : "dBm", 42 3 : "Raw RSSI"} 43 44 AVSWLANPreambleType = { 0 : "Unknown", 45 1 : "Short", 46 2 : "Long" } 47 48 49 class AVSWLANHeader(Packet): 50 """ iwpriv eth1 set_prismhdr 1 """ 51 name = "AVS WLAN Monitor Header" 52 fields_desc = [ IntField("version",1), 53 IntField("len",64), 54 LongField("mactime",0), 55 LongField("hosttime",0), 56 IntEnumField("phytype",0, AVSWLANPhyType), 57 IntField("channel",0), 58 IntField("datarate",0), 59 IntField("antenna",0), 60 IntField("priority",0), 61 IntEnumField("ssi_type",0, AVSWLANSSIType), 62 SignedIntField("ssi_signal",0), 63 SignedIntField("ssi_noise",0), 64 IntEnumField("preamble",0, AVSWLANPreambleType), 65 IntEnumField("encoding",0, AVSWLANEncodingType), 66 ] 67 68 bind_layers(AVSWLANHeader, Dot11) 69