MME2 changes - Propped commits from openmme/paging branch. Added scripts
for code gen
Change-Id: Ie55032217232214ac8544ca76ea34335205329e4
diff --git a/src/gtpV2Codec/msgClasses/manual/gtpV2Message.cpp b/src/gtpV2Codec/msgClasses/manual/gtpV2Message.cpp
new file mode 100644
index 0000000..8fc7c73
--- /dev/null
+++ b/src/gtpV2Codec/msgClasses/manual/gtpV2Message.cpp
@@ -0,0 +1,63 @@
+ /*
+Copyright 2019-present Infosys Limited
+
+SPDX-License-Identifier: Apache-2.0
+
+*/
+
+
+
+#include "gtpV2Message.h"
+
+GtpV2Message::GtpV2Message() {
+ // TODO Auto-generated constructor stub
+
+}
+
+GtpV2Message::~GtpV2Message() {
+ // TODO Auto-generated destructor stub
+}
+
+void GtpV2Message::encodeHeader(MsgBuffer& buffer, GtpV2MessageHeader& msgHeader)
+{
+ buffer.writeBits(2, 3); // Gtpversion 2
+ buffer.writeBits(0, 1); //Pigiback - TODO later
+ buffer.writeBits(msgHeader.teidPresent, 1);
+ buffer.skipBits(3);
+
+ buffer.writeUint8(msgHeader.msgType);
+ buffer.writeUint16(msgHeader.msgLength);
+
+ if (msgHeader.teidPresent)
+ {
+ buffer.writeUint32(msgHeader.teid);
+ }
+
+ Uint32 seqNumber = msgHeader.sequenceNumber << 8;
+ std::cout << "current seq num indx is " << buffer.getCurrentIndex() << std::endl;
+ buffer.writeUint32(seqNumber);
+
+}
+
+bool GtpV2Message::decodeHeader(MsgBuffer& buffer, GtpV2MessageHeader& msgHeader)
+{
+ buffer.skipBits(4);
+ msgHeader.teidPresent = buffer.readBit();
+ buffer.skipBits(3);
+
+ buffer.readUint8(msgHeader.msgType);
+ buffer.readUint16(msgHeader.msgLength);
+
+ if (msgHeader.teidPresent)
+ {
+ buffer.readUint32(msgHeader.teid);
+ }
+ Uint32 seqNumber;
+
+ buffer.readUint32(seqNumber);
+ msgHeader.sequenceNumber = (seqNumber >> 8);
+
+ return true; //TODO
+
+}
+
diff --git a/src/gtpV2Codec/msgClasses/manual/gtpV2Message.h b/src/gtpV2Codec/msgClasses/manual/gtpV2Message.h
new file mode 100644
index 0000000..4ef856b
--- /dev/null
+++ b/src/gtpV2Codec/msgClasses/manual/gtpV2Message.h
@@ -0,0 +1,29 @@
+ /*
+Copyright 2019-present Infosys Limited
+
+SPDX-License-Identifier: Apache-2.0
+
+*/
+
+
+
+#ifndef GTPV2MESSAGE_H_
+#define GTPV2MESSAGE_H_
+
+#include "basicTypes.h"
+#include "msgBuffer.h"
+#include "../../../gtpV2Codec/msgClasses/gtpV2MsgDataTypes.h"
+
+class GtpV2Message {
+public:
+ GtpV2Message();
+ virtual ~GtpV2Message();
+ static void encodeHeader(MsgBuffer& buffer, GtpV2MessageHeader& msgHeader);
+ static bool decodeHeader(MsgBuffer& buffer, GtpV2MessageHeader& msgHeader);
+
+protected:
+ Uint8 msgType;
+};
+
+#endif /* GTPV2MESSAGE_H_ */
+