一,注册ubus方法
netifd初始化时会向ubusd(ubus服务端)注册一系列的object与method,
method的添加:在netifd_ubus_init中添加object:main_object,dev_object,wireless_object,iface_object;
method的使用:一些脚本(比如 ifup devstatus等)通过ubus call来执行netifd的method。
int netifd_ubus_init(const char *path)
{
uloop_init();
ubus_path = path;
ubus_ctx = ubus_connect(path);
if (!ubus_ctx)
return -EIO;
DPRINTF("connected as %08x\n", ubus_ctx->local_id);
ubus_ctx->connection_lost = netifd_ubus_connection_lost;
netifd_ubus_add_fd();
netifd_add_object(&main_object);
netifd_add_object(&dev_object);
netifd_add_object(&wireless_object);
netifd_add_iface_object();
return 0;
}
二,main_object
object name为“network”,method列表如下:
| name |

本文详细介绍了OpenWrt系统中netifd模块如何通过ubus服务进行网络配置与状态管理。从注册ubus方法开始,阐述了主要对象如main_object、dev_object的功能及其实现细节,包括method列表与handler对应关系。深入探讨了device与interface的管理机制,以及设备状态变更的处理流程。
最低0.47元/天 解锁文章
1万+

被折叠的 条评论
为什么被折叠?



