Add field engine instructions templates metadata. 83/5183/1
authorVyacheslav Ogai <[email protected]>
Thu, 1 Dec 2016 10:46:03 +0000 (12:46 +0200)
committerHanoh Haim <[email protected]>
Mon, 19 Dec 2016 14:04:07 +0000 (16:04 +0200)
Signed-off-by: Vyacheslav Ogai <[email protected]>
scripts/automation/trex_control_plane/stl/services/scapy_server/field_engine.json
scripts/automation/trex_control_plane/stl/services/scapy_server/scapy_service.py

index b5356eb..85d10e6 100644 (file)
@@ -99,7 +99,7 @@
       "name": "Variable name",
       "type": "ENUM",
       "required": true,
-      "editable": false
+      "editable": true
     },
     {
       "id": "pkt_offset",
     }
   ],
   "supported_protocols": ["IP","TCP","UDP"],
+  "templates":[
+    {
+      "id": "simple_flow_var",
+      "name": "Simple variable",
+      "instructionIds": ["STLVmFlowVar", "STLVmWrFlowVar"]
+    },
+    {
+      "id": "rep_rand_var",
+      "name": "Repeatable random",
+      "instructionIds": ["STLVmFlowVarRepetableRandom", "STLVmWrFlowVar"]
+    }
+  ],
   "global_params_meta":[
     {
       "id": "cache_size",
index 8212ec8..63c8764 100755 (executable)
@@ -416,6 +416,7 @@ class Scapy_service(Scapy_service_api):
         self.field_engine_supported_protocols = {}
         self.instruction_parameter_meta_definitions = []
         self.field_engine_parameter_meta_definitions = []
+        self.field_engine_templates_definitions = []
         self.field_engine_instructions_meta = []
         self.field_engine_instruction_expressions = []
         self._load_definitions_from_json()
@@ -435,6 +436,7 @@ class Scapy_service(Scapy_service_api):
         self.instruction_parameter_meta_definitions = []
         self.field_engine_supported_protocols = {}
         self.field_engine_parameter_meta_definitions = []
+        self.field_engine_templates_definitions = []
         with open('field_engine.json', 'r') as f:
             metas = json.load(f)
             self.instruction_parameter_meta_definitions = metas["instruction_params_meta"]
@@ -442,6 +444,7 @@ class Scapy_service(Scapy_service_api):
             self._append_intructions_help()
             self.field_engine_supported_protocols = metas["supported_protocols"]
             self.field_engine_parameter_meta_definitions = metas["global_params_meta"]
+            self.field_engine_templates_definitions = metas["templates"]
 
 
     def _append_intructions_help(self):
@@ -978,7 +981,8 @@ class Scapy_service(Scapy_service_api):
         res = {"protocols": protocols,
                "feInstructionParameters": self.instruction_parameter_meta_definitions,
                "feInstructions": self.field_engine_instructions_meta,
-               "feParameters": self.field_engine_parameter_meta_definitions}
+               "feParameters": self.field_engine_parameter_meta_definitions,
+               "feTemplates": self.field_engine_templates_definitions}
         return res
 
     def get_payload_classes(self,client_v_handler, pkt_model_descriptor):