精品欧美一区二区三区在线观看 _久久久久国色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)

精品美女国产在线| 国产白丝精品91爽爽久久 | 狠狠色伊人亚洲综合网站l| 久久中文欧美| 久久在线观看视频| 在线免费观看a级片| 国语自产精品视频在线看抢先版结局| 一区二区视频在线| 热re99久久精品国99热蜜月| 国产喷水吹潮视频www| 国产欧美亚洲一区| 久久精品国产亚洲7777| 美女久久久久久久久久| 亚洲精品18| 欧美综合久久久| 人妻夜夜添夜夜无码av| 欧美激情二区| 久久精品一区二区| 国产精品一区二区av| 国产精品欧美综合| 亚洲影音先锋| 欧美激情网友自拍| 中文字幕求饶的少妇| 亚洲国产欧美日韩在线观看第一区| 欧美日韩在线观看一区二区| 国产男女免费视频| 伊人电影在线观看| 中文字幕在线视频一区| 欧美日韩国产三区| 日韩一区二区三区不卡| 老鸭窝一区二区久久精品| 538国产精品视频一区二区| 婷婷伊人五月天| 久久亚洲国产| 在线国产精品视频| av小说在线观看| 老司机凹凸av亚洲导航| 欧美大片一区二区| 天天操夜夜操很很操| 欧美美女福利视频| 在线观看国产精品网站| 精品国产成人av在线免| 福利影院在线看| 亚洲国产欧美在线人成| a级片一区二区| 成人黄色在线电影| 亚洲欧美一区二区久久 | 亚洲一级一区| 欧美高清激情视频| 欧美色图亚洲天堂| 午夜日韩av| 九九视频这里只有精品| 99热精品免费| 亚洲性视频h| 久久久久久久国产| 日本一级黄色大片| 国产日产高清欧美一区二区三区| 久久久免费电影| 精品少妇久久久| 在线观看亚洲| 91精品国产高清久久久久久91| 日韩av一二三区| 亚洲欧美日韩国产综合精品二区 | 国产亚洲精品美女| 日韩欧美黄色网址| 日韩中文欧美| 久久影视电视剧免费网站清宫辞电视| 五月天av网站| 狠狠综合久久| 日本免费一区二区三区视频观看| 岛国av中文字幕| 日本v片在线高清不卡在线观看| 国产91色在线播放| 一级片一区二区三区| 国产精品一区三区| 狠狠色狠狠色综合人人| 黄色片视频在线观看| 国产精品国产三级国产有无不卡 | 成人自拍视频网| 在线播放日韩导航| 野战少妇38p| 精品成av人一区二区三区| 日韩视频免费在线观看| 久久婷婷综合国产| 噜噜噜躁狠狠躁狠狠精品视频| 国产精品高清在线| 国产高清免费在线观看| 99久久精品国产毛片| 亚洲精品8mav| 欧美性爽视频| 欧美系列在线观看| 亚洲欧洲国产视频| 国产免费播放一区二区| 麻豆国产va免费精品高清在线| 国产午夜精品无码一区二区| 日韩av在线发布| 成人性色av| 成人网视频在线观看| 亚洲国产wwwccc36天堂| 亚洲国产精品三区| 黄色成人美女网站| 久久精品成人动漫| 日韩精品久久久久久免费| 国产在线播放一区二区三区| 久久久久久欧美精品色一二三四| 麻豆影视在线观看_| 欧美日韩亚洲91| 97人人模人人爽人人澡| 国产一区二区三区四区二区| 欧美激情小视频| 国产有码在线观看| 国产色91在线| 婷婷五月综合缴情在线视频| 国产情侣一区在线| 在线播放国产一区中文字幕剧情欧美 | 国产伦精品一区二区三区视频| 欧美夫妻性生活xx| 国产乱码精品一区二区| 国产亚洲成aⅴ人片在线观看| 日韩欧美猛交xxxxx无码| 99久久er| 亚洲网址你懂得| 国产精品99精品| 国产主播一区二区三区| 神马影院我不卡| 24小时免费看片在线观看 | 香蕉av一区二区三区| 亚洲色图制服丝袜| 亚洲欧美自偷自拍另类| 一道在线中文一区二区三区| 久久久久久久亚洲精品| 亚洲av无码片一区二区三区| 国产精品国产精品国产专区不片 | 国产精品一区二区在线观看不卡| 色就是色欧美| 日韩欧美精品电影| 日韩精品免费在线视频| 日产精品久久久久| 国产suv一区二区三区88区| 中文字幕乱码一区二区三区| a∨色狠狠一区二区三区| 亚洲男人天堂手机在线| 国产成人无码精品亚洲| 波多野结衣在线一区| 欧美乱大交xxxxx潮喷l头像| 永久免费精品视频| 久久久久中文字幕2018| 人妻无码中文字幕| 好吊成人免视频| 欧美 日本 国产| 亚洲欧美日韩在线观看a三区| 成人看片视频| 高潮在线视频| 亚洲日本成人女熟在线观看 | 91精品午夜视频| 三级在线观看免费大全| 国产麻豆一精品一av一免费| 午夜啪啪福利视频| 亚洲国产aⅴ精品一区二区| 久久久久久午夜| 天堂在线中文| 欧美亚洲高清一区二区三区不卡| 久久久久人妻一区精品色| 国产一区二区女| 隔壁人妻偷人bd中字| 日韩黄色网络| 国产精品日本精品| 麻豆传媒在线完整视频| 欧美一区二区成人| 精品亚洲永久免费| 91丝袜国产在线播放| 可以免费观看av毛片| 久久国产电影| 成人三级在线| 欧美电影免费观看| 日韩在线视频中文字幕| 亚洲精品一区二区三区不卡| 欧美色另类天堂2015| 久久久久久久久福利| 国产在线一区二区| 国产黄色片免费在线观看| 九色精品91| 亚洲一区二区三区成人在线视频精品 | 国产精品蜜臀av| 免费在线观看日韩av| 欧美亚洲在线| 国产成人三级视频| 尤物tv在线精品| 亚洲一区二区自拍| 超碰aⅴ人人做人人爽欧美| 色777狠狠综合秋免鲁丝| 囯产精品久久久久久| 日本国产一区二区| 久久免费在线观看视频| 中文字幕免费不卡| 国产麻豆剧传媒精品国产av| 免费久久99精品国产| 日韩日韩日韩日韩日韩| 日韩在线看片| 欧美精品久久| 亚洲日本va中文字幕| 国产精品久久久久久久久久小说| 性欧美video高清bbw| 亚洲午夜久久久影院| 亚洲产国偷v产偷v自拍涩爱| 欧美在线小视频| 国产精品99无码一区二区| 国产精品久久久久久久第一福利 | 男女爽爽爽视频| 在线欧美不卡| 色呦呦网站入口| 国产欧美久久一区二区三区| 成人av免费看| 日韩电影精品| 日韩美女免费视频| 成人bbav| 久久久久久这里只有精品| 日本三级在线播放完整版| 亚洲精品视频免费| 秋霞网一区二区| 欧美一区二区三区系列电影| 国产精品尤物视频| 狠狠躁18三区二区一区| 精品亚洲永久免费| 亚洲精品videosex极品| 91大神福利视频| 欧美高清在线一区二区| 国产精品无码久久久久久| 成人h精品动漫一区二区三区| 免费人成视频在线播放| 久久成人精品无人区| 美女黄色片视频| 久久亚洲精品伦理| 一区二区传媒有限公司| 亚洲精选国产| 日韩网站在线免费观看| 亚洲高清免费| 女人帮男人橹视频播放| 香蕉精品视频在线观看| 在线电影看在线一区二区三区| 欧美三级三级| 色噜噜狠狠色综合网| 欧美美女一区| 亚洲精品在线视频观看| 99久久这里只有精品| 综合国产精品久久久| 亚洲91中文字幕无线码三区| 波多野结衣激情| 亚洲h色精品| av一区二区三区免费观看| 国产精品久久| 亚洲熟妇国产熟妇肥婆| 亚洲制服少妇| 国产一级不卡毛片| 日本va欧美va瓶| 在线观看日本一区二区| 激情欧美日韩一区二区| 在线免费黄色小视频| 国产成人综合在线播放| 日本天堂在线播放| a在线播放不卡| 在线免费观看日韩av| 国产欧美综合在线观看第十页| 中文字幕成人动漫| 国产精品日韩成人| 午夜写真片福利电影网| 午夜电影网一区| 天堂网中文字幕| 51精品久久久久久久蜜臀| 精品国产无码一区二区| 亚洲高清免费观看高清完整版| 四虎精品在永久在线观看| 一区二区在线视频| 爆操欧美美女| 992tv在线成人免费观看| 欧美极品影院| 91在线观看欧美日韩| 欧美电影完整版在线观看| 青青草原成人| 伊人情人综合网| 欧美国产亚洲一区| 麻豆成人在线观看| 色哟哟视频在线| 日本一区二区三区四区| 欧美日韩精品亚洲精品| 日韩欧美国产成人| 国产精品嫩草影院桃色| 亚洲国产精品人人爽夜夜爽| 大片免费播放在线视频| 欧美xxxx做受欧美.88| 女人让男人操自己视频在线观看| 国产精品视频一| 国内精品麻豆美女在线播放视频| 日本一区视频在线| 国产精品黄色| 污污网站免费观看| 99精品欧美一区二区蜜桃免费| 人与动物性xxxx| 色综合天天综合网天天狠天天 | av成人在线观看| 国产精品视频免费一区| 成人亚洲一区| 波多野结衣乳巨码无在线| 国产一区二区成人久久免费影院| 四虎永久免费影院| 一区二区日韩av| 中文字幕人成人乱码亚洲电影| 亚洲精品在线网站| 国产午夜精品久久久久免费视| 欧美在线不卡区| 亚洲精品国产九九九| 亚洲精品一区二区三区av| 99国产精品| 日韩精品xxx| 国产精品家庭影院| 黄色网址中文字幕| 亚洲国产精品99久久| 91麻豆免费在线视频| 国产精品视频网址| 欧美日韩激情| 欧美 日韩精品| 成人黄色777网| 青青青在线免费观看| 欧美男男青年gay1069videost| 黄色av网站在线免费观看| 97在线视频精品| 丁香综合av| 欧美久久久久久久久久久久久久| 久久99深爱久久99精品| 免费黄色国产视频| 欧美色综合久久| 懂色av中文在线| 国产精品电影网| 中文精品一区二区| 国产中文字幕免费观看| 99久久久国产精品免费蜜臀| 精品处破女学生| 精品国产成人系列| 国产精品—色呦呦| 丁香婷婷久久久综合精品国产 | 久久久久久这里只有精品| ady日本映画久久精品一区二区| av动漫在线免费观看| 国产高清精品在线| 久久久久久久久99| 欧美成人一级视频| 麻豆蜜桃在线| 国产麻豆日韩| 国产日韩欧美| 精品少妇一区二区三区免费观| 欧美色xxxx| www 日韩| 91在线直播亚洲| 好吊视频一区二区三区四区| 性活交片大全免费看| 五月激情综合网| 国内在线免费高清视频| 国产精品嫩草视频| 天天综合网网欲色| 欧美一级大片免费看| 亚洲第一精品在线| 暖暖视频在线免费观看| 国产精品69av| 天天做天天爱天天爽综合网| 九九九久久久久久久| 亚洲成a人片综合在线| 欧美男男同志| 国产免费成人av| 欧美91视频| 成年人在线观看av| 欧美性受xxxx| 国产一区久久精品| 国产一区二区三区四区五区在线 | 亚洲国产综合av| 图片区日韩欧美亚洲| 国产高清免费在线播放| 51国偷自产一区二区三区| 99视频一区| 亚洲一区电影在线观看| 亚洲成人精品av| av免费在线一区| 成年在线观看视频| 国产午夜久久久久| 精品毛片在线观看| 日韩av成人在线| 亚洲91中文字幕无线码三区| 野花社区视频在线观看| 欧美另类久久久品| 97人人爽人人澡人人精品| 视频一区在线免费观看| 成人午夜短视频| 一区二区视频免费| 久久久久久久成人| 91青青国产在线观看精品| 日本黄色免费观看| 欧美精品九九99久久| 亚洲日本天堂| 特级西西人体www高清大胆| 日本一区二区三区视频视频| 亚洲成人久久精品|