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