• Shigeru Yoshida's avatar
    batman-adv: Fix hang up with small MTU hard-interface · b1cb8a71
    Shigeru Yoshida authored
    The system hangs up when batman-adv soft-interface is created on
    hard-interface with small MTU.  For example, the following commands
    create batman-adv soft-interface on dummy interface with zero MTU:
    
      # ip link add name dummy0 type dummy
      # ip link set mtu 0 dev dummy0
      # ip link set up dev dummy0
      # ip link add name bat0 type batadv
      # ip link set dev dummy0 master bat0
    
    These commands cause the system hang up with the following messages:
    
      [   90.578925][ T6689] batman_adv: bat0: Adding interface: dummy0
      [   90.580884][ T6689] batman_adv: bat0: The MTU of interface dummy0 is too small (0) to handle the transport of batman-adv packets. Packets going over this interface will be fragmented on layer2 which could impact the performance. Setting the MTU to 1560 would solve the problem.
      [   90.586264][ T6689] batman_adv: bat0: Interface activated: dummy0
      [   90.590061][ T6689] batman_adv: bat0: Forced to purge local tt entries to fit new maximum fragment MTU (-320)
      [   90.595517][ T6689] batman_adv: bat0: Forced to purge local tt entries to fit new maximum fragment MTU (-320)
      [   90.598499][ T6689] batman_adv: bat0: Forced to purge local tt entries to fit new maximum fragment MTU (-320)
    
    This patch fixes this issue by returning error when enabling
    hard-interface with small MTU size.
    
    Fixes: c6c8fea2 ("net: Add batman-adv meshing protocol")
    Signed-off-by: default avatarShigeru Yoshida <syoshida@redhat.com>
    Signed-off-by: default avatarSven Eckelmann <sven@narfation.org>
    Signed-off-by: default avatarSimon Wunderlich <sw@simonwunderlich.de>
    b1cb8a71
hard-interface.c 27.1 KB