25#ifndef _NETSIM_LTENR_MSG_H_
26#define _NETSIM_LTENR_MSG_H_
33#define LTENR_HDRTYPE_MAX 100
34#define IPV4_HEADER_SIZE 20
37#pragma region MSG_TYPE
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" };
110#pragma region LTENR_HEADER
120#pragma region LTENR_MSG_AND_ITS_API
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))
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)
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)
149#pragma region MSG_FUN_DEF
156#pragma region HEADER_HANDLER_AND_ITS_APIS
162 void*(*fnCopyHdr)(
void*);
168 void*(*fnCopy)(
void*),
169 void(*fnFree)(
void*),
170 void(*fnTraceWriter)(
void*,
char*));
173#pragma region FUN_DEF
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
@ LTENR_MSG_CORE_NSMF_PDUSESSION_UPDATESMCONTEXT_RESPONSE
@ LTENR_MSG_CORE_INITIAL_CONTEXT_SETUP_REQUEST
@ LTENR_MSG_CORE_PFCP_SESSION_RESPONSE
@ LTENR_MSG_NAS_HANDOVER_REQUEST_ACK
@ LTENR_MSG_NAS_HANDOVER_COMMAND
@ LTENR_MSG_CORE_MODIFY_BEARER_RESPONSE
@ LTENR_MSG_DC_SEC_CELL_ADDITION_REQUEST
@ LTENR_MSG_CORE_INITIAL_CONTEXT_SETUP_RESPONSE
@ LTENR_MSG_DC_HO_SEC_CELL_CHANGE_REQUEST
@ LTENR_MSG_DC_HO_SEC_CELL_PATH_SWITCH
@ LTENR_MSG_RRC_REESTABLISHMENT_REQUEST
@ LTENR_MSG_DC_HO_SEC_CELL_PATH_SWITCH_ACK
@ LTENR_MSG_DC_HO_SEC_CELL_RELEASE_REQUEST
@ LTENR_MSG_DC_HO_SEC_CELL_ADDITION_REQUEST_ACK
@ LTENR_MSG_RRC_UE_MEASUREMENT_REPORT
@ LTENR_MSG_CORE_PFCP_SESSION_REQUSET
@ LTENR_MSG_NAS_HANDOVER_COMPLETE
@ LTENR_MSG_RLC_STATUSPDU
@ LTENR_MSG_NAS_HANDOVER_UE_CONTEXT_RELEASE_ACK
@ LTENR_MSG_DC_HO_SEC_CELL_RELEASE_REQUEST_ACK
@ LTENR_MSG_CORE_NSMF_PDUSESSION_UPDATESMCONTEXT_REQUSET
@ LTENR_MSG_RRC_REESTABLISHMENT
@ LTENR_MSG_DC_HO_SEC_CELL_UE_CONTEXT_RELEASE
@ LTENR_MSG_NAS_HANDOVER_UE_CONTEXT_RELEASE
@ LTENR_MSG_RRC_SETUP_COMPLETE
@ LTENR_MSG_NAS_HANDOVER_PATH_SWITCH_ACK
@ LTENR_MSG_RRC_RECONFIGURATION
@ LTENR_MSG_CORE_CREATE_SESSION_REQUEST
@ LTENR_MSG_DC_HO_SEC_CELL_ADDITION_REQUEST
@ LTENR_MSG_CORE_MODIFY_BEARER_REQUEST
@ LTENR_MSG_RRC_SETUP_REQUEST
@ LTENR_MSG_DC_HO_SEC_CELL_UE_CONTEXT_RELEASE_ACK
@ LTENR_MSG_CORE_CREATE_SESSION_RESPONSE
@ LTENR_MSG_DC_SEC_CELL_ADDITION_RESPONSE
@ LTENR_MSG_CORE_INITIAL_UE_MESSAGE
@ LTENR_MSG_CORE_REGISTRATION_COMPLETE
@ LTENR_MSG_NAS_HANDOVER_REQUEST
@ LTENR_MSG_NAS_HANDOVER_PATH_SWITCH
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[]
struct stru_LTENR_HDR LTENR_HDR
ptrLTENR_MSG LTENR_MSG_COPY(const NetSim_PACKET *packet)
struct stru_LTENR_HDRHANDLER LTENR_HDRHANDLER
void(* fnTraceWriter)(void *, char *)
struct stru_LTENR_HDR * next
LTENR_LOGICALCHANNEL logicalChannel
LTENR_PHYSICALCHANNEL physicalChannel
LTENR_TRANSPORTCHANNEL transportChannel