NetSim Source Code Help
Loading...
Searching...
No Matches
WSMP.c
Go to the documentation of this file.
1/************************************************************************************
2* Copyright (C) 2020 *
3* TETCOS, Bangalore. India *
4* *
5* Tetcos owns the intellectual property rights in the Product and its content. *
6* The copying, redistribution, reselling or publication of any or all of the *
7* Product or its content without express prior written consent of Tetcos is *
8* prohibited. Ownership and / or any other right relating to the software and all *
9* intellectual property rights therein shall remain at all times with Tetcos. *
10* *
11* Author: Shashi Kant Suman *
12* *
13* ---------------------------------------------------------------------------------*/
14#include "main.h"
15#include "IEEE1609.h"
16#include "WSMP.h"
17#pragma comment(lib,"ws2_32.lib")
18
20{
21 p->wsm_version = 0x02;
22 p->psid = 0x0a;
23 p->ch_no[0] = 0x0F;
24 p->ch_no[1] = 0x01;
25 p->ch_no[2] = 0xAC;
26 p->data_rate[0] = 0x10;
27 p->data_rate[1] = 0x01;
28 p->data_rate[2] = 0x0C;
29 p->tx_power_level[0] = 0x04;
30 p->tx_power_level[1] = 0x01;
31 p->tx_power_level[2] = 0x0F;
32 p->ele_id = htons(0x8000);
33 p->wsm_len = len;
34}
35
37{
38 NetSim_PACKET *wsmPacket;
39 NETSIM_ID nAppId;
40 ptrSOCKETINTERFACE nSocketId;
41 PWSMP_HDR hdr;
42
44
45
47
48 wsmPacket = fn_NetSim_Socket_GetPacketFromInterface(nSocketId, 0);
49 if (!wsmPacket)
50 return;//No packet in buffer
51
52 while (fn_NetSim_Socket_GetBufferStatus(nSocketId))
53 {
54 wsmPacket = fn_NetSim_Socket_GetPacketFromInterface(nSocketId, 1);
55
56 hdr = (PWSMP_HDR)calloc(1, sizeof *hdr);
57 set_hdr(hdr, (UINT8)wsmPacket->pstruTransportData->dPayload);
58 SET_WSMP_HDR(wsmPacket, hdr);
59
60 /* Add payload and overheads */
61 wsmPacket->pstruTransportData->dPayload = wsmPacket->pstruAppData->dPacketSize;
63
64 /* Assign the packet size */
65 wsmPacket->pstruTransportData->dPacketSize =
67
68 /* Update TransportLayer time */
73
74 //Set network layer timing
78
81 wsmPacket->pstruNetworkData->dOverhead = 0;
82
84 wsmPacket->pstruNetworkData->szNextHopIp = wsmPacket->pstruNetworkData->szDestIP;
85
88
89 if (!wsmPacket->pstruMacData->szSourceMac)
91 if (!wsmPacket->pstruMacData->szDestMac)
93
94
95
98 {
99 /* Add the event details for NETWORK_OUT_EVENT*/
110 }
111 fn_NetSim_Packet_AddPacketToList(buf, wsmPacket,0);
112
113 }
114}
115
117{
118 NetSim_PACKET *wsmPacket;
119
120 wsmPacket = pstruEventDetails->pPacket;
121
124 wsmPacket->pstruTransportData->dOverhead;
125
131 pstruEventDetails->pPacket = wsmPacket;
133 return 1;
134}
unsigned int NETSIM_ID
Definition: Animation.h:45
#define UINT8
Definition: Linux.h:31
#define calloc(c, s)
Definition: Memory.h:29
bool fn_NetSim_GetBufferStatus(NetSim_BUFFER *pstruBuffer)
Definition: Scheduling.c:41
EXPORTED PNETSIM_MACADDRESS BROADCAST_MAC
Definition: Stack.h:393
@ TX_PROTOCOL_WSMP
Definition: Stack.h:182
PNETSIM_MACADDRESS fn_NetSim_Stack_GetMacAddressFromIP(const NETSIM_IPAddress szIPAddress)
MAC_LAYER_PROTOCOL fn_NetSim_Stack_GetMacProtocol(NETSIM_ID nDeviceId, NETSIM_ID nInterfaceId)
NetSim_PACKET * fn_NetSim_Socket_GetPacketFromInterface(ptrSOCKETINTERFACE s, int moveFlag)
@ APPLICATION_IN_EVENT
Definition: Stack.h:113
@ MAC_OUT_EVENT
Definition: Stack.h:106
#define DEVICE_ACCESSBUFFER(DeviceId, InterfaceId)
Definition: Stack.h:794
bool fn_NetSim_Socket_GetBufferStatus(ptrSOCKETINTERFACE s)
EXPORTED struct stru_NetSim_EventDetails * pstruEventDetails
Definition: Stack.h:837
void fn_NetSim_WSNP_SendWSMPacket()
Definition: WSMP.c:36
void set_hdr(PWSMP_HDR p, UINT8 len)
Definition: WSMP.c:19
int fn_NetSim_WSNP_ReceiveWSMPacket()
Definition: WSMP.c:116
#define WSMP_HDR_LEN
Definition: WSMP.h:23
static __inline void SET_WSMP_HDR(NetSim_PACKET *packet, PWSMP_HDR hdr)
Definition: WSMP.h:46
struct wsmp_header * PWSMP_HDR
#define fnpAddEvent(pstruEvent)
Definition: main.h:191
#define fn_NetSim_Packet_AddPacketToList(pstruBuffer, pstruPacket, nInsertionType)
Definition: main.h:179
NETSIM_ID nApplicationId
Definition: Stack.h:752
EVENT_TYPE nEventType
Definition: Stack.h:747
NETSIM_ID nProtocolId
Definition: Stack.h:748
struct stru_NetSim_Packet * pPacket
Definition: Stack.h:754
NETSIM_ID nSubEventType
Definition: Stack.h:757
NETSIM_ID nDeviceId
Definition: Stack.h:750
long long int nPacketId
Definition: Stack.h:755
NETSIM_ID nInterfaceId
Definition: Stack.h:751
PNETSIM_MACADDRESS szDestMac
Definition: Packet.h:221
PNETSIM_MACADDRESS szSourceMac
Definition: Packet.h:220
NETSIM_IPAddress szGatewayIP
Definition: Packet.h:200
NETSIM_IPAddress szDestIP
Definition: Packet.h:199
NETSIM_IPAddress szNextHopIp
Definition: Packet.h:201
NETSIM_IPAddress szSourceIP
Definition: Packet.h:198
TRANSPORT_LAYER_PROTOCOL nTransportProtocol
Definition: Packet.h:186
long long int nPacketId
Definition: Packet.h:256
struct stru_NetSim_Packet_AppLayer * pstruAppData
Definition: Packet.h:273
struct stru_NetSim_Packet_NetworkLayer * pstruNetworkData
Definition: Packet.h:275
struct stru_NetSim_Packet_TransportLayer * pstruTransportData
Definition: Packet.h:274
struct stru_NetSim_Packet_MACLayer * pstruMacData
Definition: Packet.h:276
UINT16 ele_id
Definition: WSMP.h:34
UINT8 tx_power_level[3]
Definition: WSMP.h:33
UINT8 psid
Definition: WSMP.h:30
UINT8 wsm_version
Definition: WSMP.h:29
UINT8 ch_no[3]
Definition: WSMP.h:31
UINT8 wsm_len
Definition: WSMP.h:35
UINT8 data_rate[3]
Definition: WSMP.h:32