码迷,mamicode.com
首页 > Web开发 > 详细

netlink通信

时间:2014-12-30 23:24:02      阅读:218      评论:0      收藏:0      [点我收藏+]

标签:

1:参考网址

2:netlink相关socket API

      netlink用于程序与内核模块之间进行通信。用户态使用netlink与内核态使用netlink方式不同,Linux container在网络管理这一块处于用户空间。netlink 在用户态的API与tcp/ip通信使用的socket api 类似,主要api为socket()、bind()、sendmsg()、recvmsg().

  • socket()

      使用netlink需要包含的头文件为linux/netlink.h和sys/socket.h(socket api头文件)。创建socket函数。

int socket(AF_NETLNK,SOCK_RAW,netlink_type)

    创建socket时地址族选择AF_NETLINK或者PF_NETLINK。第二个参数还可以是SOCK_DGRAM。第三个参数指定netlink协议类型。socket所有的地址族有以下所有类型:
AF_INET               IPv4协议族
AF_INET6              IPv6协议族
AF_LOCAL              Unix域协议
AF_ROUTE              路由套接字
AF_KEY                密钥套接字

     有时AF也用PF代替,PF代表 Protocol Family(协议族),AF代表Address Familiy(地址族)。

     第二个参数指明通信字节流类型,其取值如SOCK_STREAM(tcp方式),SOCK_DGRAM(udp方式)、SOCK_RAW(原始套接口)、SOCK_PACKET(支持数据链路访问)。

     netlink_type类型如下:

#define NETLINK_ROUTE           0       /* Routing/device hook                          */
#define NETLINK_W1              1       /* 1-wire subsystem                             */
#define NETLINK_USERSOCK        2       /* Reserved for user mode socket protocols      */
#define NETLINK_FIREWALL        3       /* Firewalling hook                             */
#define NETLINK_INET_DIAG       4       /* INET socket monitoring                       */
#define NETLINK_NFLOG           5       /* netfilter/iptables ULOG */
#define NETLINK_XFRM            6       /* ipsec */
#define NETLINK_SELINUX         7       /* SELinux event notifications */
#define NETLINK_ISCSI           8       /* Open-iSCSI */
#define NETLINK_AUDIT           9       /* auditing */
#define NETLINK_FIB_LOOKUP      10
#define NETLINK_CONNECTOR       11
#define NETLINK_NETFILTER       12      /* netfilter subsystem */
#define NETLINK_IP6_FW          13
#define NETLINK_DNRTMSG         14      /* DECnet routing messages */
#define NETLINK_KOBJECT_UEVENT  15      /* Kernel messages to userspace */
#define NETLINK_GENERIC         16

netlink通信

标签:

原文地址:http://www.cnblogs.com/flyingdirt/p/4194649.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!