《電子技術應用》
您所在的位置:首頁 > 模擬設計 > 設計應用 > 嵌入式Linux網絡驅動程序的體系結構和實現原理
嵌入式Linux網絡驅動程序的體系結構和實現原理
摘要: 隨著人們對開放源代碼軟件熱情的日益增高,Linux作為一個功能強大而穩定的開源操作系統,越來越受到成千上萬的計算機專家和愛好者的青睞。
Abstract:
Key words :

  隨著人們對開放源代碼軟件熱情的日益增高,Linux作為一個功能強大而穩定的開源操作系統,越來越受到成千上萬的計算機專家和愛好者的青睞。在嵌入式領域,通過對Linux進行小型化裁剪后,使其能夠固化在容量只有幾十兆字節的存儲器芯片或單片機中,成為應用于特定場合的嵌入式Linux系統。Linux強大的網絡支持功能實現了對包括TCP/IP在內的多種協議的支持,滿足了面向21世紀的嵌入式系統應用聯網的需求。因此,在嵌入式系統開發調試時,網絡接口幾乎成為不可或缺的模塊。

  1 嵌入式Linux網絡驅動程序介紹

  Linux網絡驅動程序作為Linux網絡子系統的一部分,位于TCP/IP網絡體系結構的網絡接口層,主要實現上層協議棧與網絡設備的數據交換。Linux的網絡系統主要是基于BSD Unix的套接字(socket)機制,網絡設備與字符設備和塊設備不同,沒有對應地映射到文件系統中的設備節點。

  通常,Linux驅動程序有兩種加載方式:一種是靜態地編譯進內核,內核啟動時自動加載;另一種是編寫為內核模塊,使用insmod命令將模塊動態加載到正在運行的內核,不需要時可用rmmod命令將模塊卸載。Linux 2.6內核引入了kbuild機制,將外部內核模塊的編譯同內核源碼樹的編譯統一起來,大大簡化了特定的參數和宏的設置。這樣將編寫好的驅動模塊加入內核源碼樹,只需要修改相應目錄的Kconfig文件,把新的驅動加入內核的配置菜單,然后需要修改相應子目錄中與模塊編譯相關的Kbuild Makefile,即可使新的驅動在內核源碼樹中被編譯。在嵌入式系統驅動開發時,常常將驅動程序編寫為內核模塊,方便開發調試。調試完畢后,就可以將驅動模塊編譯進內核,并重新編譯出支持特定物理設備的Linux內核。

  2 嵌入式Linux網絡驅動程序的體系結構和實現原理

  2.1 Linux網絡設備驅動的體系結構

  如圖1所示,Linux網絡驅動程序的體系結構可劃分為4個層次。Linux內核源代碼中提供了網絡設備接口及以上層次的代碼,因此移植特定網絡硬件的驅動程序的主要工作就是完成設備驅動功能層的相應代碼,根據底層具體的硬件特性,定義網絡設備接口struct net_device類型的結構體變量,并實現其中相應的操作函數及中斷處理程序。

  

  Linux中所有的網絡設備都抽象為一個統一的接口,即網絡設備接口,通過struct net_device類型的結構體變量表示網絡設備在內核中的運行情況,這里既包括回環(loopback)設備,也包括硬件網絡設備接口。內核通過以dev_base為頭指針的設備鏈表來管理所有的網絡設備。

  2.2 net_device 數據結構

  struct net_device結構體是整個網絡驅動結構的核心,其中定義了很多供網絡協議接口層調用設備的標準方法,該結構在2.6內核源碼樹文件中定義,下面只列出其中主要的成員。

  2.2.1全局信息及底層硬件信息

  name:網絡設備名稱,默認是以太網;

  *next:指向全局鏈表下一個設備的指針,驅動程序中不修改;

  mem_,rmem_:發送和接收緩沖區的起始,結束位置;

  base_addr,irq:網絡設備的I/O基地址,中斷號,ifconfig命令可顯示和修改;

  hard_header_len:硬件頭的長度,以太網中值為14;

  mtu:最大傳輸單元,以太網中值為1500B;

  dev_addr[MAX_ADDR_LEN]:硬件(MAC)地址長度及設備硬件地址,以太網地址長度是48bit,ether_setup會對其進行正確的設置;

  隨著人們對開放源代碼軟件熱情的日益增高,Linux作為一個功能強大而穩定的開源操作系統,越來越受到成千上萬的計算機專家和愛好者的青睞。在嵌入式領域,通過對Linux進行小型化裁剪后,使其能夠固化在容量只有幾十兆字節的存儲器芯片或單片機中,成為應用于特定場合的嵌入式Linux系統。Linux強大的網絡支持功能實現了對包括TCP/IP在內的多種協議的支持,滿足了面向21世紀的嵌入式系統應用聯網的需求。因此,在嵌入式系統開發調試時,網絡接口幾乎成為不可或缺的模塊。

  1 嵌入式Linux網絡驅動程序介紹

  Linux網絡驅動程序作為Linux網絡子系統的一部分,位于TCP/IP網絡體系結構的網絡接口層,主要實現上層協議棧與網絡設備的數據交換。Linux的網絡系統主要是基于BSD Unix的套接字(socket)機制,網絡設備與字符設備和塊設備不同,沒有對應地映射到文件系統中的設備節點。

  通常,Linux驅動程序有兩種加載方式:一種是靜態地編譯進內核,內核啟動時自動加載;另一種是編寫為內核模塊,使用insmod命令將模塊動態加載到正在運行的內核,不需要時可用rmmod命令將模塊卸載。Linux 2.6內核引入了kbuild機制,將外部內核模塊的編譯同內核源碼樹的編譯統一起來,大大簡化了特定的參數和宏的設置。這樣將編寫好的驅動模塊加入內核源碼樹,只需要修改相應目錄的Kconfig文件,把新的驅動加入內核的配置菜單,然后需要修改相應子目錄中與模塊編譯相關的Kbuild Makefile,即可使新的驅動在內核源碼樹中被編譯。在嵌入式系統驅動開發時,常常將驅動程序編寫為內核模塊,方便開發調試。調試完畢后,就可以將驅動模塊編譯進內核,并重新編譯出支持特定物理設備的Linux內核。

  2 嵌入式Linux網絡驅動程序的體系結構和實現原理

  2.1 Linux網絡設備驅動的體系結構

  如圖1所示,Linux網絡驅動程序的體系結構可劃分為4個層次。Linux內核源代碼中提供了網絡設備接口及以上層次的代碼,因此移植特定網絡硬件的驅動程序的主要工作就是完成設備驅動功能層的相應代碼,根據底層具體的硬件特性,定義網絡設備接口struct net_device類型的結構體變量,并實現其中相應的操作函數及中斷處理程序。

  

  Linux中所有的網絡設備都抽象為一個統一的接口,即網絡設備接口,通過struct net_device類型的結構體變量表示網絡設備在內核中的運行情況,這里既包括回環(loopback)設備,也包括硬件網絡設備接口。內核通過以dev_base為頭指針的設備鏈表來管理所有的網絡設備。

  2.2 net_device 數據結構

  struct net_device結構體是整個網絡驅動結構的核心,其中定義了很多供網絡協議接口層調用設備的標準方法,該結構在2.6內核源碼樹文件中定義,下面只列出其中主要的成員。

  2.2.1全局信息及底層硬件信息

  name:網絡設備名稱,默認是以太網;

  *next:指向全局鏈表下一個設備的指針,驅動程序中不修改;

  mem_,rmem_:發送和接收緩沖區的起始,結束位置;

  base_addr,irq:網絡設備的I/O基地址,中斷號,ifconfig命令可顯示和修改;

  hard_header_len:硬件頭的長度,以太網中值為14;

  mtu:最大傳輸單元,以太網中值為1500B;

  dev_addr[MAX_ADDR_LEN]:硬件(MAC)地址長度及設備硬件地址,以太網地址長度是48bit,ether_setup會對其進行正確的設置;

  2.2.2 主要的操作方法

  int (*init)(struct net_device *dev); 設備初始化和向系統注冊的函數,僅調用一次;

  int (*open)(struct net_device *dev);設備打開接口函數,當用ifconfig激活網絡設備時被調用,注冊所用的系統資源(I/O端口,IRQ,DMA等)同時激活硬件并增加使用計數;

  int (*stop)(struct net_device *dev);執行open方法的反操作;

  *hard_start_xmit;初始化數據包傳輸的函數;

  *hard_header;該函數(在hard_start_xmit前被調用)根據先前檢索到的源和目標硬件地址建立硬件頭。 eth_header是以太網類型接口的默認函數;

  2.3網絡驅動程序的編寫及實現原理

  Linux網絡系統各個層次之間的數據傳送都是通過套接字緩沖區sk_buff完成的,sk_buff數據結構是各層協議數據處理的對象。sk_buff是驅動程序與網絡之間交換數據的媒介,驅動程序向網絡發送數據時,必須從其中獲取數據源和數據長度;驅動程序從網絡上接收到數據后也要將數據保存到sk_buff中才能交給上層協議處理。

  對于實際開發以太網驅動程序,可以參照內核源碼樹中的相應模板程序,重點理解網絡驅動的實現原理和程序的結構框架,然后針對開發的特定硬件改寫代碼,實現相應的操作函數。下面結合作者利用Linux2.6.18內核在深圳優龍公司的FS2410開發板(SAMSUNG S3C2410處理器)上移植編寫嵌入式CS8900A網卡驅動程序的實例,說明網絡驅動程序的實現原理。

  2.3.1網絡設備初始化

  網絡設備的初始化是由net_device結構中的init函數實現的,內核加載網絡驅動模塊后,就會調用初始化過程。實例中初始化函數_init cs8900_probe中主要完成的工作:

  a.調用內核中通用的設置以太網接口的函數ether_setup();

  b.填充net_device結構體變量dev中其它大部分成員;

  c.調用check_mem_region()檢測I/O地址空間,然后調用request_mem_region()申請以dev-》base_addr為起始地址的16個連續的 I/O地址空間;

  d.通過cs8900_read()探測網卡CS8900A,讀取ID信息;

  e.設置CS8900A的INTRQ0作為中斷信號輸出引腳;

  f.將MAC地址寫入CS8900A的IA寄存器中;

  g.通過register_netdev()將CS8900A注冊到Linux全局網絡設備鏈表中;

  2.3.2打開(或關閉)網絡設備

  系統響應ifconfig命令時,打開(關閉)一個網絡接口。ifconfig命令開始會調用ioctl(SIOCSIFADDR)來將地址賦予接口。響應SIOCSIFADDR由內核來完成,與設備無關。接著,ifconfig命令會調用ioctl(SIOCSIFFLAGS)設置dev-》flag的IFF_UP位來打開設備,這個調用會使設備的open方法得到調用。(當ifconfig調用ioctl(SIOCSIFFLAGS)清除dev-》flag的IFF_UP位時,設備的stop方法將被調用)

  實例中利用cs8900_start()函數打開網絡設備,主要完成的工作:

  a.通過set_irq_type()向內核注冊網絡設備的中斷處理程序;

  b.通過cs8900_set()設置CS8900A網卡中各控制寄存器和配置寄存器;

  c.通過內核中netif_start_queue()函數開啟網絡接口的數據傳輸隊列;

  2.3.3網絡數據包的發送

  數據包的發送和接收是網絡驅動程序中實現的兩個最重要的任務。當網絡設備被激活時,net_device結構中的open方法被調用,它負責打開設備并調用net_device結構中的hard_header函數指針建立硬件幀頭信息。最后通過函數dev_queue_xmit()來調用net_device結構中的hard_start_xmit方法把存放在sk_buff中的數據發送到網絡物理設備。如果發送成功,則在hard_start_xmit中釋放sk_buff并返回0;如果硬件設備忙暫時無法處理,則返回1。網絡硬件在發送完數據包后會產生中斷,把dev-》tbusy置0,通知系統可以再次發送。

  實例中,hard_start_xmit方法即為網絡設備數據發送函數cs8900_send_start(),該函數實現把數據發送到以太網上,由網絡協議接口層函數dev_queue_xmit()對其調用。cs8900_send_start()中主要完成的工作:

  a.發送數據前關閉中斷,中止網絡設備的數據傳輸隊列;

  b.向CS8900A寄存器TxCMD中寫入傳送數據命令控制字,向寄存器TxLength中寫入待發送數據幀長度;

  c.通過cs8900_read()反復讀取CS8900A總線狀態寄存器BusST信息,直到其已經準備好接收來自主機的數據;

  d.調用cs8900_frame_write()將待發數據送入CS8900A的sk_buff中,硬件設備會將數據幀發送到以太網上;

  e.記錄數據幀的發送時刻,打開中斷,釋放sk_buff緩存,函數返回0;

  2.3.4網絡數據包的接收和中斷處理

  網絡設備是異步地接收外來的數據包并且主動的“請求”將硬件獲得的數據包壓入內核。網絡設備接收數據包是通過中斷實現的。對于網絡接口,接收到新數據包,發送完成或者報告錯誤信息及連接狀態等都會觸發中斷,通常中斷處理程序通過檢測硬件狀態寄存器判斷是哪種情況。

  當設備收到數據后會產生一個中斷,由硬件通知驅動程序有數據包到達。在中斷處理程序中驅動程序申請一塊sk_buff(一般定義為skb)緩沖區,然后從硬件讀出數據放到申請好的緩沖區里,接下來填充sk_buff中的部分信息:包括接收到數據的設備結構體指針填入skb-》dev;收到數據幀的類型填入skb-》protocol;把指針skb-》mac.raw指向硬件數據并丟棄硬件針頭(skb_pull);設置skb-》pkt_type,標明鏈路層數據類型。最后調用協議接口層函數netif_rx() 把接收到的數據包傳輸到網絡上層協議處理。這里,netif_rx()只是負責把數據放入工作隊列就返回,真正的處理是在中斷返回以后,這樣可減少中斷處理的時間。幾乎每個中斷處理程序的編寫都要涉及底半部機制,這樣可以保證中斷的高效處理。

  實例中數據接收函數cs8900_receive()由網絡驅動的中斷處理函數調用,主要完成如下工作:

  a.通過從I/O口讀取RxStatus和RxLength的值,確定接收數據幀的狀態信息和長度;

  b.判斷接收數據幀的狀態是否正常,若異常則記錄相關錯誤信息,然后函數返回;

  c.正常情況下,在內存中申請一塊sk_buff緩存,并將數據從CS8900A的片內存儲器傳送到sk_buff緩存中;d.從數據幀中獲取協議頭并賦給skb-》protocol;

  e.通過調用netif_rx()函數將接收到的數據送往上層協議棧進行處理;

  f.記錄接收數據的時間并更新統計信息;

  3將設備驅動模塊編譯進內核

  設計好模塊化的網絡驅動程序后,我們就可以編譯這個內核模塊,并將這個自定義的內核模塊作為Linux系統源碼的一部分編譯出新的系統。下面介紹的內容均在Linux2.6.18內核上編譯通過,可以在2.6.x版本內核中通用。如前所述,由于Linux2.6內核引入了kbuild的新機制,使得編譯新的內核模塊或者將自己編寫的內核模塊集成到內核源碼中都變得非常簡單了。

  Linux2.6內核中,編譯內核模塊首先要在/usr/src下正確配置和構造內核源碼樹,即把需要版本的內核源碼解壓在/usr/src/,并在內核源碼的主目錄下(這里為/usr/src/linux-2.6.18.3),使用make menuconfig或者make gconfig命令配置內核,然后使用make all完整編譯內核。

  下面以作者開發的CS8900A網卡驅動為實例,介紹如何將網絡設備驅動模塊編譯進內核。

  a.在系統源碼樹drivers目錄下創建新目錄Cs8900;

  b.將編寫好的文件cs8900.c和cs8900.h拷貝到drivers/Cs8900目錄下;

  c.在drivers/Cs8900目錄下,編寫Makefile文件:

  #Makefile for CS8900A Network Driver

  obj -$(CONFIG_DRIVER_CS8900A) +=cs8900.o

  d.在drivers/Cs8900目錄下,編寫Kconfig文件:

  #Just for CS8900A Network Interface

  menu “CS8900A Network Interface support”

  config DRIVER_CS8900A

  tristate “CS8900A support”

  --------help--------

  This is a network driver module for CS8900A.

  endmenu

  e.在driver目錄下的Kconfig文件endmenu語句前,加入一行:

  source “drivers/Cs8900/Kconfig”

  這樣在內核源碼樹的主目錄下,通過make menuconfig或者make gconfig命令就可以在Device Drivers選項的下面找到CS8900A Network Interface support選項,并找到CS8900A support的選擇菜單,它有三種狀態:未選中(不編譯)、選中(M)一編譯為模塊、選中(*)一編譯為新系統一部分。

  重新編譯內核即可得到支持CS8900A網卡的內核,然后將內核下載到FS2410的開發板上,通過配置網絡參數,就可以測試網卡驅動程序的行為了。

  4 結束語

  在這個信息爆炸的時代,人們對于網絡的需求愈發強烈,越來越多的嵌入式設備都需要具有以太網的接入功能,因此開發網絡驅動程序對于很多嵌入式產品的研發至關重要。具體開發嵌入式Linux網絡驅動程序時,可以參照內核中已經支持的網絡驅動源代碼,在重點理解Linux網絡驅動實現原理的基礎上,按照模塊設計較為固定的開發模式,結合具體物理設備的硬件手冊,移植編寫需要的模塊化的網絡驅動程序。

此內容為AET網站原創,未經授權禁止轉載。
主站蜘蛛池模板: 少妇一级淫片免费播放 | 超碰97在线免费观看 | 香蕉午夜福利院 | 国产r级在线观看 | 欧美日本三级少妇三级久久 | 在线看的毛片 | 欧美成人第一页 | 国产精品无码永久免费888 | 国产精品乱码久久久久 | 黑人巨大精品欧美一区二区, | 久色福利 | 国产精品嫩草久久久久 | 午夜寂寞少妇aaa片毛片 | 国内精品久久毛片一区二区 | 色淫湿视频 | 亚洲优女在线 | 一级影片在线观看 | 秋霞无码一区二区 | 国产精品久久久久9999 | 成人18网站| 大学生高潮无套内谢视频 | 日韩午夜免费视频 | 亚洲天堂导航 | 四虎在线免费观看 | 永久免费观看av | 男女国产视频 | 99久久婷婷国产综合精品电影 | 日本亲子乱子伦xxxx30路 | 玉米视频成人免费看 | 男女后式激烈动态图片 | 国语对白超精彩 | 午夜精品久久久 | av大片网站 | 久久久99久久久国产自输拍 | sm在线观看| 久久岛国搬运工 | 国产精品美女一区二区三区四区 | 播放毛片| 色婷婷亚洲一区二区三区 | 久久不卡视频 | 亚洲天堂av影院 | 日韩性xxx | 日韩一区二区三区视频在线观看 | 久久亚洲日韩精品一区二区三区 | 夜夜躁狠狠躁2021 | 性一交一乱一伧国产女士spa | 一本色道久久综合精品竹菊 | 国产成人午夜视频 | 免费国产又色又爽又黄的网站 | 性大片1000免费看 | 久久久久无码国产精品不卡 | 日本久久视频 | 成人免费高清 | 成人免费视屏 | 国产一区=区 | 伊人色影院 | 成人无码av片在线观看 | 成人aaa片一区国产精品 | 国产精品99久久久久久久 | 国产第三页| 新婚夫妇白天啪啪自拍 | 午夜秋霞影院 | 国产亚洲成av人片在线观看下载 | 欧美~大家屁股网站 | 中文 日韩 欧美 | 夜夜骑天天干 | 天堂中文在线8最新版精品版软件 | 日韩中文字幕在线看 | 成人毛片在线精品国产 | 韩国三级视频 | 性开放少妇xxx视频 性开放网站 | 欧美一区免费看 | 九九啪 | 国产视频大全 | 欧美内射深喉中文字幕 | 天天做天天爱天天做 | 久久机热精品 | 成人精品在线观看视频 | 亚洲欧洲久久 | 国产一二 | 插插插操操操 | 久久人国产 | 日韩一级片免费观看 | 无遮挡色视频免费观看 | 白嫩少妇喷水正在播放 | 国产在线精品无码二区 | 久久精品人人爽 | 亚洲人成人伊人成综合网无码 | 色婷婷av一区二区三区影片 | 美女久久久久久久久久 | 啄木乌法国一区二区三区 | 成熟女人牲交片免费观看视频 | 色噜噜狠狠狠综合曰曰曰88av | 黄色大片aaa | 亚洲污视频 | 色99999| 国产成人av三级在线观看 | 国产美女永久免费无遮挡 | 日本欧美视频在线观看 | 波多野吉衣一区 | 波多野结衣视频免费看 | 国产精品久久久国产偷窥 | 五月婷婷激情网 | 在线永久免费观看黄网站 | 爱爱高潮视频 | aaa级片 | 在线视频免费观看你懂的 | www.嫩草蜜桃 | 久久婷婷国产麻豆91 | 啪啪69xxⅹ偷拍| 人妻av一区二区三区精品 | 色婷婷色婷婷 | 九草在线 | 国产精品永久 | 亚洲少妇视频 | 爱爱视频免费网站 | 亚洲乱亚洲乱妇50p 亚洲va中文字幕无码久久不卡 | 精品性高朝久久久久久久 | 亚洲日日日 | 久久精品亚洲精品国产欧美kt∨ | 人妻无码中文字幕 | 欧美 国产 综合 欧美 视频 | 久久精品99国产国产精 | 亚洲国产精品特色大片观看完整版 | 久久综合久久鬼色 | 特大黑人巨交性xxxx | 亚洲淫视频 | 久久久久久久国产精品影院 | 日韩专区在线观看 | 日韩av线| 日本公妇乱淫hd | 欧美性淫爽ww久久久久无 | 午夜女色国产在线观看 | 日本精品少妇一区二区三区 | 噼里啪啦动漫高清在线观看 | 国产亲子乱xxxx | 中文区中文字幕免费看 | 日本aaa级片 | 欧美激情一区二区在线观看 | 特级淫片裸体免费看视频 | 女仆高潮hd理论片 | 韩国三级在线视频 | 情欲都市成熟美妇大肉臀 | 亚洲不卡视频在线 | lutube成人福利在线观看污 | 国产精品综合在线 | 538国产视频 | 青草青草视频2免费观看 | 亚洲高清视频一区二区三区 | 国产高清视频在线 | 午夜影视体验区 | 国产美女精品一区二区三区 | 久久久久成人精品 | 成人免费淫片 | 男人天堂视频网 | 亚洲欧美国产一区二区三区 | 亚洲久悠悠色悠在线播放 | 77777亚洲午夜久久多人 | 成熟交bgmbgmbgm在线 | 毛片大全免费 | 夜夜春视频 | 国产精品一区二区在线观看网站 | 夜夜动漫 | 精品国产污污免费网站 | 天天操天天舔 | 亚洲精品99久久久久中文字幕 | 欧美大尺度床戏做爰 | 中文字幕色站 | 超碰人人超碰人人 | 伊人久久大香线蕉av一区 | av福利在线观看 | 国产乱人伦偷精品视频不卡 | 色噜噜久久综合伊人一本 | 国产一区二区三区乱码在线观看 | 久久这里只有精品6 | 久草老司机 | 欧美va免费高清在线观看 | 日本肥老妇色xxxxx日本老妇 | 成人在线观看免费视频 | 少妇无码av无码一区 | 在线免费观看h片 | 日本精品啪啪一区二区三区 | 久久久久久国产精品mv | 国产午夜片无码区在线播放 | 性一交一伦一理一色一情 | 暴操白丝美女 | 国产视频一二三四区 | 欧洲无码一区二区三区在线观看 | 乱子轮熟睡1区 | 日韩精品在线免费看 | 亚洲永久 | 黑人大荫道bbwbbb高潮潮喷 | 成年人黄网站 | 欧美高清精品一区二区 | 97精品一区二区视频在线观看 | 久久婷婷国产麻豆91天堂 | 国产福利视频 | 黑人巨大跨种族video | 国产精品免费一区二区 | 曰韩黄色一级片 | 一区二区高清视频 | www色天使| 一区二区免费播放 | 浪潮av网站| 粉嫩粉嫩一区二区三区在线播放 | 中文字幕日韩欧美 | 日本深夜福利 | 天堂资源在线www中文最新偷拍 | 精品国产91久久久 | 成人软件在线观看 | 欧美国产一区二区三区激情无套 | 亚洲国产一区二区三区波多野结衣 | 天天爱天天做天天爽夜夜揉 | 久久亚洲精品成人无码网站蜜桃 | 免看一级片 | 在线免费观看黄网 | 亚洲人成未满十八禁网站 | 欧美日韩精品一区二区天天拍 | 日日夜精品 | 午夜免费福利 | 亚洲精品怡红院 | 色老头在线一区二区三区 | 国产午夜伦鲁鲁 | 国产精品视频全国免费观看 | 成人夜视频 | 91视频成人| 亚洲资源在线观看 | 日韩六区| 国产高潮好紧好爽hd | 性生交大全免费看 | 日本欧美一级片 | 冲田杏梨在线 | 有码一区二区三区 | 中文免费av | 亚洲乱强伦| 疯狂做受xxxx高潮欧美日本 | 黑人大群体交免费视频 | 成人羞羞视频免费看看 | 久久亚洲sm情趣捆绑调教 | 神马久久久久久久久 | 野花香社区在线视频观看播放 | 国产亚洲激情 | 色哟哟中文字幕 | 91精品久久久久久久99蜜桃 | 樱花草涩涩www在线播放 | 少妇学院在线观看 | 亚洲中文字幕无码永久在线 | 国产乱妇乱子在线播视频播放网站 | sm免费人成虐网站 | 亚洲香蕉av在线一区二区三区 | 国产一区二区精品久久岳 | 欧美三日本三级三级在线播放 | 强插女教师av在线 | 亚洲午夜成人片 | 动漫美女靠逼 | 欧美一区二区高清 | 国产精品成人精品久久久 | 夜噜噜久久国产欧美日韩精品 | 麻豆精品在线播放 | 不卡的av网站 | 亚洲做受高潮无遮挡 | 亚洲欧美日韩中文高清www777 | 亚洲一区二区三区在线看 | 女仆裸体打屁屁羞羞免费 | jizzjizz国产| 无码熟妇αⅴ人妻又粗又大 | 色淫av蜜桃臀少妇 | 国产亚洲精品第一综合麻豆 | 欧美性一区 | 亚洲视频在线观看视频 | 91在线亚洲 | 丁香五香天综合情 | 中字幕视频在线永久在线观看免费 | 人妻av中文系列 | 午夜精品久久久内射近拍高清 | 夜夜春很很躁夜夜躁 | 日韩男人的天堂 | 99伊人网| 强伦人妻一区二区三区视频18 | 亚洲看片lutube在线观看 | 嘿咻视频在线观看 | eeuss国产一区二区三区 | 韩国精品一区 | bt7086福利一区国产 | 日韩精品在线观看一区 | 日本性xxxxx| 欧美又大又色又爽aaaa片 | 久草久草久草 | 成年人网站免费观看 | 久久综合狠狠色综合伊人 | 91porn九色| 少妇奶水亚洲一区二区观看 | 精品人妻一区二区三区浪潮在线 | 亚洲福利小视频 | av在线不卡免费观看 | 无码福利一区二区三区 | 丝袜操 | 在线黄色大片 | 不卡av免费在线观看 | 亚洲综合精品视频 | 在线无遮挡 | 国产在线观看精品 | 夜夜添无码试看一区二区三区 | 欧美少妇xxx | 欧美日韩一区二区三区在线 | 亚洲欧美精品综合在线观看 | 毛片手机在线 | 欧美人妖老妇 | 国产嫩草在线观看视频 | 久久精品不卡一区二区 | 九七伦理97伦理手机 | 日本黄又爽又大高潮毛片 | 不卡成人 | 在线 | 一区二区三区四区 | 超碰综合 | 97人人模人人爽人人喊0 | 亚洲呦女专区 | 久久99久久99久久 | 99re在线视频免费观看 | 国产精品嫩草影院8vv8 | 毛片毛片毛片毛片毛片毛片毛片毛片毛片 | 69视频污 | 欧美日韩一级久久久久久免费看 | 91色站| 久久久精彩视频 | 在线观看午夜福利院视频 | 99青草 | 泰国性xxxx极品高清hd | 国产精品乱子乱xxxx | 亚洲三级毛片 | 91视频进入 | 婷婷一级片 | 亚洲爱爱网站 | 国产精品久久影院 | 波多野结衣中文字幕一区二区三区 | 国产免费999 | 国产午夜人做人免费视频 | 好紧好湿太硬了我太爽了视频 | 亚洲欧洲精品专线 | 亚洲欧美日韩成人在线 | 亚洲色欲综合一区二区三区 | 日本狂喷奶水在线播放212 | 欧美精品国产综合久久 | 老熟女重囗味hdxx69 | 日韩毛片在线看 | 欧美性色黄大片 | www.成人在线观看 | 免费一级黄色 | 亚洲第5页| 精品爆乳一区二区三区无码av | 久久精品国产99国产精品 | 三级欧美视频 | 岛国大片在线 | 国产免费一区二区三区在线观看 | www视频在线观看免费 | 与子敌伦刺激对白播放的优点 | 性做久久久久久久久久 | 久久夜色精品国产噜噜麻豆 | 精品久久国产字幕高潮 | www免费av| 色婷婷亚洲一区二区三区 | 三级免费黄| 亚洲综合精品一区 | 国产精品国产三级国产aⅴ浪潮 | 99国内精品久久久久久久软件 | 寡妇高潮一级视频免费看 | 寡妇一级片 | 欧洲丰满少妇做爰 | 伊人成人久久 | 日本黄色不卡 | 日日碰狠狠躁久久躁综合网 | 欧美日韩在线成人 | 亚洲精品乱码久久久久久写真 | 天堂资源成人√ | 91嫩草精品少妇 | 91福利在线观看 | 国产呻吟久久久久久久92 | aaaaa少妇高潮大片 | 99在线成人精品视频 | 美女自卫慰黄网站 | 国产伦视频 | www.久久av.com | 国产婷婷色一区二区三区在线 | 婷婷五月综合缴情在线视频 | 日日橹狠狠爱欧美视频 | 性俄罗斯交xxxxx免费视频 | 久久奸 | 热久久中文 | 97se狠狠狠狠狼鲁亚洲综合色 | 亚洲特级片 | 国产精品高潮呻吟久久久久久 | 免费看小12萝裸体视频国产 | 乱子伦一区 | 视频在线一区二区三区 | 五月激情小说网 | 久久亚洲二区 | 美女内射毛片在线看3d | 女人做爰全过程免费观看美女 | 亚洲人成网站在线在线观看 | 成人午夜精品久久久久久久网站 | 国产成人精品一区二区三区 | 日本在线看片免费人成视频1000 | 国产精品扒开腿做爽爽爽视频 | 麻豆传媒网站在线观看 | 中国亚洲女人69内射少妇 | 国产精品图片 | 亚洲欧美日韩综合一区二区 | 久久精品国产最新地址 | 51真实女性私密spa按摩偷拍 | 亚洲熟妇av一区二区三区漫画 | avav我爱av | 精品福利视频一区二区 | 欧美草逼视频 | 在线观看中出 | 黄色小网站在线观看 | 少妇伦子伦精品无码styles | 性一交一乱一伧国产女士spa | 五月激情婷婷在线 | 国产丰满麻豆videossex | 亲子伦一区二区三区观看方式 | 五月婷婷激情在线 | 国产性xxx | 国产一区二区日本 | 日韩视频一区在线观看 | 男女做爰猛烈啪啪吃奶动床戏麻豆 | 欧美精品在线观看视频 | 欧美日韩色 | 日韩加勒比一本无码精品 | 男人的天堂视频在线观看 | 一级黄片毛片 | 精品国产乱码久久久久久蜜退臀 | www.五月激情 | 欧州一区| 综合激情网站 | 欧美国产一区二区三区激情 | 久久蜜桃av| 中国女人内谢69xxxx喜欢你 | 一个人看的www片免费高清视频 | 天天干天天综合 | 无码人妻aⅴ一区二区三区 美女扒开大腿让男人桶 | 色欲av永久无码精品无码 | 好男人天堂网 | 亚洲女优在线播放 | 一个人看的视频www在线 | 欧美人与性动交α欧美精品 | 总受合集lunjian双性h | 麻豆av免费入口 | 国内精品久久久人妻中文字幕 | 40岁干柴烈火少妇高潮不断 | 精品一区二区三区在线成人 | 神马影院午夜伦理 | 日韩欧美人妻一区二区三区 | 男人天堂伊人 | 中文字幕日韩精品一区 | 国产精品麻豆色哟哟av | 日本aaaaa级毛片片 | 欧美xxxx黑人xyx性爽 | 婷婷五月综合缴情在线视频 | 国产在线视频99 | 日本加勒比中文字幕 | 精品少妇一区二区三区免费观 | 欧美激情欲高潮视频在线观看 | 成人无码av一区二区 | 亚洲成人www | 欧美三级在线看 | www精品美女久久久tv | 天堂а√在线中文在线 | 超碰97在线播放 | 人人玩人人添人人澡 | 青草视频在线 | 欧美日韩国产二区 | 亚洲 欧美 激情 小说 另类 | 亚洲国产精品无码久久98 | 国产做a爱一及毛片久久 | 亚洲国产成人精品久久久国产成人 | 国产 日韩 欧美 制服丝袜 | 亚洲午夜18毛片在线看 | 丁香在线 | 丁香花五月 | 九九热国产在线 | 日韩在线永久免费播放 | 狠狠色狠狠色合久久伊人 | 天堂网av2014 | 精品国产乱码久久久久久鸭王1 | 性高朝久久久久久久 | av不卡在线看 | 久久青青草原国产毛片 | 国产精品欧美久久久久天天影视 | 精品av无码国产一区二区 | 波多野结衣av在线播放 | 国产精品亚洲欧美日韩在线观看 | 男女无遮挡xx00动态图120秒 | 国产www精品 | 无码国模国产在线观看 | 久久久国产精品一区 | 天天躁日日躁狠狠躁av麻豆男男 | 91久久国产精品 | 久久99精品久久久久久琪琪 | 日韩精品一区二区三区第95 | 亚洲无线视频 | 91精品孕妇哺乳期国产 | 日韩大片在线免费观看 | 欧美性插插 | 亚洲国产精品第一区二区 | 国产精品18久久久 | 九色一区二区 | k频道国产在线观看 | 国产成人秘密网站视频999 | 在熟睡夫面前侵犯我在线播放 | 给我免费的视频在线观看 | 国产精品久久久久影院色老大 | 美女又爽又黄网站视频 | 亚洲香蕉精品 | 国产精品免费麻豆入口 | 午夜福利国产成人无码gif动图 | 美女xx00| 国语自产拍精品香蕉在线播放 | 久久久久久99精品 | 丰满人妻一区二区三区视频53 | 国产女人的高潮大叫毛片 | 欧美性淫爽www视频免费播放 | 国产亚洲精品久久久网站好莱 | 中字幕视频在线永久在线观看免费 | 99产精品成人啪免费网站 | 澳门永久av免费网站 | 成人性生交视频免费观看 | 精品人妻少妇一区二区三区 | 欧美亚洲三级 | 日韩精品无码一区二区三区av | 久久精品国产999大香线蕉 | 佐山爱在线视频| 韩国乱码片免费看 | 成人一区二区毛片 | 国产精品自在线拍国产手青青机版 | 国产亚洲精品一区二区三区 | 久久精品噜噜噜成人 | 亚洲综合天堂av网站在线观看 | 亚洲色图二区 | 91社区在线高清 | 饥渴放荡受np公车奶牛 | 俞飞鸿早期三级 | 亚洲最大激情网 | 无码av波多野结衣久久 | 少妇一级二级三级 | 免费视频永久免费人 | 国产精品16p | 人妻少妇乱子伦精品无码专区电影 | 成人黄色在线播放 | 91精品啪在线观看国产线免费 | 香蕉97视频观看在线观看 | 久久久久久不卡 | 毛片无码免费无码播放 | 一性一交一伦一色一按—摩 | 精品中出 | 免费观看全黄做爰大片小说 | 五月天久久 | 国内精品久| 日韩爱爱网 | 黑人巨大精品欧美一区二区小视频 | www.在线视频| 亚洲精品456 | 欧美性大片xxxxx久久久 | 男女晚上黄羞羞视频播放 | yyy6080韩国三级理论 | 精品国产鲁一鲁一区二区张丽 | 欧美日韩另类一区二区 | 男人爱看的网站 | 一级黄色免费网站 | 亚洲精华国产 | 无套内射视频囯产 | 天天干天天色综合 | 男人都懂的网址 | 国产精品第6页 | 在线精品一区二区三区 | 国模少妇一区二区三区 | 日韩免费毛片 | 久久久久久98 | 亚洲福利av | 久热这里只有精品视频6 | 强行从后面挺进人妻 | 精品熟女少妇av免费观看 | 91宅男噜噜噜66在线观看 | 免费放黄网站在线播放 | av全黄| 日韩区在线观看 | 国产亚洲精品久久久久蜜臀 | 精品国产乱码91久久久久久网站 | 国产一区二区三区视频播放 | 午夜精品久久久久久久爽 | 手机看片久久 | 图片区 小说区 区 亚洲五月 | 四虎1515hh海外永久免费 | 色七七桃花综合影院 | 亚洲中文字幕av在天堂 | 尤物久久av一区二区三区亚洲 | 欧美伦理一区二区 | 久久天堂av综合合色蜜桃网 | 国产伦子伦对白在线播放观看 | 91中文字幕在线播放 | 在线观看免费日韩av | 精品国产片一区二区三区 | 日韩av在线不卡 | 一级片视频免费看 | 免费黄色片网站 | 久久精品视频2 | 人妻激情偷乱视频一区二区三区 | 高潮流白浆潮喷在线播放视频 | 怡红院亚洲 | 日韩三区四区 | 国产91精品久久久久久久 | 免费三级黄 | 国产免费又硬又黄又爽的视频喷水 | 亚洲成人免费视频在线 | 日本www小久久 | 国产91看片 |