总结了一下kernel里面协议处理函数的组织:




以下两个函数是用来添加/删除协议处理函数的:

dev_add_pack
__dev_remove_pack

逻辑也非常简单,判断是否是ETH_P_ALL,如果是,则加锁并加入ptype_all,如果不是,则加锁,hash加入ptype_base。

结构中dev指的是这个处理函数关注那些设备,NULL为关注所有设备。




Logo

更多推荐