Linux内核实践 - 如何添加网络协议[三]:实现
|
到这里,协议的添加就大致完成了,当然还包括一些头文件的修改,宏变量的添加等就不一一详述,具体可见最后的附件。 为了编译进内核,还需要修改以下文件: $(linux)/net/Kconfig $(linux)/net/Makefile 最后,在make menuconfig选择添加brcm协议 Networking Support -> Networking options
同时,需要一个简单 的用户空间工具来配置我们的brcm设备,就像vconfig用来配置vlan设备一样;编写的简单的bconfig工具,命令格式: "Usage: add [interface-name] [brcm_port]n" " rem [dev-name]"; 内核编译完成后就该进行测试了,如果开启了内核调 试信息,启动内核就看到以下信息:
然后启用网卡,可以查看到添加了brcm设备后的状态:
可以使用原生套接字自己打上brcm头后发送报文让协议栈接收,或者用wireshark等捕获协议栈发出的报文,下图即是捕获到 的报文:
这是主机发出的arp报文,可以看到,在源mac后接的不是vlan报头,而是我们添加的brcm报文,协议号是8744。 查看proc 中信息:
附:patch补丁 && 重要的源文件 && bconfig工具源码 http://download.csdn.net/source/3548117 (编辑:宣城站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |

![Linux内核实践 - 如何添加网络协议[三]:实现](http://img16.aspzz.cn/uploads/allimg/c160921/14J46291V1b0-1A31.gif)
![Linux内核实践 - 如何添加网络协议[三]:实现](http://img16.aspzz.cn/uploads/allimg/c160921/14J46291945X0-24211.gif)
![Linux内核实践 - 如何添加网络协议[三]:实现](http://img16.aspzz.cn/uploads/allimg/c160921/14J4629200I40-322M.gif)
![Linux内核实践 - 如何添加网络协议[三]:实现](http://img16.aspzz.cn/uploads/allimg/c160921/14J462920Y010-4F22.gif)
![Linux内核实践 - 如何添加网络协议[三]:实现](http://img16.aspzz.cn/uploads/allimg/c160921/14J4629215F40-5aW.gif)

