blob: c8611a70ae351f9d65a190711f55ba766f86943d [file] [log] [blame]
Ting Xuce4b6452022-04-24 06:14:25 +00001# 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:
5#
6# http://www.apache.org/licenses/LICENSE-2.0
7#
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.
13
14import ExpressionConverter
15
16
17class ForgeResult:
18 def __init__(self, Header, PacketBuffer, MaskBuffer):
19 self.Headers = Header
20 self.PacketBuffer = PacketBuffer
21 self.MaskBuffer = MaskBuffer
22
23 def ToJSON(self):
24 result = {}
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"] = []
29
30 for header in self.Headers:
31 head_info = {}
32 head_info["name"] = header.Name()
33 head_info["Fields"] = []
34 for field in header.fields:
35 if field.Size == 0:
36 continue
37 field_info = {}
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)
44
45 return result