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

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

?? gbptl.cpp

?? GB接口數據解譯程序
?? CPP
?? 第 1 頁 / 共 4 頁
字號:
#include <malloc.h> 
#include <time.h>
#include "gbptl.hpp"
CGBPdu::CGBPdu():CPduBase()
{
	Init();
}
void CGBPdu::Init()
{
	lpGmm=0;
	lpllc=0;
	Frame=0;
	pNS=0;
	Frame=0;
	AssembleLeng=0;
	pBSSGPMessage=0;
	LLCleng=0;
	FrameLen=0;
}
unsigned short GetIeLen(unsigned char *ptr)
{
	if(!ptr)
		return 0;
	unsigned short len1;
	//	if((*ptr)&0x80)//高位為1時表示1個字節,為0時為2個字節TLV格式
	len1=(*ptr)&127;
	//	else
	//		len1=((*ptr)<<8)|*(ptr+1);
	return len1;
}
UINT8 *CGBPdu::SaveIE(UINT8*ptr,UINT8 ID,UINT16 len)
{
	UINT16 len1=GetIeLen(ptr+1);
	if(len1>len)
		return (UINT8*)0;
	UINT8*ptemp=ptr;
	UINT8 temp=*ptemp;
	*ptemp=ID;
	ptr=SaveIE(ptr);
	*ptemp=temp;
	return ptr;
}
char CGBPdu::Decode(UINT8 *ptr,UINT16 len)
{
	Frame=ptr;
	FrameLen=len;
	char r=CGBPdu_ERROR_INVLID;
	UINT8 *p=ptr;
	ptr++;
	UINT8 *pEnd=ptr+4;
	while(ptr<pEnd)
	{
		if((*ptr++)&1)
			goto END;
	}
	return CGBPdu_ERROR_INVLID;
END:
	switch(ptr-p)
	{
	case 0x02:
		{
			unsigned short Dlci=((((unsigned short)(*p)&0xFc))<<2)|(((*(p+1))&0xF0)>>4);
			PutIE(IE_FRAME_DLCI,2,(UINT8*)&Dlci);
		}
		break;
	case 0x04:
		break;
	}
	return NsDecode(ptr,len-(ptr-p));
}
//從網絡業務層開始
char CGBPdu::NsDecode(UINT8 *ptr, UINT16 len)
{
	pNS=ptr;
	if(!ptr)
		return CGBPdu_ERROR_NULL;
	if(len<2)
		return CGBPdu_ERROR_SHORT;
	char r=CGBPdu_ERROR_INVLID;
	PutIE(IE_NS_PDU_TYPE,1,ptr);
	switch(*ptr)
	{
	case NS_UNITDATA:
		r=NsUnitdata(ptr+1,len-1);
		break;
	case NS_RESET:
		r=NsReset(ptr+1,len-1);
		break;
	case NS_RESET_ACK:
		r=NsResetAck(ptr+1,len-1);
		r=0;
		break;
	case NS_BLOCK:
		r=NsBlock(ptr+1,len-1);
		break;
	case NS_BLOCK_ACK:
		r=NsBlockAck(ptr+1,len-1);
		break;
	case NS_ACIVE_ACK:	
	case NS_ACIVE:	
	case NS_UNBLOCK_ACK:	
	case NS_UNBLOCK:
		r=NsUnblock(ptr+1,len-1);
		break;
	case NS_STATUS:
		r=NsStatus(ptr+1,len-1);
		break;
	}
	return r;
}
char CGBPdu::NsUnitdata(UINT8 *ptr, UINT16 len)
{
	ptr++;
	PutIE(IE_NS_BVCI,2,ptr);
	ptr+=2;
	return BSSGPDecode(ptr,len-4);
}
char CGBPdu::NsReset(UINT8 *ptr,UINT16 len)
{
	UINT8*p=ptr;
	if(NS_CAUSE!=*ptr)
		return CGBPdu_ERROR_INVLID;
	ptr=SaveIE(ptr,IE_NS_CAUSE1,len);//原因Cause
	if(!ptr)
		return CGBPdu_ERROR_SHORT;
	if(NS_VCI!=*ptr)
		return CGBPdu_ERROR_INVLID;
	ptr=SaveIE(ptr,IE_NS_VCI,len-(ptr-p));//NSVCI
	if(!ptr)
		return CGBPdu_ERROR_SHORT;
	if(NS_NSEI!=*ptr)
		return CGBPdu_ERROR_INVLID;
	ptr=SaveIE(ptr,IE_NS_NSEI,len-(ptr-p));//NSEI	
	if(!ptr)
		return CGBPdu_ERROR_SHORT;
	AssembleLeng=ptr-Frame;
	return CGBPdu_SUCCESS;
}
UINT8* CGBPdu::SaveIE(UINT8 *ptr)
{
	//	if((*(ptr+1))&0x80)//高位為1時表示1個字節,為0時為2個字節TLV格式
	//	{
	unsigned char len1=(*(ptr+1))&127;
	PutIE(*ptr,len1,ptr+2);
	ptr+=len1+2;
	//	}
	//	else
	/*	{
	unsigned short len1=((*(ptr+1))<<8)|*(ptr+2);
	PutIE(*ptr,len1,ptr+3);
	ptr+=len1+3;
	}
	*/	return ptr;
}
/*
8 7 6 5 4 3 2 1
0 0 0 0 0 0 0 0 Cause
0 0 0 0 0 0 0 1 NS-VCI
0 0 0 0 0 0 1 0 NS PDU
0 0 0 0 0 0 1 1 BVCI
0 0 0 0 0 1 0 0 NSEI
other values reserved for future use
*/
char CGBPdu::NsResetAck(UINT8 *ptr,UINT16 len)
{
	UINT8*p=ptr;
	if(NS_VCI!=*ptr)
		return CGBPdu_ERROR_INVLID;
	ptr=SaveIE(ptr,IE_NS_VCI,len-(ptr-p));//NS-VCI
	if(!ptr)
		return CGBPdu_ERROR_SHORT;
	if(NS_NSEI!=*ptr)
		return CGBPdu_ERROR_INVLID;
	ptr=SaveIE(ptr,IE_NS_NSEI,len-(ptr-p));//NS_NSEI
	if(!ptr)
		return CGBPdu_ERROR_SHORT;
	AssembleLeng=ptr-Frame;
	return CGBPdu_SUCCESS;
}
char CGBPdu::NsBlock(UINT8 *ptr,UINT16 len)
{
	UINT8*p=ptr;
	if(NS_CAUSE!=*ptr)
		return CGBPdu_ERROR_INVLID;
	ptr=SaveIE(ptr,IE_NS_CAUSE1,len-(ptr-p));//原因
	if(!ptr)
		return CGBPdu_ERROR_SHORT;
	if(NS_VCI!=*ptr)
		return CGBPdu_ERROR_INVLID;
	ptr=SaveIE(ptr,IE_NS_VCI,len-(ptr-p));//NS-VCI
	if(!ptr)
		return CGBPdu_ERROR_SHORT;
	AssembleLeng=ptr-Frame;
	return CGBPdu_SUCCESS;
}
char CGBPdu::NsBlockAck(UINT8 *ptr,UINT16 len)
{
	if(NS_VCI!=*ptr)
		return CGBPdu_ERROR_INVLID;
	ptr=SaveIE(ptr,IE_NS_VCI,len);//NS-VCI
	if(!ptr)
		return CGBPdu_ERROR_SHORT;
	AssembleLeng=ptr-Frame;
	return CGBPdu_SUCCESS;
}
char CGBPdu::NsUnblock(UINT8 *ptr,UINT16 len)
{
	AssembleLeng=ptr-Frame;
	return CGBPdu_SUCCESS;
}
char CGBPdu::NsStatus(UINT8 *ptr,UINT16 len)
{
	UINT8 *p=ptr;
	if(NS_CAUSE!=*ptr)
		return CGBPdu_ERROR_INVLID;
	ptr=SaveIE(ptr,IE_NS_CAUSE1,len-(ptr-p));//原因
	if(!ptr)
		return CGBPdu_ERROR_SHORT;
	for(int i=0;i<3;i++)
	{
		if(LENGTH)
			goto END;
		switch(*ptr)
		{
		case NS_BVCI:
			ptr=SaveIE(ptr,IE_NS_BVCI,len-(ptr-p));
			if(!ptr)
				goto END;
			break;
		case NS_VCI:
			ptr=SaveIE(ptr,IE_NS_VCI,len-(ptr-p));
			if(!ptr)
				goto END;
			break;
		case NS_PDU:
			ptr=SaveIE(ptr,IE_NS_PDU,len-(ptr-p));
		default:
			goto END;
		}
	}
END:
	AssembleLeng=ptr-Frame;
	return CGBPdu_SUCCESS;
}
char CGBPdu::BSSGPDecode(UINT8 *ptr, UINT16 len)
{
	pBSSGPMessage=ptr;
	PutIE(IE_BSSGP_PDU_TYPE,1,ptr);
	char r=CGBPdu_ERROR_INVLID;
	switch(*ptr)
	{
	case DL_UNITDATA:
		r=DLUNITDATADecode(ptr+1,len-1);
		break;
	case UL_UNITDATA:
		r=ULUNITDATADecode(ptr+1,len-1);
		break;
	case RA_CAPABILITY:
		r=RACAPABILITYDecode(ptr+1,len-1);
		break;
	case PAGING_PS:
		r=PAGINGPSDecode(ptr+1,len-1);
		break;
	case PAGING_CS:
		r=PAGINGCSDecode(ptr+1,len-1);
		break;
	case RA_CAPABILITY_UPDATE:
		r=RACAPABILITYUPDATEDecode(ptr+1,len-1);
		break;
	case RA_CAPABILITY_UPDATE_ACK:
		r=RACAPABILITYUPDATEACKDecode(ptr+1,len-1);
		break;
	case RADIO_STATUS:
		r=RADIOSTATUSDecode(ptr+1,len-1);
		break;
	case SUSPEND:
		r=SUSPENDDecode(ptr+1,len-1);
		break;
	case SUSPEND_ACK:
		r=SUSPENDACKDecode(ptr+1,len-1);
		break;
	case SUSPEND_NACK:
		r=SUSPENDNACKDecode(ptr+1,len-1);
		break;
	case RESUME:
		r=RESUMEDecode(ptr+1,len-1);
		break;
	case RESUME_ACK:
		r=RESUMEACKDecode(ptr+1,len-1);
		break;
	case RESUME_NACK:
		r=RESUMENACKDecode(ptr+1,len-1);
		break;
	case FLUSH_LL:
		r=FLUSHLLDecode(ptr+1,len-1);
		break;
	case FLUSH_LL_ACK:
		r=FLUSHLLACKDecode(ptr+1,len-1);
		break;
	case LLC_DISCARDED:
		r=LLCDISCARDEDDecode(ptr+1,len-1);
		break;
	case FLOW_CONTROL_BVC:
		r=FLOWCONTROLBVCDecode(ptr+1,len-1);
		break;
	case FLOW_CONTROL_BVC_ACK:
		r=FLOWCONTROLBVCACKDecode(ptr+1,len-1);
		break;
	case FLOW_CONTROL_MS:
		r=FLOWCONTROLMSDecode(ptr+1,len-1);
		break;
	case FLOW_CONTROL_MS_ACK:
		r=FLOWCONTROLMSACKDecode(ptr+1,len-1);
		break;
	case BVC_BLOCK:
		r=BVCBLOCKDecode(ptr+1,len-1);
		break;
	case BVC_BLOCK_ACK:
		r=BVCBLOCKACKDecode(ptr+1,len-1);
		break;
	case BVC_UNBLOCK:
		r=BVCUNBLOCKDecode(ptr+1,len-1);
		break;
	case BVC_UNBLOCK_ACK:
		r=BVCUNBLOCKACKDecode(ptr+1,len-1);
		break;
	case BVC_RESET:
		r=BVCRESETDecode(ptr+1,len-1);
		break;
	case BVC_RESET_ACK:
		r=BVCRESETACKDecode(ptr+1,len-1);
		break;
	case STATUS:
		r=STATUSDecode(ptr+1,len-1);
		break;
	case SGSN_INVOKE_TRACE:
		r=SGSNINVOKETRACEDecode(ptr+1,len-1);
		break;
	case DOWNLOAD_BSS_PFC:
		r=DOWNLOADBSSPFCDecode(ptr+1,len-1);
		break;
	case CREATE_BSS_PFC:
		r=CREATEBSSPFCDecode(ptr+1,len-1);
		break;
	case CREATE_BSS_PFC_ACK:
		r=CREATEBSSPFCACKDecode(ptr+1,len-1);
		break;
	case CREATE_BSS_PFC_NACK:
		r=CREATEBSSPFCNACKDecode(ptr+1,len-1);
		break;
	case MODIFY_BSS_PFC:
		r=MODIFYBSSPFCDecode(ptr+1,len-1);
		break;
	case MODIFY_BSS_PFC_ACK:
		r=MODIFYBSSPFCACKDecode(ptr+1,len-1);
		break;
	case DELETE_BSS_PFC:
		r=DELETEBSSPFCDecode(ptr+1,len-1);
		break;
	case DELETE_BSS_PFC_ACK:
		r=DELETEBSSPFCACKDecode(ptr+1,len-1);
		break;
	}
	return r;
}
char CGBPdu::DLUNITDATADecode(UINT8 *ptr, UINT16 len)
{
	UINT8*p=ptr;
	PutIE(IE_BSSGP_CUR_TLLI,4,ptr);
	ptr+=4;
	PutIE(IE_BSSGP_QOS_PROFILE,3,ptr);
	ptr+=3;
	if(PDU_SURVIVALTIME!=*ptr)
		return CGBPdu_ERROR_INVLID;
	ptr=SaveIE(ptr,IE_BSSGP_PDU_LIFETIME,len-(ptr-p));
	while(*ptr!=0x0e)
	{
		if(LENGTH)
			return CGBPdu_ERROR_INVLID;
		switch(*ptr)
		{
		case TLLI:
			ptr=SaveIE(ptr,IE_BSSGP_OLD_TLLI,len-(ptr-p));
			if(!ptr)
				return CGBPdu_ERROR_SHORT;
			break;
		case MSRADIOACCESSCAPABILITY:
			ptr=SaveIE(ptr,IE_BSSGP_MS_RADIO_ACCESS,len-(ptr-p));
			if(!ptr)
				return CGBPdu_ERROR_SHORT;
			break;			
		case PRIORITY:
			ptr=SaveIE(ptr,IE_BSSGP_PRIORITY,len-(ptr-p));
			if(!ptr)
				return CGBPdu_ERROR_SHORT;
			break;			
		case DRX:
			ptr=SaveIE(ptr,IE_BSSGP_DRX_PARAMETERS,len-(ptr-p));
			if(!ptr)
				return CGBPdu_ERROR_SHORT;
			break;			
		case IMSI:
			ptr=SaveIE(ptr,IE_BSSGP_IMSI,len-(ptr-p));
			if(!ptr)
				return CGBPdu_ERROR_SHORT;
			break;			
		case ALIGNMENT:
			ptr=SaveIE(ptr,IE_BSSGP_ALIGNMENT_OCTETS,len-(ptr-p));
			if(!ptr)
				return CGBPdu_ERROR_SHORT;
			break;			
		case LSA:
			ptr=SaveIE(ptr,IE_BSSGP_LSA_INFORMATION,len-(ptr-p));
			if(!ptr)
				return CGBPdu_ERROR_SHORT;
			break;
		default:
			return CGBPdu_ERROR_INVLID;//LLCDecode(ptr+2,*ptr+1);
		}
	}
	char Len=0;
	switch(*(ptr+1)&0x80)
	{
	case 0x80:
		LLCleng=(*(ptr+1))&127;
		AssembleLeng=ptr-Frame+LLCleng+2;
		Len=2;
		break;
	case 0:
		LLCleng=((*(ptr+1))<<8)+(*(ptr+2));
		AssembleLeng=ptr-Frame+LLCleng+3;
		Len=3;
	}
	return LLCDecode(ptr+Len,LLCleng);
}
char CGBPdu::ULUNITDATADecode(UINT8 *ptr, UINT16 len)
{
	UINT8*p=ptr;
	PutIE(IE_BSSGP_CUR_TLLI,4,ptr);
	ptr+=4;
	PutIE(IE_BSSGP_QOS_PROFILE,3,ptr);
	ptr+=3;
	if(CGI!=*ptr)
		return CGBPdu_ERROR_INVLID;
	ptr=SaveIE(ptr,IE_BSSGP_CGI,len-(ptr-p));//CGI
	if(!ptr)
		return CGBPdu_ERROR_SHORT;
	while(*ptr!=0x0e)
	{
		if(ptr-p>=len)
			return CGBPdu_ERROR_SHORT;
		switch(*ptr)
		{
		case ALIGNMENT:
			ptr=SaveIE(ptr,IE_BSSGP_ALIGNMENT_OCTETS,len-(ptr-p));
			if(!ptr)
				return CGBPdu_ERROR_SHORT;
			break;
		case LSA:	
			ptr=SaveIE(ptr,IE_BSSGP_LSA_INFORMATION,len-(ptr-p));
			if(!ptr)
				return CGBPdu_ERROR_SHORT;
			break;
		default:
			return CGBPdu_ERROR_INVLID;
		}
	}
	char Len=0;
	switch(*(ptr+1)&0x80)
	{
	case 0x80:
		LLCleng=(*(ptr+1))&127;
		Len=2;
		AssembleLeng=ptr-Frame+LLCleng+2;
		break;
	case 0:
		LLCleng=((*(ptr+1))<<8)+(*(ptr+2));
		Len=3;
		AssembleLeng=ptr-Frame+LLCleng+3;
	}
	return LLCDecode(ptr+Len,len-(ptr+Len-p));
}
char CGBPdu::RACAPABILITYDecode(UINT8 *ptr, UINT16 len)
{
	UINT8*p=ptr;
	if(TLLI!=*ptr)
		return CGBPdu_ERROR_INVLID;
	ptr=SaveIE(ptr,IE_BSSGP_CUR_TLLI,len-(ptr-p));
	if(!ptr)
		return CGBPdu_ERROR_SHORT;
	if(MSRADIOACCESSCAPABILITY!=*ptr)
		return CGBPdu_ERROR_INVLID;
	ptr=SaveIE(ptr,IE_BSSGP_MS_RADIO_ACCESS,len-(ptr-p));
	if(!ptr)
		return CGBPdu_ERROR_SHORT;
	AssembleLeng=ptr-Frame;
	return CGBPdu_SUCCESS;
}
char CGBPdu::PAGINGPSDecode(UINT8 *ptr, UINT16 len)
{
	UINT8*p=ptr;
	if(IMSI!=*ptr)
		return CGBPdu_ERROR_INVLID;
	ptr=SaveIE(ptr,IE_BSSGP_IMSI,len-(ptr-p));
	if(!ptr)
		return CGBPdu_ERROR_SHORT;
	UINT8 i=9;
	UINT8 QosState=1;
	while(i--)
	{
		if(ptr-p>len&&QosState)
			return CGBPdu_ERROR_INVLID;	
		switch(*ptr)
		{
		case QOS:
			i=1;
			QosState=0;
			ptr=SaveIE(ptr,IE_BSSGP_QOS_PROFILE,len-(ptr-p));
			if(!ptr)
				return CGBPdu_ERROR_SHORT;
			break;
		case DRX:
			ptr=SaveIE(ptr,IE_BSSGP_DRX_PARAMETERS,len-(ptr-p));
			if(!ptr)
				return CGBPdu_ERROR_SHORT;
			break;
		case BVCIIE:
			ptr=SaveIE(ptr,IE_BSSGP_BVCIIE,len-(ptr-p));
			if(!ptr)
				return CGBPdu_ERROR_SHORT;
			break;			
		case LOCATION:
			ptr=SaveIE(ptr,IE_BSSGP_LOCATION_AREA,len-(ptr-p));
			if(!ptr)
				return CGBPdu_ERROR_SHORT;
			break;			
		case ROUTEING:
			ptr=SaveIE(ptr,IE_BSSGP_ROUTEING_AREA,len-(ptr-p));
			if(!ptr)
				return CGBPdu_ERROR_SHORT;
			break;			
		case BSSAREAINDICATION:
			ptr=SaveIE(ptr,IE_BSSGP_BSS_AREA_INDICATION,len-(ptr-p));
			if(!ptr)
				return CGBPdu_ERROR_SHORT;
			break;			
		case PFI:
			ptr=SaveIE(ptr,IE_BSSGP_PFI,len-(ptr-p));
			if(!ptr)
				return CGBPdu_ERROR_SHORT;
			break;			
		case ABQP:
			ptr=SaveIE(ptr,IE_BSSGP_AGGREGATE_BSS_QOS_PROFILE,len-(ptr-p));
			if(!ptr)
				return CGBPdu_ERROR_SHORT;
			break;			
		case TMSI:
			ptr=SaveIE(ptr,IE_BSSGP_TMSI,len-(ptr-p));
			if(!ptr)
				return CGBPdu_ERROR_SHORT;
		default:
			if(QosState)
				return CGBPdu_ERROR_INVLID;//必選項沒有出現QOS
			goto END;
		}
	}
END:
	AssembleLeng=ptr-Frame;
	return CGBPdu_SUCCESS;
}
char CGBPdu::PAGINGCSDecode(UINT8 *ptr, UINT16 len)
{
	UINT8*p=ptr;
	if(IMSI!=*ptr)

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久久久亚洲蜜桃| 亚洲麻豆国产自偷在线| 国产精品久久久久影院| 亚洲午夜精品在线| 经典三级视频一区| 欧美在线三级电影| 中文字幕一区二| 激情成人午夜视频| 欧美日韩一卡二卡三卡| 中文字幕一区二区三区av| 免费的成人av| 欧美日韩成人综合天天影院| 国产精品久久久久久久久免费樱桃| 日本亚洲一区二区| 欧美日韩精品一区二区| 中文字幕在线免费不卡| 国产精品综合二区| 欧美一个色资源| 天天色天天操综合| 欧美在线观看一区| 一区二区三区四区国产精品| 国产精品亚洲午夜一区二区三区| 欧美一区二区三区四区五区| 亚洲午夜电影在线观看| 日本久久精品电影| 一区二区三区在线不卡| 在线免费观看日本一区| 亚洲美女电影在线| 91国产免费看| 亚洲一区二区三区四区在线观看| 一本到不卡免费一区二区| 亚洲精品v日韩精品| 色八戒一区二区三区| 亚洲精品欧美激情| 欧美亚洲国产一区在线观看网站| 亚洲精品日韩专区silk| 色噜噜久久综合| 亚洲综合在线观看视频| 欧美三级韩国三级日本三斤| 亚洲超碰精品一区二区| 欧美一区二区三区系列电影| 老司机午夜精品99久久| 精品国产乱码久久久久久夜甘婷婷| 男女激情视频一区| 国产亚洲1区2区3区| 成人不卡免费av| 亚洲精品国产一区二区精华液| 91蝌蚪国产九色| 亚洲成人av资源| 精品久久久久久久久久久久久久久| 久久se精品一区精品二区| 精品国产区一区| proumb性欧美在线观看| 亚洲免费在线电影| 正在播放亚洲一区| 国产成人精品免费视频网站| 亚洲精品v日韩精品| 制服丝袜日韩国产| av高清久久久| 三级久久三级久久| 国产三级欧美三级| 欧美在线观看你懂的| 久久不见久久见免费视频7| 日韩理论电影院| 欧美一区二区免费| 99久久99久久精品免费观看| 香港成人在线视频| 中文字幕免费在线观看视频一区| 欧日韩精品视频| 国产电影精品久久禁18| 亚洲一区二区三区四区在线观看| 久久亚洲精华国产精华液 | 天堂蜜桃一区二区三区| 久久久久国产精品麻豆| 欧美日韩三级在线| 国产成+人+日韩+欧美+亚洲| 香蕉久久夜色精品国产使用方法 | 高清久久久久久| 亚洲午夜久久久久久久久电影网 | 日韩av不卡一区二区| 中文字幕中文在线不卡住| 欧美一区二区在线观看| 91精彩视频在线观看| 国产精品一区二区你懂的| 爽好多水快深点欧美视频| 国产精品成人一区二区艾草| 日韩一区二区免费电影| 91久久精品网| av资源站一区| 国产精品99久久久久久有的能看| 日日摸夜夜添夜夜添国产精品| 国产精品久久久久久久久免费丝袜 | www.在线欧美| 美腿丝袜亚洲色图| 一区二区三区 在线观看视频| 久久久91精品国产一区二区三区| 欧美日韩aaa| 91在线国产观看| 国产成a人亚洲精| 老司机一区二区| 日韩国产精品91| 亚洲资源在线观看| 亚洲精品国产第一综合99久久| 久久久无码精品亚洲日韩按摩| 4438x成人网最大色成网站| 色美美综合视频| 成年人午夜久久久| 成人激情免费电影网址| 国产精品1区2区3区在线观看| 蜜乳av一区二区三区| 美女视频免费一区| 精品在线免费视频| 韩国女主播一区| 国产精品正在播放| 国产麻豆成人精品| 国产经典欧美精品| 不卡的av在线播放| 91麻豆免费看片| 色av综合在线| 91精品国产综合久久精品性色| 在线不卡中文字幕| 日韩三级.com| 欧美精品一区二区三区蜜臀| 26uuu亚洲综合色欧美| 久久亚洲一区二区三区四区| 中文字幕av一区二区三区高| 国产欧美一区二区在线| 一区在线播放视频| 一个色在线综合| 日韩avvvv在线播放| 国产一区二区三区国产| 国产v综合v亚洲欧| 91麻豆swag| 欧美日韩国产成人在线免费| 91精品国产一区二区人妖| 久久综合五月天婷婷伊人| 亚洲国产精品精华液ab| 一区二区三区视频在线看| 视频一区中文字幕国产| 国产一区二区三区不卡在线观看| 成人性生交大片免费看在线播放| 91免费视频网| 精品国产免费人成电影在线观看四季 | 国产91精品精华液一区二区三区| www.欧美精品一二区| 欧美日韩国产一级| 亚洲国产精品高清| 亚洲风情在线资源站| 国产一区二区三区精品视频| 91麻豆免费在线观看| 欧美xxxxx牲另类人与| 136国产福利精品导航| 日本不卡的三区四区五区| 午夜精品福利一区二区蜜股av| 亚洲最大的成人av| 国产麻豆精品在线观看| 欧美视频精品在线观看| 国产欧美一区视频| 日韩国产一区二| 91蜜桃在线免费视频| 久久你懂得1024| 午夜成人免费电影| www.欧美精品一二区| 欧美www视频| 亚洲一区二区欧美激情| 国产精品一级片在线观看| 欧美日韩二区三区| 中文字幕一区av| 免费成人性网站| 在线看一区二区| 国产香蕉久久精品综合网| 亚洲与欧洲av电影| 国产99精品视频| 日韩色在线观看| 有码一区二区三区| 国产99久久久久| 日韩美女一区二区三区| 亚洲第一会所有码转帖| 色综合天天综合网天天看片| 国产三级精品三级| 国产一区激情在线| 26uuu精品一区二区三区四区在线 26uuu精品一区二区在线观看 | 蜜臀av性久久久久蜜臀aⅴ流畅 | 亚洲激情欧美激情| 粉嫩av一区二区三区粉嫩| 久久影院午夜论| 精品一区二区av| 欧美一卡2卡三卡4卡5免费| 亚洲成人免费av| 欧美中文字幕久久| 樱花草国产18久久久久| va亚洲va日韩不卡在线观看| 国产精品每日更新| 国产成人av一区二区三区在线观看| 欧美一级夜夜爽| 奇米一区二区三区av| 日韩一级片网站| 久久精品国产精品亚洲精品| 欧美一区二区三区视频在线| 亚洲高清视频在线|