3.网卡驱动初始化
而我们的网卡驱动程序,只需要编写网络设备接口层,填充net_device数据结构的内容并将net_device注册入内核,设置硬件相关操作,使能中断处理等
3.1其中net_device...:
1)使用alloc_netdev()来分配一个net_device结构体
2)设置网卡硬件相关的寄存器
3)设置net_device结构体的成员
4)使用register_netdev()来注册net_device...skb_put(struct sk_buff *skb, unsigned int len);
//len:将数据区向下扩大len字节
使用skb_put()函数后,其中sk_buff缓冲区变化:
6.写虚拟网卡驱动...本节便开始来写一个简单的虚拟网卡驱动,也就是说不需要硬件相关操作,所以就没有中断函数,我们通过linux的ping命令来实现发包,然后在发包函数中伪造一个收的ping包函数,实现能ping通任何ip地址...开始试验,首先设置这个网卡设备的ip,然后去ping一下其它的ip,如下图所示:
?