## 通用Netlink协议
要添加Netlink协议簇,需要在include/linux/netlink.h中添加协议簇定义。但通用Netlink协议不要求这样做。
Netlink协议的一个缺点是,协议不能超过32(MAX_LINKS)个。通用Netlink协议以Netlink协议为基础,并使用其API。
通用Netlink内核套接字由方法netlink_kernel_create()创建。
创建通用Netlink内核套接字后,需要注册控制器簇(genl_ctrl)。
genl_family的实例genl_ctrl的ID固定为0x10(GENL_ID_CTRL)。它的其余所有实例的ID都被初始化为GENL_ID_GENERATE,并在随后替换为动态分配的值。
通用的Netlink套接字支持注册组播组。方法是定义一个genl_multicast_group对象,并调用genl_register_mc_group()。
组播组的名称必须是独一无二的,因为它是用于查找的主键。组播组的ID也是注册组播组时动态生成的。
下图的对象与函数都在include/net/genetlink.h中
精通linux内核网络———第二章Netlink套接字之通用Netlink协议

相关文章:

  • 2022-12-23
  • 2021-05-29
  • 2021-07-16
  • 2022-12-23
  • 2021-07-01
  • 2021-05-17
  • 2022-01-07
猜你喜欢
  • 2021-11-26
  • 2022-12-23
  • 2021-04-22
  • 2022-03-02
  • 2021-11-05
  • 2021-08-23
  • 2021-10-15
相关资源
相似解决方案