summaryrefslogtreecommitdiffstats
path: root/scripts/automation/trex_control_plane/stl/services/scapy_server/scapy_service.py
diff options
context:
space:
mode:
authorVyacheslav Ogai <vyacheslav.ogai@gmail.com>2016-12-01 00:49:31 +0200
committerHanoh Haim <hhaim@cisco.com>2016-12-19 16:04:07 +0200
commit3b576aafa0e71760741232a57fa3f66573b056e5 (patch)
tree319a39028386a94a295a4de2f71b11863353cc69 /scripts/automation/trex_control_plane/stl/services/scapy_server/scapy_service.py
parent720a1fa8295271a8445c6698ace31443aaf9214f (diff)
Added autocompletion support for offset parameter.
Signed-off-by: Vyacheslav Ogai <vyacheslav.ogai@gmail.com>
Diffstat (limited to 'scripts/automation/trex_control_plane/stl/services/scapy_server/scapy_service.py')
-rwxr-xr-xscripts/automation/trex_control_plane/stl/services/scapy_server/scapy_service.py22
1 files changed, 15 insertions, 7 deletions
diff --git a/scripts/automation/trex_control_plane/stl/services/scapy_server/scapy_service.py b/scripts/automation/trex_control_plane/stl/services/scapy_server/scapy_service.py
index 9598ea94..8212ec8d 100755
--- a/scripts/automation/trex_control_plane/stl/services/scapy_server/scapy_service.py
+++ b/scripts/automation/trex_control_plane/stl/services/scapy_server/scapy_service.py
@@ -795,19 +795,27 @@ class Scapy_service(Scapy_service_api):
def load_instruction_parameter_values(self, client_v_handler, pkt_model_descriptor, vm_instructions_model, parameter_id):
- given_protocol_ids = [proto['id'] for proto in pkt_model_descriptor]
+ given_protocol_ids = [str(proto['id']) for proto in pkt_model_descriptor]
+ values = {}
if parameter_id == "name":
- return self._curent_pkt_protocol_fields(given_protocol_ids, "_")
+ values = self._curent_pkt_protocol_fields(given_protocol_ids, "_")
+
if parameter_id == "fv_name":
- return self._existed_flow_var_names(vm_instructions_model['field_engine']['instructions'])
+ values = self._existed_flow_var_names(vm_instructions_model['field_engine']['instructions'])
+
if parameter_id == "pkt_offset":
- return self._curent_pkt_protocol_fields(given_protocol_ids, ".")
+ values = self._curent_pkt_protocol_fields(given_protocol_ids, ".")
+
+ if parameter_id == "offset":
+ for ip_idx in range(given_protocol_ids.count("IP")):
+ value = "IP:{0}".format(ip_idx)
+ values[value] = value
- return {}
+ return {"map": values}
def _existed_flow_var_names(self, instructions):
- return {"map": dict((instruction['parameters']['name'], instruction['parameters']['name']) for instruction in instructions if self._nameParamterExist(instruction))}
+ return dict((instruction['parameters']['name'], instruction['parameters']['name']) for instruction in instructions if self._nameParamterExist(instruction))
def _nameParamterExist(self, instruction):
try:
@@ -831,7 +839,7 @@ class Scapy_service(Scapy_service_api):
formatted_name = "{0}{1}{2}".format(protocol_name, delimiter, field_desc.name)
protocol_fields[formatted_name] = formatted_name
- return {"map": protocol_fields}
+ return protocol_fields
def _generate_vm_instructions(self, pkt, field_engine_model_descriptor):
self.field_engine_instruction_expressions = []