亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? mac-802_16-fsm.cc

?? Its the source code for implementing WIMAX in NS-2
?? CC
?? 第 1 頁 / 共 5 頁
字號:
  double etime, current_time;  Packet* t;    if (UpFlowTable[tbindex].debug)    printf("SS%d(flow-id %d) RTPOLL_TOSEND state \n",	   ss_id,UpFlowTable[tbindex].upstream_record.flow_id);    switch(e)     {    case SEND_PKT:      /* Function to find out the first data grant big enough 	 for this packet (indicated by 0) */            etime = timer_expiration(tbindex, p, DATA_GRANT);            if (etime == -1.0)	{	  printf("SS%d(flow-id %d) Timer expiration error: exiting..\n",		 ss_id,UpFlowTable[tbindex].upstream_record.flow_id);	  exit(1);	}          //printf("Starting snd timer..\n");      current_time = Scheduler::instance().clock();      //TESTE      //fprintf(stderr,"rtpoll_tosend em %lf evento %p para %lf\n",current_time,&UpFlowTable[tbindex].intr,etime+current_time);      mhSSSend_.start((Packet *)(&UpFlowTable[tbindex].intr), etime);      insert_sndlist(current_time + etime, tbindex);      break;          case PKT_ARRIVAL:      insert_pkt(p,tbindex);      break;          case MAP_ARRIVAL:      UpdateAllocationTable(tbindex);      //printf("\nAllocation table for flow %d\n",      //UpFlowTable[tbindex].upstream_record.flow_id);      //print_alloclist(tbindex);      break;          case SEND_TIMER:      /* Senddown shud set pkt to NULL  & free the pkt */            //printf("Allocation-table for flow-id %d\n",      //UpFlowTable[tbindex].upstream_record.flow_id);      //print_alloclist(tbindex);      //deque_pkt(tbindex);      //TESTE      //printf("flow id %d send packet at %lf\n",UpFlowTable[tbindex].upstream_record.flow_id,Scheduler::instance().clock());            //TESTE      //fprintf(stderr,"rtpoll_tosend send_timer em %lf\n",Scheduler::instance().clock());      SendData(p,tbindex);          UpFlowTable[tbindex].pkt = 0;            if ((len_queue(UpFlowTable[tbindex].packet_list)) > 0)	{	  UpFlowTable[tbindex].state = RTPOLL_DECISION;	  t = deque_pkt(tbindex);	  UpFlowTable[tbindex].pkt = t;	  rtpoll_decision(tbindex, PKT_ARRIVAL, t);	}	      else	UpFlowTable[tbindex].state = RTPOLL_IDLE;      break;        default:      printf("SS%d(flow-id %d) RTPOLL-TOSEND state error: Unknown event received\n",	     ss_id,UpFlowTable[tbindex].upstream_record.flow_id);      break;    }  return 1;}/**************************************************************************************************************************************************/int Mac802_16SS::rtpoll_tosendreq(char tbindex, EventType e, Packet* p){  double etime,current_time;    if (UpFlowTable[tbindex].debug)    printf("SS%d(flow-id %d) RTPOLL_TOSENDREQ state \n",	   ss_id,UpFlowTable[tbindex].upstream_record.flow_id);    switch(e)     {    case SEND_UREQ:      /* Function to find out the first data grant big enough for	 this packet (indicated by 1) */      etime = timer_expiration(tbindex, p, UREQ_GRANT);            if (etime == -1.0)	{	  printf("SS%d(flow-id %d) Timer expiration error: exiting..\n",		 ss_id,UpFlowTable[tbindex].upstream_record.flow_id);	  exit(1);	}      //TESTE      //fprintf(stderr,"rtpoll_tosendreq em %lf evento %p para %lf\n",current_time,&UpFlowTable[tbindex].intr,etime+current_time);      mhReq_.start((Packet*)(&UpFlowTable[tbindex].intr), etime);      current_time = Scheduler::instance().clock();      insert_reqlist(current_time + etime, tbindex);      break;          case PKT_ARRIVAL:      insert_pkt(p,tbindex);      break;          case MAP_ARRIVAL:      UpdateAllocationTable(tbindex);           if (CanBeSent(UpFlowTable[tbindex].alloc_list,p,tbindex))	{ 	  mhReq_.stop((Packet*)(&UpFlowTable[tbindex].intr));	  //$A8	  //refresh_reqlist();	  UpFlowTable[tbindex].req_time = 999999.0;	  UpFlowTable[tbindex].state = RTPOLL_TOSEND;	  rtpoll_tosend(tbindex, SEND_PKT, p);	}      break;          case REQ_TIMER:      SendReq(tbindex, p);      //$A11 UpFlowTable[tbindex].state = RTPOLL_REQSENT;      UpFlowTable[tbindex].state = RTPOLL_WAITFORMAP;      //TESTE      //fprintf(stderr,"rtpoll_tosendreq req_timer em %lf\n",Scheduler::instance().clock());      break;          default:      printf("SS%d(flow-id %d) RTPOLL-TOSENDREQ state error: Unknown event received\n",	     ss_id,UpFlowTable[tbindex].upstream_record.flow_id);      break;    }   return 1;}/**************************************************************************************************************************************************$A11int Mac802_16SS::rtpoll_reqsent(char tbindex, EventType e, Packet* p){  if (UpFlowTable[tbindex].debug)    printf("SS%d(flow-id %d) RTPOLL_REQSENT state \n",	   ss_id,UpFlowTable[tbindex].upstream_record.flow_id);    switch(e)     {    case PKT_ARRIVAL:      insert_pkt(p,tbindex);      break;          case MAP_ARRIVAL:      UpdateAllocationTable(tbindex);      //printf("\nAllocation table for flow %d\n",      //UpFlowTable[tbindex].upstream_record.flow_id);      //print_alloclist(tbindex);            if (CanBeSent(UpFlowTable[tbindex].alloc_list,p,tbindex))	{	  UpFlowTable[tbindex].state = RTPOLL_TOSEND;	  rtpoll_tosend(tbindex, SEND_PKT, p);	}      else if (!DataGrantPending(tbindex) && (MapSentAfterReq(tbindex)))	{	  UpFlowTable[tbindex].state = RTPOLL_DECISION;	  rtpoll_decision(tbindex, PKT_ARRIVAL, p);	}      break;          default:      printf("SS%d(flow-id %d) RTPOLL-REQSENT state error: Unknown event received\n",	     ss_id,UpFlowTable[tbindex].upstream_record.flow_id);      break;			    }  return 1;}*//*===========================END RT-RTPOLL STATE MACHINE FUNCTIONS===================*///$A5/*===========================NRT-POLL STATE MACHINE FUNCTIONS===================*//************************************************************************* tbindex denotes the service-flow entry on which packet has been mapped *************************************************************************//*! \param tbindex denotes the service-flow entry on which packet has been mapped */int Mac802_16SS::nrtpoll_idle(char tbindex, EventType e, Packet* p){  if (UpFlowTable[tbindex].debug)    printf("SS%d(flow-id %d):nrtpoll_idle(%lf): NRT-POLL_IDLE state \n",	   ss_id,UpFlowTable[tbindex].upstream_record.flow_id,	   Scheduler::instance().clock());    switch(e)     {    case PKT_ARRIVAL:#ifdef TIMINGS        timingsTrace(p,1);#endif      if (UpFlowTable[tbindex].debug)	printf("SS%d(flow-id %d):nrt-poll_idle(%lf):Packet arrived, go to decision state\n",	       ss_id,UpFlowTable[tbindex].upstream_record.flow_id, 	       Scheduler::instance().clock());            UpFlowTable[tbindex].state = NRTPOLL_DECISION;      UpFlowTable[tbindex].pkt = p;            /* Since this pkt is not being queued, so update the enque_time variable */      UpFlowTable[tbindex].enque_time = Scheduler::instance().clock();      UpFlowTable[tbindex].queuing_samples++;      nrtpoll_decision(tbindex, PKT_ARRIVAL, p);      break;                case MAP_ARRIVAL:      UpdateAllocationTable(tbindex);      if (UpFlowTable[tbindex].debug)	{	  printf("SS%d(flow-id %d):nrt-poll_idle(%lf): MAP arrived, new state: %d \n", 	       ss_id,UpFlowTable[tbindex].upstream_record.flow_id, 	       Scheduler::instance().clock(), UpFlowTable[tbindex].state);	  printf("SS%d(flow-id %d) Allocation table \n",		 ss_id,UpFlowTable[tbindex].upstream_record.flow_id);	  print_alloclist(tbindex);	}      break;          default:      printf("SS%d(flow-id %d) NRTPOLL-IDLE state error: Unknown event received %d\n",	     ss_id,UpFlowTable[tbindex].upstream_record.flow_id,e);      break;          }  return 1;}/**************************************************************************************************************************************************/	int Mac802_16SS::nrtpoll_decision(char tbindex, EventType e, Packet* p){  if (UpFlowTable[tbindex].debug)    printf("SS%d(flow-id %d):nrtpoll_decision(%lf): entered with event %d \n",	   ss_id,UpFlowTable[tbindex].upstream_record.flow_id, 	   Scheduler::instance().clock(),e);	  switch(e)     {    case PKT_ARRIVAL:#ifdef TIMINGS	    //We only get here from another state...	    //We enter a new request process        timingsTrace(p,2);#endif      if (!CanBeSent(UpFlowTable[tbindex].alloc_list,p,tbindex))	{	  if (UpFlowTable[tbindex].debug)	    printf("SS%d (flow-id %d):nrtpoll_decision(%lf): Can NOT BeSent! \n", 		   ss_id,UpFlowTable[tbindex].upstream_record.flow_id, 		   Scheduler::instance().clock());	  	  if (!CanUnicastReqBeSent(tbindex))	    {	      if (UpFlowTable[tbindex].debug)		printf("SS%d(flow-id %d):nrtpoll_decision(%lf):Unicast Req Can NOT BeSent!\n", 		       ss_id,UpFlowTable[tbindex].upstream_record.flow_id, 		       Scheduler::instance().clock());	      	      /*$A11	      if (DataGrantPending(tbindex))		{		  if (UpFlowTable[tbindex].debug)		    printf("SS%d(flow-id %d):nrtpoll_decision(%lf):DataGrant is pending... goto REQSENT state\n", 			   ss_id,UpFlowTable[tbindex].upstream_record.flow_id, 			   Scheduler::instance().clock());		  		  turn_off_contention(tbindex);		  UpFlowTable[tbindex].state = NRTPOLL_REQSENT;		}		else */	      if (CanContentionReqBeSent(tbindex))		{		  UpFlowTable[tbindex].state = NRTPOLL_CONTENTION;		  		  if (!UpFlowTable[tbindex].contention_on)		    nrtpoll_contention(tbindex, CONTENTION_ON, p);		  else		    /* 		       Contention is on and reached decision state, 		       that implies that back-off has occured 		    */		    nrtpoll_contention(tbindex, CONTENTION_BKOFF, p);		  		  		  if (UpFlowTable[tbindex].debug)		    printf("SS%d(flow-id %d):nrtpoll_decision(%lf):ContentionRequ COULD be sent:updated state:%d\n", 			   ss_id,UpFlowTable[tbindex].upstream_record.flow_id, 			   Scheduler::instance().clock(), UpFlowTable[tbindex].state);		  		}	      else 		{		  UpFlowTable[tbindex].state = NRTPOLL_WAITFORMAP;		}	      	      if (UpFlowTable[tbindex].debug)		printf("SS%d(flow-id %d):nrtpoll_decision(%lf):Unicast req COULD NOT be sent:updated state:%d\n", 		       ss_id,UpFlowTable[tbindex].upstream_record.flow_id, 		       Scheduler::instance().clock(), UpFlowTable[tbindex].state);	    }	  else 	    {	      UpFlowTable[tbindex].state = NRTPOLL_TOSENDREQ;	      turn_off_contention(tbindex);	      nrtpoll_tosendreq(tbindex,SEND_UREQ, p);	      	      if (UpFlowTable[tbindex].debug)		printf("SS%d(flow-id %d):nrtpoll_decision(%lf):Unicast req CAN be sent:updated state:%d \n", 		       ss_id,UpFlowTable[tbindex].upstream_record.flow_id, 		       Scheduler::instance().clock(), UpFlowTable[tbindex].state);	    }	}      else 	{	  turn_off_contention(tbindex);	  UpFlowTable[tbindex].state = NRTPOLL_TOSEND;	  nrtpoll_tosend(tbindex, SEND_PKT, p);	}      break;          default:      printf("SS%d(flow-id %d) NRTPOLL-DECISION state error: Unknown event received %d\n",	     ss_id,UpFlowTable[tbindex].upstream_record.flow_id,e);      break;          }  return 1;}/**************************************************************************************************************************************************/int Mac802_16SS::nrtpoll_waitformap(char tbindex, EventType e, Packet* p){  if (UpFlowTable[tbindex].debug)    printf("SS%d(flow-id %d):nrtpoll_waitformap(%lf): entered with event %d \n", 	   ss_id,UpFlowTable[tbindex].upstream_record.flow_id, 	   Scheduler::instance().clock(),e);  switch(e)     {    case PKT_ARRIVAL:#ifdef TIMINGS      timingsTrace(p,1);#endif      insert_pkt(p,tbindex);      break;          case MAP_ARRIVAL:      UpdateAllocationTable(tbindex);            if (UpFlowTable[tbindex].debug)	{	  printf("SS%d(flow-id %d) Allocation table \n",		 ss_id,UpFlowTable[tbindex].upstream_record.flow_id);	  print_alloclist(tbindex);	}            if ( CanBeSent(UpFlowTable[tbindex].alloc_list,p,tbindex))	{	  turn_off_contention(tbindex);	  UpFlowTable[tbindex].state = NRTPOLL_TOSEND;	  nrtpoll_tosend(tbindex, SEND_PKT, p);	}      else if ( CanUnicastReqBeSent(tbindex))	{	  turn_off_contention(tbindex);	  UpFlowTable[tbindex].state = NRTPOLL_TOSENDREQ;	  nrtpoll_tosendreq(tbindex, SEND_UREQ, p);	}      else if ( CanContentionReqBeSent(tbindex))	{	  UpFlowTable[tbindex].state = NRTPOLL_CONTENTION;	  if (UpFlowTable[tbindex].contention_on)	    nrtpoll_contention(tbindex, CONTENTION_SLOTS, p);	  else	    nrtpoll_contention(tbindex, CONTENTION_ON, p);	  	  	}      /*$A11      else if (DataGrantPending(tbindex))

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
处破女av一区二区| 精品少妇一区二区三区在线播放 | 国产综合色在线视频区| 亚洲高清不卡在线观看| 亚洲综合小说图片| 亚洲一区二区成人在线观看| 伊人色综合久久天天人手人婷| 中文字幕在线不卡国产视频| 中文字幕在线不卡| 亚洲青青青在线视频| 亚洲美女视频在线| 洋洋av久久久久久久一区| 亚洲综合激情小说| 日韩在线一区二区| 七七婷婷婷婷精品国产| 久久国产福利国产秒拍| 国产一区二区三区蝌蚪| 国产不卡视频在线观看| 成人福利在线看| 99r国产精品| 欧美亚洲日本国产| 6080yy午夜一二三区久久| 欧美一区二区福利视频| 日韩免费一区二区| 久久久精品国产免大香伊| 国产农村妇女毛片精品久久麻豆 | 国产一区二区三区精品欧美日韩一区二区三区 | 亚洲免费色视频| 94-欧美-setu| 欧美影院午夜播放| 7777精品伊人久久久大香线蕉超级流畅 | 日韩欧美精品三级| 国产婷婷色一区二区三区四区| 中文字幕免费不卡在线| 一区二区在线观看av| 日韩在线卡一卡二| 国产不卡一区视频| 欧美主播一区二区三区| 日韩一区二区免费在线观看| 国产视频不卡一区| 一区二区三区在线看| 秋霞国产午夜精品免费视频| 国产电影一区二区三区| 色狠狠色狠狠综合| 日韩欧美国产wwwww| 国产精品剧情在线亚洲| 亚洲成人1区2区| 国产美女久久久久| 在线观看成人小视频| 日韩女优电影在线观看| 中文字幕亚洲成人| 美国毛片一区二区| 成人精品视频.| 欧美一区三区二区| 18成人在线观看| 久久国产精品无码网站| 色综合中文综合网| 中文字幕欧美三区| 午夜精品一区二区三区免费视频 | 中文字幕欧美国产| 日韩中文欧美在线| 99精品欧美一区二区三区综合在线| 欧美精品一级二级| 国产精品国产精品国产专区不片| 日本中文一区二区三区| 99精品久久只有精品| 精品av综合导航| 亚洲午夜久久久久久久久久久| 国产成人精品一区二| 欧美一区二区三区白人| 亚洲欧美色一区| 国产精品69毛片高清亚洲| 亚洲精选在线视频| 精品一区二区三区日韩| 欧美亚洲国产一区在线观看网站| 国产女同性恋一区二区| 麻豆精品国产91久久久久久| 欧美羞羞免费网站| 亚洲日本在线a| 国产成人综合亚洲91猫咪| 日韩午夜电影av| 午夜精品成人在线| 色偷偷88欧美精品久久久| 日本一区二区三区国色天香| 久久99精品网久久| 欧美一卡二卡在线观看| 亚洲超丰满肉感bbw| 色综合天天做天天爱| 欧美激情在线免费观看| 国产又粗又猛又爽又黄91精品| 欧美一区二区三区啪啪| 亚洲成人1区2区| 欧美午夜精品久久久久久超碰 | 亚洲午夜精品久久久久久久久| 成人av片在线观看| 中文字幕精品一区二区三区精品 | 欧美性猛交xxxxxx富婆| 亚洲视频在线一区二区| av电影天堂一区二区在线| 国产婷婷色一区二区三区四区| 国内久久婷婷综合| 精品国产凹凸成av人网站| 欧美a一区二区| 日韩欧美成人一区二区| 人人精品人人爱| 91精品国产一区二区人妖| 日韩精品视频网| 欧美一区二区日韩| 开心九九激情九九欧美日韩精美视频电影| 777xxx欧美| 乱一区二区av| 久久久久国产精品厨房| 国产黄色91视频| 亚洲欧洲av在线| 日本久久电影网| 亚洲国产精品久久人人爱| 欧美三级日韩三级| 日韩av电影天堂| 欧美大片一区二区| 国产九色sp调教91| 国产精品久久影院| 日本乱人伦aⅴ精品| 污片在线观看一区二区| 日韩一区二区电影在线| 国内精品嫩模私拍在线| 日本一区二区三区国色天香| 91亚洲精品乱码久久久久久蜜桃| 亚洲蜜臀av乱码久久精品| 欧美日韩国产天堂| 麻豆精品新av中文字幕| 久久噜噜亚洲综合| 99re在线视频这里只有精品| 一区二区三区在线视频观看58| 9191久久久久久久久久久| 日韩午夜在线观看| 国产精品一区二区无线| 亚洲欧洲日本在线| 欧美精选一区二区| 国产一区二区三区在线看麻豆| ...av二区三区久久精品| 欧日韩精品视频| 麻豆免费看一区二区三区| 日本一区二区三区电影| 日本久久精品电影| 久久99精品久久久久婷婷| 欧美激情一区三区| 欧美性猛片xxxx免费看久爱| 理论电影国产精品| 亚洲欧洲av在线| 日韩一级黄色大片| 成人sese在线| 午夜激情一区二区三区| 国产日韩在线不卡| 欧美无砖砖区免费| 国产精品99久久不卡二区| 亚洲激情图片小说视频| 精品电影一区二区| 色视频一区二区| 国产毛片精品视频| 亚洲午夜久久久久中文字幕久| 久久久精品免费观看| 欧美日韩国产高清一区二区| 国产不卡高清在线观看视频| 亚洲成人免费在线观看| 中文字幕免费在线观看视频一区| 欧美乱妇15p| aaa国产一区| 国产自产高清不卡| 亚洲不卡av一区二区三区| 国产精品久久久久永久免费观看| 欧美精品粉嫩高潮一区二区| av午夜一区麻豆| 久久99精品国产麻豆不卡| 欧美一二三四区在线| 午夜精品免费在线观看| 性做久久久久久久久| 国产欧美精品一区| 日韩无一区二区| 欧美亚洲另类激情小说| jizz一区二区| 国产在线播精品第三| 手机精品视频在线观看| 一区二区三区在线看| 国产精品久久久久一区二区三区共| 精品国产青草久久久久福利| 欧美日韩国产美女| 一本一本大道香蕉久在线精品 | 国产亚洲欧美日韩日本| 欧美一区二区播放| 欧美日韩国产a| 色8久久人人97超碰香蕉987| av在线播放不卡| 丁香六月综合激情| 国产精品综合视频| 国产在线不卡一卡二卡三卡四卡| 青青草国产成人av片免费| 午夜国产不卡在线观看视频| 又紧又大又爽精品一区二区| 成人免费在线视频观看| 国产精品色呦呦|