网络子系统27_桥接子系统初始化

本文介绍Linux内核中桥接子系统的初始化过程,包括转发数据库的初始化、socket的ioctl回调函数设置、netif_receive_skb的处理函数以及netdev_chain的监听器注册。同时,详细阐述了桥接子系统如何处理网络配置事件,如MTU改变、MAC地址更新、载波状态变化等,确保网络桥接的正确运行。
摘要由CSDN通过智能技术生成
//桥接子系统以模块的形式提供
//函数主要任务:
//	1.转发数据库slab缓存
//	2.向socket的ioctl添加回调函数
//	3.在netif_receive_skb中路径上添加回调函数
//	4.向netdev_chain注册监听块
1.1 static int __init br_init(void)
{
	//转发数据库初始化
	br_fdb_init();
	//桥接子系统中有关netfilter的初始化
	...

	//向socket的ioctl注册回调函数,处理对网桥的io命令
	brioctl_set(br_ioctl_deviceless_stub);
	//桥接入口skb处理,在netif_recive_skb中被调用
	br_handle_frame_hook = br_handle_frame;

	//netdev_chain上注册一个监听器
	register_netdevice_notifier(&br_device_notifier);

	return 0;
}


//监听器
1.2 struct notifier_block br_device_notifier = {
	.notifier_call = br_device_event
};
//	桥接子系统处理的网络配置事件:
//		前提:与事件相关的dev需要是网桥的端口
//			1.mtu改变,更新网桥设备的mtu
//			2.mac地址改变,在转发数据库中更新该端口的mac地址,重新计算网桥id
//			3.载波状态改变,检测到载波,使能端口;载波消失,disable端口
//			4.设备关闭,disable端口
//			5.设备开启,enable端口
//			6.设备注销,从网桥设备中删除该端口
//		
1.3 static int br_device_event(struct notifier_block *unused, unsigned lon
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值