精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

OpenHarmony 資源調(diào)度之智能感知調(diào)度源碼分析

系統(tǒng) OpenHarmony
本文主要介紹了WPA_supplicant基礎(chǔ)及其在分布式軟總線子系統(tǒng)WIFI模塊的應(yīng)用 ,著重分析了HAL層與WPA_supplicant之間的Unix socket通信機(jī)制并貼出主要入口代碼,為開(kāi)發(fā)人員維護(hù)和擴(kuò)展功能提供參考。

想了解更多關(guān)于開(kāi)源的內(nèi)容,請(qǐng)?jiān)L問(wèn):

51CTO 開(kāi)源基礎(chǔ)軟件社區(qū)

https://ost.51cto.com

1、WPA_supplicant簡(jiǎn)介

WPA是WiFi Protected Access的縮寫(xiě),中文含義為“WiFi網(wǎng)絡(luò)安全存取”。WPA是一種基于標(biāo)準(zhǔn)的可互操作的WLAN安全性增強(qiáng)解決方案,可大大增強(qiáng)現(xiàn)有以及未來(lái)無(wú)線局域網(wǎng)絡(luò)的數(shù)據(jù)保護(hù)和訪問(wèn)控制水平。

wpa_supplicant是開(kāi)源項(xiàng)目源碼,支持Linux,Windows以及很多嵌入式系統(tǒng)。它是WPA的應(yīng)用層認(rèn)證客戶(hù)端,負(fù)責(zé)完成認(rèn)證相關(guān)的登錄、加密等工作。wpa_supplicant是一個(gè) 獨(dú)立運(yùn)行的 守護(hù)進(jìn)程,其核心是一個(gè)消息循環(huán),在消息循環(huán)中處理WPA狀態(tài)機(jī)、控制命令、驅(qū)動(dòng)事件、配置信息等。

經(jīng)過(guò)編譯后 的 wpa_supplicant源程序可以看到兩個(gè)主要的可執(zhí)行工具:wpa_supplicant 和 wpa_cli。wpa_supplicant是核心程序,它和wpa_cli的關(guān)系就是服務(wù)和客戶(hù)端的關(guān)系:后臺(tái)運(yùn)行wpa_supplicant,使用 wpa_cli來(lái)搜索、設(shè)置、和連接網(wǎng)絡(luò)。wpa_supplicant與上層還是wpa_supplicant與驅(qū)動(dòng)都采用socket通訊, 與驅(qū)動(dòng)交互上報(bào)數(shù)據(jù)給用戶(hù),而用戶(hù)可以通過(guò)socket發(fā)送命令給wpa_supplicant調(diào)動(dòng)驅(qū)動(dòng)來(lái)對(duì)WiFi芯片操作,如圖1所示:

OpenHarmony 資源調(diào)度之智能感知調(diào)度源碼分析-開(kāi)源基礎(chǔ)軟件社區(qū)

圖 1 wpa_supplicant框架

2、AF_INET與AF_UNIX socket

Wpa_supplicant支持AF_INET和AF_UNIX socket兩種通信方式:AF_INET socket、AF_UNIX socket。

AF_INET socket通信方式類(lèi)似于網(wǎng)絡(luò)socket通信,發(fā)送方、接收方依賴(lài)IP:Port來(lái)標(biāo)識(shí),即將本地的socket綁定到對(duì)應(yīng)的IP端口上,發(fā)送數(shù)據(jù)時(shí),指定對(duì)方的IP端口,經(jīng)過(guò)Internet,可以根據(jù)此IP端口最終找到接收方;接收數(shù)據(jù)時(shí),可以從數(shù)據(jù)包中獲取到發(fā)送方的IP端口。發(fā)送方通過(guò)系統(tǒng)調(diào)用send()將原始數(shù)據(jù)發(fā)送到操作系統(tǒng)內(nèi)核緩沖區(qū)中。內(nèi)核緩沖區(qū)從上到下依次經(jīng)過(guò)TCP層、IP層、鏈路層的編碼,分別添加對(duì)應(yīng)的頭部信息,經(jīng)過(guò)網(wǎng)卡將一個(gè)數(shù)據(jù)包發(fā)送到網(wǎng)絡(luò)中。經(jīng)過(guò)網(wǎng)絡(luò)路由到接收方的網(wǎng)卡。網(wǎng)卡通過(guò)系統(tǒng)中斷將數(shù)據(jù)包通知到接收方的操作系統(tǒng),再沿著發(fā)送方編碼的反方向進(jìn)行解碼,即依次經(jīng)過(guò)鏈路層、IP層、TCP層去除頭部、檢查校驗(yàn)等,最終將原始數(shù)據(jù)上報(bào)到接收方進(jìn)程,通信過(guò)程如下圖所示:

OpenHarmony 資源調(diào)度之智能感知調(diào)度源碼分析-開(kāi)源基礎(chǔ)軟件社區(qū)

圖 2 AF_INET socket通信過(guò)程

AF_UNIX socket通信是典型的本地IPC,類(lèi)似于管道,依賴(lài)路徑名標(biāo)識(shí)發(fā)送方和接收方。即發(fā)送數(shù)據(jù)時(shí),指定接收方綁定的路徑名,操作系統(tǒng)根據(jù)該路徑名可以直接找到對(duì)應(yīng)的接收方,并將原始數(shù)據(jù)直接拷貝到接收方的內(nèi)核緩沖區(qū)中,并上報(bào)給接收方進(jìn)程進(jìn)行處理。同樣的接收方可以從收到的數(shù)據(jù)包中獲取到發(fā)送方的路徑名,并通過(guò)此路徑名向其發(fā)送數(shù)據(jù)。

OpenHarmony 資源調(diào)度之智能感知調(diào)度源碼分析-開(kāi)源基礎(chǔ)軟件社區(qū)

圖 3 AF_UNIX socket通信過(guò)程

他們的相同點(diǎn):操作系統(tǒng)提供的接口socket(),bind(),connect(),accept(),send(),recv(),以及用來(lái)對(duì)其進(jìn)行多路復(fù)用事件檢測(cè)的select(),poll(),epoll()都是完全相同的。收發(fā)數(shù)據(jù)的過(guò)程中,上層應(yīng)用感知不到底層的差別。

不同點(diǎn):

  • 建立socket傳遞的地址域,及bind()的地址結(jié)構(gòu)稍有區(qū)別:socket() 分別傳遞不同的域AF_INET和AF_UNIX bind()的地址結(jié)構(gòu)分別為sockaddr_in(制定IP端口)和sockaddr_un(指定路徑名)
  • AF_INET需經(jīng)過(guò)多個(gè)協(xié)議層的編解碼,消耗系統(tǒng)cpu,并且數(shù)據(jù)傳輸需要經(jīng)過(guò)網(wǎng)卡,受到網(wǎng)卡帶寬的限制。AF_UNIX數(shù)據(jù)到達(dá)內(nèi)核緩沖區(qū)后,由內(nèi)核根據(jù)指定路徑名找到接收方socket對(duì)應(yīng)的內(nèi)核緩沖區(qū),直接將數(shù)據(jù)拷貝過(guò)去,不經(jīng)過(guò)協(xié)議層編解碼,節(jié)省系統(tǒng)cpu,并且不經(jīng)過(guò)網(wǎng)卡,因此不受網(wǎng)卡帶寬的限制。
  • AF_UNIX的傳輸速率遠(yuǎn)遠(yuǎn)大于AF_INET
  • AF_INET不僅可以用作本機(jī)的跨進(jìn)程通信,同樣的可以用于不同機(jī)器之間的通信,其就是為了在不同機(jī)器之間進(jìn)行網(wǎng)絡(luò)互聯(lián)傳遞數(shù)據(jù)而生。而AF_UNIX則只能用于本機(jī)內(nèi)進(jìn)程之間的通信。

3、WPA_supplicant在OpenHarmony中的應(yīng)用

(1)WPA_supplicant的位置

OpenHarmony的WIFI子系統(tǒng)使用WPA_supplicant實(shí)現(xiàn)調(diào)動(dòng)驅(qū)動(dòng)操作WIFI芯片,驅(qū)動(dòng)數(shù)據(jù)上報(bào)給框架層的功能,WPA_supplicant在WIFI子系統(tǒng)的位置如下圖的WIFI架構(gòu)圖所示:

OpenHarmony 資源調(diào)度之智能感知調(diào)度源碼分析-開(kāi)源基礎(chǔ)軟件社區(qū)

圖 4 WIFI子系統(tǒng)架構(gòu)圖

WPA Supplicant包含libwpa、libwpa_client庫(kù)和wpa_cli、wpa_supplicant、hostapd可執(zhí)行程序。

  • libwpa是一個(gè)包含了wpa_suppliant和hostapd具體實(shí)現(xiàn)的庫(kù)。
  • wpa_supplicant是wpa的認(rèn)證客戶(hù)端,負(fù)責(zé)完成認(rèn)證相關(guān)的登錄、加密等工作。
  • hostapd包含了IEEE802.11接入點(diǎn)管理、IEEE802.1X/WPA/WPA2認(rèn)證、EAP服務(wù)器以及Radius鑒權(quán)服務(wù)器功能。
  • libwpa_client是一個(gè)給客戶(hù)端連接和調(diào)用的庫(kù),提供創(chuàng)建與wpa_supplicant或hostapd通信控制接口的能力。
  • wpa_cli和wpa_supplicant是客戶(hù)端和服務(wù)器的關(guān)系,通過(guò)wpa_cli可以向wpa_supplicant發(fā)送命令,進(jìn)行掃描、連接等做操作,可用來(lái)進(jìn)行Wifi功能的驗(yàn)證。

Wifi HAL層作為硬件適配層,承上啟下,對(duì)上層框架屏蔽底層硬件差別,為上層提供一致的接口。對(duì)下則負(fù)責(zé)拉起WPAS,即fork進(jìn)程wifi_hal_service的子進(jìn)程,在子進(jìn)程中加載libwpa庫(kù),執(zhí)行wpa_supplicant或hostapd的入口函數(shù), 作為unix socket通信的服務(wù)端. Wifi HAL的wifi_hal_service進(jìn)程是unix socket通信的客戶(hù)端,通過(guò)命令消息下發(fā)給wpa_supplicant或hostapd。

(2)Wifi HAL與wpa_supplicant的unix socket機(jī)制

Wifi HAL拉起wpa_supplicant或hostapd并建立unix socket連接過(guò)程如下圖所示:

OpenHarmony 資源調(diào)度之智能感知調(diào)度源碼分析-開(kāi)源基礎(chǔ)軟件社區(qū)

圖 5 Wifi HAL與wpa_supplicant unix socket建立過(guò)程

其中HAL拉起wpas的主要實(shí)現(xiàn)函數(shù)為StartModuleInternal,代碼主干如下

int StartModuleInternal(const char *moduleName, const char *startCmd, pid_t *pProcessId)
{
    ...
    pid_t pid = fork();  // fork子進(jìn)程
    if (pid < 0) {
        LOGE("Create wpa process failed!");
        return HAL_FAILURE;
    }
    if (pid == 0) { /* sub process */
        prctl(PR_SET_PDEATHSIG, SIGKILL);
        pthread_t tid;
        int ret = pthread_create(&tid, NULL, WpaThreadMain, (void *)startCmd); // 子進(jìn)程中創(chuàng)建主線程,線程入口函數(shù)WpaThreadMain 
        ...
    } else {
        ...
    }
    return HAL_SUCCESS;
}

子進(jìn)程的主線程入口函數(shù)WpaThreadMain中,加載libwpa動(dòng)態(tài)庫(kù),執(zhí)行主函數(shù)wpa_main或ap_main,參數(shù)由創(chuàng)建線程時(shí)傳入的startcmd解析而來(lái)。對(duì)于Sta和P2p業(yè)務(wù),有兩個(gè)參數(shù)分別是配置文件路徑、全局控制路徑;對(duì)于hostapd業(yè)務(wù),傳入一個(gè)參數(shù),即hostapd配置文件路徑。

static void *WpaThreadMain(void *p)
{
   ...
// 加載動(dòng)態(tài)庫(kù)libwpa
#ifdef OHOS_ARCH_LITE
    void *handleLibWpa = dlopen("libwpa.so", RTLD_NOW | RTLD_LOCAL);
#else
#ifdef __aarch64__
    void *handleLibWpa = dlopen("/system/lib64/libwpa.z.so", RTLD_NOW | RTLD_LOCAL | RTLD_NODELETE);
#else
    void *handleLibWpa = dlopen("/system/lib/libwpa.z.so", RTLD_NOW | RTLD_LOCAL | RTLD_NODELETE);
#endif
#endif
    ...
    if (strcmp(param.argv[0], "wpa_supplicant") == 0) {
        func = (int (*)(int, char **))dlsym(handleLibWpa, "wpa_main");
    } else {
        func = (int (*)(int, char **))dlsym(handleLibWpa, "ap_main");
    }
...
// 執(zhí)行主函數(shù)
    int ret = func(param.argc, tmpArgv);
    LOGD("run wpa_main ret:%{public}d.\n", ret);
    if (dlclose(handleLibWpa) != 0) {
        LOGE("dlclose libwpa failed.");
        return NULL;
    }
    return NULL;
}

Wifi HAL作為客戶(hù)端建立unix socket連接的主要實(shí)現(xiàn)函數(shù)WpaCliConnect,通過(guò)調(diào)用wpa client的函數(shù)wpa_ctrl_open建立socket連接,其參數(shù)ifname為“/data/service/el1/public/wifi/sockets/wpa/wlan0”。

static int WpaCliConnect(WifiWpaInterface *p)
{
    ...
    int count = WPA_TRY_CONNECT_TIMES;
    while (count-- > 0) {
        int ret = InitWpaCtrl(&p->wpaCtrl, WPA_CTRL_OPEN_IFNAME);
        if (ret == 0) {
            LOGI("Global wpa interface connect successfully!");
            break;
        } else {
            LOGE("Init wpaCtrl failed: %{public}d", ret);
        }
        usleep(WPA_TRY_CONNECT_SLEEP_TIME);
    }
    if (count <= 0) {
        return -1;
    }
    p->threadRunFlag = 1;
    if (pthread_create(&p->tid, NULL, WpaReceiveCallback, p) != 0) {
        p->threadRunFlag = 0;
        ReleaseWpaCtrl(&p->wpaCtrl);
        LOGE("Create monitor thread failed!");
        return -1;
    }
    LOGI("Wpa connect finish.");
    return 0;
}

int InitWpaCtrl(WpaCtrl *pCtrl, const char *ifname)
{
    ...
    do {
#ifdef WPA_CTRL_IFACE_UNIX
        pCtrl->pRecv = wpa_ctrl_open(ifname);
#else
        pCtrl->pRecv = wpa_ctrl_open("global");
#endif
        if (pCtrl->pRecv == NULL) {
            LOGE("open wpa control recv interface failed!");
            break;
        }
        if (wpa_ctrl_attach(pCtrl->pRecv) != 0) {
            LOGE("attach monitor interface failed!");
            break;
        }
#ifdef WPA_CTRL_IFACE_UNIX
        pCtrl->pSend = wpa_ctrl_open(ifname);
#else
        pCtrl->pSend = wpa_ctrl_open("global");
#endif
        if (pCtrl->pSend == NULL) {
            LOGE("open wpa control send interface failed!");
            break;
        }
        flag += 1;
    } while (0);
    ...
    return 0;
}

總結(jié)

本文主要介紹了WPA_supplicant基礎(chǔ)及其在分布式軟總線子系統(tǒng)WIFI模塊的應(yīng)用 ,著重分析了HAL層與WPA_supplicant之間的unix socket通信機(jī)制并貼出主要入口代碼,為開(kāi)發(fā)人員維護(hù)和擴(kuò)展功能提供參考。

想了解更多關(guān)于開(kāi)源的內(nèi)容,請(qǐng)?jiān)L問(wèn):

51CTO 開(kāi)源基礎(chǔ)軟件社區(qū)

https://ost.51cto.com

責(zé)任編輯:jianghua 來(lái)源: 51CTO 開(kāi)源基礎(chǔ)軟件社區(qū)
相關(guān)推薦

2022-06-13 14:31:02

資源調(diào)度鴻蒙

2022-06-27 10:25:55

Kubernetes調(diào)度CPU

2024-10-21 09:18:47

2021-12-15 15:03:51

Linux內(nèi)核調(diào)度

2021-11-10 16:10:18

鴻蒙HarmonyOS應(yīng)用

2025-05-13 03:22:00

2025-05-13 06:41:08

2009-12-11 09:42:54

Linux內(nèi)核源碼進(jìn)程調(diào)度

2009-12-11 09:47:23

Linux內(nèi)核源碼進(jìn)程調(diào)度

2016-06-15 10:35:59

云計(jì)算

2020-10-13 08:34:53

全球流量調(diào)度

2021-05-20 09:50:20

鴻蒙HarmonyOS應(yīng)用

2015-05-05 09:37:29

OpenStackNova資源統(tǒng)計(jì)

2022-07-31 23:46:57

人工智能語(yǔ)言模型感知力

2010-08-12 15:38:39

IT運(yùn)維網(wǎng)管軟件摩卡軟件

2022-12-16 08:31:37

調(diào)度線程池源碼

2025-09-01 00:00:01

2024-05-23 08:40:46

Kubernetes預(yù)過(guò)濾調(diào)度
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

蜜桃成人在线| 亚洲福利视频二区| 色呦呦网站入口| www.色婷婷.com| 欧美中文字幕| 久久精品国产亚洲精品2020| 9.1在线观看免费| 亚洲第一二三四区| 亚洲人成影院在线观看| 精品乱码一区二区三区| 中文在线免费观看| 精品白丝av| 爱福利视频一区| 三级男人添奶爽爽爽视频| 狠狠久久综合| 都市激情亚洲色图| 日韩 欧美 自拍| 国产视频在线看| 国产成人一区在线| 国产精品扒开腿做爽爽爽男男 | 高清精品视频| 欧美日韩午夜在线视频| 日本少妇高潮喷水视频| 最新日本在线观看| 国产精品久久久久久久久免费樱桃 | 欧美尺度大的性做爰视频| japanese中文字幕| 欧亚精品一区| 亚洲国产精品久久久久秋霞不卡| 91插插插影院| 国语自产精品视频在线看抢先版结局 | 日本欧美色综合网站免费| 色呦呦免费观看| 国产成人精品一区二区三区网站观看| 国产精品久久久久久婷婷天堂 | 欧美日韩成人综合在线一区二区| 国产91对白刺激露脸在线观看| 伊人春色在线观看| 亚洲乱码一区二区三区在线观看| 一本一本a久久| 国产高清视频在线| 久久久国际精品| 久久精品二区| 日韩porn| 久久九九全国免费| 欧美日韩综合网| 欧美zozo| 国产女主播视频一区二区| 欧美一区二区视频17c| 深夜福利免费在线观看| 91在线视频官网| 久久99精品久久久久久三级 | 熟女少妇在线视频播放| sis001亚洲原创区| 五月婷婷综合网| 黄色av网址在线播放| 午夜伦理福利在线| 色琪琪一区二区三区亚洲区| 久久无码高潮喷水| 3d欧美精品动漫xxxx无尽| 91九色最新地址| 中文字幕一区二区三区四区在线视频| 日韩中文在线播放| 欧美日韩视频不卡| 欧美xxxxxbbbbb| 91蜜桃臀久久一区二区| 欧美精品一区二区三区很污很色的 | 久久久久久久久久久亚洲| 国产在线成人精品午夜| 99精品视频免费| 日韩暖暖在线视频| 亚洲图片小说视频| 国产美女视频91| 高清视频一区| 可以在线观看的av网站| 国产精品拍天天在线| 在线无限看免费粉色视频| 色婷婷av在线| 欧美日韩亚洲激情| 午夜免费看毛片| av男人一区| 一区二区三区无码高清视频| 亚洲综合视频网站| 国产亚洲精品v| 国产欧美一区二区白浆黑人| 国产高中女学生第一次| 99久久精品免费看国产| 日韩av在线电影观看| 在线中文字幕第一页| 狠狠躁18三区二区一区| 爱豆国产剧免费观看大全剧苏畅| 97青娱国产盛宴精品视频| 亚洲欧美一区二区精品久久久| 中文字幕美女视频| 一区二区三区国产在线| 国产日韩在线看片| 婷婷在线免费视频| 中文字幕一区二区不卡| 男人靠女人免费视频网站| 亚洲精品自拍| 亚洲美女又黄又爽在线观看| 搜索黄色一级片| 久久激情综合| 国产精品对白一区二区三区| av大片在线看| www.国产高清| 国产天堂在线| 亚洲人成亚洲人成在线观看图片| 免费看黄在线看| 中文字幕系列一区| 欧美videos中文字幕| 精品无码国产污污污免费网站 | 日本不卡二区| 啦啦啦中文在线观看日本| 色94色欧美sute亚洲线路一ni| 国产亚洲色婷婷久久| 欧美理论视频| 欧美一区二区三区……| 性中国xxx极品hd| 国产精品情趣视频| 午夜dv内射一区二区| 第四色在线一区二区| 久久精品亚洲94久久精品| 在线免费观看av网址| www.亚洲人| 国产一区二区四区| 国产精品久久久久久久久久辛辛 | bbw在线视频| 欧美老女人第四色| 国产视频三区四区| 久久一区国产| 免费在线观看一区二区| freexxx性亚洲精品| 日韩精品一区二区三区在线播放| а天堂中文在线资源| 日日夜夜免费精品视频| 免费一区二区三区在在线视频| 97在线超碰| 精品国产乱码久久久久久夜甘婷婷| 美国黄色片视频| 美女视频黄久久| 亚洲精品不卡| 久久99国产精品二区高清软件| 亚洲精品中文字| 免费黄色网址在线| 久久综合色之久久综合| 国产精品宾馆在线精品酒店| 欧美sss在线视频| 91av在线免费观看| 三级视频在线播放| 日韩欧美在线看| 日本成人午夜影院| 理论电影国产精品| 在线视频不卡国产| 国产午夜精品一区在线观看| 欧美成人午夜激情在线| www.色婷婷.com| 亚洲成人av资源| 中国黄色a级片| 首页综合国产亚洲丝袜| 亚洲丰满在线| 日韩精品成人在线观看| 欧美精品aaa| 少妇高潮一区二区三区69| 欧美日韩视频免费播放| b站大片免费直播| 日本va欧美va精品发布| 自拍偷拍亚洲色图欧美| 亚洲成av人片在线观看www| 欧美多人爱爱视频网站| 日韩在线观看视频一区| 日韩欧美国产黄色| 一本色道久久88| 国产精品一区在线观看乱码| youjizz.com在线观看| 欧美激情极品| 国产精品毛片a∨一区二区三区|国 | 999这里只有精品| 国产一区二区香蕉| 亚洲产国偷v产偷v自拍涩爱| 亚洲在线成人精品| 欧美熟妇精品黑人巨大一二三区| 老牛嫩草一区二区三区日本 | 99久久婷婷这里只有精品| 欧美偷拍一区二区| 91传媒免费观看| 成人午夜免费电影| 色一情一乱一伦一区二区三区日本| 外国成人激情视频| 久久久久久久有限公司| 色狠狠一区二区三区| 久久久久久久91| av资源在线观看免费高清| 欧美一级在线免费| 天堂网视频在线| 亚洲女与黑人做爰| 成人免费看aa片| 国产精品一二三| www黄色在线| 国产精品av一区二区| 日韩精品久久一区| 天堂va欧美ⅴa亚洲va一国产| 欧美亚洲视频在线观看| a在线免费观看| 亚洲人成自拍网站| 国精产品乱码一区一区三区四区| 色婷婷久久综合| 国产一级做a爱免费视频| 欧美激情一区二区三区四区| 国产十八熟妇av成人一区| 久久国产精品色| 免费日韩中文字幕| 这里只有精品在线| 亚洲一区二区三区四区中文| 牛牛影视久久网| 99久久精品久久久久久ai换脸| 51一区二区三区| 欧美重口另类videos人妖| 欧美hdxxxxx| 久久色在线播放| avtt亚洲| 在线看国产精品| 九色在线观看视频| 日韩第一页在线| 国产91久久久| 日韩欧美二区三区| 国产一区二区视频免费观看| 91国产免费看| 一级黄色av片| 欧美性猛交丰臀xxxxx网站| 久久精品国产亚洲av麻豆色欲 | 91麻豆精品一二三区在线| 日韩美女视频中文字幕| 最近高清中文在线字幕在线观看1| 欧美日韩国产999| 大片免费在线看视频| 日韩在线欧美在线国产在线| 啊v视频在线| 中文字幕国产亚洲| 午夜小视频在线| 少妇av一区二区三区| 日本中文在线观看| xxx欧美精品| 精产国品自在线www| 久久精品一偷一偷国产| 国产精品实拍| 久久99精品久久久久久琪琪 | 亚洲午夜免费电影| 亚洲国产精品午夜在线观看| 亚洲一区二区高清| 国产一级特黄aaa大片| 亚洲成人激情av| 国产农村妇女aaaaa视频| 欧美视频国产精品| 成年人晚上看的视频| 欧美性xxxxxxxx| 夜夜骚av一区二区三区| 5858s免费视频成人| 99久久精品国产成人一区二区| 日韩免费视频一区| 手机在线观看免费av| 亚洲欧美福利视频| 日韩欧美小视频| 欧美第一淫aaasss性| 国产欧洲在线| 国产精品av在线播放| 亚洲精品毛片| 成人av免费电影| 亚洲色图美女| 一区二区三区我不卡| 午夜久久福利| 亚洲 高清 成人 动漫| 日韩精品一级中文字幕精品视频免费观看 | www.色综合| 黄色美女视频在线观看| 26uuu另类亚洲欧美日本一| 成人国产精品| 不卡视频一区| 竹菊久久久久久久| 少妇熟女一区二区| 国产亚洲成人一区| 日本中文字幕精品—区二区| 国产99久久久国产精品免费看| 黄色a一级视频| 亚洲欧洲日本在线| 天海翼一区二区| 欧美日免费三级在线| 亚洲爱情岛论坛永久| 亚洲一区二区国产| 高h视频在线播放| 国产精品久久久久久久久久久久久久 | 91成人福利| 99视频国产精品免费观看| 日韩高清三区| 一级做a爰片久久| 999在线观看精品免费不卡网站| 亚洲天堂网一区| 成人手机电影网| 中日韩一级黄色片| 欧美性xxxx在线播放| 99精品国产99久久久久久97| 亚洲理论在线a中文字幕| 天堂8中文在线| 国产精品中文字幕在线观看| 欧美大胆视频| 男人j进女人j| 青青草精品视频| 性色av蜜臀av色欲av| 一区二区成人在线| 中文字幕无线码一区| 国产视频自拍一区| 蜜桃成人365av| 91精品啪aⅴ在线观看国产| 视频一区在线观看| 拔插拔插海外华人免费| 国产一区二区91| 91高清免费看| 欧美日韩三级视频| 免费理论片在线观看播放老| 久久久亚洲精选| 欧美影院视频| 日本黄色a视频| 美女脱光内衣内裤视频久久影院| 日本黄色特级片| 天涯成人国产亚洲精品一区av| 国产伦精品一区二区三区四区| 国产午夜一区二区| 欧美第一视频| 日本不卡一区| 免费在线成人| av网站免费在线播放| 午夜精品久久久久久久久久| 国产91视频在线| 另类色图亚洲色图| 国产精品毛片aⅴ一区二区三区| 亚洲激情啪啪| 久久99久久99小草精品免视看| 中文字幕免费在线看线人动作大片| 色婷婷av久久久久久久| 日本黄在线观看| 日本在线观看天堂男亚洲| 亚洲精品无吗| 国产精品秘入口18禁麻豆免会员| 99精品1区2区| 99超碰在线观看| 国产亚洲精品美女| 91精品店在线| 在线观看国产一区| 国产精品一区二区你懂的| 欧美黄片一区二区三区| 欧美大片日本大片免费观看| 九色91在线| 久久99精品久久久久子伦| 午夜亚洲性色视频| www.黄色在线| 欧美精品久久99久久在免费线| 日韩欧美小视频| 99re在线视频观看| 99伊人成综合| 女人又爽又黄免费女仆| 欧美日韩亚洲综合| 在线中文字幕视频观看| 精品国产免费一区二区三区| 乱码第一页成人| 国产一区二区三区四区在线| 4hu四虎永久在线影院成人| www久久日com| 精品福利影视| 男女男精品视频网| 国产又黄又爽又无遮挡| 精品国产一区二区三区不卡 | 亚洲第一偷拍| 国产香蕉精品视频| 色一情一伦一子一伦一区| 91欧美在线视频| 国产精品免费看一区二区三区| 国产日韩高清一区二区三区在线| 性欧美精品男男| 欧美α欧美αv大片| 亚洲风情在线资源| 一区二区冒白浆视频| 成人久久18免费网站麻豆| 99re这里只有精品在线| 久久久精品日本| 日韩中出av| 亚洲妇熟xx妇色黄蜜桃| 亚洲成av人片在线观看无码| 第一页在线观看| 97神马电影| 日韩成人免费在线| 精品无码免费视频| 尤物yw午夜国产精品视频明星| 国产一区二区av在线| 久久国产乱子伦免费精品| 亚洲欧美另类久久久精品| 精品亚洲综合| 成人免费看片网址| 美腿丝袜亚洲一区| 中日韩精品视频在线观看| 久久精品91久久久久久再现|