24#ifndef _NETSIM_PACKET_H_
25#define _NETSIM_PACKET_H_
252#define MAX_PACKET_TYPE_LEN 100
287# define PACKET_ID(pPacket) (pPacket)->nPacketId
288# define PACKET_SERVICETYPE(pPacket) (pPacket)->nServiceType
289# define PACKET_EVENTTIME(pPacket) (pPacket)->dEventTime
290# define PACKET_SOURCE(pPacket) (pPacket)->nSourceId
291# define PACKET_DESTINATION(pPacket) (pPacket)->nDestinationId
292# define PACKET_TRANSMITTER(pPacket) (pPacket)->nTransmitterId
293# define PACKET_RECEIVER(pPacket) (pPacket)->nReceiverId
294# define PACKET_APPDATA(pPacket) (pPacket)->pstruAppData
295# define PACKET_TRXDATA(pPacket) (pPacket)->pstruTransportData
296# define PACKET_NWDATA(pPacket) (pPacket)->pstruNetworkData
297# define PACKET_MACDATA(pPacket) (pPacket)->pstruMacData
298# define PACKET_PHYDATA(pPacket) (pPacket)->pstruPhyData
299# define PACKET_PHYPROTOCOLDATA(pPacket) PACKET_PHYDATA(pPacket)->Packet_PhyData
300# define PACKET_MACPROTOCOLDATA(pPacket) PACKET_MACDATA(pPacket)->Packet_MACProtocol
301# define PACKET_NWPROTOCOLDATA(pPacket) PACKET_NWDATA(pPacket)->Packet_NetworkProtocol
302# define PACKET_TRXPROTOCOLDATA(pPacket) PACKET_TRXDATA(pPacket)->Packet_TransportProtocol
303# define PACKET_APPPROTOCOLDATA(pPacket) PACKET_APPDATA(pPacket)->Packet_AppProtocol
304# define PACKET_NEXTPACKET(pPacket) (pPacket)->pstruNextPacket
#define _declspec(dllexport)
This function is used to trigger the update.
int fnValidatePacket(const NetSim_PACKET *pstruPacket)
double fnGetPacketSize(NetSim_PACKET *pstruData)
bool fn_NetSim_HWI_Send(NetSim_PACKET *packet)
int fn_NetSim_Dispatch_to_emulator(NetSim_PACKET *packet)
NetSim_PACKET * fn_NetSim_Packet_CopyPacket_dbg(const NetSim_PACKET *pstruPacket, int line, const char *file)
char * fn_NetSim_Config_GetControlPacketType(const NetSim_PACKET *, char *type)
NetSim_PACKET * fn_NetSim_Packet_CreatePacket_dbg(int nLayer, int line, const char *file)
int fn_NetSim_Stack_FragmentPacket(NetSim_PACKET *pstruPacket, int nMSS)
bool fn_NetSim_GetBufferStatus(NetSim_BUFFER *pstruBuffer)
@ SuppModel_Deterministics
@ PacketType_Peer_to_Peer
NETSIM_ID * get_dest_from_packet(NetSim_PACKET *packet, UINT *count)
#define MAX_PACKET_TYPE_LEN
enum enum_ApplicationType APPLICATION_TYPE
int fn_NetSim_Packet_FreeMacProtocolData(NetSim_PACKET *pstruPacket)
char * fn_NetSim_Config_GetPacketTypeAsString(PACKET_TYPE nPacketType)
NetSim_PACKET * fn_NetSim_Packet_GetPacketFromBuffer(NetSim_BUFFER *pstruBuffer, int nFlag)
@ Segment_ContinuingFragment
int fn_NetSim_Packet_AddPacketToList_dbg(NetSim_BUFFER *pstruBuffer, NetSim_PACKET *pstruPacket, int nInsertionType, int line, const char *file)
bool isMulticastPacket(NetSim_PACKET *packet)
struct stru_packet_info * PPACKET_INFO
NETSIM_ID get_first_dest_from_packet(NetSim_PACKET *packet)
bool isBroadcastPacket(NetSim_PACKET *packet)
int fn_NetSim_WritePacketTrace_dbg(const NetSim_PACKET *pstruPacket, int line, const char *file)
@ TRAFFIC_SENSOR_EMULATION
void add_destlist_to_packet(NetSim_PACKET *packet, NETSIM_ID *destlist, UINT count)
bool isDestFoundinPacket(NetSim_PACKET *packet, NETSIM_ID dest)
struct stru_packet_info PACKET_INFO
void remove_dest_from_packet(NetSim_PACKET *packet, NETSIM_ID dest)
int fn_NetSim_Packet_CopyMacData(NetSim_PACKET *pstruDestPacket, const NetSim_PACKET *pstruSrcPacket, int, const char *)
int fn_NetSim_Packet_FreePacket_dbg(NetSim_PACKET **pstruPacket, int line, const char *file)
void add_dest_to_packet(NetSim_PACKET *packet, NETSIM_ID dest)
PACKET_STATUS fn_NetSim_Packet_DecideError(double dBER, long double dPacketSize)
@ Distribution_Triangular
@ Distribution_Exponential
unsigned int getPacketInfoSize()
int fn_NetSim_Packet_CopyPhyData(NetSim_PACKET *pstruDestPacket, const NetSim_PACKET *pstruSrcPacket, int, const char *)
int fn_NetSim_Packet_CopyAppData(NetSim_PACKET *pstruDestPacket, const NetSim_PACKET *pstruSrcPacket, int, const char *)
int fn_NetSim_Packet_CopyNWData(NetSim_PACKET *pstruDestPacket, NetSim_PACKET *pstruSrcPacket)
int fn_NetSim_Packet_CopyTransportData(NetSim_PACKET *pstruDestPacket, const NetSim_PACKET *pstruSrcPacket, int, const char *)
@ PacketStatus_TTL_Expired
@ PacketStatus_Buffer_Dropped
NetSim_PACKET * fn_NetSim_Packet_CopyPacketList_dbg(const NetSim_PACKET *pstruPacket, int line, const char *file)
enum enum_MACProtocol MAC_LAYER_PROTOCOL
enum enum_Packet_QOS QUALITY_OF_SERVICE
enum enum_PacketStatus PACKET_STATUS
enum enum_ServiceType SERVICE_TYPE
enum enum_NWProtocol NETWORK_LAYER_PROTOCOL
enum enum_PacketType PACKET_TYPE
enum enum_PacketPriority PACKET_PRIORITY
enum enum_PhyMedium PHYSICAL_LAYER_MEDIUM
enum enum_Segment PACKET_FRAGMENT
enum enum_TrxProtocol TRANSPORT_LAYER_PROTOCOL
enum enum_AppProtocol APPLICATION_LAYER_PROTOCOL
PACKET_FRAGMENT nPacketFragment
void * Packet_AppProtocol
APPLICATION_TYPE nAppType
APPLICATION_LAYER_PROTOCOL nApplicationProtocol
MAC_LAYER_PROTOCOL nMACProtocol
PNETSIM_MACADDRESS szNextHopMac
PNETSIM_MACADDRESS szDestMac
void * Packet_MACProtocol
PNETSIM_MACADDRESS szSourceMac
struct stru_NetSim_Packet_NetworkLayer * next
NETWORK_LAYER_PROTOCOL nRoutingProtocol
void * Packet_RoutingProtocol
NETSIM_IPAddress szGatewayIP
IP_PROTOCOL_NUMBER IPProtocol
NETWORK_LAYER_PROTOCOL nNetworkProtocol
NETSIM_IPAddress szDestIP
void * Packet_NetworkProtocol
NETSIM_IPAddress szNextHopIp
NETSIM_IPAddress szSourceIP
PACKET_STATUS nPacketErrorFlag
PHYSICAL_LAYER_MEDIUM nPhyMedium
TRANSPORT_LAYER_PROTOCOL nTransportProtocol
unsigned short int nSourcePort
void * Packet_TransportProtocol
unsigned short int nDestinationPort
struct stru_NetSim_Packet_AppLayer * pstruAppData
PACKET_STATUS nPacketStatus
struct stru_NetSim_Packet_PhyLayer * pstruPhyData
char szPacketType[MAX_PACKET_TYPE_LEN]
struct stru_NetSim_Packet_NetworkLayer * pstruNetworkData
int(* ReceiveAckNotification)(struct stru_NetSim_Packet *ack)
unsigned int nControlDataType
struct stru_NetSim_Packet * pstruNextPacket
int(* DropNotification)(struct stru_NetSim_Packet *packet)
struct stru_NetSim_Packet_TransportLayer * pstruTransportData
PACKET_PRIORITY nPacketPriority
SERVICE_TYPE nServiceType
struct stru_NetSim_Packet_MACLayer * pstruMacData
unsigned char packet[MAXBUF]
long long int captureTime
long long int reinjectTime