MCPcopy Create free account
hub / github.com/FDio/vpp / ParseStack

Function ParseStack

extras/packetforge/packetforge.py:170–194  ·  view source on GitHub ↗
(stack, fields)

Source from the content-addressed store, hash-verified

168
169# parse protocol headers and its fields. Available fields are defined in corresponding nodes.
170def ParseStack(stack, fields):
171 prot = stack["header"]
172 node_path = parsegraph_path + "/nodes/" + prot + ".json"
173 if not os.path.exists(node_path):
174 print("error file not exist '%s' " % (node_path))
175 return None
176 f = open(node_path, "r", encoding="utf-8")
177 nodeinfo = json.load(f)
178 for field in fields:
179 fld_name = field.split("=")[0].strip()
180 fld_value = (
181 field.split("=")[-1].strip() if (len(field.split("=")) >= 2) else None
182 )
183 for item in nodeinfo["layout"]:
184 if fld_name == item["name"]:
185 mask = GetMask(item)
186 stack["fields"].append(
187 {"name": fld_name, "value": fld_value, "mask": mask}
188 )
189 break
190 if not stack["fields"]:
191 print("warning: invalid field '%s'" % (fld_name))
192 return None
193
194 return stack
195
196
197def ParsePattern(pattern):

Callers 1

ParseFieldsFunction · 0.85

Calls 3

printFunction · 0.85
GetMaskFunction · 0.85
appendMethod · 0.80

Tested by

no test coverage detected