Copyright (c) 2002, Sun Microsystems, Inc. All Rights Reserved.
The contents of this file are subject to the terms of the Common Development and Distribution License (the "License"). You may not use this file except in compliance with the License.
You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE or http://www.opensolaris.org/os/licensing. See the License for the specific language governing permissions and limitations under the License.
When distributing Covered Code, include this CDDL HEADER in each file and include the License file at usr/src/OPENSOLARIS.LICENSE. If applicable, add the following below this CDDL HEADER, with the fields enclosed by brackets "[]" replaced with your own identifying information: Portions Copyright [yyyy] [name of copyright owner]
pppoec [-omillisecs] [-smillisecs] [-v] device [service [ [except]server... [only]]]
pppoec [-omillisecs] [-v] -i [device]
The pppoec utility implements the client-side negotiation of PPPoE. It is intended to be used with the pppd(1M) connect option, in the same manner as the chat(1M) utility is used for asynchronous dial-up PPP.
When given with the -i flag, pppoec sends out a broadcast query on the given interface named by the device parameter. You can specify no other arguments in this mode. All responding PPPoE servers and the offered services are displayed on standard output.
Otherwise, when given without the -i flag, pppoec does the full PPPoE client-side negotiation. The device parameter is the intended Ethernet interface, and must already be plumbed with sppptun(1M). The optional service parameter specifies a particular service desired; other offered services will be ignored. The optional server parameter specifies a specific server desired. You can specify server as an Ethernet address in the usual x:x:x:x:x:x format (with "*" in any of the six byte positions interpreted to mean "any"), or as a symbolic name resolved through /etc/ethers (or NIS), or as a PPPoE access concentrator name. The sense of the match (true or false) can be inverted by specifying the keyword except before this string. This parameter can be specified more than once, and the first match is taken.
If you specify the server parameter, then the selected servers become "preferred." If no preferred server responds, then the first responding server is used instead. To exclude non-matching servers entirely, append the keyword only.
The following options are supported: -i
Sends out broadcast query over interface specified by device.
Sets the initial wait time in milliseconds for PADO from the server before PADI is retried. The default is 500 milliseconds for normal operation, or 3000 milliseconds (3 seconds) for inquiry (-i) mode.
Sets the initial wait time in milliseconds for PADS from the server before PADR is retried. The default is 2000 milliseconds (2 seconds).
Displays verbose progress messages, including all PPPoE messages sent, and all state machine transitions.
You normally do not need to adjust the parameters set with -o and -s. They are provided for coping with unusually slow servers.
The following operands are supported: device
plumbed Ethernet interface
preferred server or, if you specify only, the specified server
desired service; other available services are ignored
Example 1 Connecting to Any Service on hme0
The following command enables you to connect to any PPPoE service on hme0:
# /usr/bin/pppd sppptun plugin pppoe.so \ connect "/usr/lib/inet/pppoec hme0" debug
Often, a command such as the preceding is specified in an /etc/ppp/peers file instead. For example, enter the following in /etc/ppp/peers/myisp:
sppptun plugin pppoe.so connect "/usr/lib/inet/pppoec hme0" debug
To invoke the PPP connection described in the file, enter:
% /usr/bin/pppd call myisp
Note that, because the /etc/ppp/peers files are considered privileged by pppd, you need not be root to invoke the preceding command.
Example 2 Connecting to a Particular Service
A more complex example: on hme0, connect to only the internet service offered by PPPoE servers with access concentrator name isp, but not to any Ethernet addresses starting with 40:0:1a.
# /usr/lib/inet/pppoec hme0 internet except 40:0:1a:*:*:* isp only
Note that the except 40:0:1a:*:*:* filter must come before isp, because the filters are first-match.
The following exit values are returned: 0
Successful completion.
An error occurred.
executable command
Solaris PPP tunneling device driver.
usual location of error output (see DIAGNOSTICS, below)
pppd(1M), sppptun(1M), pppoed(1M), sppptun(7M)
RFC 2516, Method for Transmitting PPP Over Ethernet (PPPoE), Mamakos et al, February 1999
Error messages are written to standard error, which is normally redirected by pppd to /etc/ppp/connect-errors. The errors can also be redirected to pppd's standard output by using the updetach option.
If you specify the -v, verbose progress messages are displayed, including all PPPoE messages sent, and all state machine transitions. Specifying the updetach or nodetach pppd option is helpful when using verbose mode.