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

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

?? mac-802_16-fsm.cc

?? Its the source code for implementing WIMAX in NS-2
?? CC
?? 第 1 頁 / 共 5 頁
字號:
{  if (UpFlowTable[tbindex].debug)    printf("SS%d(flow-id %d):beffort_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//      printf("1 %lf %d %d 3\n",Scheduler::instance().clock(),//			UpFlowTable[tbindex].upstream_record.flow_id,ss_id);       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 = BEFFORT_TOSEND;	  beffort_tosend(tbindex, SEND_PKT, p);	}      else if ( CanUnicastReqBeSent(tbindex))	{	  turn_off_contention(tbindex);	  UpFlowTable[tbindex].state = BEFFORT_TOSENDREQ;	  beffort_tosendreq(tbindex, SEND_UREQ, p);	}      else if ( CanContentionReqBeSent(tbindex))	{	  UpFlowTable[tbindex].state = BEFFORT_CONTENTION;	  if (UpFlowTable[tbindex].contention_on)	    beffort_contention(tbindex, CONTENTION_SLOTS, p);	  else	    beffort_contention(tbindex, CONTENTION_ON, p);	  	  	}      /*$A11      else if (DataGrantPending(tbindex))	{	  turn_off_contention(tbindex);	  UpFlowTable[tbindex].state = BEFFORT_REQSENT;	  }*/      break;          default:      printf("SS%d(flow-id %d) BEFFORT-WAITFORMAP state error: Unknown event received\n",	     ss_id,UpFlowTable[tbindex].upstream_record.flow_id);      break;          }  return 1;}/**************************************************************************************************************************************************/int Mac802_16SS::beffort_tosend(char tbindex, EventType e, Packet* p){  double etime, current_time;  Packet* t;    if (UpFlowTable[tbindex].debug)    printf("SS%d(flow-id %d):beffort_tosend(%lf): event :%d \n", 	   ss_id,UpFlowTable[tbindex].upstream_record.flow_id, 	   Scheduler::instance().clock(),e);    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);	}            if (UpFlowTable[tbindex].debug)	printf("SS%d(flow-id %d)Starting snd timer..\n", 	       ss_id,UpFlowTable[tbindex].upstream_record.flow_id);            current_time = Scheduler::instance().clock();      //TESTE      //fprintf(stderr,"beffort_tosend %d em %lf evento %p com delay %f para %lf\n",tbindex,current_time,&UpFlowTable[tbindex].intr,etime,etime+current_time);            mhSSSend_.start((Packet *)(&UpFlowTable[tbindex].intr), etime );                  insert_sndlist(current_time + etime, tbindex);      break;          case PKT_ARRIVAL:#ifdef TIMINGS//      printf("1 %lf %d %d 4\n",Scheduler::instance().clock(),//			UpFlowTable[tbindex].upstream_record.flow_id,ss_id);       timingsTrace(p,1);#endif      insert_pkt(p,tbindex);      break;          case MAP_ARRIVAL:      UpdateAllocationTable(tbindex);          if (UpFlowTable[tbindex].debug)	{	  printf("SS%d(flow-id %d):beffort_tosend(%lf): MAP arrival\n", 		 ss_id,UpFlowTable[tbindex].upstream_record.flow_id, 		 Scheduler::instance().clock());	  print_alloclist(tbindex);	}      break;          case SEND_TIMER:      /* Senddown shud set pkt to NULL  & free the pkt */      //deque_pkt(tbindex);#ifdef TIMINGS//	printf("4 %lf %d %d 1\n",Scheduler::instance().clock(),//			UpFlowTable[tbindex].upstream_record.flow_id,ss_id);         timingsTrace(p,4);#endif      //TESTE      //fprintf(stderr,"beffort_tosend %d send_timer em %lf\n",tbindex,Scheduler::instance().clock());      SendData(p,tbindex);            if (!bit_on(UpFlowTable[tbindex].upstream_record.flag,FRAG_ON_BIT) && 	  ((!bit_on(UpFlowTable[tbindex].upstream_record.flag,PIGGY_ENABLE_BIT)) || 	   ((bit_on(UpFlowTable[tbindex].upstream_record.flag,PIGGY_ENABLE_BIT)) && 	    (bit_on(UpFlowTable[tbindex].upstream_record.flag,PIGGY_NOT_SEND)))))		{	  /* This 'if' will be entered only if frag is off 	     and piggyback request has not been sent */	  	  UpFlowTable[tbindex].pkt = 0;	  	  if ((len_queue(UpFlowTable[tbindex].packet_list)) > 0) 	    {	      UpFlowTable[tbindex].state = BEFFORT_DECISION;	      t = deque_pkt(tbindex);	      UpFlowTable[tbindex].pkt = t;#ifdef TIMINGS//We will log this next in BEFFORT_DECI//	printf("2 %lf %d %d 1\n",Scheduler::instance().clock(),//			UpFlowTable[tbindex].upstream_record.flow_id,ss_id); //        timingsTrace(t,2);#endif	      beffort_decision(tbindex, PKT_ARRIVAL, t);	    }		  else	    UpFlowTable[tbindex].state = BEFFORT_IDLE;	  	  /* Turn-off this bit, as the info has been used */	  set_bit(&UpFlowTable[tbindex].upstream_record.flag, PIGGY_NOT_SEND,OFF);	  	}      break;          default:      printf("SS%d(flow-id %d) BEFFORT-TOSEND state error: Unknown event received\n",	     ss_id,UpFlowTable[tbindex].upstream_record.flow_id);      break;    }  return 1;}/**************************************************************************************************************************************************/int Mac802_16SS::beffort_tosendreq(char tbindex, EventType e, Packet* p){  double etime,current_time;    if (UpFlowTable[tbindex].debug)    printf("SS%d(flow-id %d) :beffort_tosendreq(%lf):  Entered with event : %d \n",	   ss_id,UpFlowTable[tbindex].upstream_record.flow_id, 	   Scheduler::instance().clock(),e);  switch(e)     {    case SEND_UREQ:      /* Function to find out the first Unicast req grant for	 this flow (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);	}            mhReq_.start((Packet*)(&UpFlowTable[tbindex].intr), etime);      current_time = Scheduler::instance().clock();      insert_reqlist(current_time + etime, tbindex);      break;          case PKT_ARRIVAL:#ifdef TIMINGS//      printf("1 %lf %d %d 5\n",Scheduler::instance().clock(),//			UpFlowTable[tbindex].upstream_record.flow_id,ss_id);       timingsTrace(p,1);#endif      insert_pkt(p,tbindex);      break;          case MAP_ARRIVAL:      UpdateAllocationTable(tbindex);            if (UpFlowTable[tbindex].debug)	{	  printf("SS%d(flow-id %d):beffort_tosendreq(%lf): MAP ARRIVAL: allocation table:\n", 		 ss_id,UpFlowTable[tbindex].upstream_record.flow_id, 		 Scheduler::instance().clock());	  print_alloclist(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 = BEFFORT_TOSEND;	  beffort_tosend(tbindex, SEND_PKT, p);	}      break;          case REQ_TIMER:      /* Send_Request shud mark the slot as used..sendDown shud mark 	 the slot as used*/                     //$A2      //On error, reinsert request and assume a collision      if(!SendReq(tbindex, p)){          reinsert_reqlist(tbindex);                                    if(UpFlowTable[tbindex].num_retries == 1){            turn_off_contention(tbindex);            UpFlowTable[tbindex].bk_offwin = UpFlowTable[tbindex].bk_offstart;         }         else {           total_num_collisions--;           UpFlowTable[tbindex].bk_offwin = UpFlowTable[tbindex].bk_offwin / 2;           UpFlowTable[tbindex].num_retries--;         } //                           printf("Request not sent\n");      }             //      SendReq(tbindex, p);      UpFlowTable[tbindex].state = BEFFORT_REQSENT;      break;          default:      printf("SS%d(flow-id %d) BEFFORT-TOSENDREQ state error: Unknown event received\n",	     ss_id,UpFlowTable[tbindex].upstream_record.flow_id);      break;    }  return 1;}			/**************************************************************************************************************************************************/			int Mac802_16SS::beffort_reqsent(char tbindex, EventType e, Packet* p){  if (UpFlowTable[tbindex].debug)    printf("SS%d(flow-id %d) BEFFORT_REQSENT state \n",	   ss_id,UpFlowTable[tbindex].upstream_record.flow_id);	  switch(e)     {    case PKT_ARRIVAL:#ifdef TIMINGS//      printf("1 %lf %d %d 6\n",Scheduler::instance().clock(),//			UpFlowTable[tbindex].upstream_record.flow_id,ss_id);       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))	{	  UpFlowTable[tbindex].state = BEFFORT_TOSEND;	  turn_off_contention(tbindex);	  beffort_tosend(tbindex, SEND_PKT, p);	}      //$A11 $A13      else if ((Scheduler::instance().clock() - UpFlowTable[tbindex].req_time) >= T16_TIMER)	{	  if (UpFlowTable[tbindex].contention_on)	    {	      /* Request lost in collision */	      int max_retries_reached = back_off(tbindex,p);	      // incluir as mudancas de estado	      if (max_retries_reached)		{		  if (UpFlowTable[tbindex].debug)		    printf("Dropping the packet as maximum number of retries is exceeded\n");		  total_packets_dropped++; 		  UpFlowTable[tbindex].total_collision_drops++;		  drop(p);		  turn_off_contention(tbindex);		  if (bit_on(UpFlowTable[tbindex].upstream_record.flag,FRAG_ON_BIT))		    {		      set_bit(&UpFlowTable[tbindex].upstream_record.flag, FRAG_ON_BIT,OFF);		      UpFlowTable[tbindex].frag_data = 0;		      UpFlowTable[tbindex].frag_pkt = 0;		    }		  UpFlowTable[tbindex].pkt = 0;		  if ((len_queue(UpFlowTable[tbindex].packet_list)) > 0)		    {		      Packet* t;		      t = deque_pkt(tbindex);		      UpFlowTable[tbindex].pkt = t;		      UpFlowTable[tbindex].state = BEFFORT_DECISION;		      nrtpoll_decision(tbindex, PKT_ARRIVAL, t);		    }			  else		    UpFlowTable[tbindex].state = BEFFORT_IDLE; 		}	      else		beffort_decision(tbindex, PKT_ARRIVAL, p);	      	    } 	  else	    {	      if (UpFlowTable[tbindex].debug)		printf("SS%d(flow-id %d) Request denied at %lf\n", 		       ss_id,UpFlowTable[tbindex].upstream_record.flow_id,		       Scheduler::instance().clock());	      	      /* Data grant, requested through unicast opportunity, denied by BS */	      UpFlowTable[tbindex].state = BEFFORT_DECISION;	      nrtpoll_decision(tbindex, PKT_ARRIVAL, p);	    }	}       /*else if ((UpFlowTable[tbindex].contention_on) &&	       ( !DataGrantPending(tbindex)) && 	       (MapSentAfterReq(tbindex)))	{	  // Request lost in collision	  back_off(tbindex,p);	}      else if ((UpFlowTable[tbindex].contention_on) &&	       ( DataGrantPending(tbindex)) && 	       (MapSentAfterReq(tbindex)))	{	  //* Contention request succesfully sent	  turn_off_contention(tbindex);	}      else if ((!UpFlowTable[tbindex].contention_on) &&	       ( !DataGrantPending(tbindex)) && 	       (MapSentAfterReq(tbindex)))	{	  if (UpFlowTable[tbindex].debug)	    printf("SS%d(flow-id %d) Request denied at %lf\n", 		   ss_id,UpFlowTable[tbindex].upstream_record.flow_id,		   Scheduler::instance().clock());	  	  // Data grant denied by BS	  UpFlowTable[tbindex].state = BEFFORT_DECISION;	  beffort_decision(tbindex, PKT_ARRIVAL, p);	}*/	            break;          default:      printf("SS%d(flow-id %d) BEFFORT-REQSENT state error: Unknown event received\n",	     ss_id,UpFlowTable[tbindex].upstream_record.flow_id);      break;          }  r

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产精品热久久久久夜色精品三区| 国产精品每日更新在线播放网址| www.欧美.com| 一本色道久久综合精品竹菊| 成人av免费在线观看| 一本色道久久综合亚洲精品按摩 | 久国产精品韩国三级视频| 亚洲免费观看高清| 免费高清在线一区| 成人av中文字幕| 91精品国产综合久久精品| 日韩精品中文字幕一区二区三区 | 99久久99久久精品免费观看| 一本色道**综合亚洲精品蜜桃冫 | 91精品欧美福利在线观看| 久久久久久久久久美女| 亚洲欧美成人一区二区三区| 精品中文字幕一区二区| 不卡视频在线观看| 欧美一级夜夜爽| 婷婷亚洲久悠悠色悠在线播放 | ㊣最新国产の精品bt伙计久久| 一级特黄大欧美久久久| 波多野结衣亚洲| 亚洲国产精品国自产拍av| 美女视频免费一区| 欧美日韩精品免费观看视频| 一区二区三区在线看| 99精品偷自拍| 亚洲欧美日韩一区二区 | 国产嫩草影院久久久久| 精品一区二区三区在线观看| 91麻豆精品国产91久久久久久久久| 一区二区三区四区五区视频在线观看| 激情丁香综合五月| 久久久久九九视频| 国产成人免费9x9x人网站视频| 欧美成人一区二区三区| 国内成+人亚洲+欧美+综合在线| 欧美大片国产精品| 国产精品亚洲а∨天堂免在线| 久久久精品黄色| 97se亚洲国产综合自在线| 亚洲美女视频在线| 欧美日韩高清一区二区不卡| 久久精品国产一区二区| 亚洲国产精品成人综合| 欧美日韩亚洲丝袜制服| 久久精品国产成人一区二区三区 | 亚洲欧美偷拍三级| 777久久久精品| av在线免费不卡| 日韩av成人高清| 亚洲视频精选在线| 久久久国产午夜精品| 欧美日韩中文字幕一区| 国产成人综合亚洲91猫咪| 午夜电影久久久| 成人免费在线观看入口| 久久久精品中文字幕麻豆发布| 色婷婷亚洲婷婷| 91在线码无精品| 国产成人av电影| 韩国理伦片一区二区三区在线播放| 亚洲精品国产精品乱码不99 | 色综合天天综合在线视频| 国产成人精品影视| 国产美女视频91| 久草这里只有精品视频| 亚洲一区二区视频在线| 亚洲午夜免费电影| 亚洲成人av福利| 日韩av在线播放中文字幕| 偷拍自拍另类欧美| 男人的天堂久久精品| 久久9热精品视频| 国产激情91久久精品导航| 懂色一区二区三区免费观看| 9i看片成人免费高清| 91原创在线视频| 欧美一区二区视频在线观看 | 亚洲最新视频在线观看| 日韩av一区二区三区| 国产剧情在线观看一区二区| 国产a区久久久| 91 com成人网| 国产欧美日韩激情| 亚洲一区二区三区四区在线免费观看| 亚洲黄色片在线观看| 久久er99热精品一区二区| 成人app软件下载大全免费| 欧美午夜精品一区二区三区| 欧美成人综合网站| 亚洲一区二区视频| 成人高清在线视频| 久久老女人爱爱| 日韩国产精品久久| 欧洲av一区二区嗯嗯嗯啊| 久久新电视剧免费观看| 肉丝袜脚交视频一区二区| 色呦呦日韩精品| 中文字幕日韩av资源站| 国产一区二区按摩在线观看| 欧美老肥妇做.爰bbww视频| 国产精品福利影院| www.亚洲精品| 综合av第一页| 99久久er热在这里只有精品15 | 国产欧美久久久精品影院| 全部av―极品视觉盛宴亚洲| 欧美日韩国产大片| 日日摸夜夜添夜夜添国产精品| 欧美性色黄大片| 日本人妖一区二区| 欧美日韩第一区日日骚| 亚洲一级片在线观看| 91精品国产综合久久久久久久久久| 亚洲永久免费av| 精品国产一区久久| 成人网页在线观看| 亚洲欧美电影一区二区| 欧美日韩一级黄| 久久国产婷婷国产香蕉| 亚洲国产高清在线| 欧美性大战久久久久久久蜜臀| 日韩va亚洲va欧美va久久| 精品久久一二三区| 在线一区二区视频| 久久99精品久久久久久国产越南| 久久一区二区三区四区| 欧美性受极品xxxx喷水| 国产一区二区福利视频| 婷婷亚洲久悠悠色悠在线播放| 久久这里只精品最新地址| 欧美视频中文字幕| 成人性视频免费网站| 青青草97国产精品免费观看 | 久久精品视频一区二区三区| 亚洲尤物视频在线| 波多野结衣中文一区| 国产精品久久久久7777按摩| 喷白浆一区二区| 欧美卡1卡2卡| 日本色综合中文字幕| 亚洲人亚洲人成电影网站色| 日韩欧美亚洲一区二区| 51精品秘密在线观看| 99精品视频在线观看免费| 韩国av一区二区三区四区| 欧美性xxxxx极品少妇| av电影在线观看一区| 九九久久精品视频| 高清日韩电视剧大全免费| 日产欧产美韩系列久久99| 欧美性色黄大片| 国产乱码精品一品二品| 国产不卡视频一区| 蜜臀91精品一区二区三区| 麻豆91精品91久久久的内涵| 久久99精品国产麻豆婷婷| 亚洲小说欧美激情另类| 亚洲电影中文字幕在线观看| 亚洲国产精品久久久男人的天堂 | 精品中文字幕一区二区小辣椒| 亚洲最大的成人av| 久久国产精品区| 在线观看亚洲精品视频| 欧美一区二区视频观看视频| 国产亚洲精品精华液| 亚洲最色的网站| 99精品国产热久久91蜜凸| 日韩视频一区在线观看| 亚洲午夜电影在线观看| 丁香亚洲综合激情啪啪综合| 欧美精品乱人伦久久久久久| 国产亚洲短视频| 国内一区二区在线| 日韩视频一区在线观看| 性久久久久久久久久久久| 成人免费视频国产在线观看| 欧美一区二区三区日韩视频| 一区二区三区日韩在线观看| 国产成人精品1024| 欧美激情一区不卡| 国产一区二区三区四区五区美女| 欧美色区777第一页| 亚洲专区一二三| 色婷婷激情久久| 亚洲一区二区不卡免费| 欧美综合亚洲图片综合区| 亚洲一区在线电影| 欧美疯狂做受xxxx富婆| 日本一区中文字幕| 日韩一卡二卡三卡国产欧美| 六月丁香婷婷色狠狠久久| 欧美精品一区视频| www.亚洲精品| 天天射综合影视| 久久日韩粉嫩一区二区三区 | 波多野结衣中文字幕一区|