+static int ovpn_net_change_mtu(struct net_device *dev, int new_mtu)
+{
+ if (new_mtu < IPV4_MIN_MTU ||
+ new_mtu + dev->hard_header_len > IP_MAX_MTU)
+ return -EINVAL;
If you set dev->min_mtu and dev->max_mtu, the core will validate this
for you, see dev_validate_mtu().
+static int ovpn_get_link_ksettings(struct net_device *dev,
+ struct ethtool_link_ksettings *cmd)
+{
+ ethtool_convert_legacy_u32_to_link_mode(cmd->link_modes.supported, 0);
+ ethtool_convert_legacy_u32_to_link_mode(cmd->link_modes.advertising, 0);
These two should not be needed. Look at tun, veth etc, they don't set
them.