#!/usr/bin/python # # Sigma Control API DUT (sniffer_get_field_value) # Copyright (c) 2014, Qualcomm Atheros, Inc. # All Rights Reserved. # Licensed under the Clear BSD license. See README for more details. import sys import subprocess import tshark for arg in sys.argv: if arg.startswith("FileName="): filename = arg.split("=", 1)[1] elif arg.startswith("SrcMac="): srcmac = arg.split("=", 1)[1] elif arg.startswith("FrameName="): framename = arg.split("=", 1)[1].lower() elif arg.startswith("FieldName="): fieldname = arg.split("=", 1)[1].lower() frame_filters = tshark.tshark_framenames() if framename not in frame_filters: print "errorCode,Unsupported FrameName" sys.exit() fields = tshark.tshark_fieldnames() if fieldname not in fields: print "errorCode,Unsupported FieldName" sys.exit() cmd = ['tshark', '-r', filename, '-c', '1', '-R', 'wlan.sa==' + srcmac + " and " + frame_filters[framename], '-Tfields', '-e', fields[fieldname]] tshark = subprocess.Popen(cmd, stdout=subprocess.PIPE) data = tshark.stdout.read().rstrip() result = "SUCCESS" if len(data) > 0 else "FAIL" print "CheckResult,%s,ReturnValue,%s" % (result, data)