rtattr
struct rtattr *rta;
for (rta = (struct rtattr *)(((char *)NLMSG_DATA(nlh)) + NLMSG_ALIGN(nlm_struct_size));
struct rtattr *rta = (struct rtattr *)nla;
if (rta->rta_len < sizeof(struct rtattr)) {
struct rtattr *rta = (struct rtattr *)nla;
if (rta->rta_len < sizeof(struct rtattr)) {
valid_rta_size(const struct rtattr *rta, int sz)
valid_rta_u32(const struct rtattr *rta)
_rta_get_uint32(const struct rtattr *rta)
parse_rta_ip(struct rtattr *rta, struct nl_pstate *npt, int *perror)
struct sockaddr *sa = parse_rta_ip((struct rtattr *)nla, npt, &error);
parse_rta_via(struct rtattr *rta, struct nl_pstate *npt, int *perror)
struct sockaddr *sa = parse_rta_via((struct rtattr *)nla, npt, &error);
parse_rta_via(struct snl_state *ss, struct rtattr *rta, int *perror)
struct sockaddr *sa = parse_rta_via(ss, (struct rtattr *)nla, &error);
parse_rta_ip(struct snl_state *ss, struct rtattr *rta, int *perror)
struct sockaddr *sa = parse_rta_ip(ss, (struct rtattr *)nla, &error);
#define IFA_RTA(_ifa) ((struct rtattr *)(NL_ITEM_DATA(_ifa, _NL_IFA_HDRLEN)))
#define IFLA_RTA(_ifi) ((struct rtattr *)NL_ITEM_DATA(_ifi, _IFINFO_HDRLEN))
#define RTM_RTA(_rtm) ((struct rtattr *)((char *)(_rtm) + NL_RTM_HDRLEN))
#define NL_RTA_HDRLEN ((int)sizeof(struct rtattr))
#define RTNH_DATA(_nh) ((struct rtattr *)NL_ITEM_DATA(_nh, RTNH_HDRLEN))