if_vlan allow to set incorrect mtu

From: Rozhuk Ivan <rozhuk.im_at_gmail.com>
Date: Sun, 07 Nov 2021 07:51:30 UTC
Hi!


Why if_vlan allow to set same MTU size or bigger as on parrent nic?


Setup:
- workstation with MTU 9000 and IPv4 on h/w nic
- server with MTU 9000 on h/w nic and IPv4 on vlan nic with MTU 9000 (set by defauil on iface creation)

This setup have issue:
- big packets from server->wks - OK
- big packets from wks->server - FAIL.

Server init sequence:
1. Create vlans
2. Set MTU lower than default on parent nic

Result: vlan have bigger or same MTU as parrent nic, but parrent nic reports IFCAP_VLAN_MTU.
Probably this is if_em driver issue or iflib.



This is rc.conf, vlan77 - where I got MTU 9000 and fail to receive packets:
=====================================================================================
vlans_igb0="vlan77 vlan86 vlan87"
create_args_vlan87="vlan 87"
create_args_vlan86="vlan 86"
create_args_vlan77="vlan 77"
ifconfig_vlan87="inet 15.44.77.2 netmask 255.255.252.0 mtu 1500 down up"
ifconfig_vlan87_alias0="link 00:aa:fa:dd:44:55"
ifconfig_vlan86="DHCP mtu 1500"
ifconfig_vlan86_alias0="link 00:ff:fa:dd:44:55"
ifconfig_vlan77="inet 192.168.0.254 netmask 255.255.255.0"
ifconfig_vlan77_alias0="link 00:0f:43:48:67:fe"
ifconfig_vlan77_ipv6="inet6 2001:470:2345:555::1/64 prefixlen 64 auto_linklocal"
ifconfig_igb0="-lro -tso -vlanhwtso mtu 9000 down up"
=====================================================================================