If we go in the history​ of tunneling protocols.
PPP protocol get tunnel by PPTP using GRE tunneling protocol.
L2F by CISCO uses L2F header.
L2TP by Microsoft uses L2TP header.
IPSec uses either ESP,AH or combination of both depending on kind of security required then attach the other IP header.

So I was wondering if there is some header between IPv4 and IPv6 which define some control information about tunneled packet.
Or just IPv6 just after IPv4 header and vice versa.