SPPPCONTROL(8) BSD System Manager's Manual SPPPCONTROL(8)
spppcontrol -- display or set parameters for an sppp interface
spppcontrol [-v] ifname [parameter[=value]] [...]
The sppp(4) driver might require a number of additional arguments or
optional parameters besides the settings that can be adjusted with
ifconfig(8). These are things like authentication protocol parameters,
but also other tunable configuration variables. The spppcontrol utility
can be used to display the current settings, or adjust these parameters
For whatever intent spppcontrol is being called, at least the parameter
ifname needs to be specified, naming the interface for which the settings
are to be performed or displayed. Use ifconfig(8), or netstat(1) to see
which interfaces are available.
If no other parameter is given, spppcontrol will just list the current
settings for ifname and exit. The reported settings include the current
PPP phase the interface is in, which can be one of the names dead,
establish, authenticate, network, or terminate. If an authentication
protocol is configured for the interface, the name of the protocol to be
used, as well as the system name to be used or expected will be dis-
played, plus any possible options to the authentication protocol if
applicable. Note that the authentication secrets (sometimes also called
keys) are not being returned by the underlying system call, and are thus
If any additional parameter is supplied, superuser privileges are
required, and the command works in the ``set'' mode. This is normally
done quietly, unless the option -v is also enabled, which will cause a
final printout of the settings as described above once all other actions
have been taken. Use of this mode will be rejected if the interface is
currently in any other phase than dead. Note that you can force an
interface into dead phase by calling ifconfig(8) with the parameter down.
The currently supported parameters include:
Set both, his and my authentication protocol to protoname.
The protocol name can be one of ``chap'', ``pap'', or
``none''. In the latter case, the use of an authentication
protocol will be turned off for the named interface. This
has the side-effect of clearing the other authentication-
related parameters for this interface as well (i.e., system
name and authentication secret will be forgotten).
Same as above, but only for my end of the link. I.e., this
is the protocol when remote is authenticator, and I am the
peer required to authenticate.
Same as above, but only for his end of the link.
Set my system name for the authentication protocol.
Set his system name for the authentication protocol. For
CHAP, this will only be used as a hint, causing a warning
message if remote did supply a different name. For PAP,
it's the name remote must use to authenticate himself (in
connection with his secret).
Set my secret (key, password) for use in the authentication
phase. For CHAP, this will be used to compute the response
hash value, based on remote's challenge. For PAP, it will
be transmitted as plain text together with the system name.
Don't forget to quote the secrets from the shell if they
contain shell metacharacters (or white space).
Same as above.
Same as above, to be used if we are an authenticator and
the remote peer needs to authenticate.
Same as above.
callin Require remote to authenticate himself only when he's call-
ing in, but not when we are caller. This is required for
some peers that do not implement the authentication proto-
cols symmetrically (like Ascend routers, for example).
always The opposite of callin. Require remote to always authenti-
cate, regardless of which side is placing the call. This
is the default, and will not be explicitly displayed in the
Only meaningful with CHAP. Do not re-challenge peer once
the initial CHAP handshake was successful. Used to work
around broken peer implementations that can't grok being
re-challenged once the connection is up.
With CHAP, send re-challenges at random intervals while the
connection is in network phase. (The intervals are cur-
rently in the range of 300 through approximately 800 sec-
onds.) This is the default, and will not be explicitly
displayed in the ``list'' mode.
Allows to change the value of the LCP restart timer. Val-
ues are specified in milliseconds. The value must be
between 10 and 20000 ms, defaulting to 3000 ms.
Enable negotiation of Van Jacobsen header compression.
(Enabled by default.)
Disable negotiation of Van Jacobsen header compression.
Enable negotiation of the IPv6 network control protocol.
(Enabled by default if the kernel has IPv6 enabled.)
Disable negotiation of the IPv6 network control protocol.
Since every IPv4 interface in an IPv6-enabled kernel auto-
matically gets an IPv6 address assigned, this option pro-
vides for a way to administratively prevent the link from
attempting to negotiate IPv6. Note that initialization of
an IPv6 interface causes a multicast packet to be sent,
which can cause unwanted traffic costs (for dial-on-demand
# spppcontrol bppp0
hisauthproto=chap hisauthname="ifb-gw" norechallenge
Display the settings for bppp0. The interface is currently in dead
phase, i.e., the LCP layer is down, and no traffic is possible. Both
ends of the connection use the CHAP protocol, my end tells remote the
system name ``uriah'', and remote is expected to authenticate by the name
``ifb-gw''. Once the initial CHAP handshake was successful, no further
CHAP challenges will be transmitted. There are supposedly some known
CHAP secrets for both ends of the link which are not being shown.
# spppcontrol bppp0 \
myauthname=uriah myauthsecret='some secret' \
hisauthname=ifb-gw hisauthsecret='another' \
A possible call to spppcontrol that could have been used to bring the
interface into the state shown by the previous example.
netstat(1), sppp(4), ifconfig(8)
B. Lloyd and W. Simpson, PPP Authentication Protocols, RFC 1334.
W. Simpson, Editor, The Point-to-Point Protocol (PPP), RFC 1661.
W. Simpson, PPP Challenge Handshake Authentication Protocol (CHAP), RFC
The spppcontrol utility appeared in FreeBSD 3.0.
The program was written by Jrg Wunsch, Dresden.
BSD December 30, 2001 BSD