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

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

?? debug.c

?? ZIGBEE2006協議棧
?? C
字號:
/*
*2006/08/16 WXL 2.0
 *
 */

/*
V0.2 added PC-based binding         21/July/2006
V0.1 Initial Release                10/July/2006

*/



#include "compiler.h"               //compiler specific
#include "lrwpan_common_types.h"
#include "lrwpan_config.h"
#include "ieee_lrwpan_defs.h"
#include "hal.h"
#include "console.h"
#include "debug.h"
#include "nwk.h"
#include "aps.h"
#include "neighbor.h"


//print functions for debugging

#define LRWPAN_FRAME_TYPE_BEACON 0
#define LRWPAN_FRAME_TYPE_DATA 1
#define LRWPAN_FRAME_TYPE_ACK 2
#define LRWPAN_FRAME_TYPE_MAC_COMMENT 3

BYTE debug_level;

#define PRINTBIT(x)\
{\
	if(x){ conPrintROMString("1");}\
 else {conPrintROMString("0");}}

#ifdef LRWPAN_DEBUG

BYTE *dbgPrintNwkPacket (BYTE *ptr);
BYTE *dbgPrintApsPacket (BYTE *ptr);
void dbgPrintAfPacket (BYTE *ptr);
static void dbgPrintBeacon(BYTE *ptr);
static void dbgPrintMacCmd(BYTE *ptr, BYTE plen);

void dbgPrintMacPacketFCS(BYTE *ptr){
	//FCS
    conPrintROMString("\nFCS bytes (2): ");
    conPrintUINT8(*ptr);ptr++;
    conPrintROMString("  ")
    conPrintUINT8(*ptr);
    conPrintROMString("\n");
}

void dbgPrintPacket(BYTE *ptr, BYTE plen){

	ptr = dbgPrintMacPacket(ptr,plen);
	if (!ptr) return;
	ptr = dbgPrintNwkPacket(ptr);
	if (!ptr) return;
    ptr = dbgPrintApsPacket(ptr);
    if (!ptr) return;
	dbgPrintAfPacket(ptr);
}


//returns a ptr to the payload if this is a data packet
BYTE *dbgPrintMacPacket (BYTE *ptr, BYTE plen){

	BYTE c, fcflsb;
	BYTE srcmode, dstmode;
	BYTE addr[8];
	SADDR saddr;
	BYTE len;
	BYTE *orgptr;

	orgptr = ptr;
	len = 0;
	//FCS LSB
	c = *ptr;ptr++;len++;	
	fcflsb = c;
	conPrintROMString("#########DUMPED PACKET################\n");
	conPrintROMString("Length: ");conPrintUINT8(plen);conPrintROMString("\n");
	conPrintROMString("Frame Control LSB: ");conPrintUINT8(c);conPrintROMString("\n");
	conPrintROMString("  Frame Type: ");
	switch(LRWPAN_GET_FRAME_TYPE(c)) {
		case LRWPAN_FRAME_TYPE_BEACON: conPrintROMString("BCN");break;
		case LRWPAN_FRAME_TYPE_DATA: conPrintROMString("DAT");break;
		case LRWPAN_FRAME_TYPE_ACK:conPrintROMString("ACK");break;
		case LRWPAN_FRAME_TYPE_MAC:conPrintROMString("MAC");break;
		default: conPrintROMString("RSV");break;
	}
	conPrintROMString(", Security:");
	PRINTBIT(LRWPAN_GET_SECURITY_ENABLED(c));
	conPrintROMString(", FrmPend:");
	PRINTBIT(LRWPAN_GET_FRAME_PENDING(c));
	conPrintROMString(", AckReq:");
	PRINTBIT(LRWPAN_GET_ACK_REQUEST(c));
	conPrintROMString(", IntraPan:");
	PRINTBIT(LRWPAN_GET_INTRAPAN(c));
	if (len >= plen) return(NULL);

	//FCS MSB
	c = *ptr;ptr++;len++;
	dstmode = LRWPAN_GET_DST_ADDR(c);
	conPrintROMString("\nFrame Control MSB: ");conPrintUINT8(c);conPrintROMString("\n");
	conPrintROMString("  DstMode: ");
	switch(dstmode) {
	  case LRWPAN_ADDRMODE_NOADDR: conPrintROMString("NONE");  break;
	  case LRWPAN_ADDRMODE_SADDR:  conPrintROMString("SHORT");  break;
	  case LRWPAN_ADDRMODE_LADDR:  conPrintROMString("LONG");  break;
	  default:  conPrintROMString("RSV");break;
	}
	conPrintROMString("\n  SrcMode: ");
	srcmode = LRWPAN_GET_SRC_ADDR(c);
	switch(srcmode) {
	  case LRWPAN_ADDRMODE_NOADDR: conPrintROMString("NONE");  break;
	  case LRWPAN_ADDRMODE_SADDR:  conPrintROMString("SHORT");  break;
	  case LRWPAN_ADDRMODE_LADDR:  conPrintROMString("LONG");  break;
	  default:  conPrintROMString("RSV");break;
	}
	if (len >= plen) return(NULL);


	//DSN
	c = *ptr;ptr++;len++;
	conPrintROMString("\nData Sequence Num: ");conPrintUINT8(c);conPrintROMString("\n");
	if (len >= plen) return(NULL);

	if (LRWPAN_IS_ACK(fcflsb)){
		dbgPrintMacPacketFCS(ptr);
		return(NULL);
	}
		

	//DEST PANID
	conPrintROMString("\n");
	if (dstmode != LRWPAN_ADDRMODE_NOADDR){
		conPrintROMString(" DstPanID (MSB 1st): ");
		addr[0] = *ptr; ptr++;
		addr[1] = *ptr; ptr++;
		len = len + 2;
		saddr = ((UINT16)addr[1]) << 8;
		saddr = saddr + addr[0];
		conPrintUINT16(saddr);
	}
	//addressing information
	if (dstmode == LRWPAN_ADDRMODE_SADDR || dstmode == LRWPAN_ADDRMODE_LADDR) {
		conPrintROMString("  DstAddress (MSB 1st): ");
		if (dstmode == LRWPAN_ADDRMODE_SADDR) {
			addr[0] = *ptr; ptr++;
			addr[1] = *ptr; ptr++;
			len = len + 2;
			saddr = ((UINT16)addr[1]) << 8;
			saddr = saddr + addr[0];
			conPrintUINT16(saddr);
		} else {
			conPrintLADDR_bytes(ptr);
			len = len + 8;
			ptr = ptr + 8;
		}
	}

	conPrintROMString("\n");
	if ( !LRWPAN_GET_INTRAPAN(fcflsb) &&
		srcmode != LRWPAN_ADDRMODE_NOADDR
		) {
			//PANID present if INTRAPAN is zero, and src is nonzero
			conPrintROMString(" SrcPanID(MSB 1st): ");
			addr[0] = *ptr; ptr++;
			addr[1] = *ptr; ptr++;
			len = len + 2;
			saddr = ((UINT16)addr[1]) << 8;
			saddr = saddr + addr[0];
			conPrintUINT16(saddr);

		}
		if (srcmode == LRWPAN_ADDRMODE_SADDR || srcmode == LRWPAN_ADDRMODE_LADDR) {
			conPrintROMString("  SrcAddress(MSB 1st): ");
			if (srcmode == LRWPAN_ADDRMODE_SADDR) {
				addr[0] = *ptr; ptr++;
				addr[1] = *ptr; ptr++;
				len = len + 2;
				saddr = ((UINT16)addr[1]) << 8;
				saddr = saddr + addr[0];
				conPrintUINT16(saddr);
			} else {
				conPrintLADDR_bytes(ptr);
				len = len+8;
				ptr = ptr + 8;				
			}
		}
		conPrintROMString("\n")


	//payload
    conPrintROMString("MAC payload size: ");
    conPrintUINT8(plen - (len + PACKET_FOOTER_SIZE) );
    conPCRLF();
    dbgPrintMacPacketFCS(orgptr+plen-PACKET_FOOTER_SIZE);
	if (LRWPAN_IS_DATA(fcflsb)) {
		return(ptr);
	} else if (LRWPAN_IS_BCN(fcflsb)){
		if ((plen - (len +PACKET_FOOTER_SIZE)) == LRWPAN_NWK_BEACON_SIZE) dbgPrintBeacon(ptr);
		return(NULL);
	}else if (LRWPAN_IS_MAC(fcflsb)){
          dbgPrintMacCmd(ptr, (plen - (len + PACKET_FOOTER_SIZE)));
		  return(NULL);
	}
	return(NULL);
}

static void dbgPrintMacCmd(BYTE *ptr, BYTE plen){
  conPrintROMString("MAC CMD: ");
  switch(*ptr) {

	 case LRWPAN_MACCMD_ASSOC_REQ : conPrintROMString("Assoc Request"); break;
	 case LRWPAN_MACCMD_ASSOC_RSP: conPrintROMString("Assoc Response"); break;
     case LRWPAN_MACCMD_DISASSOC: conPrintROMString("DisAssoc Request"); break;
     case LRWPAN_MACCMD_DATA_REQ : conPrintROMString("Data Request"); break;
     case LRWPAN_MACCMD_PAN_CONFLICT : conPrintROMString("Pan Conflict"); break;
     case LRWPAN_MACCMD_ORPHAN: conPrintROMString("Orphan Notification"); break;
     case LRWPAN_MACCMD_BCN_REQ: conPrintROMString("Beacon Request"); break;
     case LRWPAN_MACCMD_COORD_REALIGN: conPrintROMString("Coord Realign"); break;
     case LRWPAN_MACCMD_GTS_REQ : conPrintROMString("GTS Request"); break;
	 default: conPrintROMString("Unknown");

  }
 conPCRLF();
 ptr++;plen--;
 conPrintROMString("MAC Payload bytes: ");
 while (plen) {
	 conPrintUINT8(*ptr);
	 ptr++, plen--;
	 conPrintROMString(" ");
 }
 conPCRLF();
}

//works only for our beacons
static void dbgPrintBeacon(BYTE *ptr){
	BYTE i;

	conPrintROMString("Beacon Superframe, LSB: ");
	conPrintUINT8(*ptr);
	ptr++;
	conPrintROMString(", MSB: ");
	conPrintUINT8(*ptr);
	ptr++;
    conPCRLF();
	conPrintROMString("GTS spec: ");
    conPrintUINT8(*ptr);
	ptr++;
	conPrintROMString(", Pending addr: ");
    conPrintUINT8(*ptr);
	ptr++;
	conPCRLF();
    conPrintROMString("Beacon payload\n");
	conPrintROMString("Protocol: ");
	conPrintUINT8(*ptr); ptr++;
	conPrintROMString(", StkProfile: ");
    conPrintUINT8(*ptr); ptr++;
    conPrintROMString(", ProtoVer: ");
    conPrintUINT8(*ptr); ptr++;
    conPrintROMString(", Router Room?: ");
	if (*ptr) {
		 conPrintROMString("Y");
	}
	else {
		conPrintROMString("N");
	}
	ptr++;
    conPrintROMString(", Depth: ");
    conPrintUINT8(*ptr); ptr++;
    conPrintROMString(", EndDev Room?: ");
	if (*ptr) {
		conPrintROMString("Y");
	}
	else {
		conPrintROMString("N");
	}
	ptr++;
	conPCRLF();
	conPrintROMString("Beacon Offset: ");
	for (i=0;i<3;i++){
		conPrintUINT8(*ptr);
		conPrintROMString(" ");
		ptr++;
	}
#ifndef LRWPAN_ZIGBEE_BEACON_COMPLY
	conPrintROMString(", Magic Num: ");
	for (i=0;i<4;i++){
		conPrintUINT8(*ptr);
		conPrintROMString(" ");
		ptr++;
	}
#endif
	
	conPCRLF();
}


//ptr is assumed to pointing to the network header
BYTE *dbgPrintNwkPacket (BYTE *ptr){
	BYTE fcflsb;
	BYTE i;
	SADDR saddr;

	fcflsb = *ptr; ptr++;
	conPrintROMString("NWK Header:\n");
	conPrintROMString(" Type: ");
	if (NWK_IS_DATA(fcflsb)) {
       conPrintROMString("DATA");
	}else if (NWK_IS_CMD(fcflsb)) {
		conPrintROMString("CMD");
    }else {
        conPrintROMString("RSV");
	}
	conPrintROMString(",  Protocol: ");
	i = NWK_GET_PROTOCOL(fcflsb);
	conPrintUINT8(i);
	conPrintROMString(",  RouteDiscovery: ");
    switch(NWK_GET_ROUTE(fcflsb)) {
		case  NWK_SUPPRESS_ROUTE_DISCOVER:
			conPrintROMString("SUPPRESS");
			break;
		case NWK_ENABLE_ROUTE_DISCOVER:
			conPrintROMString("ENABLE");
			break;
		case NWK_FORCE_ROUTE_DISCOVER:
            conPrintROMString("FORCE");
			break;
		default:
			conPrintROMString("RSV");
			break;
	}//end switch()

	//get MSF FCF
	i = *ptr; ptr++;
	conPrintROMString(", Security: ");
	PRINTBIT(NWK_GET_ROUTE(i));
	conPCRLF();

	//DST Addr
	conPrintROMString("DstAddr: ");
	saddr = *ptr;
	ptr++;
	saddr += (((UINT16)*ptr) << 8);
	ptr++;			
	conPrintUINT16(saddr);

    //SRC Addr
	conPrintROMString(", SrcAddr: ");
	saddr = *ptr;
	ptr++;
	saddr += (((UINT16)*ptr) << 8);
	ptr++;			
	conPrintUINT16(saddr);

    //radius
    conPrintROMString(", Radius: ");
	conPrintUINT8(*ptr);
	ptr++;


    //sequence
	conPrintROMString(", Sequence#: ");
	conPrintUINT8(*ptr);
	ptr++;

	conPCRLF();
	if (NWK_IS_DATA(fcflsb)) {
		return(ptr);
	}else {
      return(NULL);
	}
}

//ptr is assumed to pointing to the APS header
 BYTE *dbgPrintApsPacket (BYTE *ptr){
    BYTE i;
	BYTE fcf;
	UINT16 profile;
	
	i = *ptr; ptr++;
	fcf = i;
	conPrintROMString("APS Header:\n");
	conPrintROMString(" Type: ");
    switch(APS_GET_FRM_TYPE(i)) {
		case APS_FRM_TYPE_DATA: conPrintROMString("DAT");break;
		case APS_FRM_TYPE_CMD: conPrintROMString("CMD");break;
		case APS_FRM_TYPE_ACK:conPrintROMString("ACK");break;
		default: conPrintROMString("RSV");break;
	}
	conPrintROMString(", DeliveryMode: ");
	switch(APS_GET_FRM_DLVRMODE(i)) {
        case APS_FRM_DLVRMODE_NORMAL: conPrintROMString("NORMAL");break;
		case APS_FRM_DLVRMODE_INDIRECT: conPrintROMString("INDIRECT");break;
		case APS_FRM_DLVRMODE_BCAST: conPrintROMString("BCAST");break;
		default: conPrintROMString("RSV");break;
	}
	conPrintROMString(", IndirectSubMode: ");
    PRINTBIT(APS_GET_FRM_INDIRECT_SUBMODE(i));
    conPrintROMString(", Security: ");
	PRINTBIT(APS_GET_FRM_SECURITY(i));
	conPrintROMString(", AckReq: ");
	PRINTBIT(APS_GET_FRM_ACKREQ(i));

    conPCRLF();

	//DST EP
	conPrintROMString(" DstEP: ");
    if ((APS_GET_FRM_DLVRMODE(fcf) == APS_FRM_DLVRMODE_INDIRECT) &&
		(APS_GET_FRM_INDIRECT_SUBMODE(fcf))) {
			//no dest EP
            conPrintROMString("NONE");
		}else {
		  conPrintUINT8(*ptr);ptr++;
		}

    conPrintROMString(", Cluster: ");
	if (APS_GET_FRM_TYPE(fcf) == APS_FRM_TYPE_DATA) {
        conPrintUINT8(*ptr);ptr++;
	}else {
      conPrintROMString("NONE");
	}

	
	//Profile
    if ((APS_GET_FRM_TYPE(fcf) == APS_FRM_TYPE_DATA) ||
        (APS_GET_FRM_TYPE(fcf) == APS_FRM_TYPE_ACK)
	   ){
		   profile = *ptr; ptr++;
		   profile += (((UINT16) *ptr) << 8);
		   ptr++;
		   conPrintROMString(", Profile: ");
		   conPrintUINT16(profile);
	   }


	//SRC EP
    conPrintROMString(", SrcEP: ");

    if ((APS_GET_FRM_DLVRMODE(fcf) == APS_FRM_DLVRMODE_INDIRECT) &&
		(!APS_GET_FRM_INDIRECT_SUBMODE(fcf))) {
			//no src EP
            conPrintROMString("NONE");
		}else {
		  conPrintUINT8(*ptr);ptr++;
		}
    conPCRLF();

   if (APS_GET_FRM_TYPE(fcf) == APS_FRM_TYPE_DATA) return(ptr);
   else return(NULL);

}

 //ptr is assumed to pointing to the AF header
 //we only understand how to print MSG types
 void dbgPrintAfPacket (BYTE *ptr){
	BYTE i;
	BYTE fcf;
	BYTE len;

    conPrintROMString("AF Header: ");
    i = *ptr; ptr++;
    fcf = i;

    conPrintROMString(" TransCnt: ");
	conPrintUINT8(AF_GET_TRANS_COUNT(fcf));
    conPrintROMString(" FrmType: ");
	if (AF_GET_FRM_TYPE(fcf) == AF_FRM_TYPE_MSG) {
		conPrintROMString("MSG, Trans#: ");
		//only one transaction in MSG frame, get transaction umber
         conPrintUINT8(*ptr);ptr++;
		//only one transaction in MSG frame, first byte is length
        conPrintROMString(", Length: ");
		len = *ptr;
        conPrintUINT8(len);ptr++;
		conPCRLF();
		conPrintROMString("Data: ");
		i=0;
		while(len){
			conPrintUINT8(*ptr);ptr++;
			conPrintROMString(" ");
			i++;
			if (i == 16) {
				i = 0;
                conPCRLF();
			}
			len--;
		}
	} else if (AF_GET_FRM_TYPE(fcf) == AF_FRM_TYPE_KVP){
      conPrintROMString("KVP");
	} else {
      conPrintROMString("RSV");
	}
   conPCRLF();
 }

#ifdef LRWPAN_FFD
 void dbgPrintNeighborTable(void){
	NAYBORENTRY *nt_ptr;
	BYTE j, cnt;
	
	nt_ptr = &mac_nbr_tbl[0];
	cnt = 0;
	for (j=0;j<NTENTRIES;j++,nt_ptr++) {
		if (nt_ptr->flags.bits.used) cnt++;
	}
	conPrintROMString("Number of Neighbors: ");
	conPrintUINT8(cnt);
    conPCRLF();
	cnt = 1;
	nt_ptr = &mac_nbr_tbl[0];
    for (j=0;j<NTENTRIES;j++,nt_ptr++) {
		if (nt_ptr->flags.bits.used) {
		 conPrintUINT8(cnt);cnt++;
		 conPrintROMString(" LADDR: ");
         conPrintLADDR_bytes(&mac_addr_tbl[nt_ptr->map_index].laddr[0]);
		 conPrintROMString(" SADDR: ");
		 conPrintUINT16(mac_addr_tbl[nt_ptr->map_index].saddr);
		 conPrintROMString(" CapInfo: ");
		 conPrintUINT8(nt_ptr->capinfo);
		 conPrintROMString(" LQI: ");
		 conPrintUINT8(nt_ptr->flags.bits.lqi);
		 conPCRLF();
		}
	}
	//print the address table
    cnt = 0;
	for (j=0;j<LRWPAN_MAX_ADDRESS_MAP_ENTRIES;j++) {
		if (mac_addr_tbl[j].saddr != LRWPAN_BCAST_SADDR) cnt++;
	}
    conPrintROMString("Number of Address Map Entries: ");
	conPrintUINT8(cnt);
    conPCRLF();
	cnt = 1;
	for (j=0;j<LRWPAN_MAX_ADDRESS_MAP_ENTRIES;j++) {
      if (mac_addr_tbl[j].saddr == LRWPAN_BCAST_SADDR)continue;
	  conPrintROMString(" LADDR: ");
      conPrintLADDR_bytes(&mac_addr_tbl[j].laddr[0]);
	  conPrintROMString(" SADDR: ");
	  conPrintUINT16(mac_addr_tbl[j].saddr);
	  conPCRLF();
	}


 }
#endif

#endif

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
捆绑调教美女网站视频一区| 欧美国产综合一区二区| 久久se这里有精品| 久久久91精品国产一区二区三区| 久久99久久精品欧美| 国产精品美日韩| 欧美日本乱大交xxxxx| 国产69精品一区二区亚洲孕妇| 亚洲免费av在线| 26uuu久久天堂性欧美| 在线一区二区观看| 免费看黄色91| 一区二区不卡在线播放| 久久婷婷色综合| 在线免费观看视频一区| 国产盗摄女厕一区二区三区| 五月天亚洲婷婷| 国产精品久久久久久亚洲毛片| 91精品国产手机| 国产精品综合av一区二区国产馆| 亚洲精品成人a在线观看| 国产欧美日韩激情| 欧美视频日韩视频| 国产在线精品免费| 亚洲成人一区在线| 日本一区二区成人在线| 日韩欧美国产三级电影视频| 日本韩国精品在线| 国产成人福利片| 精品一区二区免费在线观看| 亚洲激情图片一区| 久久久久99精品一区| 91精品国产一区二区三区蜜臀| 在线亚洲欧美专区二区| 懂色一区二区三区免费观看| 捆绑调教一区二区三区| 日日夜夜一区二区| 玉足女爽爽91| ...av二区三区久久精品| 欧美一区二区三区免费在线看| 国产成人精品综合在线观看| 久久国产欧美日韩精品| 丝袜亚洲另类欧美综合| 一区二区高清视频在线观看| 国产精品国产自产拍在线| 国产日韩精品一区二区浪潮av| 日韩欧美精品在线| 在线成人免费视频| 欧美日韩精品福利| 欧美日韩专区在线| 色婷婷久久99综合精品jk白丝 | 欧美午夜一区二区三区| 成人黄色一级视频| 国产福利一区二区三区| 精品一区二区三区久久久| 免费成人美女在线观看| 日本欧美加勒比视频| 日韩国产欧美在线视频| 天堂蜜桃91精品| 日本免费新一区视频| 石原莉奈一区二区三区在线观看 | 久久精品一区蜜桃臀影院| 6080yy午夜一二三区久久| 欧美精品国产精品| 在线不卡a资源高清| 欧美一级欧美一级在线播放| 欧美一区三区二区| 欧美一区二区视频观看视频 | 色哟哟在线观看一区二区三区| 成人黄色国产精品网站大全在线免费观看 | 制服丝袜亚洲色图| 日韩一级片网站| 26uuu国产在线精品一区二区| 久久久久久久久99精品| 久久久国际精品| 亚洲黄色在线视频| 蜜臀av性久久久久蜜臀aⅴ | 国产精品麻豆视频| 亚洲综合久久av| 亚洲另类在线视频| 日本欧美久久久久免费播放网| 久色婷婷小香蕉久久| 五月激情综合网| 国产a久久麻豆| 一本一道波多野结衣一区二区| 欧美色大人视频| 精品蜜桃在线看| 国产精品成人在线观看| 亚洲超碰97人人做人人爱| 日韩和的一区二区| 96av麻豆蜜桃一区二区| 91麻豆精品91久久久久久清纯| 久久综合九色综合欧美98| 一区二区在线观看不卡| 日韩二区三区四区| 北条麻妃国产九九精品视频| 日韩欧美高清dvd碟片| 国产精品美女久久久久av爽李琼 | 久久久久9999亚洲精品| 国产精品女同互慰在线看| 日韩成人dvd| 国产精品66部| 欧美日韩一区 二区 三区 久久精品| 日韩欧美美女一区二区三区| 国产亚洲精品精华液| 亚洲免费观看在线观看| 懂色av一区二区夜夜嗨| 欧美精品一卡两卡| 国产精品久久久久久福利一牛影视 | 亚洲欧洲精品一区二区精品久久久| 国产精品久久久久一区| 久久se精品一区精品二区| 欧洲中文字幕精品| 中文字幕乱码亚洲精品一区| 国产综合久久久久久鬼色| 欧美视频一区二区三区| 久久久99久久| 国产精品综合久久| 欧美一卡在线观看| 国产欧美视频一区二区| 另类小说欧美激情| 欧美色图免费看| 国产午夜亚洲精品羞羞网站| 久久精品国产精品亚洲红杏| 91亚洲精品久久久蜜桃网站| 精品欧美乱码久久久久久1区2区| 丝袜美腿成人在线| 色婷婷国产精品综合在线观看| 国产欧美日韩激情| 夜夜嗨av一区二区三区中文字幕| 国产成人精品一区二区三区网站观看| 欧美一区二区在线视频| 亚洲另类春色校园小说| 日本道免费精品一区二区三区| 国产欧美视频在线观看| 国产成人免费视频网站| 亚洲国产精品国自产拍av| 激情综合色丁香一区二区| 在线观看免费视频综合| 亚洲国产精品精华液网站| 一本久久综合亚洲鲁鲁五月天 | 日韩视频一区二区在线观看| 午夜伦欧美伦电影理论片| 欧美日韩一区精品| 亚洲一级二级三级在线免费观看| 99精品视频一区二区三区| 国产精品1区二区.| 在线观看中文字幕不卡| 亚洲一区二区三区激情| 欧美福利电影网| 看电视剧不卡顿的网站| 久久这里只精品最新地址| 国产99久久精品| 亚洲色图自拍偷拍美腿丝袜制服诱惑麻豆| 波多野结衣精品在线| 99精品热视频| 香港成人在线视频| 精品日韩在线观看| 国产91丝袜在线播放0| 日韩毛片一二三区| 精品视频一区二区三区免费| 欧美aaa在线| 久久国产免费看| 日本一区二区久久| 欧美日韩一区不卡| 国产剧情一区在线| 综合激情成人伊人| 777亚洲妇女| 成人丝袜高跟foot| 午夜精品久久久久久不卡8050| 日韩欧美综合一区| 91在线视频官网| 日本欧美在线观看| 国产精品成人一区二区三区夜夜夜| 欧美亚洲愉拍一区二区| 久久91精品国产91久久小草| 亚洲天堂精品视频| 日韩女优制服丝袜电影| av成人免费在线观看| 五月天激情综合| 国产精品国产三级国产普通话三级 | 亚洲狼人国产精品| 精品国产一区二区三区四区四| 成人午夜视频福利| 青青草原综合久久大伊人精品优势| 亚洲国产精品ⅴa在线观看| 91麻豆精品国产91久久久久| 成人少妇影院yyyy| 蜜桃视频在线一区| 亚洲免费观看高清完整版在线观看熊| 欧美人伦禁忌dvd放荡欲情| 成a人片亚洲日本久久| 麻豆成人久久精品二区三区小说| 亚洲人午夜精品天堂一二香蕉| 精品嫩草影院久久| 欧美高清www午色夜在线视频| av在线这里只有精品| 国产美女视频一区| 免费看欧美女人艹b| 一区二区激情小说|