vxlan: Add missing entries to vxlan_get_size()
authorBenjamin Poirier <bpoirier@nvidia.com>
Mon, 18 Sep 2023 15:40:15 +0000 (11:40 -0400)
committerDavid S. Miller <davem@davemloft.net>
Wed, 20 Sep 2023 08:00:54 +0000 (09:00 +0100)
There are some attributes added by vxlan_fill_info() which are not
accounted for in vxlan_get_size(). Add them.

I didn't find a way to trigger an actual problem from this miscalculation
since there is usually extra space in netlink size calculations like
if_nlmsg_size(); but maybe I just didn't search long enough.

Fixes: 3511494ce2f3 ("vxlan: Group Policy extension")
Fixes: e1e5314de08b ("vxlan: implement GPE")
Fixes: 0ace2ca89cbd ("vxlan: Use checksum partial with remote checksum offload")
Fixes: f9c4bb0b245c ("vxlan: vni filtering support on collect metadata device")
Signed-off-by: Benjamin Poirier <bpoirier@nvidia.com>
Acked-by: Nikolay Aleksandrov <razor@blackwall.org>
Reviewed-by: Ido Schimmel <idosch@nvidia.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/vxlan/vxlan_core.c

index e463f59..5b55970 100644 (file)
@@ -4331,6 +4331,10 @@ static size_t vxlan_get_size(const struct net_device *dev)
                nla_total_size(sizeof(__u8)) + /* IFLA_VXLAN_REMCSUM_TX */
                nla_total_size(sizeof(__u8)) + /* IFLA_VXLAN_REMCSUM_RX */
                nla_total_size(sizeof(__u8)) + /* IFLA_VXLAN_LOCALBYPASS */
+               nla_total_size(0) + /* IFLA_VXLAN_GBP */
+               nla_total_size(0) + /* IFLA_VXLAN_GPE */
+               nla_total_size(0) + /* IFLA_VXLAN_REMCSUM_NOPARTIAL */
+               nla_total_size(sizeof(__u8)) + /* IFLA_VXLAN_VNIFILTER */
                0;
 }