aboutsummaryrefslogtreecommitdiff
path: root/sys/conf
diff options
context:
space:
mode:
authorAndrey V. Elsukov <ae@FreeBSD.org>2014-11-07 19:13:19 +0000
committerAndrey V. Elsukov <ae@FreeBSD.org>2014-11-07 19:13:19 +0000
commitf325335cafc940e54a1ea56560de6f25340c81b7 (patch)
tree63c3d4ed6b0c4afb2640b0e3d10ed1b045f2d63f /sys/conf
parent833e8dc5ab711a9485790d950801e32798d55558 (diff)
downloadsrc-f325335cafc940e54a1ea56560de6f25340c81b7.tar.gz
src-f325335cafc940e54a1ea56560de6f25340c81b7.zip
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
Notes
Notes: svn path=/head/; revision=274246
Diffstat (limited to 'sys/conf')
-rw-r--r--sys/conf/NOTES7
-rw-r--r--sys/conf/files4
2 files changed, 8 insertions, 3 deletions
diff --git a/sys/conf/NOTES b/sys/conf/NOTES
index 513300c57334..45b38d9a69fa 100644
--- a/sys/conf/NOTES
+++ b/sys/conf/NOTES
@@ -879,12 +879,15 @@ device tun
# The `gif' device implements IPv6 over IP4 tunneling,
# IPv4 over IPv6 tunneling, IPv4 over IPv4 tunneling and
# IPv6 over IPv6 tunneling.
-# The `gre' device implements two types of IP4 over IP4 tunneling:
-# GRE and MOBILE, as specified in the RFC1701 and RFC2004.
+# The `gre' device implements GRE (Generic Routing Encapsulation) tunneling,
+# as specified in the RFC 2784 and RFC 2890.
+# The `me' device implements Minimal Encapsulation within IPv4 as
+# specified in the RFC 2004.
# The XBONEHACK option allows the same pair of addresses to be configured on
# multiple gif interfaces.
device gif
device gre
+device me
options XBONEHACK
# The `faith' device captures packets sent to it and diverts them
diff --git a/sys/conf/files b/sys/conf/files
index 7abcc6692ebf..351155d59b27 100644
--- a/sys/conf/files
+++ b/sys/conf/files
@@ -3234,11 +3234,12 @@ net/if_fddisubr.c optional fddi
net/if_fwsubr.c optional fwip
net/if_gif.c optional gif inet | gif inet6 | \
netgraph_gif inet | netgraph_gif inet6
-net/if_gre.c optional gre inet
+net/if_gre.c optional gre inet | gre inet6
net/if_iso88025subr.c optional token
net/if_lagg.c optional lagg
net/if_loop.c optional loop
net/if_llatbl.c standard
+net/if_me.c optional me inet
net/if_media.c standard
net/if_mib.c standard
net/if_spppfr.c optional sppp | netgraph_sppp
@@ -3473,6 +3474,7 @@ netinet6/in6_proto.c optional inet6
netinet6/in6_rmx.c optional inet6
netinet6/in6_src.c optional inet6
netinet6/ip6_forward.c optional inet6
+netinet6/ip6_gre.c optional gre inet6
netinet6/ip6_id.c optional inet6
netinet6/ip6_input.c optional inet6
netinet6/ip6_mroute.c optional mrouting inet6