| #!/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) |