30 double sizeInBytes,
double maxUnitSizeInBytes)
64 buffer->
tail = packet;
68 buffer->
head = packet;
69 buffer->
tail = packet;
79 if (!buffer->
head)
return NULL;
85 if (!buffer->
head) buffer->
tail = NULL;
98#pragma region SLOT_ALLOCATION
135 for (i = 0; i < count; i++)
137 for (j = i; j < count; j++)
139 if (buffers[j]->rank > buffers[i]->rank)
142 buffers[i] = buffers[j];
169 if (slotCount == 0)
break;
175 return (
UINT)ceil(size * 8.0 / bitsPerSlot);
192 if (slcount == 0)
break;
195 if (slreqd > slcount)
break;
198 if (buf->
head == NULL)buf->
tail = NULL;
234 print_satellite_log(
"Starting slot allocation for Superframe %d, Frame %d, LinkType = %s\n",
void print_satellite_log(char *format,...)
void satellite_log_remove_tab()
void satellite_log_add_tab()
static char * strLINKTYPE[]
ptrSATELLITE_BUFFER satellite_buffer_init(NETSIM_ID utId, NETSIM_ID utIf, NETSIM_ID gwId, NETSIM_ID gwIf, double sizeInBytes, double maxUnitSizeInBytes)
static void calculate_slot_reqd_per_buffer(ptrSATELLITE_BUFFER buf, UINT bitsPerSlot)
NetSim_PACKET * satellite_buffer_remove_packet(ptrSATELLITE_BUFFER buffer)
static void update_rank(ptrSUPERFRAME sf, ptrFRAME fr)
static void schedule_packet(ptrSUPERFRAME sf, ptrFRAME fr)
void satellite_buffer_setMaxUnitSizeInBytes(ptrSATELLITE_BUFFER buffer, double maxUnitSizeInBytes)
static void init_buffer_rank(ptrSUPERFRAME sf)
static UINT calculate_slot_reqd_for_packet(double size, UINT bitsPerSlot)
void satellite_allocate_slot(NETSIM_ID d, NETSIM_ID in, ptrSUPERFRAME sf, ptrFRAME fr)
NetSim_PACKET * satellite_buffer_head_packet(ptrSATELLITE_BUFFER buffer)
static void calculate_slot_reqd(ptrSUPERFRAME sf)
static void sort_buffer(UINT count, ptrSATELLITE_BUFFER *buffers)
bool satellite_buffer_add_packet(ptrSATELLITE_BUFFER buffer, NetSim_PACKET *packet)
static void allocate_slot_count(ptrSUPERFRAME sf, ptrFRAME fr)
#define fn_NetSim_Packet_FreePacket(pstruPacket)
struct stru_NetSim_Packet * pstruNextPacket
struct stru_NetSim_Packet_MACLayer * pstruMacData
double maxUnitSizeInBytes
ptrSATELLITE_BUFFER * buffers