Jouni Malinen | cd4e3c3 | 2015-10-29 12:39:56 +0200 | [diff] [blame] | 1 | #!/usr/bin/python |
| 2 | # |
| 3 | # Sigma Control API DUT (sniffer_get_field_value) |
| 4 | # Copyright (c) 2014, Qualcomm Atheros, Inc. |
| 5 | # All Rights Reserved. |
| 6 | # Licensed under the Clear BSD license. See README for more details. |
| 7 | |
| 8 | import sys |
| 9 | import subprocess |
| 10 | import tshark |
| 11 | |
| 12 | for arg in sys.argv: |
| 13 | if arg.startswith("FileName="): |
| 14 | filename = arg.split("=", 1)[1] |
| 15 | elif arg.startswith("SrcMac="): |
| 16 | srcmac = arg.split("=", 1)[1] |
| 17 | elif arg.startswith("FrameName="): |
| 18 | framename = arg.split("=", 1)[1].lower() |
| 19 | elif arg.startswith("FieldName="): |
| 20 | fieldname = arg.split("=", 1)[1].lower() |
| 21 | |
| 22 | frame_filters = tshark.tshark_framenames() |
| 23 | if framename not in frame_filters: |
| 24 | print "errorCode,Unsupported FrameName" |
| 25 | sys.exit() |
| 26 | |
| 27 | fields = tshark.tshark_fieldnames() |
| 28 | if fieldname not in fields: |
| 29 | print "errorCode,Unsupported FieldName" |
| 30 | sys.exit() |
| 31 | |
| 32 | cmd = ['tshark', '-r', filename, |
| 33 | '-c', '1', |
| 34 | '-R', 'wlan.sa==' + srcmac + " and " + frame_filters[framename], |
| 35 | '-Tfields', |
| 36 | '-e', fields[fieldname]] |
| 37 | tshark = subprocess.Popen(cmd, stdout=subprocess.PIPE) |
| 38 | data = tshark.stdout.read().rstrip() |
| 39 | result = "SUCCESS" if len(data) > 0 else "FAIL" |
| 40 | print "CheckResult,%s,ReturnValue,%s" % (result, data) |