Hello, i looked into the problem of fragmenting packets on layer2 to solve the mtu issue. I found a unforeseen problem : oversized packets will be dropped by the bridge module ( if bat0 is in a bridge ). I think the reason can be found here net/bridge/br_forward.c on line 44
43 /* drop mtu oversized packets except gso */ 44 if (packet_length(skb) > skb->dev->mtu && !skb_is_gso(skb)) 45 kfree_skb(skb);
Possible solution: make a patch for the bridge module
if (packet_length(skb) > skb->dev->mtu && !skb_is_gso(skb) && !(skb->dev->priv_flags & IFF_CAN_FRAG))
IFF_CAN_FRAG must be added to include/linux/if.h and batman-adv has to set this flag on bat0
I can make a patch for mainline inclusion, do you believe it is going to be accepted ?
regards, andreas