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

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

?? mac-802_16-fsm.cc

?? Its the source code for implementing WIMAX in NS-2
?? CC
?? 第 1 頁 / 共 5 頁
字號:
	{	  turn_off_contention(tbindex);	  UpFlowTable[tbindex].state = NRTPOLL_REQSENT;	  }*/      break;          default:      printf("SS%d(flow-id %d) NRTPOLL-WAITFORMAP state error: Unknown event received: %d\n",	     ss_id,UpFlowTable[tbindex].upstream_record.flow_id,e);      break;          }  return 1;}/**************************************************************************************************************************************************/int Mac802_16SS::nrtpoll_tosend(char tbindex, EventType e, Packet* p){  double etime, current_time;  Packet* t;    if (UpFlowTable[tbindex].debug)    printf("SS%d(flow-id %d):nrtpoll_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);            //printf("etime = %lf\n",etime);      //TESTE      //fprintf(stderr,"nrtpoll_tosend em %lf evento %p com delay %f  para %lf\n",current_time,&UpFlowTable[tbindex].intr,etime,etime+current_time);      mhSSSend_.start((Packet *)(&UpFlowTable[tbindex].intr), etime );            current_time = Scheduler::instance().clock();      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):nrtpoll_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,"nrtpoll_tosend send_timer em %lf\n",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 = NRTPOLL_DECISION;	      t = deque_pkt(tbindex);	      UpFlowTable[tbindex].pkt = t;#ifdef TIMINGS//We will log this next in NRTPOLL_DECI//	printf("2 %lf %d %d 1\n",Scheduler::instance().clock(),//			UpFlowTable[tbindex].upstream_record.flow_id,ss_id); //        timingsTrace(t,2);#endif	      nrtpoll_decision(tbindex, PKT_ARRIVAL, t);	    }		  else	    UpFlowTable[tbindex].state = NRTPOLL_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) NRTPOLL-TOSEND state error: Unknown event received %d\n",	     ss_id,UpFlowTable[tbindex].upstream_record.flow_id,e);      break;    }  return 1;}/**************************************************************************************************************************************************/int Mac802_16SS::nrtpoll_tosendreq(char tbindex, EventType e, Packet* p){  double etime,current_time;    if (UpFlowTable[tbindex].debug)    printf("SS%d(flow-id %d) :nrtpoll_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);	}            //TESTE      //fprintf(stderr,"nrtpoll_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();      printf("nrtPS vai enviar u-req em %f\n",current_time+etime);      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):nrtpoll_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(tbindex);	  UpFlowTable[tbindex].req_time = 999999.0;	  UpFlowTable[tbindex].state = NRTPOLL_TOSEND;	  nrtpoll_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");      }             //TESTE      //fprintf(stderr,"nrtpoll_tosendreq send_timer em %lf\n",Scheduler::instance().clock());      //      SendReq(tbindex, p);      UpFlowTable[tbindex].state = NRTPOLL_REQSENT;      break;          default:      printf("SS%d(flow-id %d) NRTPOLL-TOSENDREQ state error: Unknown event received %d\n",	     ss_id,UpFlowTable[tbindex].upstream_record.flow_id,e);      break;    }  return 1;}			/**************************************************************************************************************************************************/			int Mac802_16SS::nrtpoll_reqsent(char tbindex, EventType e, Packet* p){  if (UpFlowTable[tbindex].debug)    printf("SS%d(flow-id %d) NRTPOLL_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 = NRTPOLL_TOSEND;	  turn_off_contention(tbindex);	  nrtpoll_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 = NRTPOLL_DECISION;		      nrtpoll_decision(tbindex, PKT_ARRIVAL, t);		    }			  else		    UpFlowTable[tbindex].state = NRTPOLL_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 = NRTPOLL_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 = NRTPOLL_DECISION;	  nrtpoll_decision(tbindex, PKT_ARRIVAL, p);	}*/	            break;          default:      printf("SS%d(flow-id %d) NRTPOLL-REQSENT state error: Unknown event received %d\n",	     ss_id,UpFlowTable[tbindex].upstream_record.flow_id,e);      break;          }  return 1;}/**************************************************************************** * Method: int Mac802_16SS::nrtpoll_contention(char tbindex, EventType e, Packet* p) * * Function:    * * Parameters: *    char tbindex: *    EventType e:  TODO:  Explain this *    Packet *p:  The frame that already has bee adjusted for all headers * * Design Notes: *   TODO:  I see us get in here but we end up waiting for the next map *           even though there is possibly a contention req opportunity in *           the very near future (with the current MAP) ????? * * **********************************************************************//*! \param p The frame that already has bee adjusted for all headers */int Mac802_16SS::nrtpoll_contention(char tbindex, EventType e, Packet* p){  int ran, n;  double etime, current_time;    if (UpFlowTable[tbindex].debug)    printf("SS%d(flow-id %d):nrtpoll_contention(%lf):  Entered with event %d \n",	   ss_id,UpFlowTable[tbindex].upstream_record.flow_id,	   Scheduler::instance().clock(),e);    switch(e)     {    case CONTENTION_ON:      //printf("req %lf CONTENTION\n",Scheduler::instance().clock());            ran = rng_->uniform((int)UpFlowTable[tbindex].bk_offstart);            if (UpFlowTable[tbindex].debug)	printf("SS%d(flow-id %d):nrtpoll_contention:Entering contention phase,will skip %d slots(bk_offstart:%d)\n",

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲自拍偷拍麻豆| eeuss鲁片一区二区三区在线观看| 日韩不卡手机在线v区| 国产精品18久久久| 在线综合+亚洲+欧美中文字幕| 久久嫩草精品久久久精品| 亚洲午夜在线电影| 99国产精品久久久久| 精品国产亚洲在线| 亚洲成av人片在线观看无码| 成人免费高清在线| 26uuu国产电影一区二区| 亚洲成人激情社区| 色999日韩国产欧美一区二区| 精品处破学生在线二十三| 日韩专区一卡二卡| 欧美午夜不卡视频| 亚洲激情一二三区| av一区二区三区在线| 国产性做久久久久久| 老色鬼精品视频在线观看播放| 欧美三级日韩在线| 一区二区三区免费网站| 91亚洲精品一区二区乱码| 国产免费久久精品| 国产99久久久精品| 久久精品亚洲乱码伦伦中文| 久久av资源网| 精品国精品国产| 老司机精品视频在线| 日韩欧美123| 麻豆专区一区二区三区四区五区| 欧美精品一卡二卡| 视频在线观看91| 欧美一区二区三区男人的天堂| 亚洲国产精品久久人人爱| 欧美性色欧美a在线播放| 一区二区三区免费看视频| 91国偷自产一区二区三区观看| 亚洲精品久久久久久国产精华液| 99久久综合色| 一区二区视频免费在线观看| 欧美在线一二三| 亚洲第一在线综合网站| 欧美精品九九99久久| 秋霞国产午夜精品免费视频| 欧美一区二区三区日韩| 激情亚洲综合在线| 国产精品视频你懂的| 欧美电影一区二区| 久久国产福利国产秒拍| 精品播放一区二区| 成人av高清在线| 亚洲午夜在线观看视频在线| 91麻豆精品国产91久久久久| 美女视频第一区二区三区免费观看网站| 日韩一区二区三区四区| 国产乱码精品一品二品| 亚洲天堂a在线| 欧美日本精品一区二区三区| 激情六月婷婷综合| 亚洲精品国产视频| 日韩午夜电影av| 成人白浆超碰人人人人| 亚洲va欧美va天堂v国产综合| 日韩免费观看高清完整版| 国产91在线观看丝袜| 亚洲一区自拍偷拍| 久久女同互慰一区二区三区| 91蝌蚪porny成人天涯| 丝袜亚洲另类欧美| 国产精品你懂的在线| 欧美日韩国产精品成人| 成人免费电影视频| 日韩福利视频网| 亚洲欧美一区二区视频| 日韩三级高清在线| 日本久久电影网| 国产乱码精品一区二区三区忘忧草 | 久久久美女毛片| 91福利视频在线| 国产精品中文字幕日韩精品| 亚洲乱码中文字幕综合| 久久久久久久综合| 欧美美女bb生活片| 99国产精品久久久| 国产一区二区毛片| 日韩精品三区四区| 亚洲女爱视频在线| 久久久久久久综合日本| 欧美一区二区三区四区五区| 一本一道波多野结衣一区二区| 激情综合色综合久久| 午夜精品久久久久久久久久| 国产精品初高中害羞小美女文| 日韩美女主播在线视频一区二区三区| 色综合色综合色综合色综合色综合| 精品一区二区三区日韩| 日韩av一区二区三区| 亚洲综合小说图片| 亚洲免费在线观看视频| 国产精品久久精品日日| 国产精品丝袜在线| 国产婷婷一区二区| 久久久精品欧美丰满| 26uuu亚洲| 久久亚洲精品国产精品紫薇| 日韩欧美亚洲国产精品字幕久久久 | 欧美一区二区三区男人的天堂| 欧美在线免费观看亚洲| 91丝袜美女网| 色综合久久中文字幕| 91在线国产福利| 91在线精品一区二区| 一本色道综合亚洲| 一本一道久久a久久精品综合蜜臀| av午夜一区麻豆| 91麻豆免费看| 91精品福利视频| 欧美日韩一区二区三区不卡| 欧美视频中文一区二区三区在线观看| 91激情在线视频| 欧美日韩久久一区| 日韩色视频在线观看| 精品av综合导航| 中文欧美字幕免费| 亚洲精选免费视频| 亚洲高清免费在线| 蜜桃视频在线观看一区二区| 美国十次了思思久久精品导航| 久久国产福利国产秒拍| 国产a级毛片一区| 91丨porny丨中文| 欧美日韩国产片| 精品av久久707| 亚洲视频在线一区观看| 性做久久久久久免费观看欧美| 日本中文字幕一区二区视频| 国产综合久久久久久鬼色 | 欧美一区二区三区四区久久 | 亚洲国产精品二十页| 亚洲视频一区在线观看| 天堂在线一区二区| 国产伦精品一区二区三区视频青涩| 国产98色在线|日韩| 欧美色涩在线第一页| 欧美精品一区二区三区一线天视频| 国产亚洲精品aa| 亚洲一区二区美女| 精品一区二区三区香蕉蜜桃| 91麻豆免费看| 精品国产乱码久久久久久闺蜜| 国产精品久久久久7777按摩| 天堂va蜜桃一区二区三区漫画版| 国产大陆亚洲精品国产| 欧美日韩视频专区在线播放| 久久免费午夜影院| 午夜视频在线观看一区二区 | 日韩国产精品91| a在线欧美一区| 日韩欧美国产三级电影视频| 成人欧美一区二区三区视频网页| 日韩在线一区二区| 91理论电影在线观看| 精品久久人人做人人爽| 夜夜嗨av一区二区三区四季av| 国内不卡的二区三区中文字幕| 欧美午夜精品久久久久久超碰| 国产日韩欧美高清| 另类小说综合欧美亚洲| 色综合久久综合网| 亚洲国产精品成人综合色在线婷婷 | 精品视频123区在线观看| 国产精品视频你懂的| 老司机精品视频线观看86| 欧美色老头old∨ideo| 中文字幕一区av| 国产精品1024| 精品国产免费人成在线观看| 亚洲成av人片一区二区梦乃| 91免费观看国产| 国产精品卡一卡二| 粉嫩嫩av羞羞动漫久久久| 精品日本一线二线三线不卡| 亚洲成av人在线观看| 欧美在线短视频| 亚洲精品午夜久久久| 9l国产精品久久久久麻豆| 国产欧美视频在线观看| 韩国成人福利片在线播放| 日韩欧美中文一区| 蜜臀av性久久久久蜜臀av麻豆| 欧美日本视频在线| 亚洲va欧美va国产va天堂影院| 91黄色免费版| 亚洲精品成a人| 欧美午夜一区二区| 亚洲一二三专区| 欧美日韩成人在线| 免费看欧美美女黄的网站|