MME2 changes - Propped commits from openmme/paging branch. Added scripts
for code gen
Change-Id: Ie55032217232214ac8544ca76ea34335205329e4
diff --git a/src/gtpV2Codec/ieClasses/twanIdentifierIe.cpp b/src/gtpV2Codec/ieClasses/twanIdentifierIe.cpp
new file mode 100644
index 0000000..8e48ac1
--- /dev/null
+++ b/src/gtpV2Codec/ieClasses/twanIdentifierIe.cpp
@@ -0,0 +1,478 @@
+/*
+ * Copyright 2019-present Infosys Limited
+ *
+ * SPDX-License-Identifier: Apache-2.0
+ */
+/******************************************************************************
+ *
+ * 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.cpp.tt>
+ ******************************************************************************/
+
+#include "twanIdentifierIe.h"
+#include "dataTypeCodecUtils.h"
+
+TwanIdentifierIe::TwanIdentifierIe()
+{
+ ieType = 169;
+ // TODO
+
+}
+
+TwanIdentifierIe::~TwanIdentifierIe() {
+ // TODO Auto-generated destructor stub
+}
+
+bool TwanIdentifierIe::encodeTwanIdentifierIe(MsgBuffer &buffer, TwanIdentifierIeData const &data)
+{
+ buffer.skipBits(2);
+
+ if(!(buffer.writeBits(data.laiipresent, 1)))
+ {
+ errorStream.add((char *)"Encoding of laiipresent failed\n");
+ return false;
+ }
+ if(!(buffer.writeBits(data.opnaipresent, 1)))
+ {
+ errorStream.add((char *)"Encoding of opnaipresent failed\n");
+ return false;
+ }
+ if(!(buffer.writeBits(data.plmnipresent, 1)))
+ {
+ errorStream.add((char *)"Encoding of plmnipresent failed\n");
+ return false;
+ }
+ if(!(buffer.writeBits(data.civaipresent, 1)))
+ {
+ errorStream.add((char *)"Encoding of civaipresent failed\n");
+ return false;
+ }
+ if(!(buffer.writeBits(data.bssidipresent, 2)))
+ {
+ errorStream.add((char *)"Encoding of bssidipresent failed\n");
+ return false;
+ }
+ if (!(buffer.writeUint64(data.ssidLength)))
+ {
+ errorStream.add((char *)"Encoding of ssidLength failed\n");
+ return false;
+ }
+ if ( data.ssidLength <=32)
+ {
+ if (!(buffer.writeUint8(data.ssid)))
+ {
+ errorStream.add((char *)"Encoding of ssid failed\n");
+ return false;
+ }
+ }
+ if (data.bssidipresent)
+ {
+ if (!(buffer.writeUint8(data.bssid)))
+ {
+ errorStream.add((char *)"Encoding of bssid failed\n");
+ return false;
+ }
+ }
+ if (data.civaipresent)
+ {
+ if (!(buffer.writeUint8(data.civicAddressLength)))
+ {
+ errorStream.add((char *)"Encoding of civicAddressLength failed\n");
+ return false;
+ }
+ }
+ if (data.civaipresent)
+ {
+ if (!(buffer.writeUint8(data.civicAddressInformation)))
+ {
+ errorStream.add((char *)"Encoding of civicAddressInformation failed\n");
+ return false;
+ }
+ }
+ if (data.plmnipresent)
+ {
+ if (!(buffer.writeUint8(data.twanplmnid)))
+ {
+ errorStream.add((char *)"Encoding of twanplmnid failed\n");
+ return false;
+ }
+ }
+ if (data.opnaipresent)
+ {
+ if (!(buffer.writeUint8(data.twanOperatorNameLength)))
+ {
+ errorStream.add((char *)"Encoding of twanOperatorNameLength failed\n");
+ return false;
+ }
+ }
+ if (data.opnaipresent)
+ {
+ if (!(buffer.writeUint8(data.twanOperatorName)))
+ {
+ errorStream.add((char *)"Encoding of twanOperatorName failed\n");
+ return false;
+ }
+ }
+ if (data.laiipresent)
+ {
+ if (!(buffer.writeUint8(data.relayIdentityType)))
+ {
+ errorStream.add((char *)"Encoding of relayIdentityType failed\n");
+ return false;
+ }
+ }
+ if (data.laiipresent)
+ {
+ if (!(buffer.writeUint8(data.relayIdentityLength)))
+ {
+ errorStream.add((char *)"Encoding of relayIdentityLength failed\n");
+ return false;
+ }
+ }
+ if (data.laiipresent)
+ {
+ if (!(buffer.writeUint8(data.relayIdentity)))
+ {
+ errorStream.add((char *)"Encoding of relayIdentity failed\n");
+ return false;
+ }
+ }
+ if (data.laiipresent)
+ {
+ if (!(buffer.writeUint8(data.circuitIDLength)))
+ {
+ errorStream.add((char *)"Encoding of circuitIDLength failed\n");
+ return false;
+ }
+ }
+ if (data.laiipresent)
+ {
+ if (!(buffer.writeUint8(data.circuitID)))
+ {
+ errorStream.add((char *)"Encoding of circuitID failed\n");
+ return false;
+ }
+ }
+
+ return true;
+}
+
+bool TwanIdentifierIe::decodeTwanIdentifierIe(MsgBuffer &buffer, TwanIdentifierIeData &data, Uint16 length)
+{
+ // TODO optimize the length checks
+
+ Uint16 ieBoundary = buffer.getCurrentIndex() + length;
+ buffer.skipBits(2);
+ if (buffer.getCurrentIndex() > ieBoundary)
+ {
+ errorStream.add((char *)"Attempt to read beyond IE boundary: \n");
+ return false;
+ }
+
+ data.laiipresent = buffer.readBits(1);
+ // confirm that we are not reading beyond the IE boundary
+ if (buffer.getCurrentIndex() > ieBoundary)
+ {
+ errorStream.add((char *)"Attempt to read beyond IE boundary: laiipresent\n");
+ return false;
+ }
+ data.opnaipresent = buffer.readBits(1);
+ // confirm that we are not reading beyond the IE boundary
+ if (buffer.getCurrentIndex() > ieBoundary)
+ {
+ errorStream.add((char *)"Attempt to read beyond IE boundary: opnaipresent\n");
+ return false;
+ }
+ data.plmnipresent = buffer.readBits(1);
+ // confirm that we are not reading beyond the IE boundary
+ if (buffer.getCurrentIndex() > ieBoundary)
+ {
+ errorStream.add((char *)"Attempt to read beyond IE boundary: plmnipresent\n");
+ return false;
+ }
+ data.civaipresent = buffer.readBits(1);
+ // confirm that we are not reading beyond the IE boundary
+ if (buffer.getCurrentIndex() > ieBoundary)
+ {
+ errorStream.add((char *)"Attempt to read beyond IE boundary: civaipresent\n");
+ return false;
+ }
+ data.bssidipresent = buffer.readBits(2);
+ // confirm that we are not reading beyond the IE boundary
+ if (buffer.getCurrentIndex() > ieBoundary)
+ {
+ errorStream.add((char *)"Attempt to read beyond IE boundary: bssidipresent\n");
+ return false;
+ }
+
+ buffer.readUint64(data.ssidLength);
+ if (buffer.getCurrentIndex() > ieBoundary)
+ {
+ errorStream.add((char *)"Attempt to read beyond IE boundary: ssidLength\n");
+ return false;
+ }
+
+ if ( data.ssidLength <=32)
+ {
+
+ buffer.readUint8(data.ssid);
+ if (buffer.getCurrentIndex() > ieBoundary)
+ {
+ errorStream.add((char *)"Attempt to read beyond IE boundary: ssid\n");
+ return false;
+ }
+ }
+
+ if (data.bssidipresent)
+ {
+
+ buffer.readUint8(data.bssid);
+ if (buffer.getCurrentIndex() > ieBoundary)
+ {
+ errorStream.add((char *)"Attempt to read beyond IE boundary: bssid\n");
+ return false;
+ }
+ }
+
+ if (data.civaipresent)
+ {
+
+ buffer.readUint8(data.civicAddressLength);
+ if (buffer.getCurrentIndex() > ieBoundary)
+ {
+ errorStream.add((char *)"Attempt to read beyond IE boundary: civicAddressLength\n");
+ return false;
+ }
+ }
+
+ if (data.civaipresent)
+ {
+
+ buffer.readUint8(data.civicAddressInformation);
+ if (buffer.getCurrentIndex() > ieBoundary)
+ {
+ errorStream.add((char *)"Attempt to read beyond IE boundary: civicAddressInformation\n");
+ return false;
+ }
+ }
+
+ if (data.plmnipresent)
+ {
+
+ buffer.readUint8(data.twanplmnid);
+ if (buffer.getCurrentIndex() > ieBoundary)
+ {
+ errorStream.add((char *)"Attempt to read beyond IE boundary: twanplmnid\n");
+ return false;
+ }
+ }
+
+ if (data.opnaipresent)
+ {
+
+ buffer.readUint8(data.twanOperatorNameLength);
+ if (buffer.getCurrentIndex() > ieBoundary)
+ {
+ errorStream.add((char *)"Attempt to read beyond IE boundary: twanOperatorNameLength\n");
+ return false;
+ }
+ }
+
+ if (data.opnaipresent)
+ {
+
+ buffer.readUint8(data.twanOperatorName);
+ if (buffer.getCurrentIndex() > ieBoundary)
+ {
+ errorStream.add((char *)"Attempt to read beyond IE boundary: twanOperatorName\n");
+ return false;
+ }
+ }
+
+ if (data.laiipresent)
+ {
+
+ buffer.readUint8(data.relayIdentityType);
+ if (buffer.getCurrentIndex() > ieBoundary)
+ {
+ errorStream.add((char *)"Attempt to read beyond IE boundary: relayIdentityType\n");
+ return false;
+ }
+ }
+
+ if (data.laiipresent)
+ {
+
+ buffer.readUint8(data.relayIdentityLength);
+ if (buffer.getCurrentIndex() > ieBoundary)
+ {
+ errorStream.add((char *)"Attempt to read beyond IE boundary: relayIdentityLength\n");
+ return false;
+ }
+ }
+
+ if (data.laiipresent)
+ {
+
+ buffer.readUint8(data.relayIdentity);
+ if (buffer.getCurrentIndex() > ieBoundary)
+ {
+ errorStream.add((char *)"Attempt to read beyond IE boundary: relayIdentity\n");
+ return false;
+ }
+ }
+
+ if (data.laiipresent)
+ {
+
+ buffer.readUint8(data.circuitIDLength);
+ if (buffer.getCurrentIndex() > ieBoundary)
+ {
+ errorStream.add((char *)"Attempt to read beyond IE boundary: circuitIDLength\n");
+ return false;
+ }
+ }
+
+ if (data.laiipresent)
+ {
+
+ buffer.readUint8(data.circuitID);
+ if (buffer.getCurrentIndex() > ieBoundary)
+ {
+ errorStream.add((char *)"Attempt to read beyond IE boundary: circuitID\n");
+ return false;
+ }
+ }
+
+ // The IE is decoded now. The buffer index should be pointing to the
+ // IE Boundary. If not, we have some more data left for the IE which we don't know
+ // how to decode
+ if (ieBoundary == buffer.getCurrentIndex())
+ {
+ return true;
+ }
+ else
+ {
+ errorStream.add((char *)"Unable to decode IE TwanIdentifierIe\n");
+ return false;
+ }
+}
+void TwanIdentifierIe::displayTwanIdentifierIe_v(TwanIdentifierIeData const &data, Debug &stream)
+{
+ stream.incrIndent();
+ stream.add((char *)"TwanIdentifierIeData:");
+ stream.incrIndent();
+ stream.endOfLine();
+
+ stream.add( (char *)"laiipresent: ");
+ stream.add((Uint8)data.laiipresent);
+ stream.endOfLine();
+
+ stream.add( (char *)"opnaipresent: ");
+ stream.add((Uint8)data.opnaipresent);
+ stream.endOfLine();
+
+ stream.add( (char *)"plmnipresent: ");
+ stream.add((Uint8)data.plmnipresent);
+ stream.endOfLine();
+
+ stream.add( (char *)"civaipresent: ");
+ stream.add((Uint8)data.civaipresent);
+ stream.endOfLine();
+
+ stream.add( (char *)"bssidipresent: ");
+ stream.add((Uint8)data.bssidipresent);
+ stream.endOfLine();
+
+ stream.add((char *)"ssidLength: ");
+ stream.add(data.ssidLength);
+ stream.endOfLine();
+
+ if ( data.ssidLength <=32)
+ {
+ stream.add((char *)"ssid: ");
+ stream.add(data.ssid);
+ stream.endOfLine();
+ }
+
+ if (data.bssidipresent)
+ {
+ stream.add((char *)"bssid: ");
+ stream.add(data.bssid);
+ stream.endOfLine();
+ }
+
+ if (data.civaipresent)
+ {
+ stream.add((char *)"civicAddressLength: ");
+ stream.add(data.civicAddressLength);
+ stream.endOfLine();
+ }
+
+ if (data.civaipresent)
+ {
+ stream.add((char *)"civicAddressInformation: ");
+ stream.add(data.civicAddressInformation);
+ stream.endOfLine();
+ }
+
+ if (data.plmnipresent)
+ {
+ stream.add((char *)"twanplmnid: ");
+ stream.add(data.twanplmnid);
+ stream.endOfLine();
+ }
+
+ if (data.opnaipresent)
+ {
+ stream.add((char *)"twanOperatorNameLength: ");
+ stream.add(data.twanOperatorNameLength);
+ stream.endOfLine();
+ }
+
+ if (data.opnaipresent)
+ {
+ stream.add((char *)"twanOperatorName: ");
+ stream.add(data.twanOperatorName);
+ stream.endOfLine();
+ }
+
+ if (data.laiipresent)
+ {
+ stream.add((char *)"relayIdentityType: ");
+ stream.add(data.relayIdentityType);
+ stream.endOfLine();
+ }
+
+ if (data.laiipresent)
+ {
+ stream.add((char *)"relayIdentityLength: ");
+ stream.add(data.relayIdentityLength);
+ stream.endOfLine();
+ }
+
+ if (data.laiipresent)
+ {
+ stream.add((char *)"relayIdentity: ");
+ stream.add(data.relayIdentity);
+ stream.endOfLine();
+ }
+
+ if (data.laiipresent)
+ {
+ stream.add((char *)"circuitIDLength: ");
+ stream.add(data.circuitIDLength);
+ stream.endOfLine();
+ }
+
+ if (data.laiipresent)
+ {
+ stream.add((char *)"circuitID: ");
+ stream.add(data.circuitID);
+ stream.endOfLine();
+ }
+ stream.decrIndent();
+ stream.decrIndent();
+}