30#pragma region FUNCTION_PROTOTYPE
33#pragma region SATELLITE_UT_MAC_INIT
43 mac =
calloc(1,
sizeof * mac);
87 fnNetSimError(
"No satellite is connected to UT %d:%d\n", d, in);
107#pragma region SATELLITE_GW_MAC_INIT
117 mac =
calloc(1,
sizeof * mac);
161 fnNetSimError(
"No satellite is connected to GW %d:%d\n", d, in);
170#pragma region SATELLITE_MAC_INIT
180 mac =
calloc(1,
sizeof * mac);
194#pragma region SATELLITE_UT_ASSOCIATION
221 info =
calloc(1,
sizeof * info);
235 utId, utIf, gwId, gwIf);
240#pragma region SATELLITE_UTMAC_PACKET_PROCESSING
263#pragma region SATELLITE_GWMAC_PACKET_PROCESSING
293#pragma region SATELLITE_MAC_PACKET_PROCESSING
315 memset(&pevent, 0,
sizeof pevent);
344#pragma region BUFFER_LIST
#define fnNetSimError(x,...)
bool fn_NetSim_GetBufferStatus(NetSim_BUFFER *pstruBuffer)
NetSim_PACKET * fn_NetSim_Packet_GetPacketFromBuffer(NetSim_BUFFER *pstruBuffer, int nFlag)
enum enum_SATELLITE_DEVICE_TYPE SATELLITE_DEVICETYPE
void print_satellite_log(char *format,...)
void satellite_hdr_init(NETSIM_ID d, NETSIM_ID in, NetSim_PACKET *packet)
#define SATELLITE_MAC_GET(d, i)
@ SATELLITE_DEVICETYPE_SATELLITE_GATEWAY
@ SATELLITE_DEVICETYPE_USER_TERMINAL
@ SATELLITE_DEVICETYPE_SATELLITE
#define SATELLITE_PROTOCOLDATA_CURRENT()
#define SATELLITE_MAC_SET(d, i, data)
bool SATELLITE_LAYER_DATA_IsInitialized(NETSIM_ID d, NETSIM_ID in, SATELLITE_DEVICETYPE devType, SATELLITE_LAYER layer)
#define SATELLITE_UTMAC_SET(d, i, data)
#define SATELLITE_GWMAC_GET(d, i)
SATELLITE_DEVICETYPE SATELLITE_DEVICETYPE_GET(NETSIM_ID d, NETSIM_ID in)
#define SATELLITE_GWMAC_SET(d, i, data)
#define SATELLITE_UTMAC_GET(d, i)
ptrSUPERFRAME satellite_get_return_superframe(NETSIM_ID d, NETSIM_ID in)
ptrSUPERFRAME satellite_get_forward_superframe(NETSIM_ID d, NETSIM_ID in)
void superframe_init(NETSIM_ID d, NETSIM_ID in)
void SATELLITE_HDR_REMOVE(NetSim_PACKET *packet)
void satellite_ut_set_gateway(ptrSATELLITE_UT_MAC utMac)
void satellite_handle_mac_out()
ptrSATELLITE_GW_MAC satellite_gw_mac_alloc(ptrSATELLITE_PROTODATA pd)
static void satellite_gwmac_handle_mac_out()
ptrSATELLITE_UT_MAC satellite_ut_mac_alloc(ptrSATELLITE_PROTODATA pd)
static void forward_to_network(NETSIM_ID d, NETSIM_ID in, NetSim_PACKET *packet, double time)
static void form_bufferlist_for_returnlink(NETSIM_ID d, NETSIM_ID in, ptrSUPERFRAME sf)
ptrSATELLITE_UTASSOCINFO satellite_utassocinfo_find(NETSIM_ID gwId, NETSIM_ID gwIf, NETSIM_ID utId, NETSIM_ID utIf)
static void satellite_ut_set_satellite(NETSIM_ID d, NETSIM_ID in)
void satellite_form_bufferList(NETSIM_ID d, NETSIM_ID in, ptrSUPERFRAME sf)
void satellite_UT_MAC_init(NETSIM_ID utId, NETSIM_ID utIf)
static void satellite_gw_set_satellite(NETSIM_ID d, NETSIM_ID in)
static void form_bufferlist_for_forwardlink(NETSIM_ID d, NETSIM_ID in, ptrSUPERFRAME sf)
ptrSATELLITE_MAC satellite_mac_alloc(ptrSATELLITE_PROTODATA pd)
void satellite_handle_mac_in()
void satellite_GW_MAC_init(NETSIM_ID gwId, NETSIM_ID gwIf)
void satellite_assoc_ut(NETSIM_ID gwId, NETSIM_ID gwIf, NETSIM_ID utId, NETSIM_ID utIf)
static void satellite_utmac_hadle_mac_out()
void satellite_mac_init(NETSIM_ID d, NETSIM_ID in)
ptrSATELLITE_BUFFER satellite_buffer_init(NETSIM_ID utId, NETSIM_ID utIf, NETSIM_ID gwId, NETSIM_ID gwIf, double sizeInBytes, double maxUnitSizeInBytes)
bool satellite_buffer_add_packet(ptrSATELLITE_BUFFER buffer, NetSim_PACKET *packet)
NETWORK_LAYER_PROTOCOL fn_NetSim_Stack_GetNWProtocol(NETSIM_ID nDeviceId)
#define DEVICE_NAME(DeviceId)
#define DEVICE_TYPE(DeviceId)
#define DEVICE_ACCESSBUFFER(DeviceId, InterfaceId)
#define DEVICE_MACVAR(DeviceId, InterfaceId)
EXPORTED struct stru_NetSim_EventDetails * pstruEventDetails
#define DEVICE_PHYLAYER(DeviceId, InterfaceId)
NETSIM_ID fn_NetSim_Stack_GetDeviceId_asIP(NETSIM_IPAddress ip, NETSIM_ID *nInterfaceId)
#define fnpAddEvent(pstruEvent)
struct stru_NetSim_Packet * pPacket
netsimDEVICE_TYPE nDeviceType
NETSIM_ID nConnectedDeviceCount
NETSIM_ID nCenterInterfaceId
NETSIM_ID * anDevInterfaceIds
NETSIM_ID nCenterDeviceId
union stru_NetSim_Links::uni_NetSim_Link_DeviceList puniDevList
MAC_LAYER_PROTOCOL nMACProtocol
NETSIM_IPAddress szNextHopIp
struct stru_NetSim_Packet_AppLayer * pstruAppData
struct stru_NetSim_Packet_NetworkLayer * pstruNetworkData
struct stru_NetSim_Packet_MACLayer * pstruMacData
SATELLITE_DEVICETYPE deviceType
ptrSATELLITE_BUFFER buffer
ptrSATELLITE_UTASSOCINFO * utAssocInfo
ptrSATELLITE_BUFFER buffer
ptrSATELLITE_BUFFER * buffers
struct stru_NetSim_Links::uni_NetSim_Link_DeviceList::stru_NetSim_P2MP pstrup2MP