日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

dpdk pci驱动探测

發布時間:2023/12/18 编程问答 56 豆豆
生活随笔 收集整理的這篇文章主要介紹了 dpdk pci驱动探测 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

? ? ? ? 上一篇文章已經介紹了pci設備的背景知識, 現在我們來分析下pci設備是如何探測到支持的驅動,進而與驅動進行關聯;pci與驅動的解除綁定;pci設備與uio設備的關聯。

一、pci驅動注冊

? ? ? ??網卡驅動的注冊使用了一種奇技淫巧的方法,使用GCC attribute擴展屬性的constructor屬性,使得網卡驅動的注冊在程序main函數之前就執行了。此時在main函數執行前,就已經把系統支持的驅動通過rte_eal_driver_register注冊到驅動鏈表dev_driver_list中。

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??

struct rte_driver {TAILQ_ENTRY(rte_driver) next; enum pmd_type type; /**< 驅動類型 */const char *name; /**< 驅動名 */rte_dev_init_t *init; /**< 設備初始化函數 */ }; static struct rte_driver pmd_igb_drv =? {.type = PMD_PDEV,.init = rte_igb_pmd_init, }; static struct rte_driver rte_ixgbe_driver = {.type = PMD_PDEV,.init = rte_ixgbe_pmd_init, };

? ? ? ? 類似于c++中的多態,驅動鏈表節點strcuct rte_driver是一個類, 每一種驅動都具體實現這個類,不同的驅動實現方式不一樣,可以自定義init初始化接口。例如igb驅動與ixgbe驅動,這兩種驅動都具體實現了這個類。每一種驅動都實現這個類,相當于一個多態模型。最后通過調用PMD_REGISTER_DRIVER注冊到驅動鏈表dev_driver_list。 調用rte_eal_driver_unregister則可以從驅動鏈表中卸載。

void rte_eal_driver_register(struct rte_driver *driver) {TAILQ_INSERT_TAIL(&dev_driver_list, driver, next); }

? ? ? ? 需要注意的是,這個dev_driver_list驅動鏈表是一個全局的配置結構, 是在預加載的時候創建的鏈表,只是用來說明系統支持哪些pmd驅動而已,是一個過渡鏈表。真實使用的時候,是不會使用這個鏈表的。真實使用時,會把這個鏈表支持的驅動類型注冊到另一個鏈表pci_driver_list中。這個pci_driver_list驅動鏈表有什么用呢? 可以為每一個pci設備探測對應的驅動,實際上就是遍歷這個驅動。將過渡鏈表轉為真實的驅動鏈表這個操作是在rte_eal_dev_init接口中完成的。

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??

int rte_eal_dev_init(void) {//注冊驅動鏈表TAILQ_FOREACH(driver, &dev_driver_list, next) {//設備初始化接口,用于真正注冊驅動。例如pmd_igb_drv,接口為rte_igb_pmd_initdriver->init(NULL, NULL);} }

? ? ? 以e1000外卡為例,?struct rte_driver驅動對象為pmd_igb_drv,他的init接口為rte_igb_pmd_init。由這個接口真正將驅動注冊到pci_driver_list鏈表中。

static struct eth_driver rte_igb_pmd = {{.name = "rte_igb_pmd",.id_table = pci_id_igb_map,.drv_flags = RTE_PCI_DRV_NEED_MAPPING | RTE_PCI_DRV_INTR_LSC,},.eth_dev_init = eth_igb_dev_init,.dev_private_size = sizeof(struct e1000_adapter), };static int rte_igb_pmd_init(const char *name __rte_unused, const char *params __rte_unused) {rte_eth_driver_register(&rte_igb_pmd);return 0; }

? ? ? ? ? ?可以看出struct eth_driver也類似于c++中的類,不同的驅動具體實現這個對象,相當于多態模型。可以看出最終是注冊到pci_driver_list鏈表中。這個鏈表中的驅動是后面會被使用的,而不再是一個過渡的結構。驅動注冊這個過程是不是覺得有點繞,感覺兜了一大圈。覺得繞就對了,這個是dpdk實現方式,你也可以改造代碼,只需要一次就注冊到最終的驅動鏈表就好了,沒必要通過中間鏈表來中轉。? ? ? ? ? ??

void rte_eth_driver_register(struct eth_driver *eth_drv) {eth_drv->pci_drv.devinit = rte_eth_dev_init;rte_eal_pci_register(&eth_drv->pci_drv); }void rte_eal_pci_register(struct rte_pci_driver *driver) {TAILQ_INSERT_TAIL(&pci_driver_list, driver, next); }

二、pci驅動探測

? ? ? ? pci設備需要有驅動的支持才能使用, 并不是每一種驅動都適用于所有的pci設備,?例如網卡驅動就不適用于SATA設備。因此需要為每一種pci設備探測支持的驅動。為pci設備探測驅動的入口為rte_eal_pci_probe,來看下這個接口的實現。其實就是遍歷上一篇文章提到的pci設備鏈表, 然后為每一個pci設備查找系統支持的驅動。

int rte_eal_pci_probe(void) { //遍歷pci設備鏈表,為每一個pci設備查找驅動TAILQ_FOREACH(dev, &pci_device_list, next) {ret = pci_probe_all_drivers(dev); } } static int pci_probe_all_drivers(struct rte_pci_device *dev) {//遍歷所有的驅動鏈表,為某個pci設備查找對應的驅動TAILQ_FOREACH(dr, &pci_driver_list, next) {rc = rte_eal_pci_probe_one_driver(dr, dev);} }

? ? ? ? ?每一個驅動都有一個表id_table,表項記錄驅動支持哪些pci設備。表項的內容由pci的廠商id, pci設備id, pci子廠商等信息組成。每個pci設備就是根據自己的廠商id, 設備id等信息在每一個驅動提供的id_table表查找當前驅動是否支持自己,如果這些都相等,則說明pci找到了驅動。找到了驅動,就將驅動保存到pci設備結構中,將pci與驅動進行關聯,接著進行驅動的初始化流程。驅動初始化會在另一個專題中詳細分析,這里就只需要知道整體流程就好了。

int rte_eal_pci_probe_one_driver(struct rte_pci_driver *dr, struct rte_pci_device *dev) {for (id_table = dr->id_table ; id_table->vendor_id != 0; id_table++){//檢查這個驅動是否支持對應的pci設備。要求廠商id, 設備id等必須匹配if (id_table->device_id != dev->id.device_id && id_table->device_id != PCI_ANY_ID){continue;}//需要將pci物理地址映射到出來,使得通過uio訪問pci設備if (dr->drv_flags & RTE_PCI_DRV_NEED_MAPPING) {ret = pci_map_device(dev);}//pci關聯這個驅動dev->driver = dr;//驅動初始化return dr->devinit(dr, dev);} }

? ? ? ? 這里著重分析下pci設備地址映射的過程。

三、pci地址映射

? ? ? ? 所謂的pci地址映射,其實就是將pci設備提供給應用層訪問的物理地址映射成虛擬地址,這樣應用層通過uio就可以訪問這個虛擬地址,進而訪問pci設備。這里引入了uio的概念,就有必要先簡單描述下。當pci設備綁定uio驅動后,uio驅動在探測到有網卡綁定后,會在/dev設備下創建一個uio文件,例如/dev/uio3, 同時也會在pci設備目錄下創建相應的uio目錄,例如/sys/bus/pci/devices/0000:02:06.0/uio目錄,這個uio目錄里面記錄了pci設備的映射信息,也就是上一篇文章提到的BAR寄存器,其實也是//sys/bus/pci/devices/0000:02:06.0/resource文件中記錄的映射信息。這樣uio目錄下的地址映射信息其實就是pci設備的映射信息,因此當通過mmap地址映射到/dev/uio3后,就將pci物理地址映射到虛擬地址中,通過/dev/uio3就可以訪問這個pci設備。

? ? ? ? pci地址映射與uio關聯是在pci_uio_map_resource接口中完成的, 下面來詳細分析下這個接口的實現過程。

1、在pci目錄下查找對應的uio目錄,這個在pci綁定驅動的時候,就會在pci目錄下創建uio目錄,以及在/dev目錄下創建uio文件。例如:? pci設備目錄下創建/sys/bus/pci/devices/0000:02:06.0/uio/uio3目錄;? ? /dev目錄下創建uio文件, /dev/uio3

int pci_uio_map_resource(struct rte_pci_device *dev) {//獲取某個pci設備對應的uio目錄,例如/sys/bus/pci/devices/0000:02:06.0/uio/uio3uio_num = pci_get_uio_dev(dev, dirname, sizeof(dirname));//dev/uio3snprintf(devname, sizeof(devname), "/dev/uio%u", uio_num); }

? ? ? ? pci_get_uio_dev接口負責查找到uio目錄文件。需要注意的是,如果應用層指定了需要創建uio文件,則內部會調用pci_mknod_uio_dev接口在/dev目錄下重新創建uio文件,例如重新創建/dev/uio3?

static int pci_get_uio_dev(struct rte_pci_device *dev, char *dstbuf, unsigned int buflen) {//創建dev/uiox文件if (internal_config.create_uio_dev && pci_mknod_uio_dev(dstbuf, uio_num) < 0){RTE_LOG(WARNING, EAL, "Cannot create /dev/uio%u\n", uio_num);} } //sysfs_uio_path也就是網卡對于uio文件路徑,例如/sys/bus/pci/devices/0000:02:06.0/uio/uio3 static int pci_mknod_uio_dev(const char *sysfs_uio_path, unsigned uio_num) {例如/sys/bus/pci/devices/0000:02:06.0/uio/uio3f = fopen(filename, "r"); //讀取主從設備號ret = fscanf(f, "%d:%d", &major, &minor);//創建/dev/uiox文件,例如/dev/uio3snprintf(filename, sizeof(filename), "/dev/uio%u", uio_num);dev = makedev(major, minor);ret = mknod(filename, S_IFCHR | S_IRUSR | S_IWUSR, dev); }

2、創建uio中斷事件,也就是pci網卡中斷事件。這里只負責創建,并沒有加入到epoll事件機制中,此時即便網卡有事件也還不會觸發,直到在驅動初始化接口eth_igb_dev_init那里會將這個dev/uio3中斷源加入到epoll事件機制。注冊到epoll后,如果網卡有事件發生,epoll事件模型就會返回,應用層就能處理網卡中斷。需要注意的是,uio驅動已經將網卡中斷給關閉了,因此dpdk中斷是在應用層實現的,以免頻繁硬件中斷導致上下文切換,占用cpu資源。這里的中斷指定是控制中斷,也就是給網卡的一些控制操作,例如設置全雙工半雙工, 協商速率設置等; 而網卡報文的高速轉發,應用層還是使用輪詢的方式,報文轉發就跟中斷沒有關系了。

int pci_uio_map_resource(struct rte_pci_device *dev) {//創建uio中斷源/dev/uio3dev->intr_handle.fd = open(devname, O_RDWR);dev->intr_handle.type = RTE_INTR_HANDLE_UIO; } int eth_igb_dev_init(__attribute__((unused)) struct eth_driver *eth_drv, struct rte_eth_dev *eth_dev) {//pci中斷源注冊到中斷事件鏈表中,內部會將中斷源添加到epoll事件機制中rte_intr_callback_register(&(pci_dev->intr_handle),eth_igb_interrupt_handler, (void *)eth_dev); }

3、掃描pci目錄下的uio目錄,看下uio目錄下映射了哪些地址給應用層訪問。例如掃描/sys/bus/pci/devices/0000:02:06.0/uio/uio3/maps目錄,發現這個目錄下有map0, map1兩個子目錄,這兩個子目錄記錄了兩個不同的地址空間,用于提供給應用層訪問。pci_uio_get_mappings接口要做的事情就是掃描所有的map,將映射的地址信息保存起來。需要注意的是,這些地址是pci設備在物理內存上的真實地址,而不是虛擬地址。

root@apelife:/sys/bus/pci/devices/0000:02:06.0/uio/uio3/maps# ls map0 map1 root@apelife:/sys/bus/pci/devices/0000:02:06.0/uio/uio3/maps/map0# ls addr name offset size

?

int pci_uio_map_resource(struct rte_pci_device *dev) {//獲取pci映射的地址范圍nb_maps = pci_uio_get_mappings(dirname, uio_res->maps,RTE_DIM(uio_res->maps));uio_res->nb_maps = nb_maps; }//獲取pci映射的地址范圍, 也就是掃描/sys/bus/pci/devices/0000:02:06.0/uio/uio3/maps目錄,看下 //pci設備映射了哪些地址訪問給應用層訪問 //devname, pci設備關聯的uio路徑,例如/sys/bus/pci/devices/0000:02:06.0/uio/uio3 static int pci_uio_get_mappings(const char *devname, struct pci_map maps[], int nb_maps) {for (i = 0; i != nb_maps; i++){snprintf(dirname, sizeof(dirname), "%s/maps/map%u", devname, i);//獲取地址偏移snprintf(filename, sizeof(filename),"%s/offset", dirname);pci_parse_sysfs_value(filename, &offset);//獲取地址大小snprintf(filename, sizeof(filename), "%s/size", dirname);pci_parse_sysfs_value(filename, &size);//獲取物理地址的位置snprintf(filename, sizeof(filename), "%s/addr", dirname);pci_parse_sysfs_value(filename, &maps[i].phaddr);//保存地址大小與偏移maps[i].offset = offset;maps[i].size = size;} }

4、pci設備目錄下的資源文件,例如/sys/bus/pci/devices/0000:02:06.0/resource記錄了pci的BAR寄存器的信息,里面的內容為pci設備提供給應用層訪問的物理地址空間; 而pci設備目錄下的uio文件,例如/sys/bus/pci/devices/0000:02:06.0/uio/uio3/maps也記錄了pci設備提供給應用層訪問的地址空間,這兩者有什么關系呢?

? ? ? ? 通常在系統引導的時候,系統探測到pci設備后,會創建pci目錄,存放pci設備的相關信息,包括resource文件。在pci設備綁定uio驅動時,uio驅動會在pci目錄下創建uio子目錄,同時會將pci里面的部分文件信息拷貝到uio子目錄下。例如會讀取resouce文件的內容,將一部分提供給應用層訪問的物理地址,在uio子目錄下創建map子目錄,記錄這些物理地址信息。例如resouce文件記錄了5個提供給應用層訪問的物理地址空間,則uio驅動有可能會在map子目錄下創建map0,map1,map2三個目錄,用于記錄5個提供給應用層訪問的物理地址中的三個。那為什么不是5個都提供呢?這個我也還沒理清楚。

? ? ? ? 也就是說uio目錄里面的map子目錄記錄提供給應用層訪問的物理地址,和pci設備目錄resource文件記錄提供給應用層訪問的物理地址是相等的。這樣對uio文件進行mmap地址映射后,當訪問/dev/uiox文件,就相當于訪問pci設備提供給應用層訪問的物理空間,進而訪問這個pci設備。通過這種方式應用層直接訪問/dev/uiox文件,就可以訪問網卡資源了。

? ? ? ??pci_uio_map_resource接口負責地址映射的操作,映射后將保存這個映射后的虛擬地址。需要注意的是,不管一個pci設備提供了多少個給應用層訪問的物理地址,都是通過同一個/dev/uiox文件進行映射的。另外還需要注意的是,應用層已經知道了pci提供的物理地址,那為什么還要進行地址映射? 是因為應用層無法直接訪問pci設備的物理內存,只能通過虛擬地址進行訪問。

int pci_uio_map_resource(struct rte_pci_device *dev) {//為pci的每一個提供給應用層訪問的物理地址做映射for (i = 0; i != PCI_MAX_RESOURCE; i++) {//查找pci提供給應用層訪問的物理地址和/sys/bus/pci/devices/0000:02:06.0/uio/uio3/map的物理地址相等的地址進行映射for (j = 0; j != nb_maps && (phaddr != maps[j].phaddr || dev->mem_resource[i].len != maps[j].size); j++);//找到則進行映射if (j != nb_maps){//例如/dev/uioxfd = open(devname, O_RDWR);//共享內存映射,通過mmap方式mapaddr = pci_map_resource(pci_map_addr, fd, (off_t)offset, (size_t)maps[j].size);//保存映射后的虛擬地址maps[j].addr = mapaddr;maps[j].offset = offset;dev->mem_resource[i].addr = mapaddr;}} }

5、最后就是保存pci設備地址映射后的資源信息,每一個pci設備都有一個這樣的資源結構,并插入到pci資源鏈表pci_res_list。

int pci_uio_map_resource(struct rte_pci_device *dev) {uio_res = rte_zmalloc("UIO_RES", sizeof(*uio_res), 0);//將uio資源插入到鏈表,此時已經完成了pci設備的地址映射TAILQ_INSERT_TAIL(pci_res_list, uio_res, next); }

? ? ? ? 這個鏈表有什么作用呢?主要是給dpdk從線程用的, dpdk主線程負責將每個pci設備物理地址映射成虛擬地址,并將映射后的資源信息保存到這個鏈表中。從線程就沒有必要在對每個pci設備進行地址映射了,直接讀取這個鏈表就知道每個pci設備提供給應用層訪問的物理地址是多少,映射后的虛擬地址是多少。這個可以從pci_uio_map_secondary接口看出,這個就是從線程調用的接口。

? ? ? ? 到目前為止,關于pci設備探測驅動以及pci設備與uio的之間的關系已經分析完成了。 至于驅動初始化的邏輯,則在后續會有專門的文章來分析。

總結

以上是生活随笔為你收集整理的dpdk pci驱动探测的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

欧美激情精品久久 | 在线观看视频福利 | 天天插综合| 久久理伦片 | 欧美一二三视频 | 麻豆精品在线视频 | 在线免费观看国产视频 | 国产伦理久久精品久久久久_ | 97免费在线观看 | 国产精品免费小视频 | 91精品久久久久久综合五月天 | 久久国产热| 日日草天天草 | 久久精品国产亚洲aⅴ | 中文av资源站| 精品久久久久久电影 | 国产视频综合在线 | 开心丁香婷婷深爱五月 | 亚洲人人av | 久久久久久久国产精品 | 又色又爽又黄 | 亚洲视频在线视频 | 亚洲精品高清视频在线观看 | 4438全国亚洲精品在线观看视频 | 欧美a级在线 | 349k.cc看片app| 日本bbbb摸bbbb | 91成人精品一区在线播放69 | av天天澡天天爽天天av | 91精品国产欧美一区二区成人 | 亚洲精品观看 | 久久久久久久久久久影院 | 亚洲精品国产精品国产 | 免费久久99精品国产婷婷六月 | 奇米影视777四色米奇影院 | 日韩中文字幕亚洲一区二区va在线 | 日韩精选在线 | 日韩成人不卡 | www.黄色片.com | 婷婷伊人五月天 | 精品一区av | 欧美精彩视频在线观看 | 免费久久精品视频 | 综合久久久 | 国产91亚洲| 日日草天天干 | 九九日九九操 | 国产精品色视频 | 狠狠干免费 | 国产高清在线不卡 | 亚洲一二三在线 | 免费网站黄 | 91激情| 国产精品日韩在线播放 | 人人看人人| 9在线观看免费高清完整版在线观看明 | 丁香资源影视免费观看 | 国产午夜麻豆影院在线观看 | 成人在线黄色电影 | 亚洲乱码精品久久久 | 在线中文字幕电影 | 亚洲资源片 | 国产福利91精品一区 | 久久涩视频 | 国产精品高清一区二区三区 | 日韩欧美国产精品 | 狠狠色丁香久久婷婷综合丁香 | 婷婷激情综合五月天 | 狠狠干中文字幕 | 午夜精品久久久久久久久久久 | 亚洲成人免费 | 在线视频电影 | 在线观看91精品视频 | 天天射天 | 久久久精品国产一区二区电影四季 | 国产免费高清视频 | 久久精品国产亚洲精品2020 | 精品专区一区二区 | 久久久久免费精品国产小说色大师 | 国产精品成人aaaaa网站 | 在线成人免费电影 | 波多野结衣在线视频免费观看 | 免费观看成人网 | 国产精彩视频一区 | 久久精品香蕉视频 | 久久国产精品久久国产精品 | 久久久久久久久久久久久久av | 国产一级片一区二区三区 | 亚洲 欧美 综合 在线 精品 | 天天操夜操视频 | 国产精品青草综合久久久久99 | 伊人伊成久久人综合网小说 | 在线观看视频 | 97电影在线 | 国产高清绿奴videos | 五月天,com | 精品视频 | 91在线看免费 | 国产一区免费在线 | 久久久久久免费网 | 久久久www成人免费精品 | 日韩福利在线观看 | 97成人在线 | 欧美成亚洲 | 成人av网站在线观看 | 国产欧美三级 | 五月婷婷操 | 亚洲黄色av网址 | 中文字幕丝袜 | 国产在线一线 | 久久国产精品视频观看 | 嫩模bbw搡bbbb搡bbbb | 天天爽人人爽 | 国产日产精品一区二区三区四区 | 五月婷婷激情综合网 | 久久国产精品视频观看 | 日本公妇色中文字幕 | 亚洲精品自在在线观看 | 免费观看一区 | 99热精品视| 久久久亚洲精品 | 色综合久久88色综合天天人守婷 | 97视频精品 | 欧美日韩首页 | 激情久久久久 | 久久精品国产精品亚洲精品 | 免费日韩电影 | 婷婷亚洲五月色综合 | 国产高清在线免费观看 | 狠狠撸电影 | 天天色天天色 | 久草视频在线新免费 | 高清视频一区二区三区 | 狠狠操精品| 国产免费三级在线观看 | 亚洲精品白浆高清久久久久久 | 五月婷婷电影网 | 日日综合 | 97精品国产| www色 | 成人国产精品一区二区 | 久久午夜电影 | av在线电影免费观看 | 久久精品五月 | 国产黄色精品在线观看 | 国产精品成人久久久久久久 | 精品国产一区二区三区久久影院 | 亚洲成av人片在线观看香蕉 | 四虎在线免费观看视频 | 国产高清视频在线播放 | 中文字幕国产一区二区 | 日韩免费区| 精品国产不卡 | 91视频免费视频 | 国产精品免费久久久久久久久久中文 | 国产va饥渴难耐女保洁员在线观看 | 国产中文字幕视频在线 | 免费在线黄网 | 成人黄色在线播放 | 日韩网站在线观看 | 91精品国产自产在线观看 | 国产专区在线 | 欧美aⅴ在线观看 | 日韩在线免费视频观看 | 日韩欧美高清一区二区三区 | 国产成人精品一区二区三区网站观看 | 免费观看mv大片高清 | 欧美日韩国产一区二区三区 | 日韩在线不卡 | 毛片网站在线观看 | 在线观看精品视频 | 久久久 精品| 69av免费视频| av中文字幕在线免费观看 | 黄色网址av| 91精品久久久久久久91蜜桃 | 久操视频在线免费看 | 蜜臀aⅴ精品一区二区三区 久久视屏网 | 欧洲精品二区 | 天天干天天操天天拍 | 国内视频一区二区 | 亚洲永久精品国产 | 亚洲高清在线精品 | av午夜电影 | 亚洲一区二区三区四区在线视频 | 国产成人精品电影久久久 | 天天干天天操天天拍 | 激情五月婷婷激情 | 国产精品久久一 | 国产福利电影网址 | 久草视频免费播放 | 婷婷色中文字幕 | 精品久久亚洲 | 丁香六月av | 蜜臀久久99精品久久久酒店新书 | 中国黄色一级大片 | 久久久网页 | 探花视频在线观看 | 国产小视频免费在线网址 | 欧洲精品久久久久毛片完整版 | 99中文字幕在线观看 | 国产色网站 | 精品国产免费一区二区三区五区 | 天天爱综合 | 国产老太婆免费交性大片 | www中文在线 | 91成人免费观看视频 | 97超碰香蕉| 国产福利资源 | 碰超在线观看 | 99在线播放| 五月婷婷综合激情 | 欧美日韩国产一区二区三区在线观看 | 99视频在线精品国自产拍免费观看 | 欧美日在线观看 | 波多野结衣一区二区三区中文字幕 | 五月天亚洲激情 | 超碰com| 日韩视频一区二区三区 | 国产成人福利在线观看 | 久久综合狠狠综合久久激情 | 日韩中文字幕免费在线播放 | 色综合久久久网 | 日韩av在线高清 | 久草在线视频精品 | av免费网站观看 | 免费在线观看av网站 | 国产欧美在线一区 | 久久综合久久综合九色 | 久久视频 | 国产精品成人一区二区三区吃奶 | 欧美一性一交一乱 | 色视频网站在线观看一=区 a视频免费在线观看 | 伊人亚洲综合网 | 久久毛片网 | www.在线观看视频 | 手机在线中文字幕 | 成年人免费看的视频 | 美女免费视频观看网站 | 日韩av免费大片 | 亚洲乱码精品久久久久 | 欧美日韩久 | 国产午夜在线观看视频 | 99久久99久久精品 | 成人免费影院 | 色婷婷成人网 | 免费av在线网 | 久在线| 欧美一区二区三区特黄 | 成人免费观看在线视频 | 欧美大片在线观看一区 | av高清网站在线观看 | 一级α片免费看 | zzijzzij亚洲成熟少妇 | 久久精品xxx | 黄色一级影院 | 国产精品久久久久久久久久不蜜月 | 又黄又爽的视频在线观看网站 | 欧美一区二区三区在线视频观看 | 久久影视中文字幕 | 中文字幕欧美日韩va免费视频 | 激情片av | 亚洲精品欧美成人 | 91精品视频免费看 | 久久天天躁夜夜躁狠狠躁2022 | 日本视频久久久 | 一区 二区 精品 | 色搞搞| 国产精品入口麻豆www | 97香蕉久久超级碰碰高清版 | 精品国产乱码久久久久久浪潮 | 国产精品丝袜久久久久久久不卡 | 欧美性爽爽 | 精品国模一区二区 | 欧美激情综合五月色丁香小说 | 在线观看亚洲国产 | 在线a亚洲视频播放在线观看 | 色婷婷久久久综合中文字幕 | 激情欧美一区二区免费视频 | 在线观看日韩免费视频 | 五月天婷婷丁香花 | 九九在线播放 | 日韩一区二区三区高清在线观看 | 一区二区av | 日韩一级电影网站 | 亚洲高清视频在线播放 | 国产精品一区二区久久国产 | 五月婷婷开心 | 国产涩图 | 久久手机免费视频 | 久久精品三 | 免费看的黄色小视频 | 国产成人在线一区 | 97香蕉久久超级碰碰高清版 | 成年人黄色大片在线 | 亚洲欧美偷拍另类 | 欧美日韩高清一区 | a精品视频 | 国产乱码精品一区二区三区介绍 | 91中文在线视频 | 天天操天天操天天操天天操天天操天天操 | 国产无吗一区二区三区在线欢 | 91精品1区2区 | av手机版| 亚洲综合欧美精品电影 | 六月色| 日日爱影视 | 香蕉视频18 | 国内精品亚洲 | 丁香六月激情婷婷 | 成人在线视频你懂的 | 日本精品中文字幕在线观看 | 国产97碰免费视频 | 韩国中文三级 | 综合成人在线 | 日韩高清一区在线 | 最新超碰 | 999国产 | 91精品国产自产在线观看永久 | 国产精品igao视频网入口 | 国产成人区 | 五月天国产 | 91片黄在线观 | 国产精品一区二区三区在线看 | 久久久黄视频 | 在线观看成人国产 | 蜜臀av麻豆 | 国产白浆视频 | 欧美精品乱码久久久久 | 欧美亚洲国产一卡 | 在线国产激情视频 | 成人av一区二区兰花在线播放 | www日日夜夜 | 色婷五月天 | 国产成人精品免高潮在线观看 | 亚洲精品午夜一区人人爽 | 97视频在线观看视频免费视频 | 丁香六月av | 亚洲精品国久久99热 | 黄色在线观看污 | 亚洲乱码在线 | 国产亚洲欧美一区 | 成人资源在线 | 波多野结衣综合网 | 免费在线黄 | 亚洲精品乱码久久久久v最新版 | 精品主播网红福利资源观看 | 91视频91自拍 | 在线观看中文字幕网站 | www.超碰97.com| 欧美日韩在线免费视频 | 天天爱综合 | 久久久久欧美精品 | 午夜精品视频在线 | 四虎国产免费 | 天天舔天天射天天操 | 欧美a级在线免费观看 | 久久成人精品电影 | 亚洲精品18p | 日韩视频一区二区三区在线播放免费观看 | 午夜国产福利在线 | 国产精品久久久久久久久免费看 | 日韩a级黄色片 | 2021国产在线| 狠日日| 日本不卡一区二区三区在线观看 | 在线观看播放av | 麻豆久久久久久久 | 精品国产成人在线影院 | 欧美日韩亚洲国产一区 | 欧美日韩免费在线视频 | 激情五月网站 | 高清久久久| 开心色停停 | www看片网站 | 亚洲一区视频在线播放 | avav99| 91女神的呻吟细腰翘臀美女 | 丁五月婷婷 | 亚洲综合视频在线播放 | 热99在线| 在线观看视频你懂 | 久久视频精品在线观看 | 久草在线免费看视频 | 亚洲美女视频在线观看 | 色天天中文 | 中文字幕亚洲在线观看 | 国产精品久久久一区二区三区网站 | 免费大片黄在线 | 91成人精品一区在线播放69 | 国产精品婷婷午夜在线观看 | 久久九九久久精品 | 中文字幕在线国产精品 | 色中文字幕在线观看 | 日日夜夜91 | 久久久久一区 | 在线观看亚洲电影 | 国产免费中文字幕 | 亚洲毛片一区二区三区 | 久久久久成人精品免费播放动漫 | 国产亚洲精品久久网站 | 亚洲激情校园春色 | 国产一区影院 | 免费亚洲片 | 天天插天天操天天干 | 久久99九九99精品 | 中文字幕在线国产 | 欧美性黄网官网 | 国产精品自产拍 | 成人黄色在线 | 精品国内自产拍在线观看视频 | 亚洲年轻女教师毛茸茸 | 欧美日韩国产一二 | 欧美va电影| 午夜一级免费电影 | 毛片.com| 蜜桃视频在线观看一区 | 狠狠干狠狠色 | 国产精品电影一区二区 | 久久黄网站 | 久久国产精品成人免费浪潮 | 在线 国产一区 | 亚洲香蕉视频 | 4438全国亚洲精品在线观看视频 | 男女激情片在线观看 | 福利视频一区二区 | 97成人免费 | 国产麻豆精品一区 | 久久久久久久久久久高潮一区二区 | 午夜精品久久久久久 | 射射射综合网 | 日韩欧美精品一区 | 日本公妇在线观看高清 | 中文字幕乱码在线播放 | 99精品视频在线观看 | 成人午夜精品 | 欧美少妇影院 | 国产精品中文字幕av | 午夜在线资源 | 亚洲日本中文字幕在线观看 | 国产精品久久久久久久免费大片 | 一二区av| 麻豆国产精品va在线观看不卡 | 欧美日韩一区二区三区在线免费观看 | 久久视频精品在线 | 99久免费精品视频在线观看 | 日本 在线 视频 中文 有码 | 狠狠色丁香婷婷综合视频 | av播放在线 | 免费在线观看av的网站 | 一区二区三区日韩视频在线观看 | 在线观看视频你懂 | 天天综合久久 | 久久99热这里只有精品国产 | 深爱激情av | 国产视频在线观看一区 | 69av网| 韩国av电影网 | 久久国内精品99久久6app | 玖玖视频免费在线 | 国产精品九九视频 | 色视频国产直接看 | 欧美韩国日本在线观看 | 亚洲狠狠操 | 成人h在线播放 | 色的网站在线观看 | 午夜手机看片 | 色五月激情五月 | 国产色网站 | 日本精品一区二区三区在线播放视频 | 97在线影院 | 超碰97在线资源站 | 特级西西444www大胆高清无视频 | 中文字幕在线日本 | 天堂网中文在线 | 中文字幕专区高清在线观看 | 免费视频 你懂的 | 在线电影 你懂得 | 国产中文字幕第一页 | 久久婷亚洲五月一区天天躁 | 成人av免费在线看 | 97在线超碰 | 曰韩在线 | 午夜av剧场| 日韩视频欧美视频 | 在线观看中文字幕视频 | 麻豆久久一区二区 | 成全在线视频免费观看 | 日韩av电影中文字幕在线观看 | 一区二区不卡 | 国产精品99久久久久久久久 | 黄色免费大片 | 亚洲国产网站 | 999久久久精品视频 日韩高清www | 97精品国自产拍在线观看 | 久久久久黄 | a黄色影院 | 亚洲在线综合 | 色综合天天综合网国产成人网 | 国产一区欧美二区 | 人人射人人爽 | www.eeuss影院av撸 | 国产伦理久久精品久久久久_ | 18岁免费看片 | 午夜精品久久久久久久久久久久久久 | 日韩在线网址 | 在线播放国产精品 | www夜夜| 黄色福利| 亚洲精品一区二区三区高潮 | 毛片播放网站 | 国产一区免费视频 | 国产一级二级在线 | 久操久 | 一区二区三区在线观看 | 亚洲最大激情中文字幕 | 色综合久久中文字幕综合网 | 色婷婷狠狠五月综合天色拍 | 狠狠色香婷婷久久亚洲精品 | 欧美另类高潮 | 日日爽天天爽 | 午夜精品婷婷 | 超碰国产在线观看 | 999久久久久久久久 69av视频在线观看 | 综合网天天色 | 国产精品美女久久久久久久 | 精品国产一区二区三区久久 | 日韩在线大片 | 日韩成人黄色av | 午夜av免费 | 奇米网8888| 欧美在线观看视频 | 在线免费观看成人 | 亚州人成在线播放 | 日韩欧美一区二区在线观看 | 日韩三级久久 | 天天爱天天干天天爽 | 国产午夜精品免费一区二区三区视频 | 91久久精品一区二区三区 | 免费成人av | 蜜桃麻豆www久久囤产精品 | 天天干天天操天天入 | 久福利| 成人影音在线 | 一级片在线 | 天天色综合1 | 在线观看黄网站 | 欧美一级高清片 | 青青河边草观看完整版高清 | 久久99国产精品二区护士 | 在线免费高清视频 | 2019精品手机国产品在线 | 国产网红在线观看 | 中文字幕在线观看av | 一区二区三区四区精品 | 国产xxxx性hd极品 | 国产一区免费在线 | 国产精品乱码高清在线看 | 99久久久久久久 | 69精品久久 | 国产精品久久伊人 | 又紧又大又爽精品一区二区 | 18久久久久久 | 中文字幕视频网 | 91精品国产成 | 91九色最新| 午夜精品久久久久久久久久久久 | 国产精成人品免费观看 | 伊香蕉大综综综合久久啪 | 91久久久久久久 | 亚洲综合欧美日韩狠狠色 | 色播五月婷婷 | 日韩高清无线码2023 | 久久久91精品国产一区二区三区 | 欧美性色黄大片在线观看 | av中文字幕av | 国产精品a久久久久 | 久久国产精品99久久久久 | 三日本三级少妇三级99 | 九九热在线观看视频 | 亚洲五月 | 欧美性色综合网 | 国产精品毛片网 | 国产婷婷一区二区 | 亚洲高清视频一区二区三区 | 国产亚洲欧美一区 | 在线免费观看羞羞视频 | 久久久精品国产一区二区 | 国内精品久久久久久中文字幕 | 2019av在线视频 | 日本久久91| 婷婷色网站| 日韩视频免费在线 | 91污在线观看 | 欧美性大战 | 韩国视频一区二区三区 | 99视频在线精品国自产拍免费观看 | 亚洲网久久 | 综合在线观看色 | 成人毛片久久 | 久久午夜影视 | 久久久久草 | 一区二区三区免费在线播放 | 欧美色综合天天久久综合精品 | 久久99精品久久久久久 | 中文字幕在线观看网 | 91视频观看免费 | 日日夜夜天天久久 | 成人免费视频播放 | 日韩乱码在线 | 91久久精| 麻豆精品视频在线 | 毛片1000部免费看 | 国产九九九九九 | 国产亚洲久久 | 黄色三级免费网址 | 久久a免费视频 | 亚洲成人频道 | 成人国产精品 | 亚洲视频电影在线 | 91中文字幕在线播放 | 丁香激情五月婷婷 | 精品 激情 | 国产成人一区二区啪在线观看 | 新av在线| 欧美男女爱爱视频 | 成人精品福利 | 欧美日韩一区三区 | 欧洲性视频 | 免费亚洲片 | 国产专区一 | 久久久久久久久久久久久久电影 | 五月婷视频 | 欧美性生爱 | 黄色视屏在线免费观看 | 精品亚洲成a人在线观看 | 欧美日韩精品在线一区二区 | 久久久人人人 | 在线观看视频福利 | 玖玖在线精品 | 欧美一级xxxx | 在线观看mv的中文字幕网站 | 一级黄色大片 | 久久久午夜精品理论片中文字幕 | 国产麻豆剧果冻传媒视频播放量 | 91亚州| 狠狠亚洲| 亚洲91精品在线观看 | 91精品在线免费观看 | 成人av片免费观看app下载 | 97人人视频 | 正在播放国产一区二区 | 久久网站最新地址 | 久久人操 | 深夜国产福利 | 天天做天天爱夜夜爽 | 国产操在线| 日韩精品一区二区三区三炮视频 | 中文字幕在线观看完整版电影 | 93久久精品日日躁夜夜躁欧美 | 99热99热 | 国产探花视频在线播放 | 国产小视频在线观看 | 中文在线字幕观看电影 | av在线成人| 国产一区在线免费观看视频 | 一区二区精品国产 | 国产 在线 高清 精品 | 99久久精品免费一区 | 久久99久久99免费视频 | 久久久精品日本 | 色婷婷导航 | 99久久婷婷国产综合精品 | 97香蕉视频 | 午夜精品一区二区三区在线播放 | 久久久影院一区二区三区 | 狠狠狠狠狠狠干 | 亚洲激情视频在线观看 | 在线视频 国产 日韩 | 在线观看免费视频 | 国产高清视频在线播放 | 精品福利国产 | 国产剧情一区二区 | 精品久久久久久久久久久久 | 成人久久| 日韩精品一区二区三区免费观看视频 | 日本成人黄色片 | 久久激情视频 久久 | 国产九九在线 | 91九色九色| 免费精品国产 | 国产精品久久久久久爽爽爽 | 一区二区三区四区五区六区 | 日韩极品视频在线观看 | 日韩成人邪恶影片 | 性色va | 18做爰免费视频网站 | 狠狠做深爱婷婷综合一区 | 欧美 另类 交 | 99国内精品久久久久久久 | 三级性生活视频 | 久久视频中文字幕 | 麻豆va一区二区三区久久浪 | 色综合国产| 草久在线播放 | 97视频在线免费播放 | 美女网站久久 | 国产成人av在线影院 | 美女免费视频一区 | 中文字幕在线观看1 | a特级毛片 | 久久激情精品 | 中文字幕在线人 | 久久一线 | 欧美精品国产综合久久 | 色婷婷88av视频一二三区 | 91av福利视频 | 国内精品视频在线 | 狠狠躁夜夜躁人人爽视频 | 高清精品久久 | 久久理论电影 | 成人三级黄色 | 中文字幕在线电影 | 国产无遮挡又黄又爽在线观看 | 丁香5月婷婷久久 | 99这里只有久久精品视频 | 国产亚洲视频中文字幕视频 | 美女视频黄网站 | 亚洲一区二区视频在线 | 国产免费av一区二区三区 | 日本精品视频在线播放 | a级片久久久 | 天天草天天干天天射 | 久久久成人精品 | 亚洲精品mv在线观看 | 久久成人高清 | 亚洲欧美成人综合 | 亚洲一区精品二人人爽久久 | 欧美aaa一级 | 插综合网 | 高清日韩一区二区 | 韩国一区在线 | 91丨九色丨高潮 | 三级小视频在线观看 | 久久亚洲综合国产精品99麻豆的功能介绍 | 日本大片免费观看在线 | 久久国产欧美日韩 | 天天干,天天射,天天操,天天摸 | 九九视频这里只有精品 | 狠狠色伊人亚洲综合成人 | 九九热av | 91精品成人 | 美女视频免费一区二区 | 99久久精品日本一区二区免费 | 欧美日韩国产一区二区三区在线观看 | 激情文学综合丁香 | 免费在线观看一级片 | 欧美另类69 | 成人av一区二区三区 | 国产精品原创av片国产免费 | 在线激情小视频 | 天天曰天天干 | 成人黄色电影在线播放 | 97色免费视频 | 五月天久久综合网 | 99精品久久久 | 精品专区一区二区 | 成人影视免费 | 亚洲欧洲中文日韩久久av乱码 | 日韩特黄一级欧美毛片特黄 | 少妇超碰在线 | 国产精品无av码在线观看 | 亚洲丝袜一区 | 美女黄久久 | 日韩免费三区 | 97香蕉久久国产在线观看 | 日本一区二区三区视频在线播放 | 香蕉久草| 99久久精品免费视频 | 久久精品999 | 免费人成网 | 国产成人一区二区三区在线观看 | 91免费在线视频 | 狠狠色丁香婷婷综合基地 | 免费a视频在线观看 | 婷婷久久网站 | 国产精品成人一区二区三区吃奶 | 欧美一级片在线免费观看 | 久草干 | 综合网伊人 | 国产亚洲精品久久久网站好莱 | www.av中文字幕.com | 日本精品在线 | 国产中文在线播放 | 亚州精品在线视频 | 久久久久成人精品亚洲国产 | 午夜狠狠干 | 97在线播放 | 国产免费成人av | 国产精品一级在线 | 国产精品久久久久久久久岛 | 91av国产视频 | 色偷偷88888欧美精品久久 | 一区二区三区国产精品 | 婷婷六月综合网 | 日韩视频www| 91av成人 | 在线观看免费 | 99久久婷婷国产精品综合 | 91看片在线 | 午夜影视剧场 | 日韩欧美视频在线免费观看 | 国产中文字幕国产 | 99中文视频在线 | 久久视频国产 | 国产精品美女毛片真酒店 | 国产视频精品视频 | 精品久久福利 | 中文字幕资源网在线观看 | 国产一区私人高清影院 | 国产97在线视频 | 激情在线免费视频 | 狠狠色丁香婷婷综合欧美 | 激情网五月婷婷 | 色婷婷成人网 | 国产视频精品久久 | 免费看wwwwwwwwwww的视频 久久久久久99精品 91中文字幕视频 | 在线中文字幕一区二区 | 国产对白av| 五月婷婷狠狠 | 国产精品久久久久久一二三四五 | 麻豆国产精品va在线观看不卡 | 91九色精品女同系列 | 久久精品婷婷 | 2020天天干天天操 | 蜜臀av夜夜澡人人爽人人桃色 | 欧美日韩91 | 91麻豆精品国产自产在线游戏 | 国产成人黄色 | 日日精品 | 黄色a三级| 91亚洲精品国偷拍自产在线观看 | 色婷婷国产 | 深夜国产福利 | 狠狠色丁香婷婷综合最新地址 | 亚洲欧美色婷婷 | 午夜视频导航 | 精品91在线 | 二区三区精品 | 天堂黄色片 | 日韩在线观看视频在线 | 在线看黄网站 | 国产免码va在线观看免费 | 国产自在线 | 玖玖爱免费视频 | 国产精品99免费看 | 国产视频日韩视频欧美视频 | 8x成人免费视频 | 久久都是精品 | 黄色国产区 | 国产青草视频在线观看 | 日韩成人欧美 | 91网页版在线观看 | www.久久色 | 国产精品色婷婷 | 日韩字幕在线 | 久久精品免费电影 | 最新国产福利 | 久久免费视频精品 | 伊人首页 | 久久久久久久亚洲精品 | 国产真实精品久久二三区 | 日韩久久精品一区二区 | 2024av| 色婷婷视频在线观看 | 国产资源精品在线观看 | 2018亚洲男人天堂 | 成人黄色在线视频 | 国内精品美女在线观看 | 日韩在线免费播放 | 91日韩在线专区 | 亚洲a资源| 国产一区二区不卡视频 | 激情欧美在线观看 | 伊人天天干| 国产精品自在欧美一区 | 久久久久久看片 | 午夜精品视频免费在线观看 | 国产亚洲亚洲 | 91中文字幕永久在线 | 精品在线观看国产 | 日韩欧美精品免费 | 日批视频在线观看免费 | 狠狠色丁香久久婷婷综合_中 | 国产麻豆剧果冻传媒视频播放量 | 欧美成人xxxx| 精品色999| 天天色棕合合合合合合 | 国产高清免费 | 五月婷婷导航 | 正在播放国产一区 | 黄色毛片在线看 | 超碰国产在线观看 | 丁香六月在线 | 毛片永久免费 | 狠狠操狠狠干天天操 | 大荫蒂欧美视频另类xxxx | 在线视频 区 | 国产精品99久久久久的智能播放 | 玖玖在线观看视频 | 国产成人一区二区三区在线观看 | 久人人 | 国产一区在线播放 | 在线亚洲人成电影网站色www | 成人av资源 | 国产最顶级的黄色片在线免费观看 | 91中文字幕在线 | 国产成人精品久久久久蜜臀 | 久久人人干 | 色综合久久久久久久久五月 | 五月开心婷婷网 | 国产精品99久久久久久武松影视 | 欧美精品在线免费 | 欧美色图东方 | 欧美一区在线看 | 欧美一级片在线 | 揉bbb玩bbb少妇bbb | 亚洲激精日韩激精欧美精品 | 久久在线观看视频 | 视频国产一区二区三区 | 99精品一区二区三区 | 日韩精品五月天 | 97精品伊人 | 精品久久国产精品 | 波多野结衣久久资源 | 免费美女久久99 | 亚洲欧洲精品一区二区 | 亚洲免费视频观看 | 中文字幕人成乱码在线观看 | 麻豆国产在线视频 | 国产资源网站 | 亚洲午夜久久久久久久久 | 日韩中文字幕免费在线观看 | 日韩动漫免费观看高清完整版在线观看 | 91精品一区二区三区蜜桃 | 欧美 日韩 成人 | 亚洲九九九在线观看 | 亚洲黄色软件 | 久久免费中文视频 | 国产美女免费看 | 色偷偷88888欧美精品久久 | 国产成a人亚洲精v品在线观看 | 成片免费观看视频 | 少妇高潮流白浆在线观看 | 婷婷六月综合亚洲 | 视频在线亚洲 | 最近中文字幕免费观看 | 久久精品视频中文字幕 | 看片黄网站| 色午夜 | 婷色在线 | 久久国产精品99久久久久久丝袜 | 久久综合毛片 | 91在线免费观看网站 | 日日干日日 | 中文字幕在线有码 | 久久天天躁夜夜躁狠狠躁2022 | 成人精品视频久久久久 | 精品国产一区二区三区男人吃奶 | 精品综合久久久 | 国产成人精品999在线观看 | 国产一级电影 | 日本mv大片欧洲mv大片 | 色婷婷免费 | 国产精品99久久久久 | 麻豆 91 在线 | 国产欧美精品xxxx另类 | 久久免费视屏 | 在线激情av电影 | 激情婷婷久久 | 96看片 | 久要激情网 | av中文天堂 | 在线看日韩av | 日韩中文字幕在线不卡 | 欧美成人猛片 | 婷婷六月综合网 | 中文电影网 | 视频91| 免费又黄又爽 | 在线观看视频99 | 中文av在线天堂 | a级片久久| 色综合网 | 五月婷婷播播 | 欧美激情另类 | 亚洲欧美色婷婷 | 91刺激视频 |