def packetCaptureGetCurrentPacketsHex(self, getUpToPacketNumber=20): """ Description Returns captured packets in hex format. This API will default return 20 packet hex. You could increase the packet count. Parameters getUpToPacketNumber: None|The last packet number to get. Always starts at 1. If you state 10, then this function will get 1-10 packets. Return capturedData: dictionary. key is 'data' and/or 'control' capturedData['data'] is dictionary of packet hex data for Data Capture Buffer capturedData['control'] is dictionary of packet hex data for Control Capture Buffer """ import time vport = self.portMgmtObj.getVports([self.captureRxPort])[0] response = self.ixnObj.get(self.ixnObj.httpHeader+vport+'/capture') totalDataCapturedPackets = response.json()['dataPacketCounter'] totalControlCapturedPackets = response.json()['controlPacketCounter'] if type(totalDataCapturedPackets) != int: totalDataCapturedPackets = 0 else: if getUpToPacketNumber != None: totalDataCapturedPackets = getUpToPacketNumber if type(totalControlCapturedPackets) != int: totalControlCapturedPackets = 0 else: if getUpToPacketNumber != None: totalControlCapturedPackets = getUpToPacketNumber capturedData={} for eachTypeOfCaptures, totalCapturedPackets in zip(('data', 'control'), (totalDataCapturedPackets, totalControlCapturedPackets)): self.ixnObj.logInfo('Getting captured packets for capture type: {0}'.format(eachTypeOfCaptures)) capturedData[eachTypeOfCaptures]={} for packetIndex in range(1, int(totalCapturedPackets)): self.ixnObj.logInfo('Getting captured packet index number: {}/{}'.format(packetIndex, getUpToPacketNumber)) if totalDataCapturedPackets > 0: data = {'arg1': vport+'/capture/currentPacket', 'arg2': packetIndex} response = self.ixnObj.post(self.ixnObj.sessionUrl+'/vport/capture/currentPacket/operations/getpacketfromdatacapture', data=data, silentMode=False) self.ixnObj.waitForComplete(response, self.ixnObj.sessionUrl+'/vport/capture/currentPacket/operations/getpacketfromdatacapture/'+response.json()['id']) if totalControlCapturedPackets > 0: data = {'arg1': vport+'/capture/currentPacket', 'arg2': packetIndex} response = self.ixnObj.post(self.ixnObj.sessionUrl+'/vport/capture/currentPacket/operations/getpacketfromcontrolcapture', data=data, silentMode=False) self.ixnObj.waitForComplete(response, self.ixnObj.sessionUrl+'/vport/capture/currentPacket/operations/getpacketfromcontrolcapture/'+response.json()['id']) data = {'arg1': '-packetHex'} response = self.ixnObj.get(self.ixnObj.httpHeader+vport+'/capture/currentPacket', data=data, silentMode=False) packetHex = response.json()['packetHex'] capturedData[eachTypeOfCaptures][packetIndex]=packetHex return capturedData