00001 #include <netlink/msg.h>
00002 #include <netlink/attr.h>
00003
00004 enum {
00005 MY_ATTR_FOO = 1,
00006 MY_ATTR_BAR,
00007 __MY_ATTR_MAX,
00008 };
00009
00010 #define MY_ATTR_MAX (__MY_ATTR_MAX - 1)
00011
00012 static struct nla_policy my_policy[MY_ATTR_MAX+1] = {
00013 [MY_ATTR_FOO] = { .type = NLA_U32 },
00014 [MY_ATTR_BAR] = { .type = NLA_STRING,
00015 .maxlen = 16 },
00016 };
00017
00018 void parse_msg(struct nlmsghdr *nlh)
00019 {
00020 struct nlattr *attrs[MY_ATTR_MAX+1];
00021
00022 if (nlmsg_parse(nlh, 0, attrs, MY_ATTR_MAX, my_policy) < 0)
00023
00024
00025 if (attrs[MY_ATTR_FOO]) {
00026
00027 printf("value: %u\n", nla_get_u32(attrs[MY_ATTR_FOO]));
00028 }
00029 }