( "QOS_NULL" , 0xc0 )
)
+# without IEEE80211_FC1_DIR_
+directions = (
+( "NODS" , 0x00 ) , # STA->STA
+( "TODS" , 0x01 ) , # STA->AP
+( "FROMDS" , 0x02 ) , # AP ->STA
+( "DSTODS" , 0x03 ) # AP ->AP
+)
+
import time
max_time = 1
type = name
break
else :
- print "Unknown frame type %s" % frame_ctl & 0x0c
+ print "Unknown frame type %s" % ( frame_ctl & 0x0c , )
return
if type == "MGT" :
subtype = name
break
else :
- print "Unknown MGT subtype %s" % frame_ctl & 0xf0
+ print "Unknown MGT subtype %s" % ( frame_ctl & 0xf0 , )
return
elif type == "CTL" :
subtype = name
break
else :
- print "Unknown CTL subtype %s" % frame_ctl & 0xf0
+ print "Unknown CTL subtype %s" % ( frame_ctl & 0xf0 , )
return
elif type == "DATA" :
- subtype = "UNDEFINED"
+ _subtype = []
+ for name,value in data_subtypes :
+ if frame_ctl & 0xf0 == value :
+ _subtype.append( name )
+ subtype = "-".join( _subtype )
+
+ for name,value in directions :
+ if frame_subtype & 0x03 == value :
+ direction = name
+ break
+ else :
+ print "Unknown direction %s" % ( frame_subtype & 0x03 , )
+ return
mac_str = "BBBBBB" # is leading '<' required
fd.close()
raise Exception( "Neighborhoud scan completed" )
- print "%4s %13s %4d %4d from %4d" % (type,subtype,values[3],pcktlen,len(payload))," ; %4d %4d "%sequence,":"+" %s"*len(maclist) % tuple(maclist)
+ print "%4s %13s %6s %4d %4d from %4d" % (type,subtype,direction,values[3],pcktlen,len(payload))," ; %4d %4d "%sequence,":"+" %s"*len(maclist) % tuple(maclist)
packet_limit = -1 # infinite
pc.loop( packet_limit , dealWithPacket )