diff --git a/src/gtpV2Codec/ieClasses/henbInformationReportingIe.h b/src/gtpV2Codec/ieClasses/henbInformationReportingIe.h
new file mode 100644
index 0000000..1c16062
--- /dev/null
+++ b/src/gtpV2Codec/ieClasses/henbInformationReportingIe.h
@@ -0,0 +1,42 @@
+/*
+ * Copyright 2019-present, Infosys Limited.
+ *
+ * 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.
+ */
+ /******************************************************************************
+ *
+ * This is an auto generated file.
+ * Please do not edit this file.
+ * All edits to be made through template source file
+ * <TOP-DIR/scripts/GtpV2StackCodeGen/tts/ietemplate.h.tt>
+ ******************************************************************************/
+#ifndef HENBINFORMATIONREPORTINGIE_H_
+#define HENBINFORMATIONREPORTINGIE_H_
+
+#include "manual/gtpV2Ie.h"
+
+
+
+class HenbInformationReportingIe: public GtpV2Ie {
+public:
+    HenbInformationReportingIe();
+    virtual ~HenbInformationReportingIe();
+
+    bool encodeHenbInformationReportingIe(MsgBuffer &buffer,
+                 HenbInformationReportingIeData const &data);
+    bool decodeHenbInformationReportingIe(MsgBuffer &buffer,
+                 HenbInformationReportingIeData &data, Uint16 length);
+    void displayHenbInformationReportingIe_v(HenbInformationReportingIeData const &data,
+                 Debug &stream);
+};
+
+#endif /* HENBINFORMATIONREPORTINGIE_H_ */
\ No newline at end of file
