网络子系统67_路由表处理设备事件
2013-10-17 21:24
197 查看
// 路由表对网络设备事件的处理 // 在ip_rt_init->ip_fib_init中注册 1.1 static struct notifier_block fib_netdev_notifier = { .notifier_call = fib_netdev_event, }; // 路由表处理设备事件 // 函数主要功能: // 1.设备开启 // 1.1 将设备配置的所有ip添加到路由表中 // 1.2 同步多路径缓存 // 1.3 刷新路由缓存 // 2.设备关闭,注销 // 2.1 关闭设备上的ip协议 // 3.设备mtu,载波改变: // 3.1 同步路由缓存 1.2 static int fib_netdev_event(struct notifier_block *this, unsigned long event, void *ptr) { struct net_device *dev = ptr; struct in_device *in_dev = __in_dev_get(dev); //设备注销 if (event == NETDEV_UNREGISTER) { fib_disable_ip(dev, 2); return NOTIFY_DONE; } // 设备需要配置信息 if (!in_dev) return NOTIFY_DONE; switch (event) { case NETDEV_UP: //设备开启 for_ifa(in_dev) { //将设备配置的ip地址均添加到路由表中 fib_add_ifaddr(ifa); } endfor_ifa(in_dev); //多路径同步 #ifdef CONFIG_IP_ROUTE_MULTIPATH fib_sync_up(dev); #endif //刷新路由缓存 rt_cache_flush(-1); break; case NETDEV_DOWN: //设备关闭,关闭设备上的ip协议 fib_disable_ip(dev, 0); break; //mtu,载波变化 case NETDEV_CHANGEMTU: case NETDEV_CHANGE: //立刻刷新路由缓存 rt_cache_flush(0); break; } return NOTIFY_DONE; }
相关文章推荐
- 网络子系统68_路由表处理设备ip配置事件
- 网络子系统62_路由子系统处理设备事件
- 网络驱动移植之网络子系统设备处理层的初始化
- 网络子系统63_路由子系统处理netlink事件
- 微信小程序目录结构、事件处理、网络请求
- 网络子系统6_设备开启与关闭
- Linux网络子系统中链路层中GRO的处理
- 网络层ipv4对GRO的处理 (linux网络子系统学习 第九节)
- 网络子系统32_网桥设备的开启与关闭
- Ionic2 下处理 Android 设备下返回按钮的事件
- 网络子系统64_设备ip地址配置
- linux网络设备无法启动问题处理
- js实现对Android设备物理返回键单击/双击事件处理(Framework7框架)
- usb 视频设备 按钮消息处理 和普通usb连接的事件处理
- 网络子系统33_网桥设备的配置更新
- 初学C#网络编程(二)处理进程结束时事件
- 网络子系统44_ip协议源路由选项处理
- 链路层GRO的处理 (linux网络子系统学习 第八节)
- ZK 4G常见问题分析及处理(可用于有移动网络模块的设备)
- 用ACE的Reactor模式实现网络通讯时,ACE内部用WSAEventSelect函数把网络事件与一个事件对象关联起来,目的是为了后面用WaitForMultipleObjects函数统一处理。