NetSim Source Code Help v14.4
All 13 Components
 
Loading...
Searching...
No Matches
LTENR_NAS.h
1#pragma once
2/************************************************************************************
3* Copyright (C) 2023 *
4* TETCOS, Bangalore. India *
5* *
6* Tetcos owns the intellectual property rights in the Product and its content. *
7* The copying, redistribution, reselling or publication of any or all of the *
8* Product or its content without express prior written consent of Tetcos is *
9* prohibited. Ownership and / or any other right relating to the software and all *
10* intellectual property rights therein shall remain at all times with Tetcos. *
11* *
12* This source code is licensed per the NetSim license agreement. *
13* *
14* No portion of this source code may be used as the basis for a derivative work, *
15* or used, for any purpose other than its intended use per the NetSim license *
16* agreement. *
17* *
18* This source code and the algorithms contained within it are confidential trade *
19* secrets of TETCOS and may not be used as the basis for any other software, *
20* hardware, product or service. *
21* *
22* Author: Kumar Gaurav *
23* *
24* ----------------------------------------------------------------------------------*/
25#pragma region HEADER_FILES
26#include "stdafx.h"
27#include "LTENR_GNBRRC.h"
28#pragma endregion
29
30#pragma region ENUM
31
32typedef enum enum_LTENR_NAS_HANDOVER_TYPE {
33 HANDOVER_TYPE_INTRA_LTENR,
34 HANDOVER_TYPE_INTER_LTENR,
35 HANDOVER_TYPE_INTER_RAT,
36}LTENR_NAS_HANDOVER_TYPE;
37static const char* strLTENR_NAS_HANDOVER_TYPE[] = {
38 "INTRA_LTENR","INTER_LTENR","INTER_RAT"
39};
40typedef enum enum_LTENR_NAS_HANDOVER_REQUEST_CAUSE {
41 HANDOVER_CAUSE_RADIO_NETWORK,
42 HANDOVER_CAUSE_TRANSPORT,
43 HANDOVER_CAUSE_NAS,
44 HANDOVER_CAUSE_PROTOCOL,
45 HANDOVER_CAUSE_MISC,
46}LTENR_NAS_HANDOVER_REQUEST_CAUSE;
47static const char* strLTENR_NAS_HANDOVER_REQUEST_CAUSE[] = {
48 "RADIO_NETWORK","TRANSPORT","NAS","PROTOCOL","MISC"
49};
50typedef enum enum_LTENR_NAS_HANDOVER_OUTCOME {
51 HANDOVER_OUTCOME_SUCESSFUL,
52 HANDOVER_OUTCOME_UNSUCESSFUL,
53 HANDOVER_OUTCOME_UNAVAILABLE,
54 HANDOVER_OUTCOME_UE_LOST,
55}LTENR_NAS_HANDOVER_OUTCOME;
56static const char* strLTENR_NAS_HANDOVER_OUTCOME[] = {
57 "SUCCESSFUL","UNSUCCESSFUL","UNAVAILABLE","UE_LOST"
58};
59typedef enum enum_LTENR_NAS_CELL_TYPE {
60 CELL_TYPE_SMALL,
61 CELL_TYPE_MEDIUM,
62 CELL_TYPE_LARGE,
63}LTENR_NAS_CELL_TYPE;
64static const char* strLTENR_NAS_CELL_TYPE[] = {
65 "SMALL","MEDIUM","LARGE"
66};
67typedef enum enum_LTENR_NAS_UECONTEXTRELEASE_STATUS {
68 UECONTEXTRELEASE_STATUS_SUCESSFUL,
69 UECONTEXTRELEASE_STATUS_UNSUCESSFUL,
70}LTENR_NAS_UECONTEXTRELEASE_STATUS;
71static const char* strLTENR_NAS_UECONTEXTRELEASE_STATUS[] = {
72 "SUCCESSFUL","UNSUCCESSFUL"
73};
74#pragma endregion
75
76#pragma region STRUCTURE
78 NETSIM_ID MME_UE_ID;//Association Id
79 LTENR_NAS_HANDOVER_TYPE type;
80 LTENR_NAS_HANDOVER_REQUEST_CAUSE cause;
81 NETSIM_ID targetID;
82 NETSIM_ID lastVisitedCellID;
83 LTENR_NAS_CELL_TYPE LastVisitedCellType;
84}LTENR_NAS_HANDOVER_REQUEST, * ptrLTENR_NAS_HANDOVER_REQUEST;
85
87 NETSIM_ID MME_UE_ID;
88 NETSIM_ID GNB_UE_ID;
89 LTENR_NAS_HANDOVER_OUTCOME outCome;
90}LTENR_NAS_HANDOVER_REQUEST_ACK, * ptrLTENR_NAS_HANDOVER_REQUEST_ACK;
91
93 NETSIM_ID MME_UE_ID;//Association Id
94 LTENR_NAS_HANDOVER_TYPE type;
95 NETSIM_IPAddress E_RADataForwading_DL_TransportLayerAddress;
96 //reconfig have to add
97}LTENR_NAS_HANDOVER_COMMAND, * ptrLTENR_NAS_HANDOVER_COMMAND;
98
100 NETSIM_ID mme_UE_ID;//Association Id
101 NETSIM_ID gnb_UE_ID;
102 LTENR_NAS_HANDOVER_REQUEST_CAUSE cause;
103}LTENR_NAS_UECONTEXTRELEASEREQUEST, * ptrLTENR_NAS_UECONTEXTRELEASEREQUEST;
104
106 NETSIM_ID ueID;
107 LTENR_NAS_HANDOVER_REQUEST_CAUSE cause;
108 LTENR_NAS_HANDOVER_OUTCOME outCome;
109}LTENR_NAS_UECONTEXTRELEASECOMMAND, * ptrLTENR_NAS_UECONTEXTRELEASECOMMAND;
110
112 NETSIM_ID mme_UE_ID;
113 NETSIM_ID gnb_UE_ID;
114 LTENR_NAS_UECONTEXTRELEASE_STATUS status;
115}LTENR_NAS_UECONTEXTRELEASECOMPLETE, * ptrLTENR_NAS_UECONTEXTRELEASECOMPLETE;
116
118 NETSIM_ID targetGNBID;
119 NETSIM_ID associatedEPCtoTarget;
120}LTENR_NAS_PATH_SWITCH_REQUEST, * ptrLTENR_NAS_PATH_SWITCH_REQUEST;
121
123 NETSIM_ID targetGNBID;
124 NETSIM_ID associatedEPCtoTarget;
125}LTENR_NAS_PATH_SWITCH_REQUEST_ACK, * ptrLTENR_NAS_PATH_SWITCH_REQUEST_ACK;
126
128 LTENR_MSGTYPE msgType;
129 void* msg;
130 void* apphdr;
131 NETSIM_ID serveringCellID;
132 NETSIM_ID serveringCellIF;
133 NETSIM_ID targetCellID;
134 NETSIM_ID targetCellIF;
135 NETSIM_ID UEID;
136 NETSIM_ID UEIF;
137 NETSIM_ID AMFID;
138 NETSIM_ID AMFIF;
139 NETSIM_ID targetAMFID;
140 NETSIM_ID targetAMFIF;
141 NETSIM_ID associateSMFID;
142 double HandoverStartTime;
143 double HandoverCompleteTime;
144}LTENR_HANDOVER_Hdr, * ptrLTENR_HANDOVER_Hdr;
145#pragma endregion
146
147#pragma region FUN_DEF
148
149void fn_NetSim_LTENR_NAS_HANDOVER_REQUEST(ptrLTENR_HANDOVER_Hdr msg);
150void fn_NetSim_LTENR_NAS_GENERATE_HANDOVER_REQUEST_RECV(ptrLTENR_HANDOVER_Hdr hdr);
151void fn_NetSim_LTENR_NAS_HANDOVER_COMMAND(ptrLTENR_HANDOVER_Hdr hdr);
152void fn_NetSIm_LTENR_NAS_ADD_HDR_INTO_PACKET(NetSim_PACKET* packet, ptrLTENR_HANDOVER_Hdr hdr, UINT hdrID, LTENR_MSGTYPE type);
153ptrLTENR_HANDOVER_Hdr LTENR_NAS_HDR_GET(NetSim_PACKET* packet, UINT hdrID);
154void LTENR_NAS_HDR_REMOVE(NetSim_PACKET* packet, UINT hdrID);
155
156void LTENR_HANDOVER_REQUEST(ptrLTENR_HANDOVER_Hdr hdr);
157void LTENR_HANDOVER_UE_CONTEXT_RELEASE(ptrLTENR_HANDOVER_Hdr hdr);
158
159void LTENR_NAS_HANDOVER_REQUEST_FREEHDR(ptrLTENR_HANDOVER_Hdr hdr);
160void LTENR_NASUE_CONTEXT_RELEASE_ACK_FREEHDR(ptrLTENR_HANDOVER_Hdr hdr);
161void LTENR_NASUE_CONTEXT_RELEASE_FREEHDR(ptrLTENR_HANDOVER_Hdr hdr);
162void LTENR_NAS_PATH_SWTICH_ACK_FREEHDR(ptrLTENR_HANDOVER_Hdr hdr);
163void LTENR_NAS_PATH_SWITCH_FREEHDR(ptrLTENR_HANDOVER_Hdr hdr);
164void LTENR_NAS_HANDOVER_COMMAND_FREEHDR(ptrLTENR_HANDOVER_Hdr hdr);
165void LTENR_NAS_HANDOVER_REUQEST_ACK_FREEHDR(ptrLTENR_HANDOVER_Hdr hdr);
166
167ptrLTENR_HANDOVER_Hdr LTENR_NAS_HANDOVER_REQUEST_COPY(ptrLTENR_HANDOVER_Hdr hdr);
168ptrLTENR_HANDOVER_Hdr LTENR_NAS_HANDOVER_COMMAND_COPY(ptrLTENR_HANDOVER_Hdr hdr);
169ptrLTENR_HANDOVER_Hdr LTENR_NAS_PATH_SWITCH_ACK_COPY(ptrLTENR_HANDOVER_Hdr hdr);
170ptrLTENR_HANDOVER_Hdr LTENR_NAS_PATH_SWITCH_COPY(ptrLTENR_HANDOVER_Hdr hdr);
171
172void LTENR_NAS_HANDOVER_REQUEST_TRACE(ptrLTENR_HANDOVER_Hdr hdr, char* s);
173void LTENR_NAS_HANDOVER_REUQEST_ACK_TRACE(ptrLTENR_HANDOVER_Hdr hdr, char* s);
174void LTENR_NAS_HANDOVER_COMMAND_TRACE(ptrLTENR_HANDOVER_Hdr hdr, char* s);
175void LTENR_NAS_PATH_SWITCH_TRACE(ptrLTENR_HANDOVER_Hdr hdr, char* s);
176void LTENR_NAS_PATH_SWITCH_ACK_TRACE(ptrLTENR_HANDOVER_Hdr hdr, char* s);
177void LTENR_NAS_UE_CONTEXT_RELEASE_TRACE(ptrLTENR_HANDOVER_Hdr hdr, char* s);
178void LTENR_NAS_UE_CONTEXT_RELEASE_ACK_TRACE(ptrLTENR_HANDOVER_Hdr hdr, char* s);
179void fn_NetSim_LTENR_NAS_RLC_GNB_BUFFER_TRANSFER(NETSIM_ID d, NETSIM_ID in,
180 NETSIM_ID r, NETSIM_ID rin,
181 NETSIM_ID t, NETSIM_ID tin);
182void fn_NetSim_LTENR_NAS_RLC_UE_BUFFER_TRANSFER(NETSIM_ID d, NETSIM_ID in,
183 NETSIM_ID r, NETSIM_ID rin,
184 NETSIM_ID t, NETSIM_ID tin);
185void fn_NetSim_LTENR_NAS_PDCP_BUFFER_TRANSFER(ptrLTENR_PDCPENTITY ser, ptrLTENR_PDCPENTITY tar, int flag);
186
187#pragma endregion