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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? mac-802_16.cc

?? 802.16 Qos仿真平臺的c++實(shí)現(xiàn)
?? CC
?? 第 1 頁 / 共 5 頁
字號:
	return;
}

void 
Mac802_16::sendDSAACK(Packet *pkt)
{ 
	Packet *p = Packet::alloc();
	struct hdr_cmn *hdr = HDR_CMN(p);
	struct hdr_mac *mac = HDR_MAC(p); 
	struct hdr_mac802_16 *mac16 = HDR_MAC802_16(p);
	struct hdr_mac802_16 *mac16_tmp = HDR_MAC802_16(pkt);
	p->allocdata (sizeof (struct DsaAckMsg));
	
	if (NodeID == BsID) {
		printf("bs  send DSX-ACK to ss%d\n",BsSearchSsInfo(-1, mac16_tmp->generic_hdr.CID)->MacAddr);
		mac->macDA() = BsSearchSsInfo(-1, mac16_tmp->generic_hdr.CID)->MacAddr;
		mac->macSA() = NodeID;
	} else {
		printf("ss%d send DSX-ACK\n", NodeID);
		mac->macDA() = NodeID;
		mac->macSA() = BsID;
	}
	mac->set(MF_DATA, NodeID);
	state(MAC_SEND);
	
	hdr->uid() = 0;
	hdr->ptype() = PT_DSAACK;
	hdr->size() = sizeof(GenericHdr) + sizeof(DsxRvdMsg);;
	hdr->iface() = -2;
	hdr->error() = 0; 
	hdr->txtime() = txtime(hdr->size());
	
	mac16->generic_hdr.HT = 0;
	mac16->generic_hdr.EC = 1;
	mac16->generic_hdr.Type = 1;
	mac16->generic_hdr.CI = 1; 
	mac16->generic_hdr.EKS = 1;
	mac16->generic_hdr.LEN = 3;
	mac16->generic_hdr.CID = mac16_tmp->generic_hdr.CID;
	mac16->generic_hdr.HCS = 0;
	
	DsaAckMsg *dsaack = (DsaAckMsg*) p->accessdata();
	DsaRspMsg *dsarsp = (DsaRspMsg*) pkt->accessdata();
	dsaack->Management_Message_Type = 16;
	dsaack->Transaction_ID = dsarsp->Transaction_ID;
	dsaack->Confirmation_Code = 0x00;

	//downtarget_->recv(p,this);原補(bǔ)丁中的內(nèi)容	if (NodeID == BsID) {		BsMsgQueue.enque(p);//如果是BS發(fā)送DSAACK回復(fù),將p添加到BsMsgQueue	} else {		SsMsgQueue.enque(p);//如果是SS發(fā)送DSAACK回復(fù),將p添加到SsMsgQueue	}
	return;
}

void
Mac802_16::sendDSXRVD(Packet *pkt)
{
	Packet *p = Packet::alloc();
	struct hdr_cmn *hdr = HDR_CMN(p);
	struct hdr_mac *mac = HDR_MAC(p); 
	struct hdr_mac *mac_tmp = HDR_MAC(pkt);
	struct hdr_mac802_16 *mac16 = HDR_MAC802_16(p);
	struct hdr_mac802_16 *mac16_tmp = HDR_MAC802_16(pkt);
	p->allocdata (sizeof (struct DsxRvdMsg));
	printf("bs  send DSX-RVD to ss%d\n", mac_tmp->macSA());
	
	mac->macDA() = mac_tmp->macSA();
	mac->macSA() = NodeID;
	mac->set(MF_DATA, NodeID);
	state(MAC_SEND);
	
	hdr->uid() = 0;
	hdr->ptype() = PT_DSXRVD;
	hdr->size() = sizeof(GenericHdr) + sizeof(DsxRvdMsg);;
	hdr->iface() = -2;
	hdr->error() = 0; 
	hdr->txtime() = txtime(hdr->size());
	
	mac16->generic_hdr.HT = 0;
	mac16->generic_hdr.EC = 1;
	mac16->generic_hdr.Type = 1;
	mac16->generic_hdr.CI = 1; 
	mac16->generic_hdr.EKS = 1;
	mac16->generic_hdr.LEN = 3;
	mac16->generic_hdr.CID = mac16_tmp->generic_hdr.CID;
	mac16->generic_hdr.HCS = 0;
	
	DsxRvdMsg *dsxrvd = (DsxRvdMsg*) p->accessdata();
	DsaReqMsg *dsareq = (DsaReqMsg*) pkt->accessdata();
	dsxrvd->Management_Message_Type = 30;
	dsxrvd->Transaction_ID = dsareq->Transaction_ID;
	dsxrvd->Confirmation_Code = 0x00;
	
	//downtarget_->recv(p,this);原補(bǔ)丁的內(nèi)容 	BsMsgQueue.enque(p);//只有BS才發(fā)送sendDSXRVD
	return;
}

bool
Mac802_16::CallAdmissionControl(Packet *p)
{
	return true;
}

void
Mac802_16::BandwidthManagement()
{
	//printf("----- %d -----\n",FrameNumber_Counter);
	DlAvailSymbol = (DlSymbolNum-2)*DlSubchanNum;
	UlAvailSymbol = UlSymbolNum*UlSubchanNum;
	//printf("[1] Dl %d Ul %d\n",DlAvailSymbol,UlAvailSymbol);
	int OFDMA_Symbol_offset = 0;
	int Subchannel_offset = 0;
	int BytePerSuchan = 0;
	int UIUC = 0;
	int DIUC = 0;
	UlMapIe *ulmapie = NULL;
	DlMapIe *dlmapie = NULL;
	BsServiceFlow *bssf;
	BsSsInfo *ssinfo;
	ModulCodingType modulcoding = QPSK_12;
	DlMapIeNum = 0;
	UlMapIeNum = 0;
	
	//Create Data Grant IE
	bssf = BsSF_head;
	while (bssf) {
		if (bssf->Direction == DL && bssf->ScheduleType == 6)
			BsSearchSsInfo(bssf->MacAddr, -1)->DownlinkBandwidth += bssf->MaxTrafficRate/8/200;
		if (bssf->Direction == DL && bssf->ScheduleType == 5)	
			if (Scheduler::instance().clock() - bssf->QueueTime >= (double)bssf->ToleratedJitter/1000 ) {
				BsSearchSsInfo(bssf->MacAddr, -1)->DownlinkBandwidth += bssf->SduQueue.byteLength();
				bssf->BwReqSize = bssf->SduQueue.byteLength();
			}
		if (bssf->Direction == DL && bssf->ScheduleType >= 3 && bssf->ScheduleType <= 4)
			if (Scheduler::instance().clock() - bssf->QueueTime >= (double)bssf->MaxLatency/1000 ) {
				BsSearchSsInfo(bssf->MacAddr, -1)->DownlinkBandwidth += bssf->SduQueue.byteLength(); 
				bssf->BwReqSize = bssf->SduQueue.byteLength();
			}
		if (bssf->Direction == DL && bssf->ScheduleType == 2)
			if (Scheduler::instance().clock() - bssf->QueueTime >= (double)bssf->MaxLatency/1000) {
				BsSearchSsInfo(bssf->MacAddr, -1)->DownlinkBandwidth += bssf->MaxTrafficRate/8/200;
				bssf->BwReqSize = bssf->MaxTrafficRate/8/200;
			}
		bssf = bssf->next;
	}
	
	OFDMA_Symbol_offset = 2;
	modulcoding = QPSK_12;
	BytePerSuchan = 6;
	DIUC = 1;
	ssinfo = BsSsInfo_head;
	while (ssinfo) {
		if (ssinfo->ModulCoding == modulcoding && ssinfo->DownlinkBandwidth != 0 && DlAvailSymbol != 0){
			dlmapie = CreateDlMapIe();
			dlmapie->CID = ssinfo->BasicCID;
			dlmapie->DIUC = DIUC;			
			dlmapie->No_OFDMA_Symbols = ssinfo->DownlinkBandwidth/BytePerSuchan/DlSubchanNum/2;
			if ((double)ssinfo->DownlinkBandwidth/BytePerSuchan/DlSubchanNum/2 - dlmapie->No_OFDMA_Symbols > 0)
				dlmapie->No_OFDMA_Symbols += 1;
			dlmapie->No_Subchannels = DlSubchanNum;
			if (DlAvailSymbol < dlmapie->No_OFDMA_Symbols*dlmapie->No_Subchannels*2)
				dlmapie->No_OFDMA_Symbols = DlAvailSymbol/DlSubchanNum/2;
			if (dlmapie->No_OFDMA_Symbols == 0)
				dlmapie->No_OFDMA_Symbols = 1;
			DlAvailSymbol -= dlmapie->No_OFDMA_Symbols*dlmapie->No_Subchannels*2;
			dlmapie->OFDMA_Symbol_offset = OFDMA_Symbol_offset;
			dlmapie->Subchannel_offset = 0;
			dlmapie->Boosting = 0;
			dlmapie->Repetition_Coding_Indication = 0;
			OFDMA_Symbol_offset += dlmapie->No_OFDMA_Symbols;
			DlMapIeNum++;		
		}
		ssinfo = ssinfo->next;
		if (!ssinfo) {
			switch (modulcoding) {
				case QPSK_12: ssinfo = BsSsInfo_head; modulcoding = QPSK_34; BytePerSuchan = 9; DIUC = 2; break;
				case QPSK_34: ssinfo = BsSsInfo_head; modulcoding = QAM16_12; BytePerSuchan = 12; DIUC = 3; break;
				case QAM16_12:ssinfo = BsSsInfo_head; modulcoding = QAM16_34; BytePerSuchan = 18; DIUC = 4; break;
				case QAM16_34:ssinfo = BsSsInfo_head; modulcoding = QAM64_23; BytePerSuchan = 24; DIUC = 5; break;
				case QAM64_23:ssinfo = BsSsInfo_head; modulcoding = QAM64_34; BytePerSuchan = 27; DIUC = 6; break;
				case QAM64_34:break;	
			}
		}
	}
	
	//Create Initial Ranging IE
	Subchannel_offset = 0;
	ulmapie = CreateUlMapIe();
	ulmapie->CID = 0xFFFF;
	ulmapie->UIUC = 0xC;
	ulmapie->No_OFDMA_Symbols = UlSymbolNum;
	ulmapie->No_Subchannels = 0x01;
	ulmapie->Ranging_Method = 0x00;
	ulmapie->OFDMA_Symbol_offset = 0x00;
	ulmapie->Subchannel_offset = 0x00;
	UlAvailSymbol -= ulmapie->No_OFDMA_Symbols;
	Subchannel_offset += ulmapie->No_Subchannels;
	UlMapIeNum++;
	
	//Create BW Request IE
	OFDMA_Symbol_offset = 0;
	bssf = BsSF_head;
	while (bssf) {
		if (bssf->Direction == UL && bssf->ScheduleType >= 3 && bssf->ScheduleType <= 5) {
			if (!BsSearchSsInfo(bssf->MacAddr, -1)->PollingStatus && Scheduler::instance().clock() - bssf->LastPollingTime >= (double)bssf->PollingInterval/1000) {
				bssf->LastPollingTime = Scheduler::instance().clock();
				BsSearchSsInfo(bssf->MacAddr, -1)->PollingStatus = true;
				ulmapie = CreateUlMapIe();
				ulmapie->CID = BsSearchSsInfo(bssf->MacAddr, -1)->BasicCID;
				ulmapie->UIUC = 0xC;
				ulmapie->No_OFDMA_Symbols = 0x02;
				ulmapie->No_Subchannels = 0x01;	
				ulmapie->Ranging_Method = 0x00;
				UlAvailSymbol -= ulmapie->No_OFDMA_Symbols;
				if (OFDMA_Symbol_offset < UlSymbolNum) {
					ulmapie->OFDMA_Symbol_offset = OFDMA_Symbol_offset;
					ulmapie->Subchannel_offset = Subchannel_offset;
					OFDMA_Symbol_offset += ulmapie->No_OFDMA_Symbols;
				} else {
					ulmapie->OFDMA_Symbol_offset = 0x00;	
					ulmapie->Subchannel_offset = ++Subchannel_offset;
					OFDMA_Symbol_offset = 0;
				}				
				UlMapIeNum++;
			}
		}
		bssf = bssf->next;
	}
	
	//Create Data Grant IE
	bssf = BsSF_head;
	while (bssf) {
		if (bssf->Direction == UL && bssf->ScheduleType == 6)
			BsSearchSsInfo(bssf->MacAddr, -1)->UplinkBandwidth += bssf->MaxTrafficRate/8/200;
		if (bssf->Direction == UL && bssf->ScheduleType == 2)
			if (Scheduler::instance().clock() - bssf->LastPollingTime >= (double)bssf->PollingInterval/1000) {
				BsSearchSsInfo(bssf->MacAddr, -1)->UplinkBandwidth += bssf->MaxTrafficRate/8/200;
				bssf->BwReqSize = bssf->MaxTrafficRate/8/200;
				bssf->LastPollingTime = Scheduler::instance().clock();
			}
		bssf = bssf->next;
	}
	
	modulcoding = QPSK_12;
	BytePerSuchan = 6;
	UIUC = 1;
	ssinfo = BsSsInfo_head;
	while (ssinfo) {
		if (ssinfo->ModulCoding == modulcoding && ssinfo->UplinkBandwidth != 0 && UlAvailSymbol != 0){
			ulmapie = CreateUlMapIe();
			ulmapie->CID = ssinfo->BasicCID;
			ulmapie->UIUC = UIUC;
			ulmapie->Duration = ssinfo->UplinkBandwidth/BytePerSuchan/3;
			if ((double)ssinfo->UplinkBandwidth/BytePerSuchan/BytePerSuchan/3 - ulmapie->Duration > 0)
				ulmapie->Duration += 1;
			if (UlAvailSymbol < ulmapie->Duration*3)
				ulmapie->Duration = UlAvailSymbol/3;
			if (ulmapie->Duration == 0)
				ulmapie->Duration = 1;
			UlAvailSymbol -= ulmapie->Duration*3;
			ulmapie->Repetition_Coding_Indication = 0;
			UlMapIeNum++;
		}
		ssinfo = ssinfo->next;
		if (!ssinfo) {
			switch (modulcoding) {
				case QPSK_12: ssinfo = BsSsInfo_head; modulcoding = QPSK_34; BytePerSuchan = 9; UIUC = 2; break;
				case QPSK_34: ssinfo = BsSsInfo_head; modulcoding = QAM16_12; BytePerSuchan = 12; UIUC = 3; break;
				case QAM16_12:ssinfo = BsSsInfo_head; modulcoding = QAM16_34; BytePerSuchan = 18; UIUC = 4; break;
				case QAM16_34:ssinfo = BsSsInfo_head; modulcoding = QAM64_23; BytePerSuchan = 24; UIUC = 5; break;
				case QAM64_23:ssinfo = BsSsInfo_head; modulcoding = QAM64_34; BytePerSuchan = 27; UIUC = 6; break;
				case QAM64_34:break;	
			}
		}
	}
	
	ssinfo = BsSsInfo_head;
	while (ssinfo) {
		ssinfo->PollingStatus = false;
		ssinfo->DownlinkBandwidth = 0;
		ssinfo->UplinkBandwidth = 0;
		ssinfo = ssinfo->next;
	}
	//printf("[2] Dl %d Ul %d\n",DlAvailSymbol,UlAvailSymbol);
	sendDLMAP();
	sendULMAP();
	if (FrameNumber_Counter%100 == 0) {
		DCD_Counter++;
		sendDCD();
		UCD_Counter++;
		sendUCD();
	}
	dlmapTimer.start(2*SymbolLength);
	return;
}

void
Mac802_16::BsScheduler()
{
	DlMapIe *dlmapie = NULL;
	dlmapie = DlMapIe_head;
	while (dlmapie) {
		if (BsSearchSsInfo(-1, dlmapie->CID)) {
			int Bandwidth = 0;
			int TrafficPriority = 0;
			switch (BsSearchSsInfo(-1, dlmapie->CID)->ModulCoding) {
				case QPSK_12: Bandwidth = dlmapie->No_OFDMA_Symbols*dlmapie->No_Subchannels*6*2; break;
				case QPSK_34: Bandwidth = dlmapie->No_OFDMA_Symbols*dlmapie->No_Subchannels*9*2; break;
				case QAM16_12:Bandwidth = dlmapie->No_OFDMA_Symbols*dlmapie->No_Subchannels*12*2; break;
				case QAM16_34:Bandwidth = dlmapie->No_OFDMA_Symbols*dlmapie->No_Subchannels*18*2; break;
				case QAM64_23:Bandwidth = dlmapie->No_OFDMA_Symbols*dlmapie->No_Subchannels*24*2; break;
				case QAM64_34:Bandwidth = dlmapie->No_OFDMA_Symbols*dlmapie->No_Subchannels*27*2; break;	
			}
			BsServiceFlow *bssf = NULL;
			bssf = BsSF_head;
			while (bssf) {
				if (bssf->Direction == DL && bssf->Status == Active && bssf->ScheduleType == 6 && BsSearchSsInfo(bssf->MacAddr, -1)->BasicCID == dlmapie->CID) {
					//printf("Downlink Bandwidth %d CID %d UGS SFID=%d req size %d[%d]\n",Bandwidth,dlmapie->CID,bssf->SFID,bssf->SduQueue.byteLength(),bssf->SduQueue.count(bssf->SduQueue.byteLength()));
					BsFragOrPack(bssf, bssf->SduQueue.count(bssf->SduQueue.byteLength()));
					Bandwidth -= bssf->PduQueue.byteLength();
					//printf("\tbs SduQ=%d\tPduQ=%d\n",bssf->SduQueue.byteLength(),bssf->PduQueue.byteLength());
				}
				if (bssf->Direction == DL && bssf->Status == Active && bssf->BwReqSize != 0 && bssf->ScheduleType >= 3 && bssf->ScheduleType <= 5 && BsSearchSsInfo(bssf->MacAddr, -1)->BasicCID == dlmapie->CID) {
					//printf("Downlink Bandwidth %d CID %d Polling SFID=%d req size %d[%d]\n",Bandwidth,dlmapie->CID,bssf->SFID,bssf->BwReqSize,bssf->SduQueue.count(bssf->BwReqSize));
					BsFragOrPack(bssf, bssf->SduQueue.count(bssf->BwReqSize));
					bssf->BwReqSize = 0;
					Bandwidth -= bssf->PduQueue.byteLength();
					//printf("\tbs SduQ=%d\tPduQ=%d\n",bssf->SduQueue.byteLength(),bssf->PduQueue.byteLength());
				}
				if (bssf->Direction == DL && bssf->Status == Active && bssf->ScheduleType == 2 && BsSearchSsInfo(bssf->MacAddr, -1)->BasicCID == dlmapie->CID) {
					TrafficPriority += bssf->TrafficPriority;
				}
				bssf = bssf->next;
			}
			if (Bandwidth > 0 && TrafficPriority > 0) {
				bssf = BsSF_head;

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产精品护士白丝一区av| 捆绑调教一区二区三区| 国产精品国产自产拍高清av王其| 精品精品国产高清a毛片牛牛 | 欧美日韩一卡二卡三卡| 色婷婷精品久久二区二区蜜臂av| 91美女在线观看| www.亚洲人| 91麻豆精品一区二区三区| 91同城在线观看| 欧美伊人久久久久久久久影院 | 久久成人免费网| 激情成人午夜视频| 国产精品1区二区.| 国产suv精品一区二区883| 成人h动漫精品一区二| 一本大道av一区二区在线播放 | 日韩毛片一二三区| 亚洲中国最大av网站| 图片区小说区国产精品视频| 日本视频免费一区| 激情深爱一区二区| 成人一级片网址| 色悠悠久久综合| 欧美剧情片在线观看| 日韩欧美一级精品久久| 国产视频911| 亚洲乱码国产乱码精品精的特点| 亚洲综合一二区| 伦理电影国产精品| 丰满放荡岳乱妇91ww| 91论坛在线播放| 91精品国产综合久久福利软件 | 中文字幕一区日韩精品欧美| 亚洲综合成人网| 极品销魂美女一区二区三区| 成人avav在线| 欧美日韩激情在线| 久久毛片高清国产| 一区二区三国产精华液| 免费高清在线视频一区·| 丁香六月久久综合狠狠色| 欧美视频中文字幕| 国产亚洲精品精华液| 亚洲午夜精品在线| 国产精品自在在线| 欧美日韩久久不卡| 国产精品系列在线| 偷窥国产亚洲免费视频| 国产白丝网站精品污在线入口 | 亚洲男同性恋视频| 美女视频黄免费的久久| 波多野结衣视频一区| 欧美一区二区三区公司| 国产精品剧情在线亚洲| 蜜臀久久99精品久久久久久9| 成人18精品视频| 日韩视频在线你懂得| 日韩美女精品在线| 精品午夜一区二区三区在线观看 | 日韩视频免费观看高清完整版| 国产欧美精品一区二区三区四区| 亚洲黄网站在线观看| 国产一区二区电影| 欧美精品乱码久久久久久按摩| 亚洲国产精品国自产拍av| 日本不卡在线视频| 欧美伊人久久大香线蕉综合69| 国产亚洲成aⅴ人片在线观看 | 91麻豆福利精品推荐| 久久精品亚洲精品国产欧美kt∨| 五月综合激情婷婷六月色窝| 91在线看国产| 欧美激情在线看| 精品综合免费视频观看| 4438x亚洲最大成人网| 亚洲美女免费视频| 国产成a人亚洲精品| 欧美videofree性高清杂交| 亚洲高清免费在线| 日本韩国精品在线| 一区在线观看免费| 国产精品18久久久久久vr| 91精品国产综合久久福利 | 91色porny蝌蚪| 久久精品综合网| 日韩电影免费在线观看网站| 色94色欧美sute亚洲线路一ni | 国产日韩欧美精品电影三级在线 | 色噜噜狠狠成人网p站| 国产精品三级电影| 国产一区二区免费看| 日韩一区二区三区精品视频| 婷婷久久综合九色综合绿巨人| 91亚洲国产成人精品一区二三| 国产精品丝袜91| 国产成人精品免费视频网站| 久久精品欧美一区二区三区麻豆| 久99久精品视频免费观看| 日韩美女在线视频| 免费视频一区二区| 4438x成人网最大色成网站| 日韩av一二三| 8v天堂国产在线一区二区| 三级欧美在线一区| 欧美一卡2卡3卡4卡| 久久99精品国产麻豆婷婷| 欧美变态tickling挠脚心| 久久爱www久久做| 久久先锋影音av鲁色资源| 国产乱码精品一区二区三区忘忧草| 精品国产乱码久久久久久老虎| 国产一区二区三区在线观看免费 | 91亚洲永久精品| 亚洲欧美自拍偷拍| 91久久免费观看| 亚洲最新在线观看| 欧美乱熟臀69xxxxxx| 青青草成人在线观看| 精品黑人一区二区三区久久| 国产一区二区三区免费看 | 国产一区二区电影| 中文字幕的久久| 日本高清视频一区二区| 亚洲第一狼人社区| 精品国产一区二区三区四区四| 国产综合久久久久影院| 欧美激情在线一区二区| 91毛片在线观看| 午夜电影网亚洲视频| 26uuu精品一区二区三区四区在线 26uuu精品一区二区在线观看 | 日韩一区二区免费电影| 韩国精品久久久| 日韩一区欧美小说| 在线电影一区二区三区| 国产精品一区二区三区网站| 中文字幕亚洲视频| 欧美亚洲国产一区二区三区 | 久久电影国产免费久久电影| 欧美激情一区二区三区四区| 色老综合老女人久久久| 欧美aa在线视频| 国产精品不卡一区| 91精品啪在线观看国产60岁| 国产不卡视频一区二区三区| 亚洲综合一区二区| 26uuu精品一区二区三区四区在线| www.亚洲精品| 青青国产91久久久久久| 国产精品久久久久影院色老大| 欧美精品一二三区| 日本电影亚洲天堂一区| 久久精品72免费观看| 中文字幕佐山爱一区二区免费| 欧美精品国产精品| www.视频一区| 日韩高清在线观看| 成人欧美一区二区三区| 日韩视频一区二区在线观看| 99国产欧美另类久久久精品| 麻豆精品精品国产自在97香蕉| 最新中文字幕一区二区三区| 日韩一级成人av| 色婷婷亚洲婷婷| 国产综合色视频| 调教+趴+乳夹+国产+精品| 国产欧美视频在线观看| 欧美一级视频精品观看| 99精品视频在线观看| 国产精选一区二区三区| 婷婷激情综合网| 中文字幕一区视频| 国产亚洲自拍一区| 欧美一区二区三区白人 | 亚洲色图在线播放| 精品国产亚洲在线| 色综合久久综合网97色综合| 国产裸体歌舞团一区二区| 天堂影院一区二区| 亚洲免费观看高清完整版在线观看 | 欧美v国产在线一区二区三区| 欧美在线一二三四区| fc2成人免费人成在线观看播放| 麻豆精品在线观看| 五月天亚洲精品| 一区二区三区免费看视频| 中文乱码免费一区二区| 久久女同精品一区二区| 日韩三级伦理片妻子的秘密按摩| 精品视频一区二区三区免费| 91啦中文在线观看| 成人黄页毛片网站| 成人午夜激情视频| 国产精品性做久久久久久| 狠狠色综合播放一区二区| 麻豆freexxxx性91精品| 日本中文字幕不卡| 日本欧美一区二区三区乱码| 天天射综合影视| 日韩专区中文字幕一区二区|