linux-user: handle netlink flag NLA_F_NESTED
commit2fe8ed6fe9dd8c50f06c16921b42d6f0e17f9f7c
authorMathis Marion <mathis.marion@silabs.com>
Tue, 7 Mar 2023 15:42:56 +0000 (7 16:42 +0100)
committerLaurent Vivier <laurent@vivier.eu>
Fri, 10 Mar 2023 19:45:47 +0000 (10 20:45 +0100)
treed1f1b201a79ecbfdd81961add7a8027461656f5c
parent44cf6731d6b9a48bcd57392e8cd6f0f712aaa677
linux-user: handle netlink flag NLA_F_NESTED

Newer kernel versions require this flag to be present contrary to older
ones. Depending on the libnl version it is added or not.

Typically when using rtnl_link_inet6_set_addr_gen_mode, the netlink
packet generated may contain the following attribute:

with libnl 3.4

  {nla_len=16, nla_type=IFLA_AF_SPEC},
  [
    {nla_len=12, nla_type=AF_INET6},
    [{nla_len=5, nla_type=IFLA_INET6_ADDR_GEN_MODE}, IN6_ADDR_GEN_MODE_NONE]
  ]

with libnl 3.7

  {nla_len=16, nla_type=NLA_F_NESTED|IFLA_AF_SPEC},
  [
    {nla_len=12, nla_type=NLA_F_NESTED|AF_INET6},
    [{nla_len=5, nla_type=IFLA_INET6_ADDR_GEN_MODE}, IN6_ADDR_GEN_MODE_NONE]]
  ]

Masking the type is likely needed in other places. Only the above cases
are implemented in this patch.

Signed-off-by: Mathis Marion <mathis.marion@silabs.com>
Reviewed-by: Laurent Vivier <laurent@vivier.eu>
Message-Id: <20230307154256.101528-3-Mathis.Marion@silabs.com>
Signed-off-by: Laurent Vivier <laurent@vivier.eu>
linux-user/fd-trans.c