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

Class ProtocolHeader

extras/packetforge/ProtocolHeader.py:21–387  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

19
20
21class ProtocolHeader:
22 def __init__(self, node):
23 self.fields = []
24 self.attributes = []
25 self.fieldDict = {}
26 self.attributeDict = {}
27 self.Buffer = []
28 self.Mask = []
29
30 self.node = node
31 for field in self.node.fields:
32 phf = ProtocolHeaderField(field.Size, field.DefaultValue, None, field)
33 self.fields.append(phf)
34 if field.Name != "reserved":
35 self.fieldDict[field.Name] = phf
36
37 for attr in self.node.attributes:
38 pha = ProtocolHeaderAttribute(attr.Size, attr.DefaultValue, attr)
39 self.attributes.append(pha)
40 self.attributeDict[attr.Name] = pha
41
42 def Name(self):
43 return self.node.Name
44
45 def Fields(self):
46 return self.fields
47
48 def Attributes(self):
49 return self.attributes
50
51 def setField(self, name, expression, auto):
52 if name == "reserved":
53 return False
54
55 if name not in self.fieldDict:
56 return False
57
58 field = self.fieldDict[name]
59
60 if field.UpdateValue(expression, auto):
61 field.UpdateSize()
62 return True
63
64 return False
65
66 def SetField(self, name, expression):
67 return self.setField(name, expression, False)
68
69 def SetFieldAuto(self, name, expression):
70 return self.setField(name, expression, True)
71
72 def SetAttribute(self, name, expression):
73 if name not in self.attributeDict:
74 return False
75 attr = self.attributeDict[name]
76
77 return attr.UpdateValue(expression)
78

Callers 1

createProtocolHeaderMethod · 0.90

Calls

no outgoing calls

Tested by

no test coverage detected