freebsd-nq/sys/netinet6
Andrey V. Elsukov f325335caf Overhaul if_gre(4).
Split it into two modules: if_gre(4) for GRE encapsulation and
if_me(4) for minimal encapsulation within IP.

gre(4) changes:
* convert to if_transmit;
* rework locking: protect access to softc with rmlock,
  protect from concurrent ioctls with sx lock;
* correct interface accounting for outgoing datagramms (count only payload size);
* implement generic support for using IPv6 as delivery header;
* make implementation conform to the RFC 2784 and partially to RFC 2890;
* add support for GRE checksums - calculate for outgoing datagramms and check
  for inconming datagramms;
* add support for sending sequence number in GRE header;
* remove support of cached routes. This fixes problem, when gre(4) doesn't
  work at system startup. But this also removes support for having tunnels with
  the same addresses for inner and outer header.
* deprecate support for various GREXXX ioctls, that doesn't used in FreeBSD.
  Use our standard ioctls for tunnels.

me(4):
* implementation conform to RFC 2004;
* use if_transmit;
* use the same locking model as gre(4);

PR:		164475
Differential Revision:	D1023
No objections from:	net@
Relnotes:	yes
Sponsored by:	Yandex LLC
2014-11-07 19:13:19 +00:00
..
dest6.c The r48589 promised to remove implicit inclusion of if_var.h soon. Prepare 2013-10-26 17:58:36 +00:00
frag6.c The r48589 promised to remove implicit inclusion of if_var.h soon. Prepare 2013-10-26 17:58:36 +00:00
icmp6.c When deciding whether to call m_pullup() even though there is adequate 2014-10-12 15:49:52 +00:00
icmp6.h
in6_cksum.c Fix the checksum computation for UDPLite/IPv6. This requires the 2014-10-02 10:32:24 +00:00
in6_gif.c Remove SYSCTL_VNET_* macros, and simply put CTLFLAG_VNET where needed. 2014-11-07 09:39:05 +00:00
in6_gif.h Overhaul if_gif(4): 2014-10-14 13:31:47 +00:00
in6_ifattach.c Remove redundant code. 2014-10-30 12:44:46 +00:00
in6_ifattach.h Use FF02:0:0:0:0:2:FF00::/104 prefix for IPv6 Node Information Group 2013-05-04 19:16:26 +00:00
in6_mcast.c Move ifq drain into in6m_purge(). 2014-10-30 11:34:07 +00:00
in6_pcb.c Make in6_pcblookup_hash_locked and in6_pcbladdr static. 2014-09-10 13:17:35 +00:00
in6_pcb.h Make in6_pcblookup_hash_locked and in6_pcbladdr static. 2014-09-10 13:17:35 +00:00
in6_pcbgroup.c When it's time to do 4-tuple UDP IPv6 hashing, make sure this is a known 2014-07-20 07:39:54 +00:00
in6_proto.c Overhaul if_gre(4). 2014-11-07 19:13:19 +00:00
in6_rmx.c Remove SYSCTL_VNET_* macros, and simply put CTLFLAG_VNET where needed. 2014-11-07 09:39:05 +00:00
in6_src.c Add the ability to set `prefer_source' flag to an IPv6 address. 2014-09-09 10:52:50 +00:00
in6_var.h Make checks for rt_mtu generic: 2014-11-06 13:13:09 +00:00
in6.c Make checks for rt_mtu generic: 2014-11-06 13:13:09 +00:00
in6.h Fix the checksum computation for UDPLite/IPv6. This requires the 2014-10-02 10:32:24 +00:00
ip6_ecn.h
ip6_forward.c Remove redundant call to ipsec_getpolicybyaddr(). 2014-09-30 13:15:19 +00:00
ip6_gre.c Overhaul if_gre(4). 2014-11-07 19:13:19 +00:00
ip6_id.c Provide includes that are needed in these files, and before were read 2013-10-26 18:18:50 +00:00
ip6_input.c Merge 'struct ip6protosw' and 'struct protosw' into one. Now we have 2014-08-08 01:57:15 +00:00
ip6_ipsec.c Remove SYSCTL_VNET_* macros, and simply put CTLFLAG_VNET where needed. 2014-11-07 09:39:05 +00:00
ip6_ipsec.h Fixed IPv4-in-IPv6 and IPv6-in-IPv4 IPsec tunnels. 2014-05-28 12:45:27 +00:00
ip6_mroute.c When deciding whether to call m_pullup() even though there is adequate 2014-10-12 15:49:52 +00:00
ip6_mroute.h revert part of r260485 which changes how part of the header gets 2014-01-09 22:41:18 +00:00
ip6_output.c When deciding whether to call m_pullup() even though there is adequate 2014-10-12 15:49:52 +00:00
ip6_var.h Merge 'struct ip6protosw' and 'struct protosw' into one. Now we have 2014-08-08 01:57:15 +00:00
ip6.h
ip6protosw.h Merge 'struct ip6protosw' and 'struct protosw' into one. Now we have 2014-08-08 01:57:15 +00:00
mld6_var.h
mld6.c Remove SYSCTL_VNET_* macros, and simply put CTLFLAG_VNET where needed. 2014-11-07 09:39:05 +00:00
mld6.h
nd6_nbr.c Add rwlock to struct dadq. A panic could occur when a large number of 2014-05-29 20:53:53 +00:00
nd6_rtr.c Use in6_localip() instead of hand-rolled cycle. 2014-01-18 20:54:55 +00:00
nd6.c Remove SYSCTL_VNET_* macros, and simply put CTLFLAG_VNET where needed. 2014-11-07 09:39:05 +00:00
nd6.h Further rework netinet6 address handling code: 2014-01-19 16:07:27 +00:00
pim6_var.h Remove more constants related to static sysctl nodes. The MAXID constants 2014-02-25 18:44:33 +00:00
pim6.h
raw_ip6.c Merge 'struct ip6protosw' and 'struct protosw' into one. Now we have 2014-08-08 01:57:15 +00:00
raw_ip6.h Migrate structs ip6stat, icmp6stat and rip6stat to PCPU counters. 2013-07-09 09:54:54 +00:00
route6.c The r48589 promised to remove implicit inclusion of if_var.h soon. Prepare 2013-10-26 17:58:36 +00:00
scope6_var.h Introduce new scope related functions. 2014-09-11 12:33:37 +00:00
scope6.c Remove SYSCTL_VNET_* macros, and simply put CTLFLAG_VNET where needed. 2014-11-07 09:39:05 +00:00
sctp6_usrreq.c Use union sctp_sockstore instead of struct sockaddr_storage. This 2014-09-07 09:06:26 +00:00
sctp6_var.h Add support for SCTP/UDP/IPV6. 2012-11-17 20:04:04 +00:00
send.c Free mbuf in case of error. 2013-12-17 10:53:17 +00:00
send.h
tcp6_var.h Remove __P. 2012-10-22 21:49:56 +00:00
udp6_usrreq.c Add context pointer and source address to the UDP tunnel callback 2014-10-10 06:08:59 +00:00
udp6_var.h Add support for UDP-Lite protocol (RFC 3828) to IPv4 and IPv6 stacks. 2014-04-07 01:53:03 +00:00