Hi Lorenzo,
I found one more issue: caching the ip6 daddr does not work because skb_cow_head() can reallocate the skb header, invalidating all pointers.
I went back to use the other_tuple, it is safer, new branch:
flowtable-consolidate-xmit+ipip3
Hopefully, this is the last iteration for this series.
I am attaching a diff that compares flowtable-consolidate-xmit+ipip2 vs. flowtable-consolidate-xmit+ipip3 branches.
I also made a few cosmetic edits.