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

淺談Linux內(nèi)核無線子系統(tǒng)

系統(tǒng) Linux 系統(tǒng)運維
Linux 內(nèi)核無線子系統(tǒng)看成兩大塊: cfg80211 和 mac80211 ,它們連通內(nèi)核其他模塊和用戶空間的應用程序。Linux 內(nèi)核無線子系統(tǒng)統(tǒng)一各種 WiFi 設(shè)備,并處理 OSI 模型中最底層的 MAC 、 PHY 兩層。Linux 子系統(tǒng)實現(xiàn)大部分的 MAC 高層回調(diào)函數(shù)。

 Linux 內(nèi)核是如何實現(xiàn)無線網(wǎng)絡(luò)接口呢?數(shù)據(jù)包是通過怎樣的方式被發(fā)送和接收呢?今天跟著 LinuxStory 小編一起來探索一番吧!

剛開始工作接觸 Linux 無線網(wǎng)絡(luò)時,我曾迷失在浩瀚的基礎(chǔ)代碼中,尋找具有介紹性的材料來回答如上面提到的那些高層次的問題。跟蹤探索了一段時間的源代碼后,我寫下了這篇總結(jié),希望在 Linux 無線網(wǎng)絡(luò)的工作原理上,讀者能從這篇文章獲得一個具有幫助性的概覽。

1 全局概覽

在開始探索 Linux 無線具體細節(jié)之前,讓我們先來把握一下 Linux 無線子系統(tǒng)整體結(jié)構(gòu)。如圖1,展示了 Linux 無線子系統(tǒng)各個模塊之間的抽象關(guān)系。 

 

圖一 Linux 無線網(wǎng)絡(luò)結(jié)構(gòu)示意圖

圖示中的虛線內(nèi)展示的是內(nèi)核空間的情況。用戶空間的程序運行在最上層,而硬件相關(guān)的設(shè)備則在最下面。圖示中左邊為以太網(wǎng)設(shè)備,右邊為 WiFi 設(shè)備。

正如圖中看到的一樣,存在著兩種 WiFi 設(shè)備,具體是哪一類要看 IEEE802.11 標準的 MLME 如何實現(xiàn)。

如果直接通過硬件實現(xiàn),那么設(shè)備就是硬 MAC (full MAC)設(shè)備;如果通過軟件的方式實現(xiàn),那么設(shè)備就是軟 MAC (soft MAC)設(shè)備。現(xiàn)階段大部分無線設(shè)備都是軟件實現(xiàn)的軟 MAC 設(shè)備。

通常我們把 Linux 內(nèi)核無線子系統(tǒng)看成兩大塊: cfg80211 和 mac80211 ,它們連通內(nèi)核其他模塊和用戶空間的應用程序。

特別指出, cfg80211 在內(nèi)核空間提供配置管理服務,內(nèi)核與應用層通過 nl80211 實現(xiàn)配置管理接口。需要記住的是,

硬 MAC 設(shè)備和軟 MAC 設(shè)備都需要 cfg80211 才能工作。而 mac80211 只是一個驅(qū)動 API ,它只支持軟件實現(xiàn)的軟 MAC 設(shè)備。

接下來,我們主要關(guān)注軟 MAC 設(shè)備。

Linux 內(nèi)核無線子系統(tǒng)統(tǒng)一各種 WiFi 設(shè)備,并處理 OSI 模型中***層的 MAC 、 PHY 兩層。

若進一步劃分, MAC 層可以分為 MAC 高層和 MAC 底層。前者負責管理 MAC 層無線網(wǎng)絡(luò)的探測發(fā)現(xiàn)、身份認證、關(guān)聯(lián)等;

后者實現(xiàn) MAC 層如 ACK 等緊急操作。大部分情況下,硬件(如無線適配器)處理大部分的 PHY 層以及 MAC 底層操作。Linux 子系統(tǒng)實現(xiàn)大部分的 MAC 高層回調(diào)函數(shù)。

2 模塊間接口

從圖一中我們可以看出,各個模塊之間分界線很清晰,并且模塊間相互透明不可見。模塊之間一般不會相互影響。

舉個例子,我們在 WiFi 設(shè)備驅(qū)動做修改(如,打補丁、添加新的 WiFi 驅(qū)動等),這些變更并不會影響到 mac80211 模塊,

所以我們根本不用改動 mac80211 的代碼。再如,添加一個新的網(wǎng)絡(luò)協(xié)議理論上是不用修改套接字層以及設(shè)備無關(guān)層代碼。一般情況下,內(nèi)核通過一系列的函數(shù)指針實現(xiàn)各層之間相互透明。

如下代碼展示 rtl73usb 無線網(wǎng)卡驅(qū)動與 mac80211 的聯(lián)系。 

 

左側(cè)是 mac80211 為 WiFi 驅(qū)動模塊實現(xiàn)的 ieee80211_ops 結(jié)構(gòu)體形式的回調(diào)接口,回調(diào)函數(shù)的具體內(nèi)容由驅(qū)動層實現(xiàn)。

顯然,不同設(shè)備相應驅(qū)動的實現(xiàn)不同。結(jié)構(gòu)體 ieee80211_ops 負責將不同設(shè)備驅(qū)動實現(xiàn)的回調(diào)函數(shù)與 mac80211 提供的 API 映射綁定起來。

當驅(qū)動模塊插入注冊時,這些回調(diào)函數(shù)就被注冊到 mac80211 里面(通過 ieee80211_alloc_hw 實現(xiàn)),接著 mac80211 就綁定了相應的回調(diào)函數(shù),根本不用知道具體的名字,以及實現(xiàn)細節(jié)等。

完整定義的 ieee80211_ops 結(jié)構(gòu)包含很多成員,但不是所有都必須要驅(qū)動層實現(xiàn)。一般而言,實現(xiàn)的前七個成員函數(shù)就足夠了。但是,要想正確實現(xiàn)其他功能,某些相關(guān)的成員函數(shù)就需要被實現(xiàn),就像上面的例子一樣。

3 數(shù)據(jù)路徑與管理路徑

圖一所示中,存在兩條主要路徑:數(shù)據(jù)路徑和管理路徑。數(shù)據(jù)路徑對應 IEEE802.11 數(shù)據(jù)幀,而管理路徑對應著控制幀。

在 IEEE802.11 的控制幀中,大部分用于如 ACK 這類時間緊急的操作,并且一般直接由硬件實現(xiàn)。一個例外可能就是 PS-Poll 幀(用于 Power Save 控制),它也可以由 mac80211 實現(xiàn)。

數(shù)據(jù)和管理路徑在 mac80211 里面是分開實現(xiàn)的。

4 數(shù)據(jù)包是如何被發(fā)送?

接下來,我們集中探討下數(shù)據(jù)的發(fā)送過程。

首先,數(shù)據(jù)包起源于用戶空間的應用程序,應用程序首先創(chuàng)建一個套接字,然后綁定一個接口(如,以太網(wǎng)接口、 WiFi 接口)。

接下來將數(shù)據(jù)寫入到套接字緩沖區(qū),***再將緩沖區(qū)的數(shù)據(jù)發(fā)送出去。在套接字創(chuàng)建時,我們需要指明將要使用的協(xié)議族,這將在內(nèi)核中起作用。

剛才這些發(fā)生在圖一中的 Data Application 模塊中,最終應用程序陷入系統(tǒng)調(diào)用,隨后在內(nèi)核空間進行接下來的工作。

數(shù)據(jù)的傳輸首先經(jīng)過套接字層,這個過程中一個最重要的數(shù)據(jù)結(jié)構(gòu)就是 sk_buff ,一般稱為 skb 。一個 skb 結(jié)構(gòu)中的成員包含著緩沖區(qū)的地址以及數(shù)據(jù)長度。

它還為內(nèi)核中不同層對數(shù)據(jù)的操縱提供了良好的支持;實現(xiàn)了眾多的接口,如,不同網(wǎng)絡(luò)層首部的插入與去除等。整個數(shù)據(jù)的發(fā)送/接收過程均會用到這個結(jié)構(gòu)。

我們跳過網(wǎng)絡(luò)協(xié)議模塊,對于網(wǎng)絡(luò)協(xié)議我沒有太多想說的,因為一旦涉及網(wǎng)絡(luò)協(xié)議,簡直說不盡道不完。在這里協(xié)議并不是我們主要關(guān)心的。

不過我們需要知道的是,數(shù)據(jù)傳輸使用的協(xié)議在套接字創(chuàng)建的時候就與指定的協(xié)議綁定了,然后相關(guān)的協(xié)議便會負責相關(guān)層的數(shù)據(jù)傳輸。

接下來,數(shù)據(jù)由網(wǎng)絡(luò)層落到了設(shè)備無關(guān)層。這一層透明的連接著各種各樣的硬件設(shè)備(如以太網(wǎng)設(shè)備、 WiFi 設(shè)備等)。

設(shè)備無關(guān)層一個重要的結(jié)構(gòu)是: net_device 。我們回去看圖一,再看接下來的代碼就能解釋內(nèi)核是如何與以太網(wǎng)設(shè)備驅(qū)動通信的。

具體接口通過 net_device_ops 結(jié)構(gòu)實現(xiàn),該結(jié)構(gòu)對應了 net_device 的很多操作。

如下是 net_device_ops 結(jié)構(gòu)的部分成員:

 

發(fā)包的時候, skb 在調(diào)用 dev_queue_xmit 時被傳入。在跟蹤具體調(diào)用關(guān)系后,最終是這樣調(diào)用的: ops->ndo_start_xmit(skb, dev) 。

注意,剛才的這個函數(shù)需要注冊才能生效。

對于 WiFi 設(shè)備而言,通常我們使用 mac80211 (代替了相應的設(shè)備驅(qū)動),那是因為 mac80211 已經(jīng)幫我們注冊了。

從 net/mac80211/iface.c 可以看到:

 

因此 mac80211 也就可以看作是一個 net_device ,當一個數(shù)據(jù)包通過 WiFi 傳輸時,相關(guān)的傳輸函數(shù) ieee80211_subif_start_xmit 將被調(diào)用。

我們進入 mac80211 內(nèi)部 ieee80211_subif_start_xmit 實現(xiàn)可以看到這樣一個調(diào)用子序列:ieee80211_xmit => ieee80211_tx => ieee80211_tx_frags => drv_tx

目前我們處在 mac80211 和 WiFi 驅(qū)動的邊界, drv_tx 僅僅調(diào)用了一個在 WiFi 驅(qū)動層實現(xiàn)的并已注冊的回調(diào)函數(shù)。

 

到這里, mac80211 就結(jié)束了,并且設(shè)備驅(qū)動相關(guān)也暫時告一段落了。

正如之前提到的一樣,通過 mac80211 中的 local->ops->tx ,注冊到設(shè)備驅(qū)動中的回調(diào)函數(shù)將會被調(diào)用。盡管每個驅(qū)動對相應回調(diào)函數(shù)的實現(xiàn)不盡相同。

下面利用之前模塊間接口的例子。結(jié)構(gòu)體成員 tx 對應的函數(shù) rt2x00max_tx 首先需要填充準備發(fā)送描述符(一般包含幀長度、ACK 策略、 RTS/CTS、重傳時限、分片標志以及 MCS 等)

部分信息由 mac80211 傳下來(結(jié)構(gòu)體 ieee80211_tx_info 中就有一些信息將會被使用到),然后驅(qū)動程序還要將數(shù)據(jù)轉(zhuǎn)換成底層硬件可識別的形式。

一旦發(fā)送描述符就位,驅(qū)動程序還會調(diào)整幀數(shù)據(jù)(如,調(diào)整字節(jié)對齊等),然后將數(shù)據(jù)幀放入發(fā)送隊列,***將要發(fā)送的幀的描述符發(fā)給硬件。

由于我們以一個基于 rt73usb 的 USB WiFi 適配器為例,所以數(shù)據(jù)幀***是通過 USB 接口發(fā)送給無線設(shè)備。

然后數(shù)據(jù)將被插入 PHY 首部以及其他信息,***數(shù)據(jù)包被發(fā)送到了空中。驅(qū)動同時也需要反饋發(fā)送狀態(tài)給 mac80211 , 通常狀態(tài)信息存放在 struct ieee80211_tx_info 中。

經(jīng)過 ieee80211_tx_status 一系列的調(diào)用,或者某些變種函數(shù)反饋給上層。

說到這里,關(guān)于數(shù)據(jù)包的發(fā)送也暫時告一段落了。

5 談談管理路徑

理論上,我們可以像數(shù)據(jù)路徑一樣在用戶空間下通過套接字發(fā)送控制幀。但是目前有很多開發(fā)得十分完善的用戶層管理工具能完成這樣的工作。

特別是 wpa_supplicant 和 host_apd 。wpa_supplicant 控制客戶端 STA 模式下無線網(wǎng)絡(luò)的連接,如掃描發(fā)現(xiàn)網(wǎng)絡(luò)、身份認證、關(guān)聯(lián)等。

而 host_apd 可以做 AP 。說白了前者就是用來連接熱點,后者用來發(fā)射熱點。這些用戶層工具通過 netlink 套接字與內(nèi)核通信。

內(nèi)核中相關(guān)的回調(diào)接口是 cfg80211 中的 nl80211 。用戶層的工具通過 netlink 提供的庫(如, NL80211_CMD_TRIGGER_SCAN )將命令發(fā)送到內(nèi)核。

在內(nèi)核中,由 nl80211 接收應用層發(fā)出的命令。如下代碼展示了對應綁定情況。

 

以 triggering scan 為例,掃描請求從 cfg80211 到 mac80211 是通過 mac80211 在 cfg80211 中注冊的回調(diào)函數(shù)來實現(xiàn)的。

 

在 mac80211 中, ieee80211_scan 將會具體去實現(xiàn)掃描發(fā)現(xiàn)網(wǎng)絡(luò)的具體細節(jié)。

 

6 數(shù)據(jù)包又是如何被接收?

我們接下來反過來看看數(shù)據(jù)接收的過程,現(xiàn)在我們不再比較數(shù)據(jù)路徑與管理路徑的不同了。相信讀者同樣能明白。

當一個數(shù)據(jù)包在空中被無線設(shè)備捕捉到后,硬件將會向內(nèi)核發(fā)出一個中斷(大部分 PCI 接口的設(shè)備這樣做),或則通過輪詢機制判斷是否有數(shù)據(jù)到來(如,使用了 USB 接口)。

前者,中斷將會引發(fā)中斷處理程序的執(zhí)行,后者促使特定的接收函數(shù)將被調(diào)用。

一般設(shè)備驅(qū)動層的回調(diào)函數(shù)不會做太多關(guān)于接收數(shù)據(jù)包的操作,僅僅做數(shù)據(jù)校驗,為 mac80211 填充接收描述符,然后把數(shù)據(jù)包推給 mac80211 , 由 mac80211 來做之后的工作(直接或間接將數(shù)據(jù)包放入接收隊列)。

數(shù)據(jù)進入 mac80211 后,將會調(diào)用 ieee80211_rx 或者其他變種接收函數(shù)。在這里數(shù)據(jù)路徑和管理路徑也將分開進行。

如果收到的幀是數(shù)據(jù),它將被轉(zhuǎn)換成 802.3 數(shù)據(jù)幀(通過 __ieee80211_data_to8023 實現(xiàn)),然后該數(shù)據(jù)幀將通過 netif_receive_skb 交付到網(wǎng)絡(luò)協(xié)議棧。在協(xié)議棧中,各層網(wǎng)絡(luò)協(xié)議將會對數(shù)據(jù)進行解析,識別協(xié)議首部。

如果接收到的是控制幀,數(shù)據(jù)將會由 ieee80211_sta_rx_queued_mgmt 處理。部分控制幀在 mac80211 層就終止,另外一些將會通過 cfg80211 發(fā)送到用戶空間下的管理程序。

例如,身份認證控制幀被 cfg80211_rx_mlme_mgmt 處理,然后通過 nl80211_send_rx_auth 發(fā)送到用戶空間下的 wpa_supplicant ; 相應的關(guān)聯(lián)響應控制幀被 cfg80211_rx_assoc_resp 處理,并由 nl80211_send_rx_assoc 發(fā)送到用戶空間。

7 總結(jié)一下

一般 WiFi 驅(qū)動包含如下三個部分:配置、發(fā)送回調(diào)、接收回調(diào)。再以 USB WiFi 適配器為例,當內(nèi)核探測到設(shè)備被插入時,會調(diào)用 probe 函數(shù)。這可能發(fā)生在注冊配置好的 ieee80211_ops 時。

首先, ieee80211_alloc_hw 分配一個 ieee80211_hw 結(jié)構(gòu)體,代表著相應 WiFi 設(shè)備。另外,如下的數(shù)據(jù)結(jié)構(gòu)也會被分配:

wiphy 結(jié)構(gòu):主要用來描述 WiFi 硬件參數(shù)(如, MAC 地址、接口模式與組合、支持的波特率以及其他一些硬件功能)。

ieee80211_local 結(jié)構(gòu):這是一個設(shè)備驅(qū)動層可見的結(jié)構(gòu),并且被 mac80211 大量使用。ieee80211_ops 的映射綁定將鏈接到 ieee80211_local 中。 前者作為后者的一個成員。在 ieee80211_hw 中可以通過 container_of 或者 hw_to_local 這個專用 API 得到 ieee80211_local 。

設(shè)備驅(qū)動使用到的在 ieee80211_hw 中的私有結(jié)構(gòu) void *priv 。

注意:硬件設(shè)備的注冊由 ieee80211_register_hw 完成,前提是事先已經(jīng)插入注冊了 mac80211 模塊,好比在 STA 模式中,要先用 wpa_supplicant 控制設(shè)備連接上了某個熱點才能進行通信一樣。

***希望這篇總結(jié)能讓相關(guān)人員在探索源代碼時具有整體把握。

 

責任編輯:龐桂玉 來源: LinuxStory
相關(guān)推薦

2021-12-15 10:02:25

鴻蒙HarmonyOS應用

2021-07-07 08:00:00

Linux開發(fā)虛擬機

2009-10-12 12:46:55

Linux內(nèi)核SCSI IO

2015-10-19 17:36:19

MOST內(nèi)核Linux

2019-07-15 08:30:06

Linux 系統(tǒng) 數(shù)據(jù)

2022-04-12 08:22:54

Linux內(nèi)核操作系統(tǒng)

2021-04-06 11:18:47

LinuxWWAN子系統(tǒng)驅(qū)動

2021-12-08 08:41:31

Linux 中斷子系統(tǒng)Linux 系統(tǒng)

2021-08-31 11:53:38

Linux inputLinux 系統(tǒng)

2021-07-22 08:03:08

Windows 操作系統(tǒng)Linux

2016-10-17 08:49:15

WindowsLinuxArch Linux

2010-07-19 10:05:52

ibmdwLinux

2014-05-14 09:12:40

數(shù)據(jù)恢復

2021-08-10 11:30:30

Linux代碼中斷控制器

2021-08-03 15:10:26

Linux代碼驅(qū)動

2021-06-07 08:13:11

LinuxIDLE 子系統(tǒng)

2022-01-16 07:41:46

Windows 11操作系統(tǒng)微軟

2010-03-30 13:56:43

wifi無線技術(shù)結(jié)構(gòu)

2015-11-10 16:55:00

性能IO子系統(tǒng)Linux

2022-03-28 19:19:45

Linux時間子系統(tǒng)
點贊
收藏

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

成人高清在线| 在线免费观看一级片| 亚欧洲精品视频在线观看| 黑人巨大精品欧美一区二区| 欧美性xxxx69| 精品国产免费无码久久久| 国产日韩欧美一区| 日韩在线www| 在线观看国产免费视频| 99蜜月精品久久91| 亚洲mv在线观看| 一区二区精品免费视频| 黄色av一区二区三区| 日本午夜精品视频在线观看 | 永久免费成人代码| 欧美精品影院| 欧美性一区二区| www精品久久| 黄色成年人视频在线观看| 97se亚洲国产综合自在线| 成人黄色在线播放| 国产精品21p| 欧美体内she精视频在线观看| 国产亚洲精品久久久| 国产高潮失禁喷水爽到抽搐| avav成人| 色婷婷国产精品| 国产日韩欧美精品在线观看| 在线国产情侣| 国产午夜三级一区二区三| 高清不卡日本v二区在线| 在线观看免费观看在线| 久久美女性网| 97在线免费视频| 精品无码av在线| 亚洲免费二区| 少妇久久久久久| 无码 人妻 在线 视频| 美女一区二区在线观看| 日韩欧美国产精品| 人妻巨大乳一二三区| 亚洲美女色播| 欧美日韩高清一区| 一本色道久久亚洲综合精品蜜桃| 自由日本语热亚洲人| 亚洲va韩国va欧美va精品| 国产精品videossex国产高清| 操你啦视频在线| 亚洲视频精选在线| 天天综合中文字幕| 精精国产xxxx视频在线| 中文字幕中文字幕中文字幕亚洲无线| 日韩wuma| √天堂资源地址在线官网| 日本一区二区三级电影在线观看| 欧美日韩一区在线观看视频| 可以免费看污视频的网站在线| 不卡的av电影在线观看| 精品视频导航| 色在线免费视频| 国产日韩欧美a| 日韩免费三级| 日本中文字幕在线2020| 亚洲色图另类专区| 激情五月六月婷婷| 91福利在线尤物| 精品久久久久久国产91| 日本一本二本在线观看| 福利一区在线| 正在播放亚洲一区| 极品白嫩的小少妇| 欧美日韩一区二区三区不卡视频| 日韩精品在线播放| 97在线观看免费视频| 久久精品国产亚洲夜色av网站| 日韩一区二区福利| 免费在线黄色片| 国产精品嫩草99av在线| 国产精品久久久久久中文字| 国产视频在线观看免费| 处破女av一区二区| 欧美日韩日本网| 免费av毛片在线看| 午夜久久久影院| 艹b视频在线观看| 精品国产三区在线| 日韩电影在线观看中文字幕 | 亚洲综合在线观看视频| 美女日批免费视频| 高清欧美日韩| 欧美精品一区二区不卡| 四虎影成人精品a片| 国产精品成人a在线观看| 欧美激情成人在线视频| 国产污视频网站| 国产精品综合网| 欧美在线日韩精品| 五月婷婷视频在线观看| 日韩欧美在线第一页| 图片区乱熟图片区亚洲| 人人香蕉久久| 久久天天躁狠狠躁夜夜躁| 免费观看一区二区三区毛片| 麻豆精品在线播放| 久久99精品国产99久久| 黄网站app在线观看| 欧美日韩在线影院| 自拍一级黄色片| sdde在线播放一区二区| 久久久久亚洲精品国产| 国产精品露脸视频| 2020国产精品自拍| 日韩视频一二三| 成人av集中营| 亚洲精品日韩久久久| 欧美日韩免费做爰视频| 青娱乐精品视频| 蜜桃av噜噜一区二区三| 美足av综合网| 在线91免费看| 欧美色图17p| 天堂资源在线中文精品| 好看的日韩精品视频在线| 91精品国产91久久久久久青草| 日韩欧美大尺度| 亚洲制服丝袜在线播放| 午夜国产欧美理论在线播放| 国产欧美亚洲视频| 国产区av在线| 色婷婷国产精品综合在线观看| 88av在线播放| 欧美人成在线| 99re视频在线播放| 国产婷婷视频在线| 欧美一区二区在线观看| 亚洲天堂最新地址| 蜜臀久久久99精品久久久久久| 久久偷看各类wc女厕嘘嘘偷窃| 色在线视频网| 欧美精品一区二区精品网| 久久伊人成人网| 国产剧情一区在线| 日本一二三区视频在线| 国产精品va视频| 久久亚洲精品一区| 999久久久久久| 亚洲精品老司机| 两女双腿交缠激烈磨豆腐| 久久久9色精品国产一区二区三区| 91精品国产自产在线| 思思99re6国产在线播放| 欧美三片在线视频观看| 人妻无码一区二区三区免费| 蜜臀精品久久久久久蜜臀| 亚洲欧洲免费无码| 日日夜夜精品| 久99九色视频在线观看| 亚洲精品成人区在线观看| 亚洲五码中文字幕| 亚洲精品视频大全| 首页亚洲欧美制服丝腿| 午夜午夜精品一区二区三区文| 高清在线一区| 欧美成人亚洲成人| 日本激情一区二区| 91久久线看在观草草青青 | 亚洲欧美激情插 | 国产成人精品福利| 81精品国产乱码久久久久久| 国产视频三级在线观看播放| 欧美日韩黄色影视| 久久精品女人毛片国产| 久久综合色鬼综合色| 国产又黄又猛又粗| 中文字幕免费一区二区三区| 韩国成人动漫在线观看| 黑人一区二区三区| 九九视频这里只有精品| 美女毛片在线看| 91精品在线免费观看| 欧美成人精品欧美一级乱黄| 国产欧美日韩中文久久| 在线视频观看一区二区| 国产精品久久久久久久久久妞妞| 午夜精品福利一区二区| 精品亚洲a∨一区二区三区18| 97在线视频精品| 999在线视频| 亚洲国产精品热久久| 日本成人一级片| 亚洲国产综合色| 农村老熟妇乱子伦视频| av电影在线观看完整版一区二区| av在线无限看| 亚洲国产专区| 日本丰满少妇黄大片在线观看| 麻豆一区一区三区四区| 成人免费网站在线观看| 亚洲日本天堂| 久久久久久久久久国产| √新版天堂资源在线资源| 日韩av资源在线播放| 国产男男gay体育生白袜| 色香蕉久久蜜桃| 欧美高清视频一区二区三区| 国产午夜精品一区二区三区嫩草| 国产精九九网站漫画| 免费高清在线一区| av免费在线播放网站| 亚洲久久一区二区| 水蜜桃在线免费观看| 三级电影一区| 日本一区视频在线播放| 国产三级精品三级在线观看国产| 91中文字幕在线| yiren22亚洲综合| 国产91色在线免费| 国产在线天堂www网在线观看| 伦理中文字幕亚洲| 欧美三级电影一区二区三区| 日韩精品欧美激情| 免费国产黄色片| 欧美大片顶级少妇| 国产精品永久久久久久久久久| 色老头久久综合| 三级黄色在线视频| 性做久久久久久久久| 日日骚一区二区三区| 亚洲欧洲av一区二区三区久久| 国产精品美女高潮无套| 久久女同性恋中文字幕| 三叶草欧洲码在线| 波多野洁衣一区| jjzzjjzz欧美69巨大| 国产精品亚洲专一区二区三区| 97超碰成人在线| 精品一区二区三区不卡| 亚洲免费黄色网| 久久99精品久久久久久久久久久久 | 国产91色在线|亚洲| 欧美经典一区| 痴汉一区二区三区| 成人线上播放| 精品一区日韩成人| 亚洲成aⅴ人片久久青草影院| 好吊妞www.84com只有这里才有精品 | 色婷婷精品国产一区二区三区| 久久av免费| 日韩影院一区| 久久综合99| 性生活免费观看视频| 欧美三级第一页| 777av视频| 宅男噜噜噜66国产日韩在线观看| 毛片在线播放视频| 久久精品首页| 午夜精品在线免费观看| 久久99国内精品| 深夜福利网站在线观看| 成人精品视频一区二区三区 | 在线不卡一区二区三区| 国内久久精品视频| 四虎精品一区二区| 久久久亚洲精品一区二区三区| 2019男人天堂| 亚洲女同一区二区| 日韩精品人妻中文字幕| 色综合色综合色综合| 中文字幕第2页| 日韩免费在线观看| 四虎影视精品成人| 中文字幕亚洲二区| 欧美人动性xxxxz0oz| 奇米成人av国产一区二区三区| 欧美日韩亚洲国产| 91美女福利视频高清| 久久超级碰碰| 亚洲精品一区二区三区樱花| 综合日韩在线| 日本日本19xxxⅹhd乱影响| 青娱乐精品在线视频| 国产免费无码一区二区| 久久精品亚洲精品国产欧美kt∨| 麻豆一区在线观看| 亚洲h在线观看| 伊人网中文字幕| 亚洲精品一区二区三区99| а√天堂中文在线资源bt在线| 免费av在线一区| 亚洲欧美小说色综合小说一区| 成人亚洲欧美一区二区三区| 啪啪激情综合网| 在线看成人av电影| 亚洲欧美日韩精品一区二区| 在线观看免费不卡av| 91网站最新网址| 丰满少妇被猛烈进入一区二区| 黑人极品videos精品欧美裸| 国产情侣激情自拍| 国产亚洲精品高潮| www在线观看黄色| 成人精品视频在线| 国产一区二区三区四区五区| av日韩在线看| 免费不卡在线视频| 亚洲成人网在线播放| 亚洲综合在线第一页| 一二三区在线播放| 亚洲免费伊人电影在线观看av| 午夜伦理在线视频| 成人h猎奇视频网站| 日韩精品亚洲aⅴ在线影院| 玖玖精品在线视频| 免费久久99精品国产| 中文字幕一区二区三区人妻| 亚洲综合丝袜美腿| 国产毛片一区二区三区va在线 | 日本综合在线观看| 欧美日韩国产丝袜另类| 性欧美一区二区三区| 乱亲女秽乱长久久久| 四虎视频在线精品免费网址| 色综合视频二区偷拍在线| 国产一区二区你懂的| 日韩精品人妻中文字幕有码| 亚洲精品ww久久久久久p站| 亚洲视频在线观看免费视频| 亚洲欧洲xxxx| 中文日产幕无线码一区二区| 精品一区在线播放| 日韩午夜av在线| 中文字幕一区三区久久女搜查官| 亚洲综合av网| 精品欧美在线观看| 欧美人交a欧美精品| 玖玖玖视频精品| 无码人妻精品一区二区蜜桃百度| 极品尤物av久久免费看| 欧美色图17p| 欧美浪妇xxxx高跟鞋交| 毛片激情在线观看| 91九色国产社区在线观看| 久久精品国内一区二区三区水蜜桃 | 在线天堂新版最新版在线8| 好看的日韩精品| 国产视频亚洲| 中文字幕国产专区| 在线视频欧美精品| av在线资源站| 成人欧美一区二区三区在线| 亚洲成人精品| 国产精品果冻传媒| 欧美日韩性视频在线| 国产精品影院在线| 国产欧美一区二区三区久久人妖| 91久久夜色精品国产按摩| 成年网站免费在线观看| 亚洲精品ww久久久久久p站| 亚洲老妇色熟女老太| 777精品视频| 少妇精品久久久| 一区二区三区四区毛片| 亚洲精品成人天堂一二三| 亚洲乱码在线观看| 2018日韩中文字幕| 欧美日韩性在线观看| 天堂av在线8| 亚洲国产精品久久久久婷婷884| 五月婷婷久久久| 国产精品伦子伦免费视频| 亚洲最新色图| 菠萝菠萝蜜网站| 欧美日韩精品电影| 精品日韩av| 欧美一区2区三区4区公司二百| 久久精品国产一区二区三区免费看 | 欧美在线不卡区| 色琪琪久久se色| 国产sm在线观看| 色噜噜狠狠色综合中国| p色视频免费在线观看| 51精品国产人成在线观看 | 亚洲另类第一页| 亚洲一区二区高清| av影片在线看| 成人在线免费观看一区| 日本特黄久久久高潮| 劲爆欧美第一页| 在线观看精品自拍私拍| 亚洲一区二区三区四区电影 | 成人在线视频免费看| www.日本在线视频| 国产免费观看久久| 日本波多野结衣在线| 成人中文字幕+乱码+中文字幕| 99亚洲视频| 国产盗摄一区二区三区在线| 亚洲乱码一区av黑人高潮| 韩国一区二区三区视频| 欧美精品第三页|