Data Structures | |
| struct | nla_policy |
| attribute validation policy More... | |
<------- nla_total_size(payload) -------> <---- nla_attr_size(payload) -----> +----------+- - -+- - - - - - - - - +- - -+-------- - - | Header | Pad | Payload | Pad | Header +----------+- - -+- - - - - - - - - +- - -+-------- - - <- nla_len(nla) -> ^ nla_data(nla)----^ | nla_next(nla)-----------------------------'
<------- NLA_HDRLEN ------> <-- NLA_ALIGN(payload)--> +---------------------+- - -+- - - - - - - - - -+- - -+ | Header | Pad | Payload | Pad | | (struct nlattr) | ing | | ing | +---------------------+- - -+- - - - - - - - - -+- - -+ <-------------- nlattr->nla_len -------------->
<-------------------- NLA_ALIGN(...) ------------------->
+---------------+- - - - - - - - - - - - - - - - - -+- - -+
| |+---------+---------+- - -+-------+| |
| TLV Header || TLV 1 | TLV 2 | | TLV n || Pad |
| |+---------+---------+- - -+-------+| |
+---------------+- - - - - - - - - - - - - - - - - -+- - -+
<--------- nla_data(nla) --------->
int param1 = 10; char *param2 = "parameter text"; struct nl_msg *msg = nlmsg_alloc(); nla_put_u32(msg, 1, param1); nla_put_string(msg, 2, param2); nl_send_auto_complete(handle, nl_msg_get(msg)); nlmsg_free(msg);
struct nl_msg * nested_config(void) { int a = 5, int b = 10; struct nl_msg *n = nlmsg_alloc(); nla_put_u32(n, 10, a); nla_put_u32(n, 20, b); return n; } ... struct nl_msg *m = nlmsg_alloc(); struct nl_msg *nest = nested_config(); nla_put_nested(m, 1, nest); nl_send_auto_complete(handle, nl_msg_get(m)); nlmsg_free(nest); nlmsg_free(m);
| #define NLA_PUT | ( | n, | |||
| attrtype, | |||||
| attrlen, | |||||
| data | ) |
| #define NLA_PUT_TYPE | ( | n, | |||
| type, | |||||
| attrtype, | |||||
| value | ) |
| #define nla_for_each_attr | ( | pos, | |||
| head, | |||||
| len, | |||||
| rem | ) |
Value:
| pos | loop counter, set to current attribute | |
| head | head of attribute stream | |
| len | length of attribute stream | |
| rem | initialized to len, holds bytes currently remaining in stream |
Definition at line 264 of file attr.h.
Referenced by nla_find(), nla_parse(), and nla_validate().
| #define nla_for_each_nested | ( | pos, | |||
| nla, | |||||
| rem | ) |
Value:
| pos | loop counter, set to current attribute | |
| nla | attribute containing the nested attributes | |
| rem | initialized to len, holds bytes currently remaining in stream |
| #define NLA_PUT_U8 | ( | n, | |||
| attrtype, | |||||
| value | ) | NLA_PUT_TYPE(n, uint8_t, attrtype, value) |
| n | netlink message | |
| attrtype | attribute type | |
| value | numeric value |
Definition at line 183 of file attr.h.
Referenced by rtnl_link_build_change_request().
| #define NLA_PUT_U16 | ( | n, | |||
| attrtype, | |||||
| value | ) | NLA_PUT_TYPE(n, uint16_t, attrtype, value) |
| #define NLA_PUT_U32 | ( | n, | |||
| attrtype, | |||||
| value | ) | NLA_PUT_TYPE(n, uint32_t, attrtype, value) |
| n | netlink message | |
| attrtype | attribute type | |
| value | numeric value |
Definition at line 201 of file attr.h.
Referenced by rtnl_link_build_change_request().
| #define NLA_PUT_U64 | ( | n, | |||
| attrtype, | |||||
| value | ) | NLA_PUT_TYPE(n, uint64_t, attrtype, value) |
| #define NLA_PUT_STRING | ( | n, | |||
| attrtype, | |||||
| value | ) | NLA_PUT(n, attrtype, strlen(value) + 1, value) |
| n | netlink message | |
| attrtype | attribute type | |
| value | character string |
Definition at line 219 of file attr.h.
Referenced by rtnl_link_build_change_request().
| #define NLA_PUT_FLAG | ( | n, | |||
| attrtype | ) | NLA_PUT(n, attrtype, 0, NULL) |
| #define NLA_PUT_MSECS | ( | n, | |||
| attrtype, | |||||
| msecs | ) | NLA_PUT_U64(n, attrtype, msecs) |
| #define NLA_PUT_ADDR | ( | n, | |||
| attrtype, | |||||
| addr | ) |
Value:
NLA_PUT(n, attrtype, nl_addr_get_len(addr), \ nl_addr_get_binary_addr(addr))
| n | netlink message | |
| attrtype | attribute type | |
| addr | abstract address object |
Definition at line 245 of file attr.h.
Referenced by rtnl_link_build_change_request().
| anonymous enum |
| int nla_attr_size | ( | int | payload | ) |
| payload | length of payload |
Definition at line 108 of file attr.c.
Referenced by nla_padlen(), nla_reserve(), and nla_total_size().
| int nla_total_size | ( | int | payload | ) |
| payload | length of payload |
Definition at line 117 of file attr.c.
References nla_attr_size().
Referenced by nla_padlen(), and nla_reserve().
| int nla_padlen | ( | int | payload | ) |
| payload | length of payload |
Definition at line 126 of file attr.c.
References nla_attr_size(), and nla_total_size().
Referenced by nla_reserve().
| int nla_type | ( | const struct nlattr * | nla | ) |
| nla | netlink attribute |
Definition at line 142 of file attr.c.
Referenced by nla_find(), and nla_parse().
| void* nla_data | ( | const struct nlattr * | nla | ) |
| nla | netlink attribute |
Definition at line 151 of file attr.c.
Referenced by nla_get_addr(), nla_get_data(), nla_get_string(), nla_get_u16(), nla_get_u32(), nla_get_u8(), nla_memcmp(), nla_memcpy(), nla_parse_nested(), nla_put(), nla_strcmp(), and nla_strlcpy().
| int nla_len | ( | const struct nlattr * | nla | ) |
| nla | netlink attribute |
Definition at line 160 of file attr.c.
Referenced by nla_get_addr(), nla_get_data(), nla_memcmp(), nla_memcpy(), nla_parse_nested(), nla_strcmp(), and nla_strlcpy().
| int nla_ok | ( | const struct nlattr * | nla, | |
| int | remaining | |||
| ) |
| struct nlattr* nla_next | ( | const struct nlattr * | nla, | |
| int * | remaining | |||
| ) | [read] |
| int nla_parse | ( | struct nlattr * | tb[], | |
| int | maxtype, | |||
| struct nlattr * | head, | |||
| int | len, | |||
| struct nla_policy * | policy | |||
| ) |
| tb | destination array with maxtype+1 elements | |
| maxtype | maximum attribute type to be expected | |
| head | head of attribute stream | |
| len | length of attribute stream | |
| policy | validation policy |
Definition at line 262 of file attr.c.
References nla_for_each_attr, and nla_type().
Referenced by nla_parse_nested(), and nlmsg_parse().
| int nla_parse_nested | ( | struct nlattr * | tb[], | |
| int | maxtype, | |||
| struct nlattr * | nla, | |||
| struct nla_policy * | policy | |||
| ) |
| tb | destination array with maxtype+1 elements | |
| maxtype | maximum attribute type to be expected | |
| nla | attribute containing the nested attributes | |
| policy | validation policy |
Definition at line 308 of file attr.c.
References nla_data(), nla_len(), and nla_parse().
| int nla_validate | ( | struct nlattr * | head, | |
| int | len, | |||
| int | maxtype, | |||
| struct nla_policy * | policy | |||
| ) |
| head | head of attribute stream | |
| len | length of attribute stream | |
| maxtype | maximum attribute type to be expected | |
| policy | validation policy |
Definition at line 328 of file attr.c.
References nla_for_each_attr.
Referenced by nlmsg_validate().
| struct nlattr* nla_find | ( | struct nlattr * | head, | |
| int | len, | |||
| int | attrtype | |||
| ) | [read] |
| head | head of attribute stream | |
| len | length of attribute stream | |
| attrtype | type of attribute to look for |
Definition at line 353 of file attr.c.
References nla_for_each_attr, and nla_type().
Referenced by nlmsg_find_attr().
| int nla_memcpy | ( | void * | dest, | |
| struct nlattr * | src, | |||
| int | count | |||
| ) |
| dest | where to copy to memcpy | |
| src | netlink attribute to copy from | |
| count | size of the destination area |
Definition at line 383 of file attr.c.
References nla_data(), and nla_len().
Referenced by nla_get_u64().
| size_t nla_strlcpy | ( | char * | dst, | |
| const struct nlattr * | nla, | |||
| size_t | dstsize | |||
| ) |
| dst | where to copy the string to | |
| nla | attribute to copy the string from | |
| dstsize | size of destination buffer |
Definition at line 408 of file attr.c.
References nla_data(), and nla_len().
| int nla_memcmp | ( | const struct nlattr * | nla, | |
| const void * | data, | |||
| size_t | size | |||
| ) |
| nla | netlink attribute | |
| data | memory area | |
| size | size of memory area |
Definition at line 432 of file attr.c.
References nla_data(), and nla_len().
| int nla_strcmp | ( | const struct nlattr * | nla, | |
| const char * | str | |||
| ) |
| nla | netlink string attribute | |
| str | another string |
Definition at line 448 of file attr.c.
References nla_data(), and nla_len().
| struct nlattr* nla_reserve | ( | struct nl_msg * | n, | |
| int | attrtype, | |||
| int | attrlen | |||
| ) | [read] |
| n | netlink message | |
| attrtype | attribute type | |
| attrlen | length of attribute payload |
Definition at line 475 of file attr.c.
References nla_attr_size(), nla_padlen(), nla_total_size(), and nlmsg_data().
Referenced by nla_put().
| int nla_put | ( | struct nl_msg * | n, | |
| int | attrtype, | |||
| int | attrlen, | |||
| const void * | data | |||
| ) |
| n | netlink message | |
| attrtype | attribute type | |
| attrlen | length of attribute payload | |
| data | head of attribute payload |
Definition at line 512 of file attr.c.
References nla_data(), nla_reserve(), and nlmsg_data().
Referenced by nla_nest_start(), nla_put_addr(), nla_put_data(), nla_put_flag(), nla_put_nested(), nla_put_string(), nla_put_u16(), nla_put_u32(), nla_put_u64(), and nla_put_u8().
| int nla_put_nested | ( | struct nl_msg * | n, | |
| int | attrtype, | |||
| struct nl_msg * | nested | |||
| ) |
| n | netlink message | |
| attrtype | attribute type | |
| nested | netlink attribute to nest |
Definition at line 536 of file attr.c.
References nla_put(), nlmsg_data(), and nlmsg_len().
Referenced by rtnl_neightbl_build_change_request().
| int nla_put_u8 | ( | struct nl_msg * | n, | |
| int | attrtype, | |||
| uint8_t | value | |||
| ) |
| int nla_put_u16 | ( | struct nl_msg * | n, | |
| int | attrtype, | |||
| uint16_t | value | |||
| ) |
| int nla_put_u32 | ( | struct nl_msg * | n, | |
| int | attrtype, | |||
| uint32_t | value | |||
| ) |
| n | netlink message | |
| attrtype | attribute type | |
| value | numeric value |
Definition at line 570 of file attr.c.
References nla_put().
Referenced by rtnl_neightbl_build_change_request().
| int nla_put_u64 | ( | struct nl_msg * | n, | |
| int | attrtype, | |||
| uint64_t | value | |||
| ) |
| n | netlink message | |
| attrtype | attribute type | |
| value | numeric value |
Definition at line 581 of file attr.c.
References nla_put().
Referenced by nla_put_msecs(), and rtnl_neightbl_build_change_request().
| int nla_put_string | ( | struct nl_msg * | n, | |
| int | attrtype, | |||
| const char * | str | |||
| ) |
| n | netlink message | |
| attrtype | attribute type | |
| str | NUL terminated string |
Definition at line 592 of file attr.c.
References nla_put().
Referenced by rtnl_neightbl_build_change_request().
| int nla_put_flag | ( | struct nl_msg * | n, | |
| int | attrtype | |||
| ) |
| int nla_put_msecs | ( | struct nl_msg * | n, | |
| int | attrtype, | |||
| unsigned long | msecs | |||
| ) |
| n | netlink message | |
| attrtype | attribute type | |
| msecs | number of msecs |
Definition at line 613 of file attr.c.
References nla_put_u64().
| int nla_put_data | ( | struct nl_msg * | n, | |
| int | attrtype, | |||
| struct nl_data * | data | |||
| ) |
| n | netlink message | |
| attrtype | attribute type | |
| data | abstract data |
Definition at line 624 of file attr.c.
References nl_data_get(), nl_data_get_size(), and nla_put().
| int nla_put_addr | ( | struct nl_msg * | n, | |
| int | attrtype, | |||
| struct nl_addr * | addr | |||
| ) |
| n | netlink message | |
| attrtype | attribute type | |
| addr | abstract address |
Definition at line 636 of file attr.c.
References nl_addr_get_binary_addr(), nl_addr_get_len(), and nla_put().
| struct nlattr* nla_nest_start | ( | struct nl_msg * | n, | |
| int | attrtype | |||
| ) | [read] |
| n | netlink message | |
| attrtype | attribute type of container |
Definition at line 656 of file attr.c.
References nla_put().
Referenced by rtnl_link_build_change_request().
| int nla_nest_end | ( | struct nl_msg * | n, | |
| struct nlattr * | start | |||
| ) |
| n | netlink message | |
| start | container attribute |
Definition at line 676 of file attr.c.
Referenced by rtnl_link_build_change_request().
| uint32_t nla_get_u32 | ( | struct nlattr * | nla | ) |
| uint16_t nla_get_u16 | ( | struct nlattr * | nla | ) |
| uint8_t nla_get_u8 | ( | struct nlattr * | nla | ) |
| uint64_t nla_get_u64 | ( | struct nlattr * | nla | ) |
| nla | u64 netlink attribute |
Definition at line 721 of file attr.c.
References nla_memcpy().
Referenced by nla_get_msecs().
| char* nla_get_string | ( | struct nlattr * | nla | ) |
| nla | string netlink attribute |
Definition at line 734 of file attr.c.
References nla_data().
| int nla_get_flag | ( | struct nlattr * | nla | ) |
| unsigned long nla_get_msecs | ( | struct nlattr * | nla | ) |
| nla | msecs netlink attribute |
Definition at line 754 of file attr.c.
References nla_get_u64().
| struct nl_addr* nla_get_addr | ( | struct nlattr * | nla, | |
| int | family | |||
| ) | [read] |
| nla | address netlink attribute | |
| family | address family |
Definition at line 766 of file attr.c.
References nl_addr_build(), nla_data(), and nla_len().
| struct nl_data* nla_get_data | ( | struct nlattr * | nla | ) | [read] |
| nla | abstract data netlink attribute |
Definition at line 777 of file attr.c.
References nl_data_alloc(), nla_data(), and nla_len().
1.5.7.1