Hi all, I've been exploring hardware LRO related code in the stack and came across an inconsistency I don't quite understand. When receiving a hardware LRO packet, most of the drivers set skb_shinfo(skb)->gso_type (For example [1]) in order to prevent macvtap from breaking. According to include/linux/skbuff.h +/skb_warn_if_lro, LRO should set gso_size but not gso_type, which contradicts the drivers implementation and makes the check redundant.
Can anyone advise what is the correct driver implementation? should we change skb_warn_if_lro() implementation? Regards, Gal [1] commit bd69ba798e21 ("qlcnic: set gso_type")