NetLink
NetLink是Linux内核中用于内核与用户空间进程之间的一种基于消息的通信机制。它通过套接字和自定义的协议族实现,可以用来传递各种类型的内核消息,包括网络设备状态、路由表更新、防火墙规则变化、系统资源使用情况等等。
NetLink:封装了NetLink的套接字接口,提供了NetLink消息的接口和接收消息的回调。
NetDispatcher:它是一个单例,提供了Handler注册的接口。当NetLink类接收到原始的消息后,它会调用NetDispatcher将其解析称nl_onject,并根据消息的类型调用相应的Handler。
NetMsg:NetLink消息Handler的基类,仅提供了onMsg的接口,其中没有实现。
举个例子,当portsyncd启动时,会创建一个NetLink对象,用来监听Link相关的状态变化,并且会实现NetMsg的接口,对Link相关的消息进行处理。