|
From: Xin L. <luc...@gm...> - 2023-05-01 20:18:29
|
On Mon, May 1, 2023 at 11:35 AM Xin Long <luc...@gm...> wrote:
> On Mon, May 1, 2023 at 1:21 AM Tung Quang Nguyen <tun...@de...> wrote:
>> >@@ -760,6 +760,7 @@ static int tipc_udp_enable(struct net *net, struct tipc_bearer *b,
>> > else
>> > udp_conf.local_ip6 = local.ipv6;
>> > ub->ifindex = dev->ifindex;
>> >+ b->encap_hlen = sizeof(struct ipv6hdr) + sizeof(struct udphdr);
>> tipc_mtu_bad() needs to be called here to check for the minimum required MTU like the way ipv4 UDP bearer does.
>
> Agree, especially after commit 5a6f6f579178 ("tipc: set ub->ifindex for local ipv6 address"), we have the dev there.
After taking a second look, I think we should delete the tipc_mtu_bad()
call for ipv4 UDP bearer, as b->mtu is no longer using dev->mtu since:
commit a4dfa72d0acd ("tipc: set default MTU for UDP media")
The issue described in commit 3de81b758853 ("tipc: check minimum bearer MTU")
no longer exists in UDP bearer.
Besides, dev->mtu can still be changed to a too small mtu after the UDP
bearer is created even with the tipc_mtu_bad() check in tipc_udp_enable().
Note that NETDEV_CHANGEMTU event processing in tipc_l2_device_event()
doesn't really work for UDP bearer.
I will leave this patch as it is in my v2 post, and create another patch
for net-next to delete the unnecessary tipc_mtu_bad() check in UDP bearer.
Agree?
Thanks.
|