深入理解Netlink套接字与ICMP协议
1. Netlink套接字基础
Netlink套接字为用户空间与内核之间提供了双向通信机制,在网络子系统中应用广泛。下面详细介绍其相关内容。
1.1 通用Netlink命令处理
在 genl_ops
中, nl80211_dump_scan()
回调函数被添加为 NL80211_CMD_GET_SCAN
命令的处理程序。 nl80211_policy
是一个 nla_policy
对象数组,用于定义属性的预期数据类型及其长度。
当从用户空间运行扫描命令(如 iw dev wlan0 scan
)时,会通过通用Netlink套接字发送一个命令为 NL80211_CMD_GET_SCAN
的通用Netlink消息。消息可以使用 nl_send_auto_complete()
方法发送,在较新的 libnl
版本中也可使用 nl_send_auto()
。 nl_send_auto()
会填充Netlink消息头中缺失的部分。若不需要自动消息完成功能,可直接使用 nl_send()
。
该消息由 nl80211_dump_scan()
方法处理,它是此命令的 dumpit
回调函数(位于