blob: 07f92deccdb16d6f2a75083f06427748fcdf1a11 [file] [log] [blame]
anjana_sreekumar@infosys.com991c2062020-01-08 11:42:57 +05301/*
2 * Copyright 2019-present Infosys Limited  
3 *   
4 * SPDX-License-Identifier: Apache-2.0    
5 */
6/******************************************************************************
7 *
8 * This is an auto generated file.
9 * Please do not edit this file.
10 * All edits to be made through template source file
11 * <TOP-DIR/scripts/GtpV2StackCodeGen/tts/ietemplate.cpp.tt>
12 ******************************************************************************/
13
14#include "nodeIdentifierIe.h"
15#include "dataTypeCodecUtils.h"
16
17NodeIdentifierIe::NodeIdentifierIe()
18{
19 ieType = 176;
20 // TODO
21
22}
23
24NodeIdentifierIe::~NodeIdentifierIe() {
25 // TODO Auto-generated destructor stub
26}
27
28bool NodeIdentifierIe::encodeNodeIdentifierIe(MsgBuffer &buffer, NodeIdentifierIeData const &data)
29{
30 if (!(data.lengthOfNodeName!=0))
31 {
32 errorStream.add((char *)"Data validation failure: lengthOfNodeName\n");
33 return false;
34 }
35 if (!(buffer.writeUint8(data.lengthOfNodeName)))
36 {
37 errorStream.add((char *)"Encoding of lengthOfNodeName failed\n");
38 return false;
39 }
40 if (!(buffer.writeUint8(data.nodeName)))
41 {
42 errorStream.add((char *)"Encoding of nodeName failed\n");
43 return false;
44 }
45 if (!(data.lengthOfNodeRealm!=0))
46 {
47 errorStream.add((char *)"Data validation failure: lengthOfNodeRealm\n");
48 return false;
49 }
50 if (!(buffer.writeUint8(data.lengthOfNodeRealm)))
51 {
52 errorStream.add((char *)"Encoding of lengthOfNodeRealm failed\n");
53 return false;
54 }
55 if (!(buffer.writeUint8(data.nodeRealm)))
56 {
57 errorStream.add((char *)"Encoding of nodeRealm failed\n");
58 return false;
59 }
60
61 return true;
62}
63
64bool NodeIdentifierIe::decodeNodeIdentifierIe(MsgBuffer &buffer, NodeIdentifierIeData &data, Uint16 length)
65{
66 // TODO optimize the length checks
67
68 Uint16 ieBoundary = buffer.getCurrentIndex() + length;
69
70 buffer.readUint8(data.lengthOfNodeName);
71 if (buffer.getCurrentIndex() > ieBoundary)
72 {
73 errorStream.add((char *)"Attempt to read beyond IE boundary: lengthOfNodeName\n");
74 return false;
75 }
76 if (!(data.lengthOfNodeName!=0))
77 {
78 errorStream.add((char *)"Data validation failure : lengthOfNodeName\n");
79 return false; //TODO need to add validations
80 }
81
82 buffer.readUint8(data.nodeName);
83 if (buffer.getCurrentIndex() > ieBoundary)
84 {
85 errorStream.add((char *)"Attempt to read beyond IE boundary: nodeName\n");
86 return false;
87 }
88
89 buffer.readUint8(data.lengthOfNodeRealm);
90 if (buffer.getCurrentIndex() > ieBoundary)
91 {
92 errorStream.add((char *)"Attempt to read beyond IE boundary: lengthOfNodeRealm\n");
93 return false;
94 }
95 if (!(data.lengthOfNodeRealm!=0))
96 {
97 errorStream.add((char *)"Data validation failure : lengthOfNodeRealm\n");
98 return false; //TODO need to add validations
99 }
100
101 buffer.readUint8(data.nodeRealm);
102 if (buffer.getCurrentIndex() > ieBoundary)
103 {
104 errorStream.add((char *)"Attempt to read beyond IE boundary: nodeRealm\n");
105 return false;
106 }
107
108 // The IE is decoded now. The buffer index should be pointing to the
109 // IE Boundary. If not, we have some more data left for the IE which we don't know
110 // how to decode
111 if (ieBoundary == buffer.getCurrentIndex())
112 {
113 return true;
114 }
115 else
116 {
117 errorStream.add((char *)"Unable to decode IE NodeIdentifierIe\n");
118 return false;
119 }
120}
121void NodeIdentifierIe::displayNodeIdentifierIe_v(NodeIdentifierIeData const &data, Debug &stream)
122{
123 stream.incrIndent();
124 stream.add((char *)"NodeIdentifierIeData:");
125 stream.incrIndent();
126 stream.endOfLine();
127
128 stream.add((char *)"lengthOfNodeName: ");
129 stream.add(data.lengthOfNodeName);
130 stream.endOfLine();
131
132 stream.add((char *)"nodeName: ");
133 stream.add(data.nodeName);
134 stream.endOfLine();
135
136 stream.add((char *)"lengthOfNodeRealm: ");
137 stream.add(data.lengthOfNodeRealm);
138 stream.endOfLine();
139
140 stream.add((char *)"nodeRealm: ");
141 stream.add(data.nodeRealm);
142 stream.endOfLine();
143 stream.decrIndent();
144 stream.decrIndent();
145}