NetSim Source Code Help
Loading...
Searching...
No Matches
Satellite.c
Go to the documentation of this file.
1/************************************************************************************
2* Copyright (C) 2021 *
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* This source code is licensed per the NetSim license agreement. *
12* *
13* No portion of this source code may be used as the basis for a derivative work, *
14* or used, for any purpose other than its intended use per the NetSim license *
15* agreement. *
16* *
17* This source code and the algorithms contained within it are confidential trade *
18* secrets of TETCOS and may not be used as the basis for any other software, *
19* hardware, product or service. *
20* *
21* Author: Shashi Kant Suman *
22* *
23* ----------------------------------------------------------------------------------*/
24#include "main.h"
25#include "SATELLITE.h"
26#include "Satellite_MAC.h"
27#include "Satellite_PHY.h"
28
29//Function prototype
30static void satellite_ut_init(NETSIM_ID d, NETSIM_ID in);
31static void satellite_gw_init(NETSIM_ID d, NETSIM_ID in);
32static void satellite_init(NETSIM_ID d, NETSIM_ID in);
33static void satellite_handle_timer();
36
38{
40
41 NETSIM_ID i;
42 NETSIM_ID j;
43 for (i = 0; i < NETWORK->nDeviceCount; i++)
44 {
45 for (j = 0; j < DEVICE(i + 1)->nNumOfInterface; j++)
46 {
47 if (!isSatelliteInterface(i + 1, j + 1))
48 continue;
49
50 switch (SATELLITE_DEVICETYPE_GET(i + 1, j + 1))
51 {
53 satellite_init(i + 1, j + 1);
54 break;
56 satellite_gw_init(i + 1, j + 1);
57 break;
59 satellite_ut_init(i + 1, j + 1);
60 break;
61 default:
62 fnNetSimError("Unknown device type in function %s\n", __FUNCTION__);
63 break;
64 }
65 }
66 }
67 return 0;
68}
69
71{
73 {
74 case MAC_OUT_EVENT:
76 break;
77 case MAC_IN_EVENT:
79 break;
82 break;
85 break;
86 case TIMER_EVENT:
88 break;
89 default:
90 fnNetSimError("Unknown event type %d in function %s\n",
91 pstruEventDetails->nEventType, __FUNCTION__);
92 break;
93 }
94 return 0;
95}
96
98{
99 UINT i = id % (MAC_PROTOCOL_SATELLITE * 100);
100 return (char*)strSATELLITE_SUBEVENT[i];
101}
102
104{
105 packet;
106 return 0;
107}
108
109_declspec(dllexport) int fn_NetSim_SATELLITE_CopyPacket(NetSim_PACKET* destPacket, const NetSim_PACKET* srcPacket)
110{
111 destPacket;
112 srcPacket;
113 return 0;
114}
115
117{
118 file;
119 return 0;
120}
121
122_declspec(dllexport) int fn_NetSim_SATELLITE_Configure(void** var)
123{
125 return 0;
126}
127
128_declspec(dllexport) char* fn_NetSim_SATELLITE_ConfigPacketTrace(void* xmlNetSimNode)
129{
130 xmlNetSimNode;
131 return "";
132}
133
135{
137 return 0;
138}
139
140_declspec(dllexport) int fn_NetSim_SATELLITE_WritePacketTrace(NetSim_PACKET* pstruPacket, char** ppszTrace)
141{
142 pstruPacket;
143 ppszTrace;
144 return 0;
145}
146
148{
151}
152
154{
157}
158
160{
161 satellite_mac_init(d, in);
162}
163
165{
167 {
170 break;
173 break;
174 default:
175 fnNetSimError("Unknown subevnet %d in function %s\n",
176 pstruEventDetails->nSubEventType, __FUNCTION__);
177 break;
178 }
179}
unsigned int NETSIM_ID
Definition: Animation.h:45
#define UINT
Definition: Linux.h:38
#define _declspec(dllexport)
This function is used to trigger the update.
Definition: Linux.h:41
#define fnNetSimError(x,...)
Definition: Linux.h:56
void * PMETRICSWRITER
Definition: MetricsWriter.h:27
int fn_NetSim_SATELLITE_Init()
Definition: Satellite.c:37
int fn_NetSim_SATELLITE_Run()
Definition: Satellite.c:70
void close_satellite_log()
char * fn_NetSim_SATELLITE_Trace(NETSIM_ID id)
Definition: Satellite.c:97
int fn_NetSim_SATELLITE_Configure(void **var)
Definition: Satellite.c:122
static void satellite_init(NETSIM_ID d, NETSIM_ID in)
Definition: Satellite.c:159
static void satellite_ut_init(NETSIM_ID d, NETSIM_ID in)
Definition: Satellite.c:147
int fn_NetSim_SATELLITE_CopyPacket(NetSim_PACKET *destPacket, const NetSim_PACKET *srcPacket)
Definition: Satellite.c:109
int fn_NetSim_SATELLITE_WritePacketTrace(NetSim_PACKET *pstruPacket, char **ppszTrace)
Definition: Satellite.c:140
void init_satellite_log()
int fn_NetSim_SATELLITE_FreePacket(NetSim_PACKET *packet)
Definition: Satellite.c:103
char * fn_NetSim_SATELLITE_ConfigPacketTrace(void *xmlNetSimNode)
Definition: Satellite.c:128
static void satellite_handle_timer()
Definition: Satellite.c:164
int fn_NetSim_SATELLITE_Finish()
Definition: Satellite.c:134
static void satellite_gw_init(NETSIM_ID d, NETSIM_ID in)
Definition: Satellite.c:153
int fn_NetSim_SATELLITE_Metrics(PMETRICSWRITER file)
Definition: Satellite.c:116
void satellite_handle_mac_out()
bool isSatelliteInterface(NETSIM_ID d, NETSIM_ID in)
@ SATELLITE_DEVICETYPE_SATELLITE_GATEWAY
Definition: Satellite.h:52
@ SATELLITE_DEVICETYPE_USER_TERMINAL
Definition: Satellite.h:50
@ SATELLITE_DEVICETYPE_SATELLITE
Definition: Satellite.h:51
void satellite_handle_phy_in()
void fn_NetSim_SATELLITE_Configure_F(void **)
void satellite_handle_mac_in()
static const char * strSATELLITE_SUBEVENT[]
Definition: Satellite.h:80
@ SUBEVENT_SUPERFRAME_START
Definition: Satellite.h:77
@ SUBEVENT_FRAME_START
Definition: Satellite.h:78
SATELLITE_DEVICETYPE SATELLITE_DEVICETYPE_GET(NETSIM_ID d, NETSIM_ID in)
void satellite_handle_phy_out()
void satellite_frame_start()
void satellite_superframe_start()
void satellite_UT_MAC_init(NETSIM_ID utId, NETSIM_ID utIf)
Definition: Satellite_MAC.c:90
void satellite_GW_MAC_init(NETSIM_ID gwId, NETSIM_ID gwIf)
void satellite_mac_init(NETSIM_ID d, NETSIM_ID in)
void satellite_ut_phy_init(NETSIM_ID d, NETSIM_ID in)
Definition: Satellite_PHY.c:62
void satellite_gw_phy_init(NETSIM_ID d, NETSIM_ID in)
Definition: Satellite_PHY.c:68
#define DEVICE(DeviceId)
Definition: Stack.h:769
@ MAC_PROTOCOL_SATELLITE
Definition: Stack.h:234
EXPORTED struct stru_NetSim_Network * NETWORK
Definition: Stack.h:742
@ TIMER_EVENT
Definition: Stack.h:114
@ PHYSICAL_OUT_EVENT
Definition: Stack.h:104
@ MAC_OUT_EVENT
Definition: Stack.h:106
@ MAC_IN_EVENT
Definition: Stack.h:107
@ PHYSICAL_IN_EVENT
Definition: Stack.h:105
EXPORTED struct stru_NetSim_EventDetails * pstruEventDetails
Definition: Stack.h:837
EVENT_TYPE nEventType
Definition: Stack.h:747
NETSIM_ID nSubEventType
Definition: Stack.h:757