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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

网络设备驱动程序

發布時間:2024/9/21 编程问答 54 豆豆
生活随笔 收集整理的這篇文章主要介紹了 网络设备驱动程序 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1.1? 網絡設備的特殊性

網絡設備作為Linux的三類設備之一,有非常特殊的地方。每一個字符設備或塊設備在文件系統中都有一個相應的特殊設備文件來表示該設備,如/dev/hda1、/dev/sda1、/dev/tty1等。網絡設備與它們不同,所有網絡設備都抽象為一個接口,這個接口提供了對所有網絡設備的操作集合。網絡接口不存在于Linux的文件系統中,在/dev目錄下沒有對應的設備名,但每個網絡設備有自己的設備名稱,從設備名稱可以看出設備類型,如lo表示回環設備,eth表示以太網設備。同類型的多個設備從0向上編號,如以太網設備的編號為 eth0、eth1…ethn等。使用ifconfig命令可以查看當前活動的網卡信息。

  • [root@/home]ifconfig ?
  • eth0??????Link?encap:Ethernet??HWaddr?00:0C:29:10:26:00?? ?
  • ??????????inet?addr:192.168.1.101??Bcast:192.168.1.255??Mask:255.255.255.0 ?
  • ??????????inet6?addr:?fe80::20c:29ff:fe10:2600/64?Scope:Link ?
  • ??????????UP?BROADCAST?RUNNING?MULTICAST??MTU:1500??Metric:1 ?
  • ??????????RX?packets:14106?errors:0?dropped:0?overruns:0?frame:0 ?
  • ??????????TX?packets:21977?errors:0?dropped:0?overruns:0?carrier:0 ?
  • ??????????collisions:0?txqueuelen:1000? ?
  • ??????????RX?bytes:1416177?(1.3?MiB)??TX?bytes:22373971?(21.3?MiB) ?
  • ??????????Interrupt:16?Base?address:0x2024? ?
  • lo????????Link?encap:Local?Loopback?? ?
  • ??????????inet?addr:127.0.0.1??Mask:255.0.0.0 ?
  • ??????????inet6?addr:?::1/128?Scope:Host ?
  • ??????????UP?LOOPBACK?RUNNING??MTU:16436??Metric:1 ?
  • ??????????RX?packets:3273?errors:0?dropped:0?overruns:0?frame:0 ?
  • ??????????TX?packets:3273?errors:0?dropped:0?overruns:0?carrier:0 ?
  • ??????????collisions:0?txqueuelen:0? ?
  • ??????????RX?bytes:6961876?(6.6?MiB)??TX?bytes:6961876?(6.6?MiB) ?
  • 網絡應用程序通過Socket套接字接口、網絡協議層、網絡驅動程序訪問網絡設備。Linux的網絡系統主要基于BSD UNIX的socket機制。在網絡子系統和驅動程序之間定義有專門的數據結構(sk_buff)進行數據的傳遞。Linux網絡子系統為系統提供協議層支持、數據緩沖和流量控制等。

    1.2? sk_buff結構

    sk_buff結構是整個Linux內核網絡子系統中最核心的數據結構。Linux網絡各層之間的數據傳送都要通過sk_buff結構。sk_buff結構定義如下:

  • struct?sk_buff?{ ?
  • ????struct?sk_buff??????*next;?//雙向鏈表指針 ?
  • ????struct?sk_buff??????*prev; ?
  • ????struct?sock?????????*sk;?//?擁有這個sk_buff的sock結構 ?
  • ????ktime_t?????????tstamp;?//到達或發送的時間戳 ?
  • ????struct?net_devic????e???*dev;//關聯的網絡設備 ?
  • ????????struct??dst_entry???*dst;?//?路由子系統中使用 ?
  • ????struct??sec_path????????*sp;?//?IPSec協議用于跟蹤傳輸的信息 ?
  • ????char????????????cb[48];//各層私有數據 ?
  • ????unsigned?int????????len,?//當前協議數據包的長度 ?
  • ????????????????data_len;?//分片中數據的長度 ?
  • ????__u16???mac_len,//mac頭的長度 ?
  • ????????????hdr_len; ?
  • ????union?{ ?
  • ????????__wsum??????csum; ?
  • ????????struct?{ ?
  • ????????????__u16???csum_start; ?
  • ????????????__u16???csum_offset; ?
  • ????????}; ?
  • ????}; ?
  • ????__u32???????priority; ?
  • ????__u8????????local_df:1, ?
  • ????????????????cloned:1, ?
  • ????????????????ip_summed:2, ?
  • ????????????????nohdr:1, ?
  • ????????????????nfctinfo:3; ?
  • ????__u8????????pkt_type:3,//?幀的類型 ?
  • ????????????????fclone:2, ?
  • ????????????????ipvs_property:1, ?
  • ????????????????nf_trace:1; ?
  • ????__be16??????protocol;//協議,包括IP、IPV6、ARP等 ?
  • ???//?在緩沖區釋放時完成某些動作的函數 ?
  • ????void????????????(*destructor)(struct?sk_buff?*skb); ?
  • #if?defined(CONFIG_NF_CONNTRACK)?||?defined(CONFIG_NF_CONNTRACK_MODULE) ?
  • ????struct?nf_conntrack?*nfct; ?
  • ????struct?sk_buff??????*nfct_reasm; ?
  • ????#endif ?
  • ????#ifdef?CONFIG_BRIDGE_NETFILTER?//netfilter防火墻使用 ?
  • ????struct?nf_bridge_info???*nf_bridge; ?
  • ????#endif ?
  • ????int?????????????iif; ?
  • ????#ifdef?CONFIG_NETDEVICES_MULTIQUEUE ?
  • ????__u16???????????queue_mapping; ?
  • ????#endif ?
  • ????#ifdef?CONFIG_NET_SCHED ?
  • ????__u16???????????tc_index; ?
  • ????#ifdef?CONFIG_NET_CLS_ACT ?
  • ????__u16???????????tc_verd;????/*流量控制機制*/ ?
  • ????#endif ?
  • ????#endif ?
  • ????#ifdef?CONFIG_NET_DMA ?
  • ????dma_cookie_t????????dma_cookie; ?
  • ????#endif ?
  • ????#ifdef?CONFIG_NETWORK_SECMARK ?
  • ????__u32???????????secmark; ?
  • ????#endif ?
  • ????__u32???????????mark; ?
  • ????sk_buff_data_t??????transport_header;//傳輸層頭部 ?
  • ????sk_buff_data_t??????network_header;//網絡層頭部 ?
  • ????sk_buff_data_t??????mac_header;//MAC層頭部 ?
  • ????sk_buff_data_t??????tail; ?
  • ????sk_buff_data_t??????end; ?
  • ????unsigned?char???????*head,*data;//數據區 ?
  • ????unsigned?int????????truesize;//真實大小 ?
  • ????atomic_t????????users;?//?引用計數 ?
  • }; ?
  • 1.3? Linux網絡設備驅動程序架構

    網絡設備被抽象為統一的接口供系統訪問,應用層對各種網絡設備的訪問都采用統一的形式,也就是套接字形式,它具有硬件無關性。

    網絡設備驅動程序最重要的結構是struct net_device。struct net_device結構保存一個網絡接口的重要信息,是網絡驅動程序的核心。struct net_device結構非常龐大,下面介紹該結構中幾個最重要的成員:

  • struct?net_device ?
  • { ?
  • ????char?????name[IFNAMSIZ];?//設備名 ?
  • ????struct?hlist_node???name_hlist; ?
  • ????unsigned?long???????mem_end;?//共享內存的尾地址 ?
  • ????unsigned?long???????mem_start;?//共享內存的首地址 ?
  • ????unsigned?long???????base_addr;?//設備的I/O地址 ?
  • ????unsigned?int????????irq;?//設備的中斷號 ?
  • ????unsigned?char???????if_port; ?
  • ????unsigned?char???????dma;????//設備用的DMA通道 ?
  • ????unsigned?long???????state; ?
  • ????struct?list_head????dev_list; ?
  • ????int?(*init)(struct?net_device?*dev);//設備初始化函數 ?
  • ????unsigned?long???????features;//設備特性 ?
  • ????struct?net_device???*next_sched; ?
  • ????int?????????ifindex; ?
  • ????int?????????iflink; ?
  • ????struct?net_device_stats*?(*get_stats)(struct?net_device?*dev);//獲取統計數據 ?
  • ????struct?net_device_stats?stats;//統計數據 ?
  • ????… ?
  • ????int?(*hard_start_xmit)?(struct?sk_buff?*skb,struct?net_device?*dev);//數據發送 ?
  • ????const?struct?ethtool_ops?*ethtool_ops; ?
  • ????const?struct?header_ops?*header_ops; ?
  • ????int??(*open)(struct?net_device?*dev);?//打開網絡接口 ?
  • ????int??(*stop)(struct?net_device?*dev);//關閉網絡接口 ?
  • ????void?????(*change_rx_flags)(struct?net_device?*dev,int?flags); ?
  • ????void?????(*set_rx_mode)(struct?net_device?*dev); ?
  • ????//配置多播地址鏈表 ?
  • ????void?????(*set_multicast_list)(struct?net_device?*dev); ?
  • ????//配置MAC地址 ?
  • ????int??(*set_mac_address)(struct?net_device?*dev,void?*addr); ?
  • ????int??(*validate_addr)(struct?net_device?*dev);?//地址驗證 ?
  • ????//執行特殊的ioctl命令 ?
  • ????int??(*do_ioctl)(struct?net_device?*dev,struct?ifreq?*ifr,?int?cmd); ?
  • ????//改變接口配置 ?
  • ????int??(*set_config)(struct?net_device?*dev,struct?ifmap?*map); ?
  • ????//當MTU改變時驅動程序要做一些特殊的事情,就應該寫這個函數 ?
  • ????int??(*change_mtu)(struct?net_device?*dev,?int?new_mtu); ?
  • ????void?????(*tx_timeout)?(struct?net_device?*dev);?//發送超時處理 ?
  • ????void?????(*vlan_rx_register)(struct?net_device?*dev,struct?vlan_group?*grp); ?
  • ????void?????(*vlan_rx_add_vid)(struct?net_device?*dev,unsigned?short?vid); ?
  • ????void?????(*vlan_rx_kill_vid)(struct?net_device?*dev,unsigned?short?vid); ?
  • ????int??(*neigh_setup)(struct?net_device?*dev,?struct?neigh_parms?*); ?
  • ????… ?
  • }; ?
  • 網絡設備注冊和注銷函數原型如下:
  • int?register_netdev(struct?net_device?*dev); ?
  • void?unregister_netdev(struct?net_device?*dev);?
  • 網絡設備驅動程序與網絡子系統直接交互。兩者交互的基本單位是sk_buff結構。網絡系統下發數據要通過dev_queue_xmit函數,而dev_queue_xmit函數會調用網絡設備的hard_start_xmit接口。網絡設備收到數據后會產生一個中斷,在中斷處理程序中驅動程序申請一塊sk_buff,從硬件讀出數據放置到申請好的緩沖區里,接下來填充sk_buff中的一些成員,最后驅動程序調用netif_rx把數據傳送給協議層,netif_rx將數據放入處理隊列然后返回,真正的處理是在中斷返回以后,這樣可以減少中斷時間。
  • int?dev_queue_xmit(struct?sk_buff?*skb); ?
  • int?(*hard_start_xmit)?(struct?sk_buff?*skb,struct?net_device?*dev); ?
  • int?netif_rx(struct?sk_buff?*skb); ?
  • 網絡設備驅動程序的主要功能是實現struct net_device中的函數接口。

    (1)open接口

  • int??(*open)(struct?net_device?*dev);?
  • open接口在網絡設備被激活的時候被調用。它主要完成資源和中斷的申請、DMA的注冊等工作。使用ifconfig命令可以激活網絡設備。

    (2)hard_start_xmit接口

  • int?(*hard_start_xmit)?(struct?sk_buff?*skb,struct?net_device?*dev);?
  • hard_start_xmit接口用來將網絡子系統發來的數據通過網卡發送到物理網絡。struct net_device中沒有讀數據接口,讀數據一般在網卡中斷中處理。

    (3)get_stats接口

  • struct?net_device_stats*?(*get_stats)(struct?net_device?*dev);?
  • get_stats函數返回一個net_device_stats結構,該結構保存了所管理的網絡設備接口的詳細的流量與錯誤統計信息:
  • struct?net_device_stats ?
  • { ?
  • ????unsigned?long???rx_packets;//接收的總包數 ?
  • ????unsigned?long???tx_packets;//發送的總包數 ?
  • ????unsigned?long???rx_bytes;???//接收總字節數 ?
  • ????unsigned?long???tx_bytes;?//發送總字節數 ?
  • ????unsigned?long???rx_errors;??//收到的錯包數量 ?
  • ????unsigned?long???tx_errors;??//發送的錯包數量 ?
  • ????unsigned?long???rx_dropped;//丟棄的接收包數量 ?
  • ????unsigned?long???tx_dropped;?//丟棄的發送包數量 ?
  • ????unsigned?long???multicast;??//接收的多播包數 ?
  • ????unsigned?long???collisions; ?
  • ????/*詳細的接收錯誤*/ ?
  • ????unsigned?long???rx_length_errors;//長度錯誤 ?
  • ????unsigned?long???rx_over_errors;//環行緩沖溢出錯誤 ?
  • ????unsigned?long???rx_crc_errors;??//CRC校驗錯誤 ?
  • ????unsigned?long???rx_frame_errors;//幀對齊錯誤 ?
  • ????unsigned?long???rx_fifo_errors;?//接收緩沖溢出錯誤 ?
  • ????unsigned?long???rx_missed_errors;//接收者遺漏錯誤 ?
  • ????/*詳細的發送錯誤*/ ?
  • ????unsigned?long???tx_aborted_errors; ?
  • ????unsigned?long???tx_carrier_errors; ?
  • ????unsigned?long???tx_fifo_errors; ?
  • ????unsigned?long???tx_heartbeat_errors; ?
  • ????unsigned?long???tx_window_errors; ?
  • ???? ?
  • ????unsigned?long???rx_compressed; ?
  • ????unsigned?long???tx_compressed; ?
  • }; ?
  • (4)do_ioctl接口
  • int??(*do_ioctl)(struct?net_device?*dev,struct?ifreq?*ifr,?int?cmd);?
  • Linux有一些特定的socket ioctl,定義在sockios.h頭文件中。網絡子系統一般已經實現了這些ioctl命令,也有的命令需要在自定義的驅動程序中實現。常用的ioctl命令有:
  • #define?SIOCGIFMTU???????0x8921?????/*獲取MTU大小*/ ?
  • #define?SIOCSIFMTU???????0x8922?????/*配置MTU大小*/ ?
  • #define?SIOCSIFNAME??????0x8923?????/*配置接口名稱*/ ?
  • #define?SIOCSIFHWADDR??0x8924???????/*配置硬件地址*/ ?
  • #define?SIOCGIFENCAP?????0x8925?????/*獲取封裝屬性*/ ?
  • #define?SIOCSIFENCAP?????0x8926?????/*配置封裝屬性*/ ?
  • #define?SIOCGIFHWADDR????0x8927?????/*獲取硬件地址*/ ?
  • #define?SIOCADDMULTI?????0x8931?????/*增加廣播地址*/ ?
  • #define?SIOCDELMULTI?????0x8932?????????/*刪除廣播地址*/ ?
  • #define?SIOCGIFBRDADDR?0x8919???????/*得到廣播地址*/ ?
  • #define?SIOCSIFBRDADDR???0x891a?????/*配置廣播地址*/ ?
  • 例1.11? 使用SIOCGIFHWADDR獲取MAC地址

    本例介紹如何使用SIOCGIFHWADDR獲取網卡MAC地址。參考代碼如下:

  • int?fd;? ?
  • struct?ifreq?ifr; ?
  • fd?=?socket(AF_INET,?SOCK_DGRAM,?0);? ?
  • ifr.ifr_addr.sa_family?=?AF_INET;? ?
  • strncpy(ifr.ifr_name,?"eth0",?IFNAMSIZ-1);? ?
  • ioctl(fd,?SIOCGIFHWADDR,?&ifr);? ?
  • close(fd);? ?
  • printf("%.2x:%.2x:%.2x:%.2x:%.2x:%.2x\n",? ?
  • (unsigned?char)ifr.ifr_hwaddr.sa_data[0],? ?
  • (unsigned?char)ifr.ifr_hwaddr.sa_data[1],? ?
  • (unsigned?char)ifr.ifr_hwaddr.sa_data[2],? ?
  • (unsigned?char)ifr.ifr_hwaddr.sa_data[3],? ?
  • (unsigned?char)ifr.ifr_hwaddr.sa_data[4],? ?
  • (unsigned?char)ifr.ifr_hwaddr.sa_data[5]); ?
  • do_ioctl一般用來實現驅動程序私有的ioctl命令,命令的類型在SIOCDEVPRIVATE和SIOCDEVPRIVATE+15之間。

    (5)set_multicast_list接口

  • void?????(*set_multicast_list)(struct?net_device?*dev);?
  • set_multicast_list接口在設備地址更改或dev->flags 被修改時調用。在以太網的默認初始化函數中,dev->flags被配置為IFF_BROADCAST|IFF_MULTICAST,表示以太網卡是可廣播的,并且是能夠進行組播發送的。對dev->flags配置或清除IFF_PROMISC標志時,會調用set_multicast_list函數通知板卡上的硬件過濾器。

    (6)set_mac_address接口

  • int?set_mac_address(struct?net_device?*dev,?void?*p)?
  • 該接口用來配置網絡設備的MAC地址,MAC地址就存放在p指針中。

    (7)stop接口

  • int??(*stop)(struct?net_device?*dev);?
  • stop接口在網卡狀態由up轉為down時被調用,一般用來釋放資源。

    例1.12? 虛擬網絡設備驅動程序實例

    下面的例子是一個虛擬網卡驅動程序,代碼見光盤\src\1drivermodel\1-11net。核心代碼如下所示:

  • static?char??netbuffer[100]; ?
  • struct?net_device?*simnetdevs; ?
  • void?simnetrx(struct?net_device?*dev,?int?len,?unsigned?char?*buf) ?
  • { ?
  • ????struct?sk_buff?*skb; ?
  • ????struct?simnetpriv?*priv?=?(struct?simnetpriv?*)?dev->priv; ?
  • ????skb?=?dev_alloc_skb(len+2); ?
  • ????if?(!skb)?{ ?
  • ????????printk("simnetrx?can?not?allocate?more?memory?to?store?the?packet.?drop?the?packet\n"); ?
  • ????????priv->stats.rx_dropped++; ?
  • ????????return; ?
  • ????} ?
  • ????skb_reserve(skb,?2); ?
  • ????memcpy(skb_put(skb,?len),?buf,?len); ?
  • ????skb->devdev?=?dev; ?
  • ????skb->protocol?=?eth_type_trans(skb,?dev); ?
  • ????/*?不需要校驗?*/ ?
  • ????skb->ip_summed?=?CHECKSUM_UNNECESSARY;? ?
  • ????priv->stats.rx_packets++; ?
  • ????netif_rx(skb);//將數據送入內核網絡層 ?
  • ????return; ?
  • } ?
  • static?irqreturn_t?simnet_interrupt?(int?irq,?void?*dev_id) ?
  • { ?
  • ????struct?net_device?*dev; ?
  • ????dev?=?(struct?net_device?*)?dev_id; ?
  • ????//從硬件獲取數據 ?
  • ????simnetrx(dev,100,netbuffer); ?
  • ????return?IRQ_HANDLED; ?
  • } ?
  • int?simnetopen(struct?net_device?*dev) ?
  • { ?
  • ????int?ret=0; ?
  • ????printk("simnetopen\n"); ?
  • ????//申請中斷 ?
  • ????ret?=?request_irq(IRQ_NET_CHIP,?simnet_interrupt,?IRQF_SHARED,dev->name,?dev); ?
  • ????if?(ret)?return?ret; ?
  • ????printk("request_irq?ok\n"); ?
  • ????netif_start_queue(dev); ?
  • ????return?0; ?
  • } ?
  • int?simnetrelease(struct?net_device?*dev) ?
  • { ?
  • ????printk("simnetrelease\n"); ?
  • ????netif_stop_queue(dev);?????????? ?
  • ????return?0; ?
  • } ?
  • //虛擬硬件發送 ?
  • void?simnethw_tx(char?*buf,?int?len,?struct?net_device?*dev) ?
  • { ?
  • ????struct?simnetpriv?*priv; ?
  • ????/*?長度檢查?*/ ?
  • ????if?(len?<?sizeof(struct?ethhdr)?+?sizeof(struct?iphdr)) ?
  • ????{ ?
  • ????????printk("Bad?packet!?It's?size?is?less?then?34!\n"); ?
  • ????????return; ?
  • ????} ?
  • ????/*?保存狀態*/ ?
  • ????priv?=?(struct?simnetpriv?*)?dev->priv; ?
  • ????priv->stats.tx_packets++; ?
  • ????priv->stats.rx_bytes?+=?len; ?
  • ????/*?釋放內存?*/ ?
  • ????dev_kfree_skb(priv->skb); ?
  • } ?
  • //發送數據包 ?
  • int?simnettx(struct?sk_buff?*skb,?struct?net_device?*dev) ?
  • { ?
  • ????int?len; ?
  • ????char?*data; ?
  • ????struct?simnetpriv?*priv?=?(struct?simnetpriv?*)?dev->priv; ?
  • ????len?=?skb->len?<?ETH_ZLEN???ETH_ZLEN?:?skb->len; ?
  • ????data?=?skb->data; ?
  • ????/*添加時間戳?*/ ?
  • ????dev->trans_start?=?jiffies; ?
  • ????//記錄skb以便在simnethw_tx中釋放 ?
  • ????priv->skbskb?=?skb; ?
  • ????simnethw_tx(data,?len,?dev); ?
  • ????return?0;? ?
  • } ?
  • //處理發送超時 ?
  • void?simnettx_timeout?(struct?net_device?*dev) ?
  • { ?
  • ????struct?simnetpriv?*priv?=?(struct?simnetpriv?*)?dev->priv; ?
  • ????priv->stats.tx_errors++; ?
  • ????netif_wake_queue(dev); ?
  • ????return; ?
  • } ?
  • //?ioctl控制 ?
  • int?simnetioctl(struct?net_device?*dev,?struct?ifreq?*rq,?int?cmd) ?
  • { ?
  • ????return?0; ?
  • } ?
  • struct?net_device_stats?*simnetstats(struct?net_device?*dev) ?
  • { ?
  • ????struct?simnetpriv?*priv?=?(struct?simnetpriv?*)?dev->priv; ?
  • ????return?&priv->stats; ?
  • } ?
  • //變更mtu ?
  • int?simnetchange_mtu(struct?net_device?*dev,?int?new_mtu) ?
  • { ?
  • ????unsigned?long?flags; ?
  • ????spinlock_t?*lock?=?&((struct?simnetpriv?*)?dev->priv)->lock; ?
  • ????if?(new_mtu?<?68) ?
  • ????????return?-EINVAL; ?
  • ????spin_lock_irqsave(lock,?flags); ?
  • ????dev->mtu?=?new_mtu; ?
  • ????spin_unlock_irqrestore(lock,?flags); ?
  • ????return?0;? ?
  • } ?
  • //設備初始化 ?
  • void?simnetinit(struct?net_device?*dev) ?
  • { ?
  • ????struct?simnetpriv?*priv; ?
  • ????ether_setup(dev); ?
  • ????dev->open=?simnetopen; ?
  • ????dev->stop=?simnetrelease; ?
  • ????dev->hard_start_xmit?=?simnettx; ?
  • ????dev->do_ioctl=?simnetioctl; ?
  • ????dev->get_stats=?simnetstats; ?
  • ????dev->change_mtu?=?simnetchange_mtu;?? ?
  • ????dev->tx_timeout?=?simnettx_timeout; ?
  • ????//配置MAC地址,注意如果(0x01?&?addr[0])為真,則是multicast地址 ?
  • ????dev->dev_addr[0]?=?0x18; ?
  • ????dev->dev_addr[1]?=?0x02; ?
  • ????dev->dev_addr[2]?=?0x03; ?
  • ????dev->dev_addr[3]?=?0x04; ?
  • ????dev->dev_addr[4]?=?0x05; ?
  • ????dev->dev_addr[5]?=?0x06; ?
  • ????dev->flags|=?IFF_NOARP;//不支持ARP ?
  • ????dev->features|=?NETIF_F_NO_CSUM; ?
  • ????priv?=?netdev_priv(dev); ?
  • ????memset(priv,?0,?sizeof(struct?simnetpriv)); ?
  • ????spin_lock_init(&priv->lock); ?
  • } ?
  • //模塊卸載 ?
  • void?simnetcleanup(void) ?
  • { ?
  • ????if?(simnetdevs)? ?
  • ????{ ?
  • ????????unregister_netdev(simnetdevs); ?
  • ????????free_netdev(simnetdevs); ?
  • ????} ?
  • ????return; ?
  • } ?
  • //模塊初始化 ?
  • int?simnetinit_module(void) ?
  • { ?
  • ????int?result,ret?=?-ENOMEM; ?
  • ????//分配網絡設備 ?
  • ????simnetdevs=alloc_netdev(sizeof(struct?simnetpriv),?"eth%d", ?
  • ????????????simnetinit); ?
  • ????if?(simnetdevs?==?NULL) ?
  • ????????goto?out; ?
  • ????ret?=?-ENODEV; ?
  • ????//注冊網絡設備 ?
  • ????if?((result?=?register_netdev(simnetdevs))) ?
  • ????????printk("demo:?error?%i?registering?device?\"%s\"\n",result,?simnetdevs->name); ?
  • ????else ?
  • ????????ret?=?0; ?
  • out: ?
  • ????if?(ret)? ?
  • ????????simnetcleanup(); ?
  • ????return?ret; ?
  • } ?
  • module_init(simnetinit_module); ?
  • module_exit(simnetcleanup); ?
  • 運行結果如下:
  • [root@urbetter?/home]#?insmod??demo.ko? ?
  • [root@urbetter?/home]#?ifconfig?eth1?192.168.1.23 ?
  • simnetopen ?
  • request_irq?ok ?
  • [root@urbetter?/home]#?ifconfig?eth1?up ?
  • [root@urbetter?/home]#?ping?192.168.1.23 ?
  • PING?192.168.1.23?(192.168.1.23):?56?data?bytes ?
  • 64?bytes?from?192.168.1.23:?seq=0?ttl=64?time=1.347?ms ?
  • 64?bytes?from?192.168.1.23:?seq=1?ttl=64?time=0.301?ms ?
  • 64?bytes?from?192.168.1.23:?seq=2?ttl=64?time=0.266?ms ?
  • ^C ?
  • ---?192.168.1.23?ping?statistics?--- ?
  • 3?packets?transmitted,?3?packets?received,?0%?packet?loss ?
  • round-trip?min/avg/max?=?0.266/0.638/1.347?ms ?
  • [root@urbetter?/home]#?ifconfig?eth1 ?
  • eth1??????Link?encap:Ethernet??HWaddr?18:02:03:04:05:06?? ?
  • ??????????inet?addr:192.168.1.23??Bcast:192.168.1.255??Mask:255.255.255.0 ?
  • ??????????UP?BROADCAST?RUNNING?NOARP?MULTICAST??MTU:1500??Metric:1 ?
  • ??????????RX?packets:0?errors:0?dropped:0?overruns:0?frame:0 ?
  • ??????????TX?packets:0?errors:0?dropped:0?overruns:0?carrier:0 ?
  • ??????????collisions:0?txqueuelen:1000? ?
  • ??????????RX?bytes:0?(0.0?B)??TX?bytes:0?(0.0?B) ?
  • [root@urbetter?/home]#?ifconfig?eth1?192.168.1.26 ?
  • [root@urbetter?/home]#?ifconfig?eth1?down ?
  • simnetrelease ?
  • [root@urbetter?/home]#?ifconfig?eth1?192.168.1.26 ?
  • simnetopen ?
  • request_irq?ok ?

  • 總結

    以上是生活随笔為你收集整理的网络设备驱动程序的全部內容,希望文章能夠幫你解決所遇到的問題。

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

    国产不卡在线观看视频 | 亚洲精品乱码久久久久久蜜桃动漫 | 99视频在线免费播放 | 狠狠狠狠狠狠干 | a黄色影院 | 五月天视频网 | 久久久久久综合网天天 | 一区二区三区在线不卡 | 久草a在线 | 亚洲v欧美v国产v在线观看 | 探花视频免费观看高清视频 | 国产在线观| 国产精品一区二区在线免费观看 | 中文免费在线观看 | 亚洲午夜精品一区二区三区电影院 | 一级片视频在线 | av在线播放网址 | 最近中文字幕完整高清 | 丰满少妇高潮在线观看 | 亚洲天堂毛片 | 日韩视频免费观看高清 | 911国产| 99久久精品一区二区成人 | 激情影音 | 丝袜美腿av| 日韩免费看的电影 | 激情综合网五月婷婷 | 久久久精品免费观看 | 久视频在线| 日日爽夜夜爽 | 欧美极品一区二区三区 | 久久国产免费看 | 亚洲综合小说电影qvod | 国产亚洲精品久久久久久久久久 | 成人影视免费 | 久久小视频 | 狠狠操导航 | 亚洲免费视频在线观看 | 2018亚洲男人天堂 | 日韩精品一区二区在线观看 | 黄色一级性片 | 婷婷日| 亚洲激情视频在线观看 | 999超碰 | 亚洲aⅴ免费在线观看 | 韩日成人av | 久久综合免费视频 | 97在线观看免费观看高清 | 国产亚洲观看 | 国产精彩在线视频 | 久草电影免费在线观看 | av在线免费网 | 亚洲精品伦理在线 | 97超碰福利久久精品 | 五月色婷| 色av男人的天堂免费在线 | a视频在线观看免费 | 丁香婷婷基地 | 超碰公开97 | 国产99在线 | 亚洲精品美女久久久久网站 | 久久精品一区 | 欧美性生活大片 | 国产精品毛片久久久久久久 | 黄色视屏在线免费观看 | 亚洲一区二区精品视频 | 一区二区三区在线免费播放 | 韩日视频在线 | 看片网站黄 | 国产专区视频在线 | 欧美一级久久 | 久久99精品国产 | 久久综合欧美 | 国产专区在线看 | 五月天六月色 | 婷婷国产一区二区三区 | 免费久久久久久久 | 激情视频免费观看 | 成年人黄色免费网站 | 国产九九热 | 五月婷婷操 | 三日本三级少妇三级99 | 亚洲国产精品999 | 婷婷在线五月 | 天天干中文字幕 | 国产午夜精品在线 | 91香蕉视频在线下载 | 五月综合婷 | 亚洲另类视频在线观看 | 手机av电影在线观看 | 在线亚洲小视频 | 亚洲精品玖玖玖av在线看 | 99热播精品 | 日韩高清激情 | 少妇性色午夜淫片aaaze | 99精品电影 | 日本成人免费在线观看 | 97自拍超碰| 久久永久免费 | 午夜狠狠干 | 久草免费在线观看 | 在线亚洲小视频 | 欧美精品一区二区三区一线天视频 | 亚洲国产中文在线 | 中文字幕在线观看视频网站 | 久久视频国产精品免费视频在线 | 国产高清不卡一区二区三区 | 欧美网址在线观看 | 日日日日日 | 日韩精品一区二区三区视频播放 | 日韩免费电影网 | 国产精品一区电影 | 国产99久久九九精品 | 美女在线免费视频 | 亚洲精品国产视频 | 久久香蕉国产精品麻豆粉嫩av | 99精品视频免费观看视频 | 久久与婷婷 | 正在播放一区二区 | 亚洲综合成人婷婷小说 | 亚洲另类人人澡 | 久草综合视频 | 一区二区三区韩国免费中文网站 | 99久久日韩精品免费热麻豆美女 | 久久久国产99久久国产一 | 国产日产av | 999国内精品永久免费视频 | 九九热只有精品 | 97av在线| 精品在线观看一区二区三区 | 久久精彩免费视频 | 欧美a视频在线观看 | 亚洲免费观看视频 | 五月天久久综合 | 国产一区二区高清不卡 | 国产永久免费高清在线观看视频 | 波多野结衣电影久久 | 国产一级免费在线 | 亚洲国产精品一区二区久久,亚洲午夜 | 国产精品美女久久久久久免费 | 成人av资源在线 | 波多野结衣理论片 | 天天射射天天 | 麻豆91在线 | 91免费网站在线观看 | 最近中文字幕高清字幕在线视频 | 美女视频黄免费的久久 | 久久国产美女视频 | 国产精品18久久久久久久久 | 99久久9| 国产精品亚洲综合久久 | 亚洲人在线视频 | 亚洲国产日韩av | 国产美女在线免费观看 | 久久九九免费视频 | 亚洲女人天堂成人av在线 | 91手机视频 | 久久久久激情 | 国产免费黄色 | 亚洲精品国产精品久久99热 | 国产又粗又猛又黄又爽 | 婷婷激情影院 | 国产精品久久亚洲 | 日本中文字幕网站 | 夜夜干夜夜| 亚洲免费在线观看视频 | 99理论片 | 日韩欧美视频一区二区 | 国产高清av | 日日爽视频 | 中国美女一级看片 | 国产一级一片免费播放放 | 国产视频一区在线免费观看 | 欧美精品亚州精品 | 91色一区二区三区 | 99色网站 | 欧美日韩xxx| 久久免费观看少妇a级毛片 久久久久成人免费 | 欧美一级片免费观看 | 日日夜夜精品免费观看 | 国产精品视频久久 | 日本福利视频在线 | 99视频免费播放 | 三级动图 | 在线成人性视频 | 欧美激情奇米色 | a色网站 | 国产精品v欧美精品v日韩 | 婷婷开心久久网 | 久久精品久久精品 | 国产精品黄色 | 三级黄色a | 欧美在线观看视频 | 视频直播国产精品 | 成人免费视频网址 | 国产中文在线字幕 | 欧美天堂久久 | 在线观看一级 | 久久午夜精品影院一区 | 欧美最猛性xxxxx亚洲精品 | 日韩黄色免费电影 | 免费亚洲视频在线观看 | 免费观看性生活大片 | 国产美女精品视频免费观看 | 天天天天天操 | ,午夜性刺激免费看视频 | 成人av电影免费观看 | 亚洲黄网站 | 97免费| 国产精品嫩草55av | 天天色天天草天天射 | 最新超碰在线 | 日韩三级久久 | 在线观看国产永久免费视频 | 正在播放久久 | 国产一级一片免费播放放a 一区二区三区国产欧美 | 毛片播放网站 | 波多野结衣理论片 | 在线观看免费视频你懂的 | 成人av网址大全 | 成人网在线免费视频 | 丁香五月缴情综合网 | 九九九在线 | 伊人黄色网 | 国产午夜在线观看视频 | 国产精品美女免费视频 | 天天躁天天躁天天躁婷 | 黄色日本免费 | 国产精品久久网站 | 在线视频 你懂得 | 婷婷深爱 | 十八岁以下禁止观看的1000个网站 | 91精品一区国产高清在线gif | 在线国产99| 国产中文a| 婷婷久久久久 | 91精品在线免费 | 最近中文字幕mv | 香蕉影院在线观看 | 97视频在线观看免费 | 久久精品国产精品亚洲 | 超碰在线91| 亚洲丁香久久久 | av大全免费在线观看 | 99精品视频中文字幕 | 91伊人久久大香线蕉蜜芽人口 | av免费在线看网站 | 一区久久久 | av动态图片 | 91亚洲精品久久久久图片蜜桃 | 亚洲精品国产品国语在线 | 麻花豆传媒mv在线观看 | 粉嫩av一区二区三区四区在线观看 | 激情av在线播放 | 天天操夜夜干 | 91激情| 私人av | 久久大片网站 | 亚洲欧美日韩国产一区二区三区 | 伊人欧美| 免费看的黄色小视频 | 日韩高清无线码2023 | 在线观看视频免费播放 | 播五月综合 | 中文字幕视频免费观看 | 超碰人人av | 亚洲国产欧洲综合997久久, | 色偷偷88欧美精品久久久 | 色噜噜日韩精品欧美一区二区 | 国产偷国产偷亚洲清高 | 视频在线一区二区三区 | 久草在线国产 | 精品极品在线 | 日韩免费观看一区二区 | 国产手机av在线 | 国产资源网站 | 欧美亚洲精品一区 | 91精品视频免费 | 色欧美成人精品a∨在线观看 | 又湿又紧又大又爽a视频国产 | 日日干影院 | 久久久久久久久久亚洲精品 | 色婷婷激情四射 | 毛片黄色一级 | 国产中文在线观看 | 国产夫妻性生活自拍 | 99热精品国产一区二区在线观看 | 中文国产在线观看 | 日韩理论片中文字幕 | 99久热在线精品视频 | 日韩视频一二三区 | 精品1区2区| 国产精品网站 | 九九九九免费视频 | 国产精品美女久久久久久网站 | 久久久高清一区二区三区 | .国产精品成人自产拍在线观看6 | 香蕉影视app| 亚洲精品国产精品国自产在线 | 国产偷v国产偷∨精品视频 在线草 | 五月婷丁香网 | 久久综合99 | 91在线亚洲 | 精品视频一区在线 | 狠狠色丁香婷婷综合基地 | 色国产视频| 国产黄色片在线免费观看 | 9在线观看免费高清完整版 玖玖爱免费视频 | 中文字幕免费观看 | japanese黑人亚洲人4k | 精品免费一区二区三区 | 国产精品涩涩屋www在线观看 | 日韩精品一卡 | 日韩在线视频一区 | 在线看片视频 | 国产亚洲精品久久 | 国产乱码精品一区二区蜜臀 | 国产免费高清视频 | 手机成人免费视频 | 天天操综 | 成人国产精品电影 | 亚洲国产午夜精品 | 精品一区二区日韩 | av不卡中文 | 91中文字幕 | 成人免费一级片 | 久久高清国产 | 美女网站在线播放 | 视频一区二区免费 | 成人免费观看完整版电影 | 婷婷99| 又黄又色又爽 | 日韩激情综合 | 干干夜夜 | 亚洲精品网址在线观看 | 精品久久久久久久久久久久久久久久 | 91福利国产在线观看 | 国产精品一区二区久久久 | 精品亚洲视频在线 | 黄网在线免费观看 | 成人午夜黄色影院 | 欧美色精品天天在线观看视频 | 久久视频国产精品免费视频在线 | 久久久久久久99精品免费观看 | 中文字幕一区二区三区精华液 | 中文字幕精品www乱入免费视频 | 国产在线视频不卡 | 中文字幕免费观看 | 最近中文字幕完整视频高清1 | 成人免费观看a | 黄色字幕网| 免费视频久久久 | 亚洲精品视频在线观看网站 | 久国产在线播放 | 99欧美精品 | 99久久精品久久亚洲精品 | 免费a网站 | 在线观看网站你懂的 | 天天色 天天 | 久久精品一区 | 热久久国产 | 成人免费视频网站 | 五月激情丁香图片 | 黄在线| 国产精品99视频 | 欧美人体xx | 在线观看午夜av | 亚洲综合在线视频 | www国产亚洲 | 伊人永久| 深夜成人av | 五月天婷婷综合 | 久久久久免费精品国产小说色大师 | av蜜桃在线 | 91九色国产| 91少妇精拍在线播放 | 久久国产精品小视频 | 免费观看91视频大全 | 中文字幕乱码电影 | 国产淫片免费看 | 99热手机在线观看 | 亚洲一区美女视频在线观看免费 | 国产日韩欧美精品在线观看 | 日韩高清成人 | 日韩欧美视频 | a色视频 | 免费观看一区 | 国产精品久久久久久久久久东京 | 日本久久电影网 | 2019中文字幕网站 | 精品国产一区二区三区久久久久久 | www狠狠操 | 四虎国产精品免费观看视频优播 | 毛片的网址| 亚洲乱码精品久久久久 | 黄av资源 | 日本99干网| 99操视频| 免费久久网 | 操久久免费视频 | 欧美性高跟鞋xxxxhd | 日韩二区在线观看 | 亚洲欧美经典 | 久久黄色免费视频 | 黄色毛片在线看 | 免费精品国产va自在自线 | 黄色a视频免费 | 国产一区二区三区高清播放 | 亚洲高清不卡av | 日产乱码一二三区别免费 | 亚洲最大av在线播放 | 日韩高清一二区 | 亚洲综合视频网 | 五月婷婷综合久久 | 久久网站av | 日韩啪视频 | 欧美精品亚洲精品日韩精品 | 午夜男人影院 | 天堂av在线网址 | 亚洲aⅴ乱码精品成人区 | 美女在线免费观看视频 | 91九色在线观看视频 | 久久99精品国产99久久 | 三级黄色a | 天天干,夜夜爽 | 一区二区三区精品久久久 | 97在线精品国自产拍中文 | 亚洲精品www. | 国产精品久久久久久久久久东京 | 亚洲欧美日韩精品久久奇米一区 | 亚洲视频在线看 | 久久久久久久毛片 | 高清视频一区 | 在线欧美中文字幕 | 成人久久18免费 | 国产无吗一区二区三区在线欢 | 国产精品久久99精品毛片三a | 色婷婷天天干 | 国产在线自| 久久免费精品一区二区三区 | 丁香电影小说免费视频观看 | 深夜男人影院 | 亚洲三级在线免费观看 | 九九综合久久 | 国产精品99久久久久的智能播放 | 99c视频在线| 天天干天天拍天天操天天拍 | 欧美少妇影院 | 亚洲狠狠丁香婷婷综合久久久 | 欧美精品久久久久久久免费 | 日韩视频一区二区三区在线播放免费观看 | 极品久久久久久久 | 日韩精品一卡 | 亚洲视频精品在线 | 亚洲深夜影院 | 国产一区二区在线精品 | 视频一区二区视频 | 天天操天天摸天天爽 | 久久天天躁狠狠躁亚洲综合公司 | 天天干天天摸天天操 | 精品在线视频一区二区三区 | 人人插人人澡 | 国产一区播放 | 久久久久成人免费 | 久久国产精品偷 | 国产精品一区二区精品视频免费看 | 91最新地址永久入口 | 国产精品一区二区精品视频免费看 | 91九色在线观看视频 | 久久国产精品免费一区二区三区 | 日韩在线无 | 激情视频在线观看网址 | 草久久久久久 | 色黄www小说 | 免费国产ww | 中文字幕在线日亚洲9 | 人人爽影院 | 99视频99| 中文字幕高清在线 | 91色偷偷| 亚洲在线视频观看 | 丝袜网站在线观看 | 亚洲国产精品影院 | 国产99一区二区 | 一区二区精品在线视频 | 国产女做a爱免费视频 | 国产精品一区二区三区在线免费观看 | 国产精品免费久久久久影院仙踪林 | 成人免费视频播放 | 久久理论视频 | 精品国产一区二区三区四区vr | 久久天天躁狠狠躁夜夜不卡公司 | 亚洲精品在线一区二区三区 | 久久精品久久99精品久久 | 91av资源在线| 亚洲欧洲精品一区二区精品久久久 | 国精产品满18岁在线 | 久久久久久久免费看 | 日韩免费在线观看网站 | 久久久国产精品成人免费 | 99久久国产免费看 | 在线观看 国产 | 综合婷婷| 亚洲精品永久免费视频 | 精品在线播放视频 | 国产精品免费在线播放 | 色偷偷网站视频 | 91系列在线 | 午夜国产福利在线观看 | 国产精品一区二区电影 | 久久er99热精品一区二区 | 久久综合狠狠综合久久狠狠色综合 | 91麻豆网| 亚洲春色成人 | 国产午夜麻豆影院在线观看 | 欧洲在线免费视频 | 亚洲aaa毛片 | 久久成人国产精品入口 | 久久综合亚洲鲁鲁五月久久 | 久草网站 | 国产高清福利在线 | 麻豆精品在线 | 国产91亚洲 | 国产在线91精品 | 日本99久久 | 精品在线一区二区三区 | 国产色视频123区 | 午夜av日韩 | 免费看的黄色录像 | 色综合久久网 | 国产视频欧美视频 | 日韩中文字幕国产精品 | 天天射天天操天天色 | 国产又粗又猛又爽又黄的视频先 | wwxxxx日本 | 欧美在线一 | 久久蜜臀一区二区三区av | av日韩国产 | 午夜精品电影 | 国产精品18久久久 | 国产福利在线免费 | 欧美久久综合 | 久久看片| 亚洲91中文字幕无线码三区 | 91久久久久久久一区二区 | 99人成在线观看视频 | 久久久久9999亚洲精品 | 精品国产一区二区三区四 | 最近最新mv字幕免费观看 | 亚洲成aⅴ人片久久青草影院 | 91成人午夜 | 欧美成人手机版 | 欧美日本高清视频 | 91日韩精品视频 | 天天爽综合网 | 五月天高清欧美mv | 国产精品人成电影在线观看 | 又黄又网站 | 欧美成人性战久久 | 中文字幕高清视频 | 亚洲永久精品国产 | 亚洲另类视频在线观看 | 激情小说 五月 | 天天曰视频 | 久草视频在线播放 | 国产18精品乱码免费看 | 欧美一级电影片 | 国产精品色在线 | 欧美片网站yy | 狠狠亚洲| 91精品国产91p65| 伊人va | 久久99久久99久久 | 久久精品99北条麻妃 | 国产91九色视频 | 日韩伦理片一区二区三区 | 免费观看成年人视频 | 国产精品18久久久久久不卡孕妇 | 久久久亚洲成人 | 国产成人精品一二三区 | 免费网址你懂的 | 99精品亚洲| 久久久久久久免费 | 狠狠狠色丁香婷婷综合激情 | 视频二区在线视频 | 色综合五月天 | 91免费黄视频 | 国产欧美日韩一区 | 日韩,精品电影 | 国产美女在线免费观看 | 99久久影院 | 精品久久久久久国产偷窥 | 91精品国产乱码在线观看 | 国产精品久久久久久久免费观看 | 久久久久亚洲最大xxxx | 91视频在线免费下载 | 久久不见久久见免费影院 | 精品久久久国产 | 日韩精品视频一二三 | 欧美日韩高清 | 久久精品一区二区三区视频 | 一级片视频免费观看 | 国内精品久久久久 | 久久精品久久久久电影 | 99国产在线视频 | 天天摸日日操 | 97超碰在线免费 | 人人澡人人添人人爽一区二区 | 国产亚洲情侣一区二区无 | 亚洲最新av在线 | 国产精品日韩欧美一区二区 | 天天干夜夜爱 | 免费看搞黄视频网站 | 久久97视频| 69国产精品视频 | www日韩在线观看 | 美女国产免费 | 久久久亚洲国产精品麻豆综合天堂 | 日本中文字幕视频 | 蜜桃视频色 | 91成人免费看| 久久99久| 精品亚洲视频在线观看 | 国产无吗一区二区三区在线欢 | 国产美女被啪进深处喷白浆视频 | 久久综合九色综合久99 | 天天色天天综合 | 精品一区二区免费在线观看 | 亚洲视频免费在线观看 | 日韩免费精品 | 久久avav| 国产精品白浆 | 久久1区| 东方av免费在线观看 | 色夜视频 | 免费日韩一区二区三区 | 国产一级免费观看 | 中文字幕在线成人 | 久久久国产精品一区二区三区 | 亚洲免费观看视频 | 国产中文在线观看 | 91精品老司机久久一区啪 | 久久人人爽人人片 | 日韩在线精品视频 | 探花视频在线观看 | 又黄又爽又刺激的视频 | 四虎永久视频 | 午夜视频一区二区三区 | 男女精品久久 | 一区二区精品在线 | 九九精品毛片 | 国产精品18久久久久久不卡孕妇 | 欧美极品xxxx | 国产黄a三级三级三级三级三级 | 激情久久久 | 亚洲日韩中文字幕 | 六月丁香色婷婷 | 国产精在线 | 亚洲最大av网 | 日本中文不卡 | 免费一级片视频 | 91在线观看黄 | 在线视频观看国产 | 亚洲日本va午夜在线电影 | 婷婷色网站 | 午夜精品久久久久久久久久久久久久 | 中文字幕亚洲欧美 | 91精品少妇偷拍99 | 国产精品va最新国产精品视频 | 日韩av一区二区三区在线观看 | 国产 日韩 欧美 中文 在线播放 | 三级在线播放视频 | 日日干激情五月 | 国产免费三级在线观看 | 国产热re99久久6国产精品 | 欧美日韩视频免费看 | jizzjizzjizz亚洲| 欧美日韩精品久久久 | 国产美女被啪进深处喷白浆视频 | 久久精品日产第一区二区三区乱码 | 又黄又爽又色无遮挡免费 | 欧美地下肉体性派对 | 天天射射天天 | 天天干天天搞天天射 | 国产午夜精品福利视频 | 午夜精品久久久久久久久久久久久久 | 亚洲一区美女视频在线观看免费 | 岛国精品一区二区 | 综合网婷婷 | 久久综合狠狠综合久久综合88 | 天天操天天操天天干 | 国产高清视频免费最新在线 | 人人网av | 国产成人一级电影 | 色视频在线看 | 免费看片网址 | 在线观看色视频 | 在线国产99 | 亚洲精品视频在线播放 | 国产网站色| 国产精品第2页 | 人人澡人人模 | 五月婷婷激情综合 | 日韩av在线免费播放 | 午夜精品久久久久久久99热影院 | 97狠狠操| 欧美精品亚洲精品 | 91九色pron| 97超碰在线人人 | 亚洲欧美经典 | 九九久久精品视频 | 五月天久久狠狠 | 久久久久久久久综合 | 国产精品亚洲人在线观看 | 久久亚洲人 | 91九色精品 | 最新一区二区三区 | 麻豆视频91 | zzijzzij亚洲成熟少妇 | 国产美女精品视频 | 亚洲欧美日韩精品久久久 | 欧美va天堂va视频va在线 | 欧美成人性战久久 | 久久五月婷婷丁香社区 | 日本精品久久久久中文字幕 | 瑞典xxxx性hd极品 | 亚洲黄色av网址 | 国产精品黄色影片导航在线观看 | 亚洲永久字幕 | 97超碰站 | 日本99热 | 久草com| 一区二区男女 | www.黄色片.com | 成人午夜在线电影 | 午夜久久视频 | 视频在线观看亚洲 | 在线免费黄色片 | 国产在线国产 | 国产黄色大片免费看 | 丁香九月婷婷 | 久久综合给合久久狠狠色 | 91理论片午午伦夜理片久久 | 欧美天堂视频在线 | 国产黄色在线网站 | 毛片永久免费 | 亚洲视频综合在线 | 久精品视频在线 | 最近高清中文字幕在线国语5 | 免费网址你懂的 | 日韩免费看| 成人免费影院 | 免费成人av在线看 | 五月开心综合 | 久久久久久中文字幕 | 国产婷婷视频在线 | 亚洲国产精品成人综合 | www99久久 | 国产又粗又猛又色又黄网站 | 亚洲a在线观看 | 狠狠撸电影 | 亚洲不卡123| 婷婷精品在线 | 四虎影视成人永久免费观看亚洲欧美 | 国产一区在线免费 | 麻豆成人精品 | 青青久草在线 | 一级淫片在线观看 | 在线看国产一区 | 日韩美女黄色片 | 国产xx在线 | 成人在线黄色电影 | 91精品久久久久久 | 久久精品aaa | av在线一级| 久草视频一区 | 97看片网| 免费在线观看黄 | 亚洲欧美日韩中文在线 | 国产高清视频在线 | 成年人看片 | 免费成人av在线 | 亚洲精品免费在线视频 | 亚洲天堂网在线观看视频 | 国产剧情av在线播放 | 亚洲一区日韩在线 | 欧美日韩不卡一区二区 | 国产日韩精品一区二区 | 色综合天天天天做夜夜夜夜做 | av观看免费在线 | 午夜狠狠干 | 久久精品国产一区二区 | 免费看短 | 91豆花在线观看 | 在线免费观看视频你懂的 | 天天干天天拍 | 色噜噜日韩精品欧美一区二区 | 99爱在线观看 | 婷婷视频导航 | 欧美精品久久久久久久免费 | 深爱激情亚洲 | 色综合久久久久综合体 | av中文天堂在线 | 韩日av一区二区 | 亚洲黄色免费在线 | 天天综合色天天综合 | 国产视频中文字幕在线观看 | 久久久亚洲麻豆日韩精品一区三区 | 亚洲成人av一区 | 97在线视频观看 | 亚洲黄色在线 | 亚洲国产小视频在线观看 | 国产精品久久久久久欧美 | 日本中文乱码卡一卡二新区 | 日韩视频www| 日韩av电影网站在线观看 | 狠狠色丁香婷婷综合久小说久 | 欧美日韩亚洲在线 | 国产一区二区在线免费观看 | 免费日韩 精品中文字幕视频在线 | 国产福利电影网址 | 97激情影院 | 婷婷在线色 | 亚洲国产成人久久综合 | 伊人五月天婷婷 | 视频99爱| 久久久久久久久久久高潮一区二区 | 中文字幕在线观看资源 | 69成人在线| 精品影院一区二区久久久 | 久久视频精品在线 | 亚洲综合射 | 久久精品人人做人人综合老师 | 97在线视频免费观看 | 一二三区高清 | 亚洲视频精品在线 | 色综合天天综合在线视频 | 97成人精品视频在线播放 | 久艹视频在线观看 | 免费看色网站 | 日韩电影在线看 | 视频在线观看91 | 国产精品黄色在线观看 | 伊人天堂网 | 91精品播放| 高清视频一区二区三区 | 九九久| 精品国产成人av在线免 | 成年人在线免费看视频 | 欧美日本国产在线观看 | 丁香综合av | 久草视频资源 | 成人av在线一区二区 | 日本成人中文字幕在线观看 | 国内精品久久久久久久久久 | 成人aaa毛片 | 毛片网在线播放 | 国产精品久久久av久久久 | 91视视频在线直接观看在线看网页在线看 | 亚洲 中文字幕av | 五月天亚洲精品 | 国产精品黑丝在线观看 | 黄色a一级片 | 亚洲成人在线免费 | 西西444www大胆无视频 | 99久久婷婷国产精品综合 | 免费看黄在线网站 | av电影不卡| 日韩中文在线电影 | 久久99亚洲精品久久久久 | 亚洲国产丝袜在线观看 | 国产精品久久久久亚洲影视 | 亚洲精品国产电影 | av黄色影院| 国产精品福利久久久 | 在线观看黄av | 久久久久久99精品 | 久久手机视频 | 日韩精品一区二区三区免费观看视频 | 久久精品亚洲精品国产欧美 | 激情开心色| 亚洲精品tv久久久久久久久久 | av综合av| 欧美黄色软件 | 亚洲视频999| 国产高清视频网 | 91黄在线看| 99精品免费 | 国产精品第一视频 | 麻豆国产网站 | 午夜精品视频一区 | www.久久色| 久久久久久久久影院 | 亚洲va天堂va欧美ⅴa在线 | 国产精彩在线视频 | 狠狠色噜噜狠狠 | 少妇高潮流白浆在线观看 | 91色视频 | 国产伦理久久精品久久久久_ | 亚洲91中文字幕无线码三区 | 久久少妇av | 国产在线精品播放 | 一区二区三区在线免费观看 | 最近最新最好看中文视频 | 福利视频网站 | 99精品视频免费观看视频 | 国产日产精品一区二区三区四区的观看方式 | 精选久久 | 日韩欧美在线观看一区二区 | 精品国产乱码久久久久久天美 | 成年人视频免费在线 | 国产a免费| 麻豆久久久久 | 亚洲精品xxx | 麻豆影视在线免费观看 | 插婷婷| 麻豆系列在线观看 | 爱爱av网站 | 精品99视频 | 在线天堂中文www视软件 | 日韩精品中文字幕在线观看 | 91精品国产福利 | 久久福利综合 | 亚洲国产天堂av | 五月天综合网 | 五月丁婷婷 | 亚洲三级黄色 | 日韩在线观看视频一区二区三区 | 久综合网 | 99亚洲视频 | 久久久久影视 | 波多野结衣电影一区二区 | 亚洲精品网站在线 | 91片黄在线观看 | 久久综合久久综合久久 | 91九色国产蝌蚪 | av高清一区二区三区 | 天天干天天色2020 | 中文字幕在线一区二区三区 | 日本69hd | 精品人人爽 | 色视频网站免费观看 | 奇米影视在线99精品 | 亚洲女同ⅹxx女同tv | 五月婷综合网 | 婷婷网在线 | 日韩网站免费观看 | 国产精品一区二区三区久久久 | 亚洲精品中文字幕视频 | 中文字幕在线免费观看视频 | 国产专区精品视频 | 在线观看视频99 | 正在播放国产一区二区 | 西西4444www大胆视频 | 日韩av在线免费看 | 国产精品小视频网站 | 久久精品91视频 | 久久激情片 | 中文字幕日韩伦理 | 激情动态 | 国产精品a久久 | 国产黄色片久久 | 91麻豆精品国产 | 欧美视频日韩视频 | 亚洲国产精品女人久久久 | 亚洲区另类春色综合小说 | 欧美日韩国产一二三区 | 最近日本字幕mv免费观看在线 | 日韩电影中文字幕 | av成人在线网站 | 国产成人精品福利 | 网站免费黄 | 亚洲国产精品激情在线观看 | 99在线视频网站 | 91精品国产91久久久久福利 | 美女网站在线看 | 在线看一区 | 午夜黄色 | 99国产情侣在线播放 | 亚洲国产精品一区二区久久hs | 狠狠色狠狠综合久久 | 日韩精品欧美视频 | 在线一区电影 | 久久久精品高清 | 天天爱天天射天天干天天 | 欧美另类xxxx | 亚洲欧美国产精品久久久久 | 99re久久资源最新地址 | 国产精品毛片一区二区在线 | 国产a国产 | 欧美 亚洲 另类 激情 另类 | 97日日碰人人模人人澡分享吧 | 午夜成人影视 | 欧美日韩不卡一区 | 成人a v视频 | 日本免费久久高清视频 | 91久久黄色| 久久激五月天综合精品 |