FreeBSD/src a1d389d (r348233)sbin/ifconfig ifgre.c, share/man/man4 gre.4

MFC r346630:
  Add GRE-in-UDP encapsulation support as defined in RFC8086.

  This GRE-in-UDP encapsulation allows the UDP source port field to be
  used as an entropy field for load-balancing of GRE traffic in transit
  networks. Also most of multiqueue network cards are able distribute
  incoming UDP datagrams to different NIC queues, while very little are
  able do this for GRE packets.

  When an administrator enables UDP encapsulation with command
  `ifconfig gre0 udpencap`, the driver creates kernel socket, that binds
  to tunnel source address and after udp_set_kernel_tunneling() starts
  receiving of all UDP packets destined to 4754 port. Each kernel socket
  maintains list of tunnels with different destination addresses. Thus
  when several tunnels use the same source address, they all handled by
  single socket.  The IP[V6]_BINDANY socket option is used to be able bind
  socket to source address even if it is not yet available in the system.
  This may happen on system boot, when gre(4) interface is created before
  source address become available. The encapsulation and sending of packets
  is done directly from gre(4) into ip[6]_output() without using sockets.

  Reviewed by:  eugen
  Relnotes:     yes
  Differential Revision:        https://reviews.freebsd.org/D19921
DeltaFile
+270-21sys/netinet6/ip6_gre.c
+260-23sys/netinet/ip_gre.c
+147-6sys/net/if_gre.c
+52-14sys/net/if_gre.h
+39-1share/man/man4/gre.4
+23-2sbin/ifconfig/ifgre.c
+1-1sys/modules/if_gre/Makefile
+792-687 files

UnifiedSplitRaw