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