freebsd-dev/sbin/ifconfig
Bjoern A. Zeeb 201100c58b Initial implementation of draft-ietf-6man-ipv6only-flag.
This change defines the RA "6" (IPv6-Only) flag which routers
may advertise, kernel logic to check if all routers on a link
have the flag set and accordingly update a per-interface flag.

If all routers agree that it is an IPv6-only link, ether_output_frame(),
based on the interface flag, will filter out all ETHERTYPE_IP/ARP
frames, drop them, and return EAFNOSUPPORT to upper layers.

The change also updates ndp to show the "6" flag, ifconfig to
display the IPV6_ONLY nd6 flag if set, and rtadvd to allow
announcing the flag.

Further changes to tcpdump (contrib code) are availble and will
be upstreamed.

Tested the code (slightly earlier version) with 2 FreeBSD
IPv6 routers, a FreeBSD laptop on ethernet as well as wifi,
and with Win10 and OSX clients (which did not fall over with
the "6" flag set but not understood).

We may also want to (a) implement and RX filter, and (b) over
time enahnce user space to, say, stop dhclient from running
when the interface flag is set.  Also we might want to start
IPv6 before IPv4 in the future.

All the code is hidden under the EXPERIMENTAL option and not
compiled by default as the draft is a work-in-progress and
we cannot rely on the fact that IANA will assign the bits
as requested by the draft and hence they may change.

Dear 6man, you have running code.

Discussed with:	Bob Hinden, Brian E Carpenter
2018-10-30 20:08:48 +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_inet.c General further adoption of SPDX licensing ID tags. 2017-11-20 19:49:47 +00:00
af_inet6.c General further adoption of SPDX licensing ID tags. 2017-11-20 19:49: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 Initial implementation of draft-ietf-6man-ipv6only-flag. 2018-10-30 20:08:48 +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 Fix description for the "autoconf" ifconfig(8) flag; it's an address 2018-06-27 19:28:37 +00:00
ifconfig.c Fix grammar. 2018-10-21 14:48:40 +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 various: general adoption of SPDX licensing ID tags. 2017-11-27 15:37:16 +00:00
ifgroup.c Make lagg creation more fault tolerant 2018-04-17 12:54:58 +00:00
ifieee80211.c IEEE! 2018-08-11 11:05:22 +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 various: general adoption of SPDX licensing ID tags. 2017-11-27 15:37:16 +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 Initial implementation of draft-ietf-6man-ipv6only-flag. 2018-10-30 20:08:48 +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