总结了一下kernel里面协议处理函数的组织:
以下两个函数是用来添加/删除协议处理函数的:
dev_add_pack
__dev_remove_pack
逻辑也非常简单,判断是否是ETH_P_ALL,如果是,则加锁并加入ptype_all,如果不是,则加锁,hash加入ptype_base。
结构中dev指的是这个处理函数关注那些设备,NULL为关注所有设备。
总结了一下kernel里面协议处理函数的组织:
以下两个函数是用来添加/删除协议处理函数的:
逻辑也非常简单,判断是否是ETH_P_ALL,如果是,则加锁并加入ptype_all,如果不是,则加锁,hash加入ptype_base。
结构中dev指的是这个处理函数关注那些设备,NULL为关注所有设备。