diff --git a/extras/packetforge/ProtocolHeaderAttribute.py b/extras/packetforge/ProtocolHeaderAttribute.py
new file mode 100644
index 0000000..fd9ea04
--- /dev/null
+++ b/extras/packetforge/ProtocolHeaderAttribute.py
@@ -0,0 +1,29 @@
+# Copyright (c) 2022 Intel and/or its affiliates.
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at:
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+import ExpressionConverter
+
+
+class ProtocolHeaderAttribute:
+    def __init__(self, Size, Value, Attribute):
+        self.Size = Size
+        self.Value = Value
+        self.Attribute = Attribute
+
+    def UpdateValue(self, expression):
+        ret, expression = ExpressionConverter.Verify(self.Attribute.Format, expression)
+        if not ret:
+            return False
+
+        self.Value = expression
+        return True
