NetSim Source Code Help
Loading...
Searching...
No Matches
Satellite.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_SATELLITE_H_
26#define _NETSIM_SATELLITE_H_
27
28#include "List.h"
29
30#ifdef __cplusplus
31extern "C" {
32#endif
33
34 //For MSVC compiler. For GCC link via Linker command
35#pragma comment(lib,"Metrics.lib")
36#pragma comment(lib,"NetworkStack.lib")
37#pragma comment(lib,"Mobility.lib")
38#pragma comment(lib,"PropagationModel.lib")
39
40 //LOG
41#define SATELLITE_LOG
42 void print_satellite_log(char* format, ...);
45
46// #define SATELLITE_PROPAGATION_LOG
47
49 {
55 static const char* strSATELLITE_DEVICETYPE[] =
56 { "USER_TERMINAL","SATELLITE","SATELLITE_GATEWAY","Unknown" };
58
59 typedef enum enum_linktype
60 {
64 static char* strLINKTYPE[] = { "FORWARD","RETURN" };
65
67 {
72 static const char* strSATELLITE_LAYER[] =
73 { "MAC","PHY","Unknwon" };
74
76 {
80 static const char* strSATELLITE_SUBEVENT[] =
81 { "","Satellite_Superframe_Start","Satellite_Frame_Start" };
82
84 {
91 NETSIM_ID in);
92#define SATELLITE_PROTOCOLDATA_CURRENT() ((ptrSATELLITE_PROTODATA)DEVICE_MACVAR(pstruEventDetails->nDeviceId,pstruEventDetails->nInterfaceId))
94 NETSIM_ID in);
97 SATELLITE_LAYER layer);
100 SATELLITE_LAYER layer);
102 SATELLITE_DEVICETYPE devType,
103 SATELLITE_LAYER layer,
104 void* data);
106
107#define SATELLITE_PHY_GET(d,i) (SATELLITE_LAYER_DATA_GET(d,i,SATELLITE_DEVICETYPE_SATELLITE,SATELLITE_LAYER_PHY))
108#define SATELLITE_MAC_GET(d,i) (SATELLITE_LAYER_DATA_GET(d,i,SATELLITE_DEVICETYPE_SATELLITE,SATELLITE_LAYER_MAC))
109#define SATELLITE_UTPHY_GET(d,i) (SATELLITE_LAYER_DATA_GET(d,i,SATELLITE_DEVICETYPE_USER_TERMINAL,SATELLITE_LAYER_PHY))
110#define SATELLITE_UTMAC_GET(d,i) (SATELLITE_LAYER_DATA_GET(d,i,SATELLITE_DEVICETYPE_USER_TERMINAL,SATELLITE_LAYER_MAC))
111#define SATELLITE_GWPHY_GET(d,i) (SATELLITE_LAYER_DATA_GET(d,i,SATELLITE_DEVICETYPE_SATELLITE_GATEWAY,SATELLITE_LAYER_PHY))
112#define SATELLITE_GWMAC_GET(d,i) (SATELLITE_LAYER_DATA_GET(d,i,SATELLITE_DEVICETYPE_SATELLITE_GATEWAY,SATELLITE_LAYER_MAC))
113
114#define SATELLITE_PHY_SET(d,i,data) (SATELLITE_LAYER_DATA_SET(d,i,SATELLITE_DEVICETYPE_SATELLITE,SATELLITE_LAYER_PHY,data))
115#define SATELLITE_MAC_SET(d,i,data) (SATELLITE_LAYER_DATA_SET(d,i,SATELLITE_DEVICETYPE_SATELLITE,SATELLITE_LAYER_MAC,data))
116#define SATELLITE_UTPHY_SET(d,i,data) (SATELLITE_LAYER_DATA_SET(d,i,SATELLITE_DEVICETYPE_USER_TERMINAL,SATELLITE_LAYER_PHY,data))
117#define SATELLITE_UTMAC_SET(d,i,data) (SATELLITE_LAYER_DATA_SET(d,i,SATELLITE_DEVICETYPE_USER_TERMINAL,SATELLITE_LAYER_MAC,data))
118#define SATELLITE_GWPHY_SET(d,i,data) (SATELLITE_LAYER_DATA_SET(d,i,SATELLITE_DEVICETYPE_SATELLITE_GATEWAY,SATELLITE_LAYER_PHY,data))
119#define SATELLITE_GWMAC_SET(d,i,data) (SATELLITE_LAYER_DATA_SET(d,i,SATELLITE_DEVICETYPE_SATELLITE_GATEWAY,SATELLITE_LAYER_MAC,data))
120
121#define isSATELLITE(d,i) (SATELLITE_DEVICETYPE_GET(d,i) == SATELLITE_DEVICETYPE_SATELLITE)
122#define isUT(d,i) (SATELLITE_DEVICETYPE_GET(d,i) == SATELLITE_DEVICETYPE_USER_TERMINAL)
123#define isGW(d,i) (SATELLITE_DEVICETYPE_GET(d,i) == SATELLITE_DEVICETYPE_SATELLITE_GATEWAY)
124
125 //Function prototype
126 //General
129
130 //Mac
133
134 //PHY
137
138 //HDR
140 NetSim_PACKET* packet);
141
142#ifdef __cplusplus
143}
144#endif
145#endif /* _NETSIM_SATELLITE_H_ */
unsigned int NETSIM_ID
Definition: Animation.h:45
enum enum_SATELLITE_DEVICE_TYPE SATELLITE_DEVICETYPE
enum_linktype
Definition: Satellite.h:60
@ LINKTYPE_FORWARD
Definition: Satellite.h:61
@ LINKTYPE_RETURN
Definition: Satellite.h:62
void satellite_handle_mac_out()
struct stru_SATELLITE_Protocol_Data * ptrSATELLITE_PROTODATA
static const char * strSATELLITE_DEVICETYPE[]
Definition: Satellite.h:55
void print_satellite_log(char *format,...)
void satellite_hdr_init(NETSIM_ID d, NETSIM_ID in, NetSim_PACKET *packet)
Definition: Satellite_HDR.c:28
bool isSatelliteInterface(NETSIM_ID d, NETSIM_ID in)
enum_SATELLITE_DEVICE_TYPE
Definition: Satellite.h:49
@ SATELLITE_DEVICETYPE_SATELLITE_GATEWAY
Definition: Satellite.h:52
@ SATELLITE_DEVICETYPE_USER_TERMINAL
Definition: Satellite.h:50
@ SATELLITE_DEVICETYPE_UNKNOWN
Definition: Satellite.h:53
@ SATELLITE_DEVICETYPE_SATELLITE
Definition: Satellite.h:51
SATELLITE_DEVICETYPE SATELLITE_DEVICETYPE_FROM_STR(const char *type)
enum enum_satellite_subevent SATELLITE_SUBEVENT
void satellite_handle_phy_in()
void satellite_log_remove_tab()
void SATELLITE_LAYER_DATA_SET(NETSIM_ID d, NETSIM_ID in, SATELLITE_DEVICETYPE devType, SATELLITE_LAYER layer, void *data)
bool SATELLITE_LAYER_DATA_IsInitialized(NETSIM_ID d, NETSIM_ID in, SATELLITE_DEVICETYPE devType, SATELLITE_LAYER layer)
void * SATELLITE_LAYER_DATA_GET(NETSIM_ID d, NETSIM_ID in, SATELLITE_DEVICETYPE devType, SATELLITE_LAYER layer)
void satellite_log_add_tab()
void fn_NetSim_SATELLITE_Configure_F(void **)
static char * strLINKTYPE[]
Definition: Satellite.h:64
void satellite_handle_mac_in()
enum_SATELLITE_LAYER
Definition: Satellite.h:67
@ SATELLITE_LAYER_MAC
Definition: Satellite.h:68
@ SATELLITE_LAYER_UNKNOWN
Definition: Satellite.h:70
@ SATELLITE_LAYER_PHY
Definition: Satellite.h:69
static const char * strSATELLITE_LAYER[]
Definition: Satellite.h:72
static const char * strSATELLITE_SUBEVENT[]
Definition: Satellite.h:80
enum_satellite_subevent
Definition: Satellite.h:76
@ 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)
enum enum_SATELLITE_LAYER SATELLITE_LAYER
void satellite_handle_phy_out()
enum enum_linktype LINKTYPE
struct stru_SATELLITE_Protocol_Data SATELLITE_PROTODATA
ptrSATELLITE_PROTODATA SATELLITE_PROTOCOLDATA_ALLOC(NETSIM_ID d, NETSIM_ID in)
void SATELLITE_PROTOCOLDATA_FREE(NETSIM_ID d, NETSIM_ID in)
@ MAC_PROTOCOL_SATELLITE
Definition: Stack.h:234
SATELLITE_DEVICETYPE deviceType
Definition: Satellite.h:85