Generic Routing Encapsulation (GRE) provides a general purpose encapsulation of one protocol over another.
How does it work?
The original packet is encapsualted in a GRE packet, this is then encapsulated in another outer protocol before being forwarded.
Where the original packet is based on IPv4 the packet header must be used to forward the packet and the TTL of the packet MUST be decremented.
Where IPv4 is used as the Outer Protocol, IPv4 protocol 47 is used for delivery.