1 # Copyright (c) 2022 Intel and/or its affiliates.
2 # Licensed under the Apache License, Version 2.0 (the "License");
3 # you may not use this file except in compliance with the License.
4 # You may obtain a copy of the License at:
6 # http://www.apache.org/licenses/LICENSE-2.0
8 # Unless required by applicable law or agreed to in writing, software
9 # distributed under the License is distributed on an "AS IS" BASIS,
10 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
11 # See the License for the specific language governing permissions and
12 # limitations under the License.
14 import ExpressionConverter
18 def __init__(self, Header, PacketBuffer, MaskBuffer):
20 self.PacketBuffer = PacketBuffer
21 self.MaskBuffer = MaskBuffer
25 result["Length"] = str(len(self.PacketBuffer))
26 result["Packet"] = ExpressionConverter.ByteArrayToString(self.PacketBuffer)
27 result["Mask"] = ExpressionConverter.ByteArrayToString(self.MaskBuffer)
28 result["Protocol Stack"] = []
30 for header in self.Headers:
32 head_info["name"] = header.Name()
33 head_info["Fields"] = []
34 for field in header.fields:
38 field_info["name"] = field.Field.Name
39 field_info["size"] = str(field.Size)
40 field_info["value"] = field.Value
41 field_info["mask"] = field.Mask
42 head_info["Fields"].append(field_info)
43 result["Protocol Stack"].append(head_info)