summaryrefslogtreecommitdiffstats
path: root/scripts/automation/trex_control_plane/stl/examples
diff options
context:
space:
mode:
authoritraviv <itraviv@cisco.com>2016-08-11 16:59:29 +0300
committeritraviv <itraviv@cisco.com>2016-08-11 16:59:29 +0300
commit72171290152897fac1a149fe4f9d1cbf0ae914c4 (patch)
tree264720682c55f2dbae2e38128ebc6ce7ae22ecca /scripts/automation/trex_control_plane/stl/examples
parent7aa248272fb7687f6cfd84a1414ddee4f0a47369 (diff)
1)removed unnecessary files from repository
2)fixed bug in checking update of data-base
Diffstat (limited to 'scripts/automation/trex_control_plane/stl/examples')
-rwxr-xr-xscripts/automation/trex_control_plane/stl/examples/scapy_server.py277
1 files changed, 0 insertions, 277 deletions
diff --git a/scripts/automation/trex_control_plane/stl/examples/scapy_server.py b/scripts/automation/trex_control_plane/stl/examples/scapy_server.py
deleted file mode 100755
index 55f7cb54..00000000
--- a/scripts/automation/trex_control_plane/stl/examples/scapy_server.py
+++ /dev/null
@@ -1,277 +0,0 @@
-import stl_path
-import trex_stl_lib
-from trex_stl_lib.api import *
-from copy import deepcopy
-import sys
-import tempfile
-import md5
-
-#print ls()
-
-from cStringIO import StringIO
-import sys
-"""
-old_stdout = sys.stdout
-sys.stdout = mystdout = StringIO()
-
-ls()
-
-sys.stdout = old_stdout
-
-a= mystdout.getvalue()
-
-f = open('scapy_supported_formats.txt','w')
-f.write(a)
-f.close()
-"""
-#-------------------------------------------------------TREE IMPLEMENTATION ------------------------
-class node(object):
- def __init__(self, value):#, children = []):
- self.value = value
- self.children = []
-
- def __str__(self, level=0):
- ret = "\t"*level+repr(self.value)+"\n"
- for child in self.children:
- ret += child.__str__(level+1)
- return ret
-#----------------------------------------------------------------------------------------------------
-
-
-def build_lib():
- lib = protocol_struct()
- lib = lib.split('\n')
- all_protocols=[]
- for entry in lib:
- entry = entry.split(':')
- all_protocols.append(entry[0].strip())
- del all_protocols[len(all_protocols)-1]
- return all_protocols
-
-def protocol_struct(protocol=''):
- if '_' in protocol:
- return []
- if not protocol=='':
- if protocol not in all_protocols:
- return 'protocol not supported'
- protocol = eval(protocol)
- old_stdout = sys.stdout
- sys.stdout = mystdout = StringIO()
- if not protocol=='':
- ls(protocol)
- else:
- ls()
- sys.stdout = old_stdout
- a= mystdout.getvalue()
-# print a
- return a
-
-def parse_description_line(line):
- line_arr = [x.strip() for x in re.split(': | = ',line)]
- return tuple(line_arr)
-
-def parse_entire_description(d):
- d = d.split('\n')
- description_list = [parse_description_line(x) for x in d]
- del description_list[len(description_list)-1]
- return description_list
-
-def get_protocol_details(p_name):
- protocol_str = protocol_struct(p_name)
- if protocol_str=='protocol not supported':
- return 'protocol not supported'
- if len(protocol_str) is 0:
- return []
- tupled_protocol = parse_entire_description(protocol_str)
- return tupled_protocol
-
-
-class scapyRegex:
- def __init__(self,FieldName,regex='empty'):
- self.FieldName = FieldName
- self.regex = regex
-
- def stringRegex(self):
- return self.regex
-
-all_protocols = build_lib()
-
-Raw = {'Raw':''}
-high_level_protocols = ['Raw']
-transport_protocols = {'TCP':Raw,'UDP':Raw}
-network_protocols = {'IP':transport_protocols ,'ARP':''}
-low_level_protocols = { 'Ether': network_protocols }
-regexDB= {'MACField' : scapyRegex('MACField','^([0-9a-fA-F][0-9a-fA-F]:){5}([0-9a-fA-F][0-9a-fA-F])$'),
- 'IPField' : scapyRegex('IPField','^(25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[1-9])\.(25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[1-9]|0)\.(25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[1-9]|0)\.(25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[0-9])$')}
-
-
-def build_nodes(data,dictionary):
- n = node(data)
- if len(dictionary)==0:
- n.children=[]
- return n
- for obj in dictionary.keys():
- if not (obj==''):
- x = build_nodes(obj,dictionary[obj])
- n.children.append(x)
- return n
-
-def build_tree():
- root = node('ALL')
- root.children = []
- root = build_nodes('ALL',low_level_protocols)
- return root
-
-protocol_tree = build_tree()
-
-def print_tree(root,level=0):
- output = "\t"*level+str(root.value)
- print output
- if len(root.children)==0:
- return
- for child in root.children:
- print_tree(child,level+1)
-
-def get_all_protocols():
- return json.dumps(all_protocols)
-
-def get_tree():
- old_stdout = sys.stdout
- sys.stdout = mystdout = StringIO()
- print_tree(t)
- sys.stdout = old_stdout
- a= mystdout.getvalue()
- return json.dumps(a)
-
-def get_all_db():
- db = {}
- for pro in all_protocols:
- details = get_protocol_details(pro)
- db[pro] = json.dumps(details)
- return db
-
-def get_all_fields():
- fields = []
- for pro in all_protocols:
- details = get_protocol_details(pro)
- for i in range(0,len(details),1):
- if len(details[i]) is 3:
- fields.append(details[i][1])
- uniqeFields = list(set(fields))
- fieldDict = {}
- for f in uniqeFields:
- if f in regexDB:
- fieldDict[f] = regexDB[f].stringRegex()
- else:
- fieldDict[f] = scapyRegex(f).stringRegex()
- return fieldDict
-
-
-class pktResult:
- def __init__(self,result,errorCode,errorDesc):
- self.result = result
- self.errorCode = errorCode
- self.errorDesc = errorDesc
-
- def convert2tuple(self):
- return tuple([self.result,self.errorCode,self.errorDesc])
-
-
-
-# pkt_descriptor in JSON format only!
-# returned tuple in JSON format: (pktResultTuple , show2data, hexdump(buffer))
-# pktResultTuple is: ( result, errorCode, error description )
-
-def build_pkt(pkt_descriptor):
- try:
- pkt = eval(json.loads(pkt_descriptor))
- old_stdout = sys.stdout
- sys.stdout = mystdout = StringIO()
- pkt.show2()
- sys.stdout = old_stdout
- show2data = mystdout.getvalue() #show2 data
- bufferData = str(pkt) #pkt buffer
- bufferData = bufferData.encode('base64')
- pktRes = pktResult('Success',0,'None').convert2tuple()
- res = [pktRes,json.dumps(show2data),json.dumps(bufferData)]
- JSONres = json.dumps(res)
- return JSONres
- except:
- pktRes = pktResult('Pkt build Failed',str(sys.exc_info()[0]),str(sys.exc_info()[1])).convert2tuple()
- res = [pktRes,[],[]]
- res = json.dumps(res)
- return res
-
-#input: container
-#output: md5 in json format encoded in base64
-def getMD5(container):
- resMD5 = md5.new(json.dumps(container))
- resMD5 = json.dumps(resMD5.digest().encode('base64'))
- return resMD5
-
-
-def get_all():
- fields=get_all_fields()
- db=get_all_db()
- fieldMD5 = getMD5(fields)
- dbMD5 = getMD5(db)
- res = {}
- res['db'] = db
- res['fields'] = fields
- res['DB_md5'] = dbMD5
-# print dbMD5
- res['fields_md5'] = fieldMD5
- return json.dumps(res)
-
-#input in json string encoded base64
-def check_update(dbMD5,fieldMD5):
- fields=get_all_fields()
- db=get_all_db()
- currentDBMD5 = json.loads(getMD5(db))
- currentFieldMD5 = json.loads(getMD5(fields))
- dbMD5_parsed = json.loads(dbMD5)
- fieldMD5_parsed = json.loads(fieldMD5)
- res = []
-# print 'this is current DB MD5: %s ' % currentDBMD5
-# print 'this is given DB MD5: %s ' % dbMD5_parsed
- if fieldMD5_parsed == currentFieldMD5:
- resField = pktResult('Success',0,'None').convert2tuple()
- else:
- resField = pktResult('Fail',-1,'Field DB is not up to date').convert2tuple()
- if dbMD5_parsed == currentDBMD5:
- resDB = pktResult('Success',0,'None').convert2tuple()
- else:
- resDB = pktResult('Fail',-1,'Protocol DB is not up to date').convert2tuple()
- return json.dumps([resField,resDB])
-
-#pkt_desc as json
-#dictionary of offsets per protocol. tuple for each field: (name, offset, size) at json format
-def get_all_pkt_offsets(pkt_desc):
- pkt_desc= json.loads(pkt_desc)
- try:
- pkt_protocols = pkt_desc.split('/')
- scapy_pkt = eval(pkt_desc)
- total_protocols = len(pkt_protocols)
- res = {}
- for i in range(total_protocols):
- fields = []
- for field in scapy_pkt.fields_desc:
- size = field.get_size_bytes()
- if field.name is 'load':
- size = len(scapy_pkt)
- fields.append([field.name, field.offset, size])
- res[pkt_protocols[i]] = fields
- scapy_pkt=scapy_pkt.payload
- pktRes = pktResult('Success',0,'None').convert2tuple()
- FinalRes = [pktRes,res]
- return json.dumps(FinalRes)
- except:
- pktRes = pktResult('Pkt build Failed',str(sys.exc_info()[0]),str(sys.exc_info()[1])).convert2tuple()
- res = [pktRes,{}]
- res = json.dumps(res)
- return res
-
-
-
-
-