freebsd-dev/sbin/ifconfig
Andrey V. Elsukov aee793eec9 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
MFC after:	1 month
Relnotes:	yes
Differential Revision:	https://reviews.freebsd.org/D19921
2019-04-24 09:05:45 +00:00
..
tests Merge ^/user/ngie/release-pkg-fix-tests to unbreak how test files are installed 2016-05-04 23:20:53 +00:00
af_inet6.c Update for IETF draft-ietf-6man-ipv6only-flag. 2019-03-06 23:31:42 +00:00
af_inet.c ifconfig: eliminate trailing whitespace 2019-02-26 03:34:47 +00:00
af_link.c Allow to specify PCP on packets not belonging to any VLAN. 2018-03-27 15:29:32 +00:00
af_nd6.c Update for IETF draft-ietf-6man-ipv6only-flag. 2019-03-06 23:31:42 +00:00
carp.c various: general adoption of SPDX licensing ID tags. 2017-11-27 15:37:16 +00:00
ifbridge.c various: general adoption of SPDX licensing ID tags. 2017-11-27 15:37:16 +00:00
ifclone.c Make lagg creation more fault tolerant 2018-04-17 12:54:58 +00:00
ifconfig.8 ifconfig.4, lagg.4: fix documentation bug: -use_flowid needs to be used 2018-12-22 11:38:54 +00:00
ifconfig.c ifconfig: eliminate trailing whitespace 2019-02-26 03:34:47 +00:00
ifconfig.h Make lagg creation more fault tolerant 2018-04-17 12:54:58 +00:00
iffib.c various: general adoption of SPDX licensing ID tags. 2017-11-27 15:37:16 +00:00
ifgif.c various: general adoption of SPDX licensing ID tags. 2017-11-27 15:37:16 +00:00
ifgre.c Add GRE-in-UDP encapsulation support as defined in RFC8086. 2019-04-24 09:05:45 +00:00
ifgroup.c ifconfig: eliminate trailing whitespace 2019-02-26 03:34:47 +00:00
ifieee80211.c ifconfig(8): display 802.11n rates correctly for 'roam:rate' parameter 2019-02-10 21:32:39 +00:00
ifipsec.c Update ifr_name before invoking IPSECSREQID ioctl, this fixes the case, 2018-09-22 16:30:48 +00:00
iflagg.c Make lagg creation more fault tolerant 2018-04-17 12:54:58 +00:00
ifmac.c various: general adoption of SPDX licensing ID tags. 2017-11-27 15:37:16 +00:00
ifmedia.c Finish removing FDDI and tokenring media support. 2018-04-23 21:10:33 +00:00
ifpfsync.c ifconfig: fix endianness bug displaying pfsync interfaces 2019-01-28 18:34:04 +00:00
ifvlan.c spdx: initial adoption of licensing ID tags. 2017-11-18 14:26:50 +00:00
ifvxlan.c Add support for IPv6 scoped addresses to vxlan 2017-12-30 04:03:53 +00:00
Makefile Update for IETF draft-ietf-6man-ipv6only-flag. 2019-03-06 23:31:42 +00:00
Makefile.depend DIRDEPS_BUILD: Update dependencies. 2017-10-31 00:07:04 +00:00
sfp.c ifconfig(8): Display extended compliance code string for SFP transceivers 2017-12-05 18:42:07 +00:00