Subject: Re: pppd IPv4-only -> dual stack migration
To: None <tech-net@netbsd.org>
From: None <itojun@iijlab.net>
List: tech-net
Date: 04/17/2000 15:00:48
>>I recnetly update my system, i386, with source upto April 14, 2000 and
>>found that the pppd demand-dialling didn't work for me any more. The
>>error messages is
>>"pppd: local/remote LL address required for demand-dialling"
>>I would like to know how to solve it. I have no problem before update my
>>system upto April 14, 2000. Thanks.
> sorry, I think I messed it up. please try adding "noipv6" to your
> configuration.
Is the change acceptable?
- disable IPv6CP by default, to be friendly with IPv4-only config files
- rename "ipv6" option to "ipv6cp-ifid"
- add a new option "ipv6", which enables IPv6CP
or is it better to leave it as is (to keep pppd in sync with ppp-2.3.x
distribution) and document it everywhere? ("disable ipv6cp if you
don't want one")?
itojun
Index: ipv6cp.c
===================================================================
RCS file: /cvsroot/basesrc/usr.sbin/pppd/pppd/ipv6cp.c,v
retrieving revision 1.4
diff -u -r1.4 ipv6cp.c
--- ipv6cp.c 2000/01/20 04:55:52 1.4
+++ ipv6cp.c 2000/04/17 05:56:34
@@ -122,13 +122,15 @@
static int setifaceid __P((char **arg));
static option_t ipv6cp_option_list[] = {
- { "ipv6", o_special, setifaceid,
- "Set interface identifiers for IPV6" },
+ { "ipv6", o_bool, &ipv6cp_protent.enabled_flag,
+ "Enable IPv6 and IPv6CP", 1 },
{ "noipv6", o_bool, &ipv6cp_protent.enabled_flag,
"Disable IPv6 and IPv6CP" },
{ "-ipv6", o_bool, &ipv6cp_protent.enabled_flag,
"Disable IPv6 and IPv6CP" },
+ { "ipv6cp-ifid", o_special, setifaceid,
+ "Set interface identifiers for IPV6" },
{ "ipv6cp-accept-local", o_bool, &ipv6cp_allowoptions[0].accept_local,
"Accept peer's interface identifier for us", 1 },
{ "ipv6cp-use-ipaddr", o_bool, &ipv6cp_allowoptions[0].use_ip,
@@ -174,7 +176,12 @@
ipv6cp_close,
ipv6cp_printpkt,
NULL,
+#if 0
1,
+#else
+ /* old configurations can choke with IPv6CP, disable by default for now */
+ 0,
+#endif
"IPV6CP",
"IPV6",
ipv6cp_option_list,
Index: pppd.8
===================================================================
RCS file: /cvsroot/basesrc/usr.sbin/pppd/pppd/pppd.8,v
retrieving revision 1.26
diff -u -r1.26 pppd.8
--- pppd.8 1999/10/28 09:41:56 1.26
+++ pppd.8 2000/04/17 05:56:38
@@ -197,14 +197,6 @@
negotiation, unless the \fIipcp-accept-local\fR and/or
\fIipcp-accept-remote\fR options are given, respectively.
.TP
-.B ipv6 \fI<local_interface_identifier>\fR,\fI<remote_interface_identifier>
-Set the local and/or remote 64-bit interface identifier. Either one may be
-omitted. The identifier must be specified in standard ascii notation of
-IPv6 addresses (e.g. ::dead:beef). If the
-\fIipv6cp-use-ipaddr\fR
-option is given, the local identifier is the local IPv4 address (see above).
-Otherwise the identifier is randomized.
-.TP
.B active-filter \fIfilter-expression
Specifies a packet filter to be applied to data packets to determine
which packets are to be regarded as link activity, and therefore reset
@@ -354,6 +346,22 @@
option is given, the \fIstring\fR supplied is given as the 6th
parameter to those scripts.
.TP
+.B ipv6
+Enable IPv6CP negotiation and IPv6 communication.
+This needs to be specified explicitly if you want IPv6CP.
+This is for backward compatibility with IPv4-only configurations.
+.\"This option should
+.\"only be required if the peer is buggy and gets confused by requests
+.\"from pppd for IPv6CP negotiation.
+.TP
+.B ipv6cp-ifid \fI<local_interface_identifier>\fR,\fI<remote_interface_identifier>
+Set the local and/or remote 64-bit interface identifier. Either one may be
+omitted. The identifier must be specified in standard ascii notation of
+IPv6 addresses (e.g. ::dead:beef). If the
+\fIipv6cp-use-ipaddr\fR
+option is given, the local identifier is the local IPv4 address (see above).
+Otherwise the identifier is randomized.
+.TP
.B ipv6cp-max-configure \fIn
Set the maximum number of IPv6CP configure-request transmissions to
\fIn\fR (default 10).
@@ -608,9 +616,10 @@
from pppd for IPCP negotiation.
.TP
.B noipv6
-Disable IPv6CP negotiation and IPv6 communication. This option should
-only be required if the peer is buggy and gets confused by requests
-from pppd for IPv6CP negotiation.
+Disable IPv6CP negotiation and IPv6 communication.
+.\"This option should
+.\"only be required if the peer is buggy and gets confused by requests
+.\"from pppd for IPv6CP negotiation.
.TP
.B noipdefault
Disables the default behaviour when no local IP address is specified,