On Thu, 26 Oct 2023 18:16:59 +0300 Nikolay Aleksandrov wrote: > static const struct nla_policy netkit_policy[IFLA_NETKIT_MAX + 1] = { > [IFLA_NETKIT_PEER_INFO] = { .len = sizeof(struct ifinfomsg) }, > - [IFLA_NETKIT_POLICY] = { .type = NLA_U32 }, > - [IFLA_NETKIT_MODE] = { .type = NLA_U32 }, > - [IFLA_NETKIT_PEER_POLICY] = { .type = NLA_U32 }, > + [IFLA_NETKIT_POLICY] = NLA_POLICY_VALIDATE_FN(NLA_BINARY, > + netkit_check_policy, > + sizeof(u32)), > + [IFLA_NETKIT_MODE] = NLA_POLICY_VALIDATE_FN(NLA_BINARY, > + netkit_check_mode, > + sizeof(u32)), > + [IFLA_NETKIT_PEER_POLICY] = NLA_POLICY_VALIDATE_FN(NLA_BINARY, > + netkit_check_policy, > + sizeof(u32)), I vote to leave this code be. It's not perfect. But typing it as binary is not getting us closer to perfection.