73 Ptr<SatSuperframeSeq> superframeSeq)
80 NS_LOG_FUNCTION(
this);
85 "SatRandomAccessConf::SatRandomAccessConf - No random access allocation channel");
89 (llsConf->GetDefaultControlRandomizationInterval()).GetMilliSeconds();
94 Ptr<SatRandomAccessAllocationChannel> allocationChannel =
95 CreateObject<SatRandomAccessAllocationChannel>();
98 allocationChannel->SetSlottedAlohaAllowed(llsConf->GetRaIsSlottedAlohaAllowed(i));
99 allocationChannel->SetCrdsaAllowed(llsConf->GetRaIsCrdsaAllowed(i));
100 allocationChannel->SetEssaAllowed(llsConf->GetRaIsEssaAllowed(i));
101 allocationChannel->SetCrdsaMaxUniquePayloadPerBlock(
102 llsConf->GetRaMaximumUniquePayloadPerBlock(i));
103 allocationChannel->SetCrdsaMaxConsecutiveBlocksAccessed(
104 llsConf->GetRaMaximumConsecutiveBlockAccessed(i));
105 allocationChannel->SetCrdsaMinIdleBlocks(llsConf->GetRaMinimumIdleBlock(i));
106 allocationChannel->SetCrdsaNumOfInstances(llsConf->GetRaNumberOfInstances(i));
107 allocationChannel->SetCrdsaBackoffProbability(llsConf->GetRaBackOffProbability(i));
108 allocationChannel->SetCrdsaBackoffTimeInMilliSeconds(
109 llsConf->GetRaBackOffTimeInMilliSeconds(i));
110 allocationChannel->SetFSimBackoffProbability(llsConf->GetRaBackOffProbability(i));
111 allocationChannel->SetFSimBackoffTimeInMilliSeconds(
112 llsConf->GetRaBackOffTimeInMilliSeconds(i));
113 allocationChannel->SetFSimPhysicalLayerFrameInMilliSeconds(
114 (superframeSeq->GetSuperframeConf(0)->GetDuration()).GetMilliSeconds());
117 allocationChannel->SetCrdsaMinRandomizationValue(0);
118 allocationChannel->SetCrdsaMaxRandomizationValue(std::numeric_limits<uint16_t>::max());
122 Ptr<SatSuperframeConf> superframeConf = superframeSeq->GetSuperframeConf(0);
123 for (uint32_t i = 0; i < superframeConf->GetRaChannelCount(); ++i)
125 uint8_t allocationChannel = superframeConf->GetRaChannelAllocationChannelId(i);
127 uint16_t raSlotCount = superframeConf->GetRaSlotCount(i) - 1;
133 if (raSlotCount < allocationChannelConf->GetCrdsaMaxRandomizationValue())
135 allocationChannelConf->SetCrdsaMaxRandomizationValue(raSlotCount);
140 NS_FATAL_ERROR(
"Allocation channel for frame " << superframeConf->GetRaChannelFrameId(i)
141 <<
" is out of range");
147 if (allocationChannelConf.second->GetCrdsaAllowed())
149 allocationChannelConf.second->DoCrdsaVariableSanityCheck();