Attributes
[Core Netlink API]


Detailed Description

Netlink Attributes Construction/Parsing Interface.

0) Introduction
Netlink attributes are chained together following each other:
    <------- nla_total_size(payload) ------->
    <---- nla_attr_size(payload) ----->
   +----------+- - -+- - - - - - - - - +- - -+-------- - -
   |  Header  | Pad |     Payload      | Pad |  Header
   +----------+- - -+- - - - - - - - - +- - -+-------- - -
                     <- nla_len(nla) ->      ^
   nla_data(nla)----^                        |
   nla_next(nla)-----------------------------'
The attribute header and payload must be aligned properly:
  <------- NLA_HDRLEN ------> <-- NLA_ALIGN(payload)-->
 +---------------------+- - -+- - - - - - - - - -+- - -+
 |        Header       | Pad |     Payload       | Pad |
 |   (struct nlattr)   | ing |                   | ing |
 +---------------------+- - -+- - - - - - - - - -+- - -+
  <-------------- nlattr->nla_len -------------->
Nested TLVs:
Nested TLVs are an array of TLVs nested into another TLV. This can be useful to allow subsystems to have their own formatting rules without the need to make the underlying layer be aware of it. It can also be useful to transfer arrays, lists and flattened trees.
  <-------------------- NLA_ALIGN(...) ------------------->
 +---------------+- - - - - - - - - - - - - - - - - -+- - -+
 |               |+---------+---------+- - -+-------+|     |
 |  TLV Header   ||  TLV 1  |  TLV 2  |     | TLV n || Pad |
 |               |+---------+---------+- - -+-------+|     |
 +---------------+- - - - - - - - - - - - - - - - - -+- - -+
                  <--------- nla_data(nla) --------->
1) Constructing a message with attributes
 int param1 = 10;
 char *param2 = "parameter text";
 struct nlmsghdr hdr = {
        .nlmsg_type = MY_ACTION,
 };
 struct nl_msg *m = nlmsg_build(&hdr);
 nla_put_u32(m, 1, param1);
 nla_put_string(m, 2, param2);
 
 nl_send_auto_complete(handle, nl_msg_get(m));
 nlmsg_free(m);
2) Constructing nested attributes
 struct nl_msg * nested_config(void)
 {
        int a = 5, int b = 10;
        struct nl_msg *n = nlmsg_build(NULL);
        nla_put_u32(n, 10, a);
        nla_put_u32(n, 20, b);
        return n;
 }

 ...
 struct nl_msg *m = nlmsg_build(&hdr);
 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);


Data Structures

struct  nla_policy
 attribute validation policy More...
struct  nlattr
 Netlink Attribute. More...

Validation Policy Types

enum  {
  NLA_UNSPEC, NLA_U8, NLA_U16, NLA_U32,
  NLA_U64, NLA_STRING, NLA_FLAG, NLA_MSECS,
  NLA_NESTED, __NLA_TYPE_MAX
}
 Standard attribute types to specify validation policy. More...
#define NLA_TYPE_MAX   (__NLA_TYPE_MAX - 1)
 Maximum netlink validation policy type.

Attribute Parsing

int nla_ok (const struct nlattr *nla, int remaining)
 check if the netlink attribute fits into the remaining bytes
nlattrnla_next (const struct nlattr *nla, int *remaining)
 next netlink attribte in attribute stream
int nla_parse (struct nlattr *tb[], int maxtype, struct nlattr *head, int len, struct nla_policy *policy)
 Parse a stream of attributes into a tb buffer.
int nla_parse_nested (struct nlattr *tb[], int maxtype, struct nlattr *nla, struct nla_policy *policy)
 parse nested attributes
int nla_validate (struct nlattr *head, int len, int maxtype, struct nla_policy *policy)
 Validate a stream of attributes.
nlattrnla_find (struct nlattr *head, int len, int attrtype)
 Find a specific attribute in a stream of attributes.

Size Calculations

int nla_attr_size (int payload)
 length of attribute not including padding
int nla_total_size (int payload)
 total length of attribute including padding
int nla_padlen (int payload)
 length of padding at the tail of the attribute

Payload Access

void * nla_data (const struct nlattr *nla)
 head of payload
int nla_len (const struct nlattr *nla)
 length of payload

Utilities

int nla_memcpy (void *dest, struct nlattr *src, int count)
 Copy a netlink attribute into another memory area.
size_t nla_strlcpy (char *dst, const struct nlattr *nla, size_t dstsize)
 Copy string attribute payload into a sized buffer.
int nla_memcmp (const struct nlattr *nla, const void *data, size_t size)
 Compare an attribute with sized memory area.
int nla_strcmp (const struct nlattr *nla, const char *str)
 Compare a string attribute against a string.

Attribute Construction

nlattrnla_reserve (struct nl_msg *n, int attrtype, int attrlen)
 reserve room for attribute on the skb
int nla_put (struct nl_msg *n, int attrtype, int attrlen, const void *data)
 Add a netlink attribute to a netlink message.
int nla_put_nested (struct nl_msg *n, int attrtype, struct nl_msg *nested)
 Add a nested netlink attribute to a netlink message.
int nla_put_u8 (struct nl_msg *n, int attrtype, uint8_t value)
 Add a u16 netlink attribute to a netlink message.
int nla_put_u16 (struct nl_msg *n, int attrtype, uint16_t value)
 Add a u16 netlink attribute to a netlink message.
int nla_put_u32 (struct nl_msg *n, int attrtype, uint32_t value)
 Add a u32 netlink attribute to a netlink message.
int nla_put_u64 (struct nl_msg *n, int attrtype, uint64_t value)
 Add a u64 netlink attribute to a netlink message.
int nla_put_string (struct nl_msg *n, int attrtype, const char *str)
 Add a string netlink attribute to a netlink message.
int nla_put_flag (struct nl_msg *n, int attrtype)
 Add a flag netlink attribute to a netlink message.
int nla_put_msecs (struct nl_msg *n, int attrtype, unsigned long msecs)
 Add a msecs netlink attribute to a netlink message.
int nla_put_data (struct nl_msg *n, int attrtype, struct nl_data *data)
 Add an abstract data netlink attribute to a netlink message.
int nla_put_addr (struct nl_msg *n, int attrtype, struct nl_addr *addr)
 Add an abstract address netlink attribute to a netlink message.

Attribute Nesting

nlattrnla_nest_start (struct nl_msg *n, int attrtype)
 Start a new level of nested attributes.
int nla_nest_end (struct nl_msg *n, struct nlattr *start)
 Finalize nesting of attributes.

Attribute Reading

uint32_t nla_get_u32 (struct nlattr *nla)
 Return payload of u32 attribute.
uint16_t nla_get_u16 (struct nlattr *nla)
 Return payload of u16 attribute.
uint8_t nla_get_u8 (struct nlattr *nla)
 Return payload of u8 attribute.
uint64_t nla_get_u64 (struct nlattr *nla)
 Return payload of u64 attribute.
int nla_get_flag (struct nlattr *nla)
 Return payload of flag attribute.
unsigned long nla_get_msecs (struct nlattr *nla)
 Return payload of msecs attribute.
nl_addr * nla_get_addr (struct nlattr *nla, int family)
 Return payload of address attribute.
nl_data * nla_get_data (struct nlattr *nla)
 Return payload of abstract data attribute.

Attribute Construction (Exception Based)

All these functions jump to nla_put_failure in case of a failure instead of returning an error code.

#define NLA_PUT(n, attrtype, attrlen, data)
 Add a netlink attribute to a netlink message.
#define NLA_PUT_TYPE(n, type, attrtype, value)
 Add a basic netlink attribute to a netlink message.
#define NLA_PUT_U8(n, attrtype, value)   NLA_PUT_TYPE(n, uint8_t, attrtype, value)
 Add a u8 netlink attribute to a netlink message.
#define NLA_PUT_U16(n, attrtype, value)   NLA_PUT_TYPE(n, uint16_t, attrtype, value)
 Add a u16 netlink attribute to a netlink message.
#define NLA_PUT_U32(n, attrtype, value)   NLA_PUT_TYPE(n, uint32_t, attrtype, value)
 Add a u32 netlink attribute to a netlink message.
#define NLA_PUT_U64(n, attrtype, value)   NLA_PUT_TYPE(n, uint64_t, attrtype, value)
 Add a u64 netlink attribute to a netlink message.
#define NLA_PUT_STRING(n, attrtype, value)   NLA_PUT(n, attrtype, strlen(value) + 1, value)
 Add a character string netlink attribute to a netlink message.
#define NLA_PUT_FLAG(n, attrtype)   NLA_PUT(n, attrtype, 0, NULL)
 Add a flag netlink attribute to a netlink message.
#define NLA_PUT_MSECS(n, attrtype, msecs)   NLA_PUT_U64(n, attrtype, msecs)
 Add a msecs netlink attribute to a netlink message.
#define NLA_PUT_ADDR(n, attrtype, addr)
 Add a address attribute to a netlink message.

Iterators

#define nla_for_each_attr(pos, head, len, rem)
 iterate over a stream of attributes


Define Documentation

#define NLA_TYPE_MAX   (__NLA_TYPE_MAX - 1)

Maximum netlink validation policy type.

Definition at line 48 of file attr.h.

#define NLA_PUT ( n,
attrtype,
attrlen,
data   ) 

Value:

do { \
                if (nla_put(n, attrtype, attrlen, data) < 0) \
                        goto nla_put_failure; \
        } while(0)
Add a netlink attribute to a netlink message.

Parameters:
n netlink message
attrtype attribute type
attrlen length of attribute payload
data head of attribute payload

Definition at line 151 of file attr.h.

#define NLA_PUT_TYPE ( n,
type,
attrtype,
value   ) 

Value:

do { \
                type __tmp = value; \
                NLA_PUT(n, attrtype, sizeof(type), &__tmp); \
        } while(0)
Add a basic netlink attribute to a netlink message.

Parameters:
n netlink message
type atomic type
attrtype attribute type
value head of attribute payload

Definition at line 165 of file attr.h.

#define nla_for_each_attr ( pos,
head,
len,
rem   ) 

Value:

for (pos = head, rem = len; \
             nla_ok(pos, rem); \
             pos = nla_next(pos, &(rem)))
iterate over a stream of attributes

Parameters:
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 258 of file attr.h.

Referenced by nla_find(), nla_parse(), and nla_validate().

#define NLA_PUT_U8 ( n,
attrtype,
value   )     NLA_PUT_TYPE(n, uint8_t, attrtype, value)

Add a u8 netlink attribute to a netlink message.

Parameters:
n netlink message
attrtype attribute type
value numeric value

Definition at line 177 of file attr.h.

#define NLA_PUT_U16 ( n,
attrtype,
value   )     NLA_PUT_TYPE(n, uint16_t, attrtype, value)

Add a u16 netlink attribute to a netlink message.

Parameters:
n netlink message
attrtype attribute type
value numeric value

Definition at line 186 of file attr.h.

#define NLA_PUT_U32 ( n,
attrtype,
value   )     NLA_PUT_TYPE(n, uint32_t, attrtype, value)

Add a u32 netlink attribute to a netlink message.

Parameters:
n netlink message
attrtype attribute type
value numeric value

Definition at line 195 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)

Add a u64 netlink attribute to a netlink message.

Parameters:
n netlink message
attrtype attribute type
value numeric value

Definition at line 204 of file attr.h.

#define NLA_PUT_STRING ( n,
attrtype,
value   )     NLA_PUT(n, attrtype, strlen(value) + 1, value)

Add a character string netlink attribute to a netlink message.

Parameters:
n netlink message
attrtype attribute type
value character string

Definition at line 213 of file attr.h.

Referenced by rtnl_link_build_change_request().

#define NLA_PUT_FLAG ( n,
attrtype   )     NLA_PUT(n, attrtype, 0, NULL)

Add a flag netlink attribute to a netlink message.

Parameters:
n netlink message
attrtype attribute type

Definition at line 221 of file attr.h.

#define NLA_PUT_MSECS ( n,
attrtype,
msecs   )     NLA_PUT_U64(n, attrtype, msecs)

Add a msecs netlink attribute to a netlink message.

Parameters:
n netlink message
attrtype attribute type
msecs numeric value in micro seconds

Definition at line 230 of file attr.h.

#define NLA_PUT_ADDR ( n,
attrtype,
addr   ) 

Value:

NLA_PUT(n, attrtype, nl_addr_get_len(addr), \
                nl_addr_get_binary_addr(addr))
Add a address attribute to a netlink message.

Parameters:
n netlink message
attrtype attribute type
addr abstract address object

Definition at line 239 of file attr.h.

Referenced by rtnl_link_build_change_request().


Enumeration Type Documentation

anonymous enum

Standard attribute types to specify validation policy.

Enumerator:
NLA_UNSPEC  Unspecified type.
NLA_U8  8bit integer
NLA_U16  16bit integer
NLA_U32  32bit integer
NLA_U64  64bit integer
NLA_STRING  character string
NLA_FLAG  flag
NLA_MSECS  micro seconds (64bit)
NLA_NESTED  nested attributes

Definition at line 31 of file attr.h.


Function Documentation

int nla_attr_size ( int  payload  ) 

length of attribute not including padding

Parameters:
payload length of payload

Definition at line 110 of file attr.c.

Referenced by nla_padlen(), nla_reserve(), and nla_total_size().

int nla_total_size ( int  payload  ) 

total length of attribute including padding

Parameters:
payload length of payload

Definition at line 119 of file attr.c.

References nla_attr_size().

Referenced by nla_padlen(), and nla_reserve().

int nla_padlen ( int  payload  ) 

length of padding at the tail of the attribute

Parameters:
payload length of payload

Definition at line 128 of file attr.c.

References nla_attr_size(), and nla_total_size().

Referenced by nla_reserve().

void* nla_data ( const struct nlattr nla  ) 

head of payload

Parameters:
nla netlink attribute

Definition at line 144 of file attr.c.

Referenced by nla_get_addr(), nla_get_data(), 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  ) 

length of payload

Parameters:
nla netlink attribute

Definition at line 153 of file attr.c.

References nlattr::nla_len.

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 
)

check if the netlink attribute fits into the remaining bytes

Parameters:
nla netlink attribute
remaining number of bytes remaining in attribute stream

Definition at line 170 of file attr.c.

References nlattr::nla_len.

struct nlattr* nla_next ( const struct nlattr nla,
int *  remaining 
)

next netlink attribte in attribute stream

Parameters:
nla netlink attribute
remaining number of bytes remaining in attribute stream
Returns:
the next netlink attribute in the attribute stream and decrements remaining by the size of the current attribute.

Definition at line 185 of file attr.c.

References nlattr::nla_len.

int nla_parse ( struct nlattr tb[],
int  maxtype,
struct nlattr head,
int  len,
struct nla_policy policy 
)

Parse a stream of attributes into a tb buffer.

Parameters:
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
Parses a stream of attributes and stores a pointer to each attribute in the tb array accessable via the attribute type. Attributes with a type exceeding maxtype will be silently ignored for backwards compatibility reasons. policy may be set to NULL if no validation is required.

Returns:
0 on success or a negative error code.

Definition at line 255 of file attr.c.

References nla_for_each_attr, and nlattr::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 
)

parse nested attributes

Parameters:
tb destination array with maxtype+1 elements
maxtype maximum attribute type to be expected
nla attribute containing the nested attributes
policy validation policy
See also:
nla_parse()

Definition at line 301 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 
)

Validate a stream of attributes.

Parameters:
head head of attribute stream
len length of attribute stream
maxtype maximum attribute type to be expected
policy validation policy
Validates all attributes in the specified attribute stream against the specified policy. Attributes with a type exceeding maxtype will be ignored. See documenation of struct nla_policy for more details.

Returns:
0 on success or a negative error code.

Definition at line 321 of file attr.c.

References nla_for_each_attr.

Referenced by nlmsg_validate().

struct nlattr* nla_find ( struct nlattr head,
int  len,
int  attrtype 
)

Find a specific attribute in a stream of attributes.

Parameters:
head head of attribute stream
len length of attribute stream
attrtype type of attribute to look for
Returns:
the first attribute in the stream matching the specified type.

Definition at line 346 of file attr.c.

References nla_for_each_attr, and nlattr::nla_type.

Referenced by nlmsg_find_attr().

int nla_memcpy ( void *  dest,
struct nlattr src,
int  count 
)

Copy a netlink attribute into another memory area.

Parameters:
dest where to copy to memcpy
src netlink attribute to copy from
count size of the destination area
Note: The number of bytes copied is limited by the length of attribute's payload. memcpy

Returns:
the number of bytes copied.

Definition at line 376 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 
)

Copy string attribute payload into a sized buffer.

Parameters:
dst where to copy the string to
nla attribute to copy the string from
dstsize size of destination buffer
Copies at most dstsize - 1 bytes into the destination buffer. The result is always a valid NUL-terminated string. Unlike strlcpy the destination buffer is always padded out.

Returns:
the length of the source buffer.

Definition at line 401 of file attr.c.

References nla_data(), and nla_len().

int nla_memcmp ( const struct nlattr nla,
const void *  data,
size_t  size 
)

Compare an attribute with sized memory area.

Parameters:
nla netlink attribute
data memory area
size size of memory area

Definition at line 425 of file attr.c.

References nla_data(), and nla_len().

int nla_strcmp ( const struct nlattr nla,
const char *  str 
)

Compare a string attribute against a string.

Parameters:
nla netlink string attribute
str another string

Definition at line 441 of file attr.c.

References nla_data(), and nla_len().

struct nlattr* nla_reserve ( struct nl_msg *  n,
int  attrtype,
int  attrlen 
)

reserve room for attribute on the skb

Parameters:
n netlink message
attrtype attribute type
attrlen length of attribute payload
Adds a netlink attribute header to a netlink message and reserves room for the payload but does not copy it.

Definition at line 468 of file attr.c.

References nla_attr_size(), nlattr::nla_len, nla_padlen(), nla_total_size(), nlattr::nla_type, and nlmsg_tail().

Referenced by nla_put().

int nla_put ( struct nl_msg *  n,
int  attrtype,
int  attrlen,
const void *  data 
)

Add a netlink attribute to a netlink message.

Parameters:
n netlink message
attrtype attribute type
attrlen length of attribute payload
data head of attribute payload
Returns:
-1 if the tailroom of the skb is insufficient to store the attribute header and payload.

Definition at line 501 of file attr.c.

References nla_data(), and nla_reserve().

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 
)

Add a nested netlink attribute to a netlink message.

Parameters:
n netlink message
attrtype attribute type
nested netlink attribute to nest
Returns:
-1 if the tailroom of the skb is insufficient to store the attribute header and payload.

Definition at line 523 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 
)

Add a u16 netlink attribute to a netlink message.

Parameters:
n netlink message
attrtype attribute type
value numeric value

Definition at line 535 of file attr.c.

References nla_put().

int nla_put_u16 ( struct nl_msg *  n,
int  attrtype,
uint16_t  value 
)

Add a u16 netlink attribute to a netlink message.

Parameters:
n netlink message
attrtype attribute type
value numeric value

Definition at line 546 of file attr.c.

References nla_put().

int nla_put_u32 ( struct nl_msg *  n,
int  attrtype,
uint32_t  value 
)

Add a u32 netlink attribute to a netlink message.

Parameters:
n netlink message
attrtype attribute type
value numeric value

Definition at line 557 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 
)

Add a u64 netlink attribute to a netlink message.

Parameters:
n netlink message
attrtype attribute type
value numeric value

Definition at line 568 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 
)

Add a string netlink attribute to a netlink message.

Parameters:
n netlink message
attrtype attribute type
str NUL terminated string

Definition at line 579 of file attr.c.

References nla_put().

Referenced by rtnl_neightbl_build_change_request().

int nla_put_flag ( struct nl_msg *  n,
int  attrtype 
)

Add a flag netlink attribute to a netlink message.

Parameters:
n netlink message
attrtype attribute type

Definition at line 589 of file attr.c.

References nla_put().

int nla_put_msecs ( struct nl_msg *  n,
int  attrtype,
unsigned long  msecs 
)

Add a msecs netlink attribute to a netlink message.

Parameters:
n netlink message
attrtype attribute type
msecs number of msecs

Definition at line 600 of file attr.c.

References nla_put_u64().

int nla_put_data ( struct nl_msg *  n,
int  attrtype,
struct nl_data *  data 
)

Add an abstract data netlink attribute to a netlink message.

Parameters:
n netlink message
attrtype attribute type
data abstract data

Definition at line 611 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 
)

Add an abstract address netlink attribute to a netlink message.

Parameters:
n netlink message
attrtype attribute type
addr abstract address

Definition at line 623 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 
)

Start a new level of nested attributes.

Parameters:
n netlink message
attrtype attribute type of container
Returns:
the container attribute

Definition at line 643 of file attr.c.

References nla_put(), and nlmsg_tail().

int nla_nest_end ( struct nl_msg *  n,
struct nlattr start 
)

Finalize nesting of attributes.

Parameters:
n netlink message
start container attribute
Corrects the container attribute header to include the all appeneded attributes.

Returns:
the total data length of the skb.

Definition at line 663 of file attr.c.

References nlattr::nla_len, and nlmsg_tail().

uint32_t nla_get_u32 ( struct nlattr nla  ) 

Return payload of u32 attribute.

Parameters:
nla u32 netlink attribute

Definition at line 681 of file attr.c.

References nla_data().

uint16_t nla_get_u16 ( struct nlattr nla  ) 

Return payload of u16 attribute.

Parameters:
nla u16 netlink attribute

Definition at line 690 of file attr.c.

References nla_data().

uint8_t nla_get_u8 ( struct nlattr nla  ) 

Return payload of u8 attribute.

Parameters:
nla u8 netlink attribute

Definition at line 699 of file attr.c.

References nla_data().

uint64_t nla_get_u64 ( struct nlattr nla  ) 

Return payload of u64 attribute.

Parameters:
nla u64 netlink attribute

Definition at line 708 of file attr.c.

References nla_memcpy().

Referenced by nla_get_msecs().

int nla_get_flag ( struct nlattr nla  ) 

Return payload of flag attribute.

Parameters:
nla flag netlink attribute

Definition at line 721 of file attr.c.

unsigned long nla_get_msecs ( struct nlattr nla  ) 

Return payload of msecs attribute.

Parameters:
nla msecs netlink attribute
Returns:
the number of milliseconds.

Definition at line 732 of file attr.c.

References nla_get_u64().

struct nl_addr* nla_get_addr ( struct nlattr nla,
int  family 
)

Return payload of address attribute.

Parameters:
nla address netlink attribute
family address family
Returns:
Newly allocated address handle or NULL

Definition at line 744 of file attr.c.

References nl_addr_build(), nla_data(), and nla_len().

struct nl_data* nla_get_data ( struct nlattr nla  ) 

Return payload of abstract data attribute.

Parameters:
nla abstract data netlink attribute
Returns:
Newly allocated abstract data handle or NULL

Definition at line 755 of file attr.c.

References nl_data_alloc(), nla_data(), and nla_len().


Generated on Fri Apr 27 14:14:07 2007 for libnl by  doxygen 1.5.1