History log of /system/connectivity/shill/ppp_device.h
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
c0beca55d290fe0b1c96d78cbbcf94b05c23f5a5 03-Sep-2015 Peter Qiu <zqiu@google.com> License shill to Apache2

This patch automatically replaced the license on all text files from
Chromium OS (BSD style) to AOSP (Apache2), keeping the original year as
a reference.

The license header was added to .gyp and .gypi, the NOTICE was added with a copy
of the Apache2 license and MODULE_LICENSE_* file was added.

BUG=23587594
TEST=grep 'Chromium OS Authors' doesn't find anything.

Change-Id: If41ede586c2465f5831fb7fee270ff41dbfdb596
/system/connectivity/shill/ppp_device.h
d1d3278b365e866a7381de2a640219b51fe0e27a 21-Aug-2015 Peter Qiu <zqiu@chromium.org> shill: support for DHCPv6 over PPPoE

Start a DHCPv6 configuration client for PPPoE virtual interface
if the interface is enabled for DHCPv6 when PPP connection is
established. Use the generic file name (based on the interface
name) for the acquired lease, so that the lease file will be removed
when PPP connection is terminated.

This allows shill to obtain DHCPv6 configurations such as prefix
delegation ovet PPPoE.

BUG=chromium:523196
TEST=USE="ipv6 dhcpv6 pppoe" FEATURES=test emerge-$BOARD dhcpcd shill
TEST=Manual test by @tjennison

Change-Id: I1eb6b99ce669239b57c02c5b0af9403b4d7d06de
Reviewed-on: https://chromium-review.googlesource.com/294787
Commit-Ready: Zeping Qiu <zqiu@chromium.org>
Tested-by: Zeping Qiu <zqiu@chromium.org>
Reviewed-by: Paul Stewart <pstew@chromium.org>
/system/connectivity/shill/ppp_device.h
9dd6d6d37df195759f0f41239b4c4c1edd86c709 25-Jun-2015 Garret Kelly <gdk@chromium.org> shill: PPPDevice: add UMA metric for tracking PPP MTU size

Whenever a PPP connection is made, report the MTU size negotiated via
LCP to UMA.

BUG=chrome-os-partner:41926
TEST=FEATURES=test emerge-amd64-generic shill

Change-Id: I975c22d7891446bae14488d95916761ea9504c79
Reviewed-on: https://chromium-review.googlesource.com/281929
Reviewed-by: Ilya Sherman <isherman@chromium.org>
Reviewed-by: Paul Stewart <pstew@chromium.org>
Commit-Queue: Paul Stewart <pstew@chromium.org>
Tested-by: Paul Stewart <pstew@chromium.org>
/system/connectivity/shill/ppp_device.h
16ff6ebadd7854983a00000e07bd368a5aba305e 24-Jun-2015 Garret Kelly <gdk@chromium.org> shill: extract and respect MRU from PPP peers

Make the pppd plugin extract the MRU from the LCP options provided by
our peer during negotiation and send it to the shill main process so
that it can be used to configure the connection's MTU.

BUG=chrome-os-partner:41737
TEST=FEATURES=test emerge-amd64-generic shill, and manually on a system
connected to a pppoe connection

Change-Id: I39d8206302bd10839824fee16c352a44e73f986c
Reviewed-on: https://chromium-review.googlesource.com/281629
Reviewed-by: Paul Stewart <pstew@chromium.org>
Commit-Queue: Paul Stewart <pstew@chromium.org>
Tested-by: Paul Stewart <pstew@chromium.org>
/system/connectivity/shill/ppp_device.h
1a212a6b98b22ad1d69652bb26a9e94138635476 16-Jun-2015 Paul Stewart <pstew@chromium.org> shill: Top-level files n-v: Switch pointer/ref spacing

Switch to Chrome style spacing.

BUG=chromium:501026
TEST=Unit tests

Change-Id: I8bd6f66ea185ca3a2687986f6f2fd99be957dffe
Reviewed-on: https://chromium-review.googlesource.com/278070
Reviewed-by: Rebecca Silberstein <silberst@chromium.org>
Commit-Queue: Paul Stewart <pstew@chromium.org>
Tested-by: Paul Stewart <pstew@chromium.org>
/system/connectivity/shill/ppp_device.h
34628593c4c51e8f1d393d6a03e3ebf06e4d9979 26-Jan-2015 Paul Stewart <pstew@chromium.org> shill: L2TPIPsecDriver: Specify smaller MTU

L2TP packets have additional header information that count
against the available link MTU. Although this MTU information
isn't passed down as a parameter from the VPN client, we should
account for this by using a failsafe value.

BUG=chromium:450759
TEST=Unit tests, Upcoming test network_DhcpMTU (CL:243315)

Change-Id: Ica22f148679cea908a7761c6b6ba7b619355a22f
Reviewed-on: https://chromium-review.googlesource.com/243371
Reviewed-by: Prabhu Kaliamoorthi <kaliamoorthi@chromium.org>
Reviewed-by: Paul Stewart <pstew@chromium.org>
Tested-by: Paul Stewart <pstew@chromium.org>
Commit-Queue: Paul Stewart <pstew@chromium.org>
/system/connectivity/shill/ppp_device.h
cb832e8df5f61b223de86a9d4204c86f1e7d9c36 14-Jan-2015 Garret Kelly <gdk@chromium.org> shill: refactor pppd handling into a new class

Wrap pppd options so that callers don't need to know their details in
order to spawn a new instance. Add new unit tests to ensure that the
commandline is being constructed properly.

BUG=none
TEST=all unit tests, with USE=vpn

Change-Id: If06b7fec3ffdf384eff542d324ef4d125d546765
Reviewed-on: https://chromium-review.googlesource.com/241199
Reviewed-by: Garret Kelly <gdk@chromium.org>
Commit-Queue: Garret Kelly <gdk@chromium.org>
Tested-by: Garret Kelly <gdk@chromium.org>
/system/connectivity/shill/ppp_device.h
cc67c52a2c00f90e877971d552208dd99825d84e 03-Sep-2014 Ben Chan <benchan@chromium.org> shill: Include base/macros.h instead of base/basictypes.h

shill no longer uses the integer types from base/basictypes.h. It should
simply include base/macros.h for the DISALLOW_COPY_AND_ASSIGN macro
instead.

BUG=None
TEST=`USE='cellular wimax' FEATURES=test emerge-$BOARD platform2`

Change-Id: I9b350c1bd9eff88e2c87de2ef8d607e90049e102
Reviewed-on: https://chromium-review.googlesource.com/216055
Reviewed-by: Paul Stewart <pstew@chromium.org>
Commit-Queue: Ben Chan <benchan@chromium.org>
Tested-by: Ben Chan <benchan@chromium.org>
/system/connectivity/shill/ppp_device.h
5ea763b83299b5fad76a87183fb39a74c2d3c61d 13-Aug-2014 Ben Chan <benchan@chromium.org> shill: Add C++11 override specifier to destructors of derived classes.

BUG=None
TEST=`USE=wimax FEATURES=test emerge-$BOARD platform2`

Change-Id: I88d4e29165869b26924cccb94ac940dc8961c312
Reviewed-on: https://chromium-review.googlesource.com/212267
Reviewed-by: Alex Vakulenko <avakulenko@chromium.org>
Commit-Queue: Ben Chan <benchan@chromium.org>
Tested-by: Ben Chan <benchan@chromium.org>
/system/connectivity/shill/ppp_device.h
fc362910150ab2abeb5556d4c02adc35cf2f7aa9 07-Aug-2013 mukesh agrawal <quiche@chromium.org> shill: dongles: report PPP authentication failures correctly

Previously, any time we received a disconnect notification from
pppd, we would attempt to set our error state to indicate that
PPP authentication failed. (See below for more on "attempt to".)

This CL tightens up our disconnect handling, to identify which
disconnects are likely to be authentication failures, versus
those that are other failures. Other failures include things like
being unable to acquire an acceptable IP configuration.

We say a disconnect is an authentication failure if PPP was in
the middle of authenticating when the disconnect occurred. Otherwise,
we report kFailureUnknown.

In addition to tightening up the error reporting, this CL fixes a
case where errors would fail to be reported.

Specifically, we used to call SetServiceState, which modifies the
state of selected_service(). However, if we had not yet started
configuring IP, then there would be no selected service, and no
error would be reported.

Fix this, by falling back to |service_| in this case. Note that I
suspect that the failed error reporting is a long-standing issue,
and not specific to PPP dongles.

While there:
- Lower the priority of some log statements (from INFO to VERBOSE2).
- Uncomment a line in CelluarTest.Notify, which I'd meant to uncomment
before it originally landed.
- Improve readability of log statement in TaskProxy::Notify.

BUG=chromium:267682
TEST=(new) unit tests, manual
TEST=network_3GSmokeTest.pseudomodem
TEST=network_3GModemControl.pseudomodem

Manual testing
--------------
1. get a dongle that requires a specific PPP username/password
2. use set_cellular_ppp (in crosh), to configure an incorrect
username/password combination
3. try connecting to the cellular network
4. observe a toast-style notification with an error message
indicating a bad username or password

Change-Id: I60fa7fa9ad8901f5a19eea23b6eb44a6100a02db
Reviewed-on: https://gerrit.chromium.org/gerrit/64863
Reviewed-by: mukesh agrawal <quiche@chromium.org>
Tested-by: mukesh agrawal <quiche@chromium.org>
Commit-Queue: mukesh agrawal <quiche@chromium.org>
/system/connectivity/shill/ppp_device.h
4fef2499de05dfdeb1334afae92dee3ae1b3604f 02-Aug-2013 mukesh agrawal <quiche@chromium.org> shill: more unit test changes for ppp dongle support

This time, we focus on PPPDevice. We add a couple more constraints
to the ParseIPConfiguration test.

While there: we modify the interface for ParseIPConfiguration.
Previously, the target IPConfig::Properties object was supplied
as an out parameter. Now, the method returns an IPConfig::Properties
object instead.

This was motivated by the new part of the ParseIPConfiguration
test, where the behavior depended on whether or not I passed
ParseIPConfiguration a fresh IPConfig::Properties object. The
new interface avoids that gotcha.

BUG=chromium:246826
TEST=unit tests (old+new)

Change-Id: Icf6dbd0e31623a228779439b23a42970d9b85042
Reviewed-on: https://gerrit.chromium.org/gerrit/64294
Reviewed-by: mukesh agrawal <quiche@chromium.org>
Tested-by: mukesh agrawal <quiche@chromium.org>
Commit-Queue: mukesh agrawal <quiche@chromium.org>
/system/connectivity/shill/ppp_device.h
9da07771df3dbbc99ff99114c26317d01f29f7fc 15-May-2013 mukesh agrawal <quiche@chromium.org> shill: support 3G dongles with PPP interface

Assuming the 3G dongle has been switched to modem mode (with
usb_modeswitch or similar), and an activated SIM is present,
shill will automatically connect to the cellular network.

The primary change, as far as the Cellular/Modem logic goes,
is that we take the absence of a link name to mean that the
modem is a PPP dongle. Instead of bailing out, we create the
Cellular object, and register it with the manager as any other
Cellular device.

When the Cellular connection is complete, CellularCapabilityUniversal
checks the Bearer's IPConfig method, as indicated by modemmanager1.
If the method is specified as PPP, the capability asks the Cellular
device to start PPP.

When PPP setup completes, Cellular passes the IP configuration
information to the PPPDevice. At that point, the PPPDevice is
assigned an IP address, and routing is updated appropriately.

Notable changes:
- Moved VPN to VirtualDevice, changed OpenVPNDriver to use it,
created a new subclass PPPDevice.
- Moved PPP code out of L2TPIPSecDriver, and into PPPDevice.
- Changed L2TPIPSecDriver to use PPPDevice.

While there:
- Got rid of VPNDriver::OnDisconnected, and changed callers to
use DropConnection instead.
- Made Load and Save of VirtualDevices no-ops. This eliminates
the confusingly named "device_" stanzas in the default profile.
We lose VPN byte counts by doing this, but they weren't sensible
anyway (they'd be shared across potentially different VPNs).

New units will follow in another CL (TBW).

BUG=chromium:240051
TEST=unit tests, manual

Manual testing
--------------
1. Get 3G PPP dongle.
2. Install activated SIM.
3. Plug dongle into USB port.
4. Wait for the dongle to switch to modem mode.
(I used a manually installed usb_modeswitch, but this will
soon be handled by mist.)
5. Wait for the dongle to connect. With the Huawei E303, this
takes about 35 seconds.

Change-Id: I916bef451ee6e8dcf1af8135ecf6787251acf19b
Reviewed-on: https://gerrit.chromium.org/gerrit/51356
Commit-Queue: mukesh agrawal <quiche@chromium.org>
Reviewed-by: mukesh agrawal <quiche@chromium.org>
Tested-by: mukesh agrawal <quiche@chromium.org>
/system/connectivity/shill/ppp_device.h