内核网络通知链的使用netdev_chain和inetaddr_chain

本文介绍了内核中的网络通知链netdev_chain和inetaddr_chain,包括register_netdevice_notifier和unregister_netdevice_notifier函数,以及register_inetaddr_notifier和unregister_inetaddr_notifier函数的使用。这些函数用于注册和移除消息块以监听网络设备状态变化和IP地址事件。详细阐述了如NETDEV_UP、NETDEV_DOWN等关键事件的含义。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

函数介绍

(1) int register_netdevice_notifier(struct notifier_block *nb)
功能: 在内核通知链netdev_chain上注册消息块,用来接收有关网络设备的注册状态等信息
nb:消息块,在里面自己添加消息处理函数
返回值:成功返回0
头文件:#include <linux/netdevice.h>

(2) int unregister_netdevice_notifier(struct notifier_block *nb)
功能:与上面register_netdevice_notifier为一对,用于在通知链netdev_chain上删除消息块

(3) int register_inetaddr_notifier(struct notifier_block *nb)
功能: 在内核通知链inetaddr_chain上注册消息块,用于接收ip地址的改变等事件
nb:消息块,在里面自己添加消息处理函数
返回值:成功返回0
头文件: #include <linux/inetdevice.h>

(4) int unregister_inetaddr_notifier(struct notifier_block *nb)
功能:与上面register_inetaddr_notifier为一对,用于在通知链inetaddr_chain上删除消息块

部分事件说明

#define NETDEV_UP    0x0001//激活一个网络设备
#define NETDEV_DOWN    0x0002//停止一个网络设备,所有对该设备的引用都应释放
#define NETDEV_REBOOT    0x0003 //检查到网络设备接口硬件崩溃,

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值