Home | History | Annotate | Download | only in contrib
      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