22 #include "ss-record.h" 
   23 #include "service-flow.h" 
   28 SSRecord::SSRecord (
void)
 
   33 SSRecord::SSRecord (Mac48Address macAddress)
 
   35   m_macAddress = macAddress;
 
   39 SSRecord::SSRecord (Mac48Address macAddress, Ipv4Address IPaddress)
 
   41   m_macAddress = macAddress;
 
   42   m_IPAddress = IPaddress;
 
   47 SSRecord::Initialize (
void)
 
   50   m_primaryCid = Cid ();
 
   52   m_rangingCorrectionRetries = 0;
 
   53   m_invitedRangingRetries = 0;
 
   54   m_modulationType = WimaxPhy::MODULATION_TYPE_BPSK_12;
 
   55   m_rangingStatus = WimaxNetDevice::RANGING_STATUS_EXPIRED;
 
   56   m_pollForRanging = 
false;
 
   57   m_areServiceFlowsAllocated = 
false;
 
   60   m_sfTransactionId = 0;
 
   63   m_serviceFlows = 
new std::vector<ServiceFlow*> ();
 
   68 SSRecord::~SSRecord (
void)
 
   70   delete m_serviceFlows;
 
   75 SSRecord::SetIPAddress (Ipv4Address IPAddress)
 
   77   m_IPAddress = IPAddress;
 
   80 Ipv4Address SSRecord::GetIPAddress (
void)
 
   86 SSRecord::SetBasicCid (Cid basicCid)
 
   88   m_basicCid = basicCid;
 
   92 SSRecord::GetBasicCid (
void)
 const 
   98 SSRecord::SetPrimaryCid (Cid primaryCid)
 
  100   m_primaryCid = primaryCid;
 
  104 SSRecord::GetPrimaryCid (
void)
 const 
  110 SSRecord::SetMacAddress (Mac48Address macAddress)
 
  112   m_macAddress = macAddress;
 
  116 SSRecord::GetMacAddress (
void)
 const 
  122 SSRecord::GetRangingCorrectionRetries (
void)
 const 
  124   return m_rangingCorrectionRetries;
 
  128 SSRecord::ResetRangingCorrectionRetries (
void)
 
  130   m_rangingCorrectionRetries = 0;
 
  134 SSRecord::IncrementRangingCorrectionRetries (
void)
 
  136   m_rangingCorrectionRetries++;
 
  140 SSRecord::GetInvitedRangRetries (
void)
 const 
  142   return m_invitedRangingRetries;
 
  146 SSRecord::ResetInvitedRangingRetries (
void)
 
  148   m_invitedRangingRetries = 0;
 
  152 SSRecord::IncrementInvitedRangingRetries (
void)
 
  154   m_invitedRangingRetries++;
 
  158 SSRecord::SetModulationType (WimaxPhy::ModulationType modulationType)
 
  160   m_modulationType = modulationType;
 
  163 WimaxPhy::ModulationType
 
  164 SSRecord::GetModulationType (
void)
 const 
  166   return m_modulationType;
 
  170 SSRecord::SetRangingStatus (WimaxNetDevice::RangingStatus rangingStatus)
 
  172   m_rangingStatus = rangingStatus;
 
  175 WimaxNetDevice::RangingStatus
 
  176 SSRecord::GetRangingStatus (
void)
 const 
  178   return m_rangingStatus;
 
  182 SSRecord::EnablePollForRanging (
void)
 
  184   m_pollForRanging = 
true;
 
  188 SSRecord::DisablePollForRanging (
void)
 
  190   m_pollForRanging = 
false;
 
  194 SSRecord::GetPollForRanging (
void)
 const 
  196   return m_pollForRanging;
 
  200 SSRecord::SetAreServiceFlowsAllocated (
bool val)
 
  202   m_areServiceFlowsAllocated = val;
 
  206 SSRecord::GetAreServiceFlowsAllocated (
void)
 const 
  208   return m_areServiceFlowsAllocated;
 
  212 SSRecord::SetPollMeBit (
bool pollMeBit)
 
  214   m_pollMeBit = pollMeBit;
 
  218 SSRecord::GetPollMeBit (
void)
 const 
  224 SSRecord::AddServiceFlow (ServiceFlow *serviceFlow)
 
  226   m_serviceFlows->push_back (serviceFlow);
 
  229 std::vector<ServiceFlow*> SSRecord::GetServiceFlows (
enum ServiceFlow::SchedulingType schedulingType)
 const 
  231   std::vector<ServiceFlow*> tmpServiceFlows;
 
  232   for (std::vector<ServiceFlow*>::iterator iter = m_serviceFlows->begin (); iter != m_serviceFlows->end (); ++iter)
 
  234       if (((*iter)->GetSchedulingType () == schedulingType) || (schedulingType == ServiceFlow::SF_TYPE_ALL))
 
  236           tmpServiceFlows.push_back ((*iter));
 
  239   return tmpServiceFlows;
 
  243 SSRecord::SetIsBroadcastSS (
bool broadcast_enable)
 
  245   m_broadcast = broadcast_enable;
 
  249 SSRecord::GetIsBroadcastSS (
void)
 
  255 SSRecord::GetHasServiceFlowUgs (
void)
 const 
  257   for (std::vector<ServiceFlow*>::iterator iter = m_serviceFlows->begin (); iter != m_serviceFlows->end (); ++iter)
 
  259       if ((*iter)->GetSchedulingType () == ServiceFlow::SF_TYPE_UGS)
 
  268 SSRecord::GetHasServiceFlowRtps (
void)
 const 
  270   for (std::vector<ServiceFlow*>::iterator iter = m_serviceFlows->begin (); iter != m_serviceFlows->end (); ++iter)
 
  272       if ((*iter)->GetSchedulingType () == ServiceFlow::SF_TYPE_RTPS)
 
  281 SSRecord::GetHasServiceFlowNrtps (
void)
 const 
  283   for (std::vector<ServiceFlow*>::iterator iter = m_serviceFlows->begin (); iter != m_serviceFlows->end (); ++iter)
 
  285       if ((*iter)->GetSchedulingType () == ServiceFlow::SF_TYPE_NRTPS)
 
  294 SSRecord::GetHasServiceFlowBe (
void)
 const 
  296   for (std::vector<ServiceFlow*>::iterator iter = m_serviceFlows->begin (); iter != m_serviceFlows->end (); ++iter)
 
  298       if ((*iter)->GetSchedulingType () == ServiceFlow::SF_TYPE_BE)
 
  307 SSRecord::SetSfTransactionId (uint16_t sfTransactionId)
 
  309   m_sfTransactionId = sfTransactionId;
 
  312 uint16_t SSRecord::GetSfTransactionId (
void)
 const 
  314   return m_sfTransactionId;
 
  318 SSRecord::SetDsaRspRetries (uint8_t dsaRspRetries)
 
  320   m_dsaRspRetries = dsaRspRetries;
 
  324 SSRecord::IncrementDsaRspRetries (
void)
 
  330 SSRecord::GetDsaRspRetries (
void)
 const 
  332   return m_dsaRspRetries;
 
  336 SSRecord::SetDsaRsp (DsaRsp dsaRsp)
 
  342 SSRecord::GetDsaRsp (
void)
 const