IP: GRE tunnels over IP

modulename: ip_gre.ko

configname: CONFIG_NET_IPGRE

Linux Kernel Configuration
└─>Networking support
└─>Networking options
└─>IP: GRE tunnels over IP
In linux kernel since version 2.6.12  
Tunneling means encapsulating data of one protocol type within
another protocol and sending it over a channel that understands the
encapsulating protocol. This particular tunneling driver implements
GRE (Generic Routing Encapsulation) and at this time allows
encapsulating of IPv4 or IPv6 over existing IPv4 infrastructure.
This driver is useful if the other endpoint is a Cisco router: Cisco
likes GRE much better than the other Linux tunneling driver ("IP
tunneling" above). In addition, GRE allows multicast redistribution
through the tunnel.

source code: