• Xin Long's avatar
    esp6: support ipv6 nexthdrs process for beet gso segment · 25a44ae9
    Xin Long authored
    For beet mode, when it's ipv6 inner address with nexthdrs set,
    the packet format might be:
    
        ----------------------------------------------------
        | outer  |     | dest |     |      |  ESP    | ESP |
        | IP6 hdr| ESP | opts.| TCP | Data | Trailer | ICV |
        ----------------------------------------------------
    
    Before doing gso segment in xfrm6_beet_gso_segment(), it should
    skip all nexthdrs and get the real transport proto, and set
    transport_header properly.
    
    This patch is to fix it by simply calling ipv6_skip_exthdr()
    in xfrm6_beet_gso_segment().
    
    v1->v2:
      - remove skb_transport_offset(), as it will always return 0
        in xfrm6_beet_gso_segment(), thank Sabrina's check.
    
    Fixes: 7f9e40eb ("esp6: add gso_segment for esp6 beet mode")
    Signed-off-by: default avatarXin Long <lucien.xin@gmail.com>
    Signed-off-by: default avatarSteffen Klassert <steffen.klassert@secunet.com>
    25a44ae9
esp6_offload.c 9.07 KB