IFA_ADDRESS
[IFA_ADDRESS] = { .type = NLA_U32 },
nla_put_in_addr(skb, IFA_ADDRESS, ifa->ifa_address)) ||
if (tb[IFA_ADDRESS] &&
!inet_ifa_match(nla_get_in_addr(tb[IFA_ADDRESS]), ifa)))
if (!tb[IFA_ADDRESS])
tb[IFA_ADDRESS] = tb[IFA_LOCAL];
ifa->ifa_address = nla_get_in_addr(tb[IFA_ADDRESS]);
[IFA_ADDRESS] = { .len = sizeof(struct in6_addr) },
pfx = extract_addr(tb[IFA_ADDRESS], tb[IFA_LOCAL], &peer_pfx);
cfg.pfx = extract_addr(tb[IFA_ADDRESS], tb[IFA_LOCAL], &peer_pfx);
nla_put_in6_addr(skb, IFA_ADDRESS, &ifa->peer_addr) < 0)
if (nla_put_in6_addr(skb, IFA_ADDRESS, &ifa->addr) < 0)
case IFA_ADDRESS:
addr = extract_addr(tb[IFA_ADDRESS], tb[IFA_LOCAL], &peer);
[IFA_ADDRESS] = { .type = NLA_U8 },
else if (tb[IFA_ADDRESS])
addr = nla_data(tb[IFA_ADDRESS]);
else if (tb[IFA_ADDRESS])
addr = nla_data(tb[IFA_ADDRESS]);
if (nla_put_u8(skb, IFA_ADDRESS, eid))
if (rtattr_pack(&req.nh, sizeof(req), IFA_ADDRESS, &addr, sizeof(addr)))