Skip to content
Snippets Groups Projects
  • Mathis Marion's avatar
    2fe8ed6f
    linux-user: handle netlink flag NLA_F_NESTED · 2fe8ed6f
    Mathis Marion authored
    
    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: default avatarMathis Marion <mathis.marion@silabs.com>
    Reviewed-by: default avatarLaurent Vivier <laurent@vivier.eu>
    Message-Id: <20230307154256.101528-3-Mathis.Marion@silabs.com>
    Signed-off-by: default avatarLaurent Vivier <laurent@vivier.eu>
    2fe8ed6f
    History
    linux-user: handle netlink flag NLA_F_NESTED
    Mathis Marion authored
    
    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: default avatarMathis Marion <mathis.marion@silabs.com>
    Reviewed-by: default avatarLaurent Vivier <laurent@vivier.eu>
    Message-Id: <20230307154256.101528-3-Mathis.Marion@silabs.com>
    Signed-off-by: default avatarLaurent Vivier <laurent@vivier.eu>