Browse code

Merged TODO.IPv6 with TODO.ipv6 and README.IPv6 with README.ipv6

Prior to this patch were two sets of IPv6 README/TODO files: one from payload
and one from transport patchset. Unfortunately Git on Windows gets very confused
of these files, as they only differ in case. This patch merges these sets into
one.

Signed-off-by: Samuli Seppänen <samuli@openvpn.net>
Acked-by: David Sommerseth <davids@redhat.com>
Signed-off-by: David Sommerseth <davids@redhat.com>

Samuli Seppänen authored on 2011/08/12 01:00:57
Showing 4 changed files
... ...
@@ -1,8 +1,97 @@
1
-This is an experimentally patched version of OpenVPN 2.1 with IPv6
2
-payload support.
1
+IPv6 payload support
2
+--------------------
3 3
 
4
-Go here for release notes and documentation:
4
+Latest IPv6 payload support code and documentation can be found from here:
5 5
 
6 6
   http://www.greenie.net/ipv6/openvpn.html
7 7
 
8
+For TODO list, see TODO.IPv6.
9
+
8 10
 Gert Doering, 31.12.2009
11
+
12
+
13
+
14
+IPv6 transport support
15
+----------------------
16
+
17
+[ Last updated: 25-Mar-2011. ]
18
+
19
+OpenVPN-2.1 over UDP6/TCP6 README for ipv6-0.4.x patch releases:
20
+( --udp6 and --tcp6-{client,server} )
21
+
22
+* Availability
23
+  Source code under GPLv2 from http://github.com/jjo/openvpn-ipv6
24
+
25
+  Distro ready repos/packages:
26
+  o Debian sid official repo, by Alberto Gonzalez Iniesta,
27
+    starting from openvpn_2.1~rc20-2
28
+  o Gentoo official portage tree, by Marcel Pennewiss:
29
+    - https://bugs.gentoo.org/show_bug.cgi?id=287896
30
+  o Ubuntu package, by Bernhard Schmidt:
31
+    - https://launchpad.net/~berni/+archive/ipv6/+packages
32
+  o Freetz.org, milestone freetz-1.2
33
+    - http://trac.freetz.org/milestone/freetz-1.2
34
+
35
+* Status:
36
+  o OK:
37
+    - upd6,tcp6: GNU/Linux, win32, openbsd-4.7, freebsd-8.1
38
+    - udp4->upd6,tcp4->tcp6 (ipv4/6 mapped): GNU/Linux
39
+      (gives a warning on local!=remote proto matching)
40
+  o NOT:
41
+    - win32: tcp4->tcp6 (ipv4/6 mapped) fails w/connection refused
42
+  o NOT tested:
43
+    - mgmt console
44
+
45
+* Build setup:
46
+  ./configure --enable-ipv6        (by default)
47
+
48
+* Usage:
49
+  For IPv6 just specify "-p upd6" an proper IPv6 hostnames, adapting the example
50
+  from man page ...
51
+
52
+  On may:
53
+    openvpn --proto udp6 --remote <june_IPv6_addr> --dev tun1 \
54
+      --ifconfig 10.4.0.1 10.4.0.2 --verb 5 --secret key
55
+
56
+  On june:
57
+    openvpn --proto udp6 --remote <may_IPv6_addr>  --dev tun1 \
58
+      --ifconfig 10.4.0.2 10.4.0.1 --verb 5 --secret key
59
+
60
+  Same for --proto tcp6-client, tcp6-server.
61
+
62
+* Main code changes summary:
63
+  - socket.h: New struct openvpn_sockaddr type that holds sockaddrs and pktinfo,
64
+    (here I omitted #ifdef USE_PF_xxxx, see socket.h )
65
+
66
+    struct openvpn_sockaddr {
67
+	union {
68
+		struct sockaddr sa;
69
+		struct sockaddr_in in;
70
+		struct sockaddr_in6 in6;
71
+	} addr;
72
+    };
73
+
74
+    struct link_socket_addr
75
+    {
76
+            struct openvpn_sockaddr local;
77
+            struct openvpn_sockaddr remote;
78
+            struct openvpn_sockaddr actual;
79
+    };
80
+
81
+    PRO: allows simple type overloading: local.addr.sa, local.addr.in, local.addr.in6 ... etc
82
+    (also local.pi.in and local.pi.in6)
83
+
84
+  - several function prototypes moved from sockaddr_in to openvpn_sockaddr
85
+  - several new sockaddr functions needed to "generalize" AF_xxxx operations:
86
+    addr_copy(), addr_zero(), ...etc
87
+    proto_is_udp(), proto_is_dgram(), proto_is_net()
88
+
89
+* For TODO list, see TODO.IPv6
90
+
91
+--
92
+JuanJo Ciarlante   jjo () google () com ............................
93
+:                                                                  :
94
+.                                         Linux IP Aliasing author .
95
+.   Modular algo (AES et all) support for FreeSWAN/OpenSWAN author .
96
+.                                        OpenVPN over IPv6 support .
97
+:......     plus other scattered free software bits in the wild ...:
9 98
deleted file mode 100644
... ...
@@ -1,81 +0,0 @@
1
-[ Last updated: 25-Mar-2011. ]
2
-
3
-OpenVPN-2.1 over UDP6/TCP6 README for ipv6-0.4.x patch releases:
4
-( --udp6 and --tcp6-{client,server} )
5
-
6
-* Availability
7
-  Source code under GPLv2 from http://github.com/jjo/openvpn-ipv6
8
-
9
-  Distro ready repos/packages:
10
-  o Debian sid official repo, by Alberto Gonzalez Iniesta,
11
-    starting from openvpn_2.1~rc20-2
12
-  o Gentoo official portage tree, by Marcel Pennewiss:
13
-    - https://bugs.gentoo.org/show_bug.cgi?id=287896
14
-  o Ubuntu package, by Bernhard Schmidt:
15
-    - https://launchpad.net/~berni/+archive/ipv6/+packages
16
-  o Freetz.org, milestone freetz-1.2
17
-    - http://trac.freetz.org/milestone/freetz-1.2
18
-
19
-* Status:
20
-  o OK:
21
-    - upd6,tcp6: GNU/Linux, win32, openbsd-4.7, freebsd-8.1
22
-    - udp4->upd6,tcp4->tcp6 (ipv4/6 mapped): GNU/Linux
23
-      (gives a warning on local!=remote proto matching)
24
-  o NOT:
25
-    - win32: tcp4->tcp6 (ipv4/6 mapped) fails w/connection refused
26
-  o NOT tested:
27
-    - mgmt console
28
-
29
-* Build setup:
30
-  ./configure --enable-ipv6        (by default)
31
-
32
-* Usage:
33
-  For IPv6 just specify "-p upd6" an proper IPv6 hostnames, adapting the example
34
-  from man page ...
35
-
36
-  On may:
37
-    openvpn --proto udp6 --remote <june_IPv6_addr> --dev tun1 \
38
-      --ifconfig 10.4.0.1 10.4.0.2 --verb 5 --secret key
39
-
40
-  On june:
41
-    openvpn --proto udp6 --remote <may_IPv6_addr>  --dev tun1 \
42
-      --ifconfig 10.4.0.2 10.4.0.1 --verb 5 --secret key
43
-
44
-  Same for --proto tcp6-client, tcp6-server.
45
-
46
-* Main code changes summary:
47
-  - socket.h: New struct openvpn_sockaddr type that holds sockaddrs and pktinfo,
48
-    (here I omitted #ifdef USE_PF_xxxx, see socket.h )
49
-
50
-    struct openvpn_sockaddr {
51
-    	union {
52
-    		struct sockaddr sa;
53
-    		struct sockaddr_in in;
54
-    		struct sockaddr_in6 in6;
55
-    	} addr;
56
-    };
57
-
58
-    struct link_socket_addr
59
-    {
60
-            struct openvpn_sockaddr local;
61
-            struct openvpn_sockaddr remote;
62
-            struct openvpn_sockaddr actual;
63
-    };
64
-
65
-    PRO: allows simple type overloading: local.addr.sa, local.addr.in, local.addr.in6 ... etc
66
-    (also local.pi.in and local.pi.in6)
67
-
68
-  - several function prototypes moved from sockaddr_in to openvpn_sockaddr
69
-  - several new sockaddr functions needed to "generalize" AF_xxxx operations:
70
-    addr_copy(), addr_zero(), ...etc
71
-    proto_is_udp(), proto_is_dgram(), proto_is_net()
72
-
73
-* TODO: See TODO.ipv6
74
-
75
-JuanJo Ciarlante   jjo () google () com ............................
76
-:                                                                  :
77
-.                                         Linux IP Aliasing author .
78
-.   Modular algo (AES et all) support for FreeSWAN/OpenSWAN author .
79
-.                                        OpenVPN over IPv6 support .
80
-:......     plus other scattered free software bits in the wild ...:
... ...
@@ -1,5 +1,5 @@
1
-known issues for IPv6 payload support in OpenVPN
1
+TODO for IPv6 payload support
2
+-----------------------------
2 3
 
3 4
 1.) "--topology subnet" doesn't work together with IPv6 payload on FreeBSD
4 5
     (verified for FreeBSD server, Linux/ifconfig client, problems 
... ...
@@ -147,3 +147,40 @@ tun0: flags=8051<UP,POINTOPOINT,RUNNING,MULTICAST> mtu 1500
147 147
     to the config
148 148
 
149 149
     (problem + workaround applies both to tun and tap style devices)
150
+
151
+
152
+
153
+
154
+TODO for IPv6 transport support
155
+-------------------------------
156
+
157
+[ Last updated: 11-Nov-2009. ]
158
+
159
+* All platforms:
160
+  o mgmt console: as currently passes straight in_addr_t bits around
161
+
162
+  o make possible to get AF from getaddrinfo() answer, ie allow openvpn to
163
+    use ipv4/6 if DNS returns A/AAAA without specifying protocol.
164
+    Hard: requires deep changes in initialization/calling logic
165
+
166
+  o use AI_PASSIVE
167
+
168
+  o the getaddr()/getaddr6() interface is not prepared for handling socktype
169
+    "tagging", currently I abuse the sockflags bits for getting the ai_socktype
170
+    downstream.
171
+
172
+  o implement comparison for mapped addesses: server in dual stack
173
+    listening IPv6 must permit incoming streams from allowed IPv4 peer,
174
+    currently you need to pass eg:  --remote ffff::1.2.3.4
175
+
176
+  o do something with multi mode learn routes, for now just ignoring
177
+    ipv6 addresses seems the most sensible thing to do, because there's
178
+    no support for intra-tunnel ipv6 stuff.
179
+
180
+* win32:
181
+  o find out about mapped addresses, as I can't make it work
182
+    with bound at ::1 and connect to 127.0.0.1
183
+
184
+* N/A:
185
+  o this is ipv6 *endpoint* support, so don't expect "ifconfig6"-like
186
+    support in this patch
150 187
deleted file mode 100644
... ...
@@ -1,30 +0,0 @@
1
-[ Last updated: 11-Nov-2009. ]
2
-
3
-* All platforms:
4
-  o mgmt console: as currently passes straight in_addr_t bits around
5
-
6
-  o make possible to get AF from getaddrinfo() answer, ie allow openvpn to
7
-    use ipv4/6 if DNS returns A/AAAA without specifying protocol.
8
-    Hard: requires deep changes in initialization/calling logic
9
-
10
-  o use AI_PASSIVE
11
-
12
-  o the getaddr()/getaddr6() interface is not prepared for handling socktype
13
-    "tagging", currently I abuse the sockflags bits for getting the ai_socktype
14
-    downstream.
15
-
16
-  o implement comparison for mapped addesses: server in dual stack
17
-    listening IPv6 must permit incoming streams from allowed IPv4 peer,
18
-    currently you need to pass eg:  --remote ffff::1.2.3.4
19
-
20
-  o do something with multi mode learn routes, for now just ignoring
21
-    ipv6 addresses seems the most sensible thing to do, because there's
22
-    no support for intra-tunnel ipv6 stuff.
23
-
24
-* win32:
25
-  o find out about mapped addresses, as I can't make it work
26
-    with bound at ::1 and connect to 127.0.0.1
27
-
28
-* N/A:
29
-  o this is ipv6 *endpoint* support, so don't expect "ifconfig6"-like
30
-    support in this patch