NetSim Source Code Help
Loading...
Searching...
No Matches
LTENR_Msg.h
Go to the documentation of this file.
1#pragma once
2/************************************************************************************
3* Copyright (C) 2021 *
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: Shashi Kant Suman *
23* *
24* ----------------------------------------------------------------------------------*/
25#ifndef _NETSIM_LTENR_MSG_H_
26#define _NETSIM_LTENR_MSG_H_
27
28#ifdef __cplusplus
29extern "C" {
30#endif
31
32#pragma region MACROS
33#define LTENR_HDRTYPE_MAX 100 //Read-only
34#define IPV4_HEADER_SIZE 20
35#pragma endregion
36
37#pragma region MSG_TYPE
38 typedef enum enum_LTENR_MSGTYPE
39 {
40
41 //RRC
52 //NAS
61 //RLC
66 //CORE
79
80 //DC
83
84 //SN_HANDOVER
94
96 LTENR_MSG_LAST, //Keep me at last
98 static const char* strLTENR_MSGTYPE[] = { "RRC_MIB","RRC_SIB1","RRC_SI","RRC_SETUP_REQUEST","RRC_SETUP","RRC_SETUP_COMPLETE","UE_MEASUREMENT_REPORT",
99 "RRC_REESTABLISHMENT_REQUEST","RRC_REESTABLISHMENT","RRC_RECONFIGURATION","HANDOVER_REQUEST","HANDOVER_REQUEST_ACK","HANDOVER_COMMAND","PATH_SWITCH","PATH_SWICTH_ACK",
100 "UE_CONTEXT_RELEASE","UE_CONTEXT_RELEASE_ACK","HANDOVER_COMPLETE","STATUSPDU","TMDPDU","UMDPDU","AMDPDU",
101 "INITIAL_UE_MSG_AND_REGISTRATION_REQUEST","CREATE_SESSION_REQUEST","CREATE_SESSION_RESPONSE","INITIAL_CONTEXT_SETUP_REQUEST",
102 "INITIAL_CONTEXT_SETUP_RESPONSE_REGISTRATION_COMPLETE", "REGISTRATION_COMPLETE","NSMF_PDUSESSION_UPDATESMCONTEXT_REQUSET",
103 "NSMF_PDUSESSION_UPDATESMCONTEXT_RESPONSE","PFCP_SESSION_REQUSET","PFCP_SESSION_RESPONSE","MODIFY_BEARER_REQUEST",
104 "MODIFY_BEARER_RESPONSE", "DC_SEC_CELL_ADDITION_REQUEST", "DC_SEC_CELL_ADDITION_RESPONSE",
105 "DC_HO_SEC_CELL_CHANGE_REQUEST","DC_HO_SEC_CELL_ADDITION_REQUEST","DC_HO_SEC_CELL_ADDITION_REQUEST_ACK",
106 "DC_HO_SEC_CELL_RELEASE_REQUEST","DC_HO_SEC_CELL_RELEASE_REQUEST_ACK","DC_HO_SEC_CELL_PATH_SWITCH",
107 "DC_HO_SEC_CELL_PATH_SWITCH_ACK","DC_HO_SEC_CELL_UE_CONTEXT_RELEASE","DC_HO_SEC_CELL_UE_CONTEXT_RELEASE_ACK","UserData","Unknown" };
108#pragma endregion
109
110#pragma region LTENR_HEADER
111 typedef struct stru_LTENR_HDR
112 {
115 void* hdr;
118#pragma endregion
119
120#pragma region LTENR_MSG_AND_ITS_API
121 typedef struct stru_LTENR_MSG
122 {
124
127
132
135#define LTENR_MSG_GET(packet) ((ptrLTENR_MSG)(packet->pstruMacData->Packet_MACProtocol))
136#define LTENR_IS_UPLANE_MSG(packet) ((LTENR_MSG_GET(packet) == NULL) || (LTENR_MSG_GET(packet)->msgType == LTENR_MSG_USERDATA))
137
138#define LTENR_PACKET_GET_LOGICALCHANNEL(packet) (LTENR_MSG_GET(packet)->logicalChannel)
139#define LTENR_PACKET_SET_LOGICALCHANNEL(packet,channel) (LTENR_MSG_GET(packet)->logicalChannel = channel)
140#define LTENR_PACKET_GET_TRANSPORTCHANNEL(packet) (LTENR_MSG_GET(packet)->transportChannel)
141#define LTENR_PACKET_SET_TRANSPORTCHANNEL(packet,channel) (LTENR_MSG_GET(packet)->transportChannel = channel)
142#define LTENR_PACKET_GET_PHYSICALCHANNEL(packet) (LTENR_MSG_GET(packet)->physicalChannel)
143#define LTENR_PACKET_SET_PHYSICALCHANNEL(packet,channel) (LTENR_MSG_GET(packet)->physicalChannel = channel)
144
145#define LTENR_PACKET_SET_RLCMODE(packet,mode) (LTENR_MSG_GET(packet)->rlcMode = mode)
146#define LTENR_PACKET_GET_RLCMODE(packet) (LTENR_MSG_GET(packet)->rlcMode)
147#pragma endregion
148
149#pragma region MSG_FUN_DEF
154#pragma endregion
155
156#pragma region HEADER_HANDLER_AND_ITS_APIS
158 {
160 char* hdrName;
161 void(*fnHandler)();
162 void*(*fnCopyHdr)(void*);
163 void(*fnFreeHdr)();
164 void(*fnTraceWriter)(void*, char*);
167 void(*fnHandler)(),
168 void*(*fnCopy)(void*),
169 void(*fnFree)(void*),
170 void(*fnTraceWriter)(void*, char*));
171#pragma endregion
172
173#pragma region FUN_DEF
175 void* hdr,
176 UINT type,
177 UINT size);
179 void* hdr,
180 UINT type,
181 UINT size,
182 LTENR_MSGTYPE msgType);
184 void* hdr,
185 UINT type,
186 UINT size,
187 LTENR_MSGTYPE msgType);
189 void* hdr,
190 UINT type,
191 UINT size,
192 LTENR_MSGTYPE msgType);
194 UINT type);
196 UINT type);
198 UINT type);
200 UINT type);
202 UINT type);
204 UINT type);
206 UINT type,
207 UINT size);
208
209 // LTENR_PACKET
211 double time, LTENR_MSGTYPE type);
212#pragma endregion
213
214#ifdef __cplusplus
215}
216#endif // __cplusplus
217#endif //_NETSIM_LTENR_MSG_H_
unsigned int NETSIM_ID
Definition: Animation.h:45
enum enum_LTENR_RLCMode LTENR_RLCMODE
enum enum_LTENR_TransportChannel LTENR_TRANSPORTCHANNEL
enum enum_LTENR_PhysicalChannel LTENR_PHYSICALCHANNEL
enum enum_LTENR_LogicalChannel LTENR_LOGICALCHANNEL
enum enum_LTENR_SRB LTENR_SRB
struct stru_LTENR_MSG * ptrLTENR_MSG
struct stru_LTENR_MSG LTENR_MSG
void LTENR_HDR_FREE_FROM_PACKET(NetSim_PACKET *packet, UINT type)
void LTENR_HDR_ADD_TO_PACKET(NetSim_PACKET *packet, void *hdr, UINT type, UINT size)
void LTENR_CORE_HDR_FREE_FROM_PACKET(NetSim_PACKET *packet, UINT type)
void * LTENR_HANDOVER_HDR_GET_FROM_PACKET(NetSim_PACKET *packet, UINT type)
NetSim_PACKET * LTENR_PACKET_CREATE(NETSIM_ID src, NETSIM_ID dest, double time, LTENR_MSGTYPE type)
struct stru_LTENR_HDRHANDLER * ptrLTENR_HDRHANDLER
void LTENR_HANDOVER_HDR_ADD_TO_PACKET(NetSim_PACKET *packet, void *hdr, UINT type, UINT size, LTENR_MSGTYPE msgType)
void * LTENR_CORE_HDR_GET_FROM_PACKET(NetSim_PACKET *packet, UINT type)
ptrLTENR_MSG LTENR_MSG_CREATE(LTENR_MSGTYPE type)
void LTENR_CORE_HDR_ADD_TO_PACKET(NetSim_PACKET *packet, void *hdr, UINT type, UINT size, LTENR_MSGTYPE msgType)
void * LTENR_HDR_GET_FROM_PACKET(NetSim_PACKET *packet, UINT type)
enum enum_LTENR_MSGTYPE LTENR_MSGTYPE
enum_LTENR_MSGTYPE
Definition: LTENR_Msg.h:39
@ LTENR_MSG_CORE_NSMF_PDUSESSION_UPDATESMCONTEXT_RESPONSE
Definition: LTENR_Msg.h:74
@ LTENR_MSG_CORE_INITIAL_CONTEXT_SETUP_REQUEST
Definition: LTENR_Msg.h:70
@ LTENR_MSG_CORE_PFCP_SESSION_RESPONSE
Definition: LTENR_Msg.h:76
@ LTENR_MSG_NAS_HANDOVER_REQUEST_ACK
Definition: LTENR_Msg.h:54
@ LTENR_MSG_NAS_HANDOVER_COMMAND
Definition: LTENR_Msg.h:55
@ LTENR_MSG_CORE_MODIFY_BEARER_RESPONSE
Definition: LTENR_Msg.h:78
@ LTENR_MSG_DC_SEC_CELL_ADDITION_REQUEST
Definition: LTENR_Msg.h:81
@ LTENR_MSG_CORE_INITIAL_CONTEXT_SETUP_RESPONSE
Definition: LTENR_Msg.h:71
@ LTENR_MSG_DC_HO_SEC_CELL_CHANGE_REQUEST
Definition: LTENR_Msg.h:85
@ LTENR_MSG_DC_HO_SEC_CELL_PATH_SWITCH
Definition: LTENR_Msg.h:90
@ LTENR_MSG_RLC_UMDPDU
Definition: LTENR_Msg.h:64
@ LTENR_MSG_RRC_REESTABLISHMENT_REQUEST
Definition: LTENR_Msg.h:49
@ LTENR_MSG_DC_HO_SEC_CELL_PATH_SWITCH_ACK
Definition: LTENR_Msg.h:91
@ LTENR_MSG_DC_HO_SEC_CELL_RELEASE_REQUEST
Definition: LTENR_Msg.h:88
@ LTENR_MSG_RLC_TMDPDU
Definition: LTENR_Msg.h:63
@ LTENR_MSG_DC_HO_SEC_CELL_ADDITION_REQUEST_ACK
Definition: LTENR_Msg.h:87
@ LTENR_MSG_RRC_UE_MEASUREMENT_REPORT
Definition: LTENR_Msg.h:48
@ LTENR_MSG_CORE_PFCP_SESSION_REQUSET
Definition: LTENR_Msg.h:75
@ LTENR_MSG_RLC_AMDPDU
Definition: LTENR_Msg.h:65
@ LTENR_MSG_NAS_HANDOVER_COMPLETE
Definition: LTENR_Msg.h:60
@ LTENR_MSG_RRC_SIB1
Definition: LTENR_Msg.h:43
@ LTENR_MSG_RLC_STATUSPDU
Definition: LTENR_Msg.h:62
@ LTENR_MSG_NAS_HANDOVER_UE_CONTEXT_RELEASE_ACK
Definition: LTENR_Msg.h:59
@ LTENR_MSG_DC_HO_SEC_CELL_RELEASE_REQUEST_ACK
Definition: LTENR_Msg.h:89
@ LTENR_MSG_CORE_NSMF_PDUSESSION_UPDATESMCONTEXT_REQUSET
Definition: LTENR_Msg.h:73
@ LTENR_MSG_RRC_REESTABLISHMENT
Definition: LTENR_Msg.h:50
@ LTENR_MSG_DC_HO_SEC_CELL_UE_CONTEXT_RELEASE
Definition: LTENR_Msg.h:92
@ LTENR_MSG_NAS_HANDOVER_UE_CONTEXT_RELEASE
Definition: LTENR_Msg.h:58
@ LTENR_MSG_RRC_SETUP_COMPLETE
Definition: LTENR_Msg.h:47
@ LTENR_MSG_USERDATA
Definition: LTENR_Msg.h:95
@ LTENR_MSG_NAS_HANDOVER_PATH_SWITCH_ACK
Definition: LTENR_Msg.h:57
@ LTENR_MSG_RRC_RECONFIGURATION
Definition: LTENR_Msg.h:51
@ LTENR_MSG_CORE_CREATE_SESSION_REQUEST
Definition: LTENR_Msg.h:68
@ LTENR_MSG_RRC_SI
Definition: LTENR_Msg.h:44
@ LTENR_MSG_DC_HO_SEC_CELL_ADDITION_REQUEST
Definition: LTENR_Msg.h:86
@ LTENR_MSG_CORE_MODIFY_BEARER_REQUEST
Definition: LTENR_Msg.h:77
@ LTENR_MSG_RRC_SETUP_REQUEST
Definition: LTENR_Msg.h:45
@ LTENR_MSG_DC_HO_SEC_CELL_UE_CONTEXT_RELEASE_ACK
Definition: LTENR_Msg.h:93
@ LTENR_MSG_CORE_CREATE_SESSION_RESPONSE
Definition: LTENR_Msg.h:69
@ LTENR_MSG_RRC_MIB
Definition: LTENR_Msg.h:42
@ LTENR_MSG_DC_SEC_CELL_ADDITION_RESPONSE
Definition: LTENR_Msg.h:82
@ LTENR_MSG_CORE_INITIAL_UE_MESSAGE
Definition: LTENR_Msg.h:67
@ LTENR_MSG_CORE_REGISTRATION_COMPLETE
Definition: LTENR_Msg.h:72
@ LTENR_MSG_NAS_HANDOVER_REQUEST
Definition: LTENR_Msg.h:53
@ LTENR_MSG_NAS_HANDOVER_PATH_SWITCH
Definition: LTENR_Msg.h:56
@ LTENR_MSG_RRC_SETUP
Definition: LTENR_Msg.h:46
@ LTENR_MSG_LAST
Definition: LTENR_Msg.h:96
void LTENR_MSG_FREE(NetSim_PACKET *packet)
ptrLTENR_MSG LTENR_MSG_APP_COPY(const NetSim_PACKET *packet)
ptrLTENR_HDR LTENR_HDR_NEW(void *hdr, UINT type, UINT size)
void LTENR_HANDOVER_HDR_FREE_FROM_PACKET(NetSim_PACKET *packet, UINT type)
struct stru_LTENR_HDR * ptrLTENR_HDR
UINT LTENR_HDR_REGISTER(char *name, void(*fnHandler)(), void *(*fnCopy)(void *), void(*fnFree)(void *), void(*fnTraceWriter)(void *, char *))
void LTENR_RRC_HDR_ADD_TO_PACKET(NetSim_PACKET *packet, void *hdr, UINT type, UINT size, LTENR_MSGTYPE msgType)
static const char * strLTENR_MSGTYPE[]
Definition: LTENR_Msg.h:98
struct stru_LTENR_HDR LTENR_HDR
ptrLTENR_MSG LTENR_MSG_COPY(const NetSim_PACKET *packet)
struct stru_LTENR_HDRHANDLER LTENR_HDRHANDLER
#define UINT
Definition: Linux.h:38
@ MAC_PROTOCOL_LTE_NR
Definition: Stack.h:220
void(* fnTraceWriter)(void *, char *)
Definition: LTENR_Msg.h:164
struct stru_LTENR_HDR * next
Definition: LTENR_Msg.h:116
LTENR_SRB srb
Definition: LTENR_Msg.h:131
ptrLTENR_HDR hdr
Definition: LTENR_Msg.h:126
LTENR_LOGICALCHANNEL logicalChannel
Definition: LTENR_Msg.h:128
LTENR_PHYSICALCHANNEL physicalChannel
Definition: LTENR_Msg.h:130
LTENR_RLCMODE rlcMode
Definition: LTENR_Msg.h:133
LTENR_TRANSPORTCHANNEL transportChannel
Definition: LTENR_Msg.h:129