Commit 35a089b5 authored by Xin Long's avatar Xin Long Committed by David S. Miller
Browse files

tipc: check the bearer min mtu properly when setting it by netlink



Checking the bearer min mtu with tipc_udp_mtu_bad() only works for
IPv4 UDP bearer, and IPv6 UDP bearer has a different value for the
min mtu. This patch checks with encap_hlen + TIPC_MIN_BEARER_MTU
for min mtu, which works for both IPv4 and IPv6 UDP bearer.

Note that tipc_udp_mtu_bad() is still used to check media min mtu
in __tipc_nl_media_set(), as m->mtu currently is only used by the
IPv4 UDP bearer as its default mtu value.

Fixes: 682cd3cf ("tipc: confgiure and apply UDP bearer MTU on running links")
Signed-off-by: default avatarXin Long <lucien.xin@gmail.com>
Acked-by: default avatarJon Maloy <jmaloy@redhat.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent 56077b56
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -1151,8 +1151,8 @@ int __tipc_nl_bearer_set(struct sk_buff *skb, struct genl_info *info)
				return -EINVAL;
			}
#ifdef CONFIG_TIPC_MEDIA_UDP
			if (tipc_udp_mtu_bad(nla_get_u32
					     (props[TIPC_NLA_PROP_MTU]))) {
			if (nla_get_u32(props[TIPC_NLA_PROP_MTU]) <
			    b->encap_hlen + TIPC_MIN_BEARER_MTU) {
				NL_SET_ERR_MSG(info->extack,
					       "MTU value is out-of-range");
				return -EINVAL;