Commit Graph

417 Commits

Author SHA1 Message Date
Mark Chien
fbab182f44 Merge "Remove SimChangeListener from Tethering"
am: 6e35b2c596

Change-Id: Ie85375b760684bfeb2af0231dbe81592866a4e48
2018-07-17 00:10:56 -07:00
markchien
1d64e03f91 Remove SimChangeListener from Tethering
SimChangeListener is obsolete. It is replace by
ACTION_CARRIER_CONFIG_CHANGED.

Test: as follows
    - built, flashed, booted
    - runtest frameworks-net passes (with --no-hidden-api-checks)
    - tethering/hotspot on/off
Bug: 111490073

Change-Id: I82644ea136f43869a953a1f7b72dc489fe90f380
2018-07-16 19:54:26 +08:00
Erik Kline
fc1bde9261 Merge "Prefer default Internet network for upstream tethering."
am: 3580a6a996

Change-Id: I0990d077627aed71b03e7aa40a8acc460448a774
2018-06-25 06:24:22 -07:00
Erik Kline
72302908d4 Prefer default Internet network for upstream tethering.
Rather than use the crufty config.xml list of upstream transport types,
use ConnectivityService's notion of the default network for the upstream.
In cases where a DUN network is required and the default network is
currently a mobile network, look for a DUN network (code in Tethering
is currently responsible for requesting one).

Test: as follows
    - built, flashed, booted
    - runtest frameworks-net
    - tethered via mobile, joined captive portal network, maintained
      laptop access via mobile until captive passed (then used wifi)
    - disabled client mode wifi, disabled mobile data, plugged in
      ethernet adapter, observed connectivity via ethernet
Bug: 32163131
Bug: 62648872
Bug: 63282480
Bug: 109786760
Bug: 110118584
Bug: 110260419
Merged-In: I9cddf1fb7aa3b8d56bf048c563556244e74808c2
Merged-In: Icac3e5e20e99093ddb85aae1ca07ed7b5cf309fd
Change-Id: I925b75994e31df8046f3ef9916a2457b4210485e
(cherry picked from commit 4080a1bd15)
2018-06-25 19:25:17 +09:00
Erik Kline
f8bba5bfc7 Clear IPv4 address on tethering teardown.
Test: as follows
    - built
    - flashed
    - booted
    - runtest frameworks-net passes
    - wlan0 in STA mode, wlan1 up/down in AP mode
      no lingering IPv4 mode
    - USB tethering up/down works
    - bluetooth tethering yields:
05-18 17:50:49.726   719   756 D TetherController: untetherInterface(bt-pan)
05-18 17:50:49.729  1194  1230 E Tethering: [bt-pan] ERROR Failed to clear IPv4 address on interface bt-pan: java.lang.IllegalStateException: command '224 interface setcfg bt-pan 0.0.0.0 0' failed with '400 224 Failed to clear address (No such device)'
      which is acceptable (no actual crash, just a log message)
Bug: 79905644
Merged-In: Ie898adc4efbb7376f0297abacdfe39c8700f0722
Merged-In: I9eb44eaf4e99fa85fff2909524ee88673bdcf1fd
Merged-In: Iaf29788a6692d810f3160e3f21d06b7452ecbaa6

(cherry picked from commit 472276a874)

Change-Id: Icb5c4f7971af4715c7662f80194b4c1ce369a135
2018-06-04 18:31:27 +09:00
Erik Kline
91368ac791 Merge "Clear IPv4 address on tethering teardown." into pi-dev
am: 36d41793e2

Change-Id: Ie898adc4efbb7376f0297abacdfe39c8700f0722
2018-06-01 04:51:36 -07:00
Erik Kline
472276a874 Clear IPv4 address on tethering teardown.
Test: as follows
    - built
    - flashed
    - booted
    - runtest frameworks-net passes
    - wlan0 in STA mode, wlan1 up/down in AP mode
      no lingering IPv4 mode
    - USB tethering up/down works
    - bluetooth tethering yields:
05-18 17:50:49.726   719   756 D TetherController: untetherInterface(bt-pan)
05-18 17:50:49.729  1194  1230 E Tethering: [bt-pan] ERROR Failed to clear IPv4 address on interface bt-pan: java.lang.IllegalStateException: command '224 interface setcfg bt-pan 0.0.0.0 0' failed with '400 224 Failed to clear address (No such device)'
      which is acceptable (no actual crash, just a log message)
Bug: 79905644
Change-Id: Iaf29788a6692d810f3160e3f21d06b7452ecbaa6
2018-06-01 14:23:51 +09:00
Erik Kline
413d00c1c0 Merge "Add explicit override for default Private DNS mode" into pi-dev
am: 2b3c858296

Change-Id: If480ab40c7cf9ab75c52feafc28338a049cbceef
2018-05-18 01:08:26 -07:00
Erik Kline
1984179409 Add explicit override for default Private DNS mode
Test: as follows
    - built
    - flashed
    - booted
    - runtest frameworks-net passes
Bug: 79719289
Change-Id: I943c5476666e47d04690626e2133f501cb875b46
2018-05-17 17:41:12 +09:00
Chalard Jean
f97656b81c Let DnsManager fill in LinkProperties for private DNSes
(clean cherry-pick from ag/3880157)

Test: new tests pass
Bug: 73641539
Change-Id: I971ef4d27b22a435d7459e1c4b31a8715ef6e610
Merged-In: I837df61e3c277ae08ebf4fdcd4c4e9ac8c550811
Merged-In: I72ecaa4f7d7320ffa2e0ba82fadafc947c8a6981
2018-04-27 13:32:10 +09:00
Chalard Jean
a5fc870335 Merge "Let DnsManager fill in LinkProperties for private DNSes" into pi-dev
am: 2a915264a6

Change-Id: I837df61e3c277ae08ebf4fdcd4c4e9ac8c550811
2018-04-23 00:33:21 -07:00
Chalard Jean
f0f364f2c5 Let DnsManager fill in LinkProperties for private DNSes
Test: new tests pass
Bug: 73641539
Change-Id: I971ef4d27b22a435d7459e1c4b31a8715ef6e610
2018-04-23 13:58:42 +09:00
Erik Kline
e0f34033e0 Don't unnecessarily reevaluate tethering provisioning
Registering for carrier config changes can deliver a sticky broadcast
and can cause Tethering to think something has changed and reevaluate
provisioning status, even though this has been checked before it
entered tethering mode alive state.

Additionally, move the provisioning_app{,no_ui} resources into the
TetheringConfiguration, if for no other reason than now we can log
it in .toString().

Test: as follows
    - built
    - flashed
    - booted
    - runtest frameworks-net passes
    - manual USB tethering toward WiFi works
Bug: 69565814
Merged-In: If254326e892b78ef9daf620f829c1def136d695c
Merged-In: I288093a1d76566e72d4889d92c7aedafc318c8b6
Merged-Id: I01c71fd971a4683bb2b6d14825d36f24a04d88a8

Change-Id: I01c71fd971a4683bb2b6d14825d36f24a04d88a8
(cherry picked from commit 1b450e3eb9)
2018-04-11 13:15:55 -07:00
Lorenzo Colitti
85eac92ecb Merge "Don't unnecessarily reevaluate tethering provisioning" into pi-dev
am: 4df92ef6f1

Change-Id: If254326e892b78ef9daf620f829c1def136d695c
2018-04-10 20:42:03 -07:00
Remi NGUYEN VAN
86c747dfa0 Merge "Added tests for MultipathPolicyTracker." into pi-dev
am: cf54c0451a

Change-Id: I2f47dd30f44722a0611967ce5375aa164f40c718
2018-04-10 20:37:06 -07:00
Lorenzo Colitti
4df92ef6f1 Merge "Don't unnecessarily reevaluate tethering provisioning" into pi-dev 2018-04-11 03:01:25 +00:00
Remi NGUYEN VAN
cf54c0451a Merge "Added tests for MultipathPolicyTracker." into pi-dev 2018-04-11 02:53:14 +00:00
Treehugger Robot
abb1562ca1 Merge "Revert "Don't unnecessarily reevaluate tethering provisioning"" 2018-04-10 08:35:31 +00:00
Erik Kline
e93ed61334 Revert "Don't unnecessarily reevaluate tethering provisioning"
This reverts commit 8067d78c32.

Change-Id: I9098f98cb134c35692c1384339f9407b94ce6f28
2018-04-10 07:01:16 +00:00
Remi NGUYEN VAN
6a7a5a1c3b Added tests for MultipathPolicyTracker.
Test: atest com.android.server.connectivity.MultipathPolicyTrackerTest
Bug: b/72631572
Bug: b/72877610
Change-Id: I33d9cd77948ff76008a125e4e2786fbbc2b03032
2018-04-10 15:27:59 +09:00
dalyk
1fcb7398d1 Trigger NetworkCallback events when private DNS usage has changed.
Relies on events sent from netd in aosp/578162.

Test: Added tests to ConnectivityServiceTest. Added a new test
class DnsManagerTest. Built a simple app that appears to
receive onLinkProperties events correctly upon manual changes
to the private DNS settings on a Pixel.
Bug: 71828272

Merged-In: I1e6c54ba016f6a165a302bd135a29d9332aaa235
Merged-In: I7705412803fb9aa707a18ae5a1c50292e084d851
Change-Id: I3223c1285a73d5d531c5051ce70007857caa57e3
(cherry picked from commit 7301aa4140)
2018-04-09 23:04:20 -07:00
Erik Kline
a7347262d1 Merge "Trigger NetworkCallback events when private DNS usage has changed." am: ec4ded5222
am: ed67e23577

Change-Id: I1e6c54ba016f6a165a302bd135a29d9332aaa235
2018-04-09 22:13:36 -07:00
Erik Kline
80b7a9f1b5 Don't unnecessarily reevaluate tethering provisioning
Registering for carrier config changes can deliver a sticky broadcast
and can cause Tethering to think something has changed and reevaluate
provisioning status, even though this has been checked before it
entered tethering mode alive state.

Additionally, move the provisioning_app{,no_ui} resources into the
TetheringConfiguration, if for no other reason than now we can log
it in .toString().

Test: as follows
    - built
    - flashed
    - booted
    - runtest frameworks-net passes
    - manual USB tethering toward WiFi works
Bug: 69565814
Change-Id: Ib8b2620ce44c55e5eb0afd3f00f3f5aa4fc8a593
(cherry picked from commit 8067d78c32)
2018-04-09 21:17:29 -07:00
Treehugger Robot
081014ac55 Merge "Don't unnecessarily reevaluate tethering provisioning" 2018-04-10 03:22:10 +00:00
dalyk
7301aa4140 Trigger NetworkCallback events when private DNS usage has changed.
Relies on events sent from netd in aosp/578162.

Test: Added tests to ConnectivityServiceTest. Added a new test
class DnsManagerTest. Built a simple app that appears to
receive onLinkProperties events correctly upon manual changes
to the private DNS settings on a Pixel.
Bug: 71828272
Change-Id: I68665aaf74b7d59182cc6f9586b80b55b0dfe427
2018-04-09 16:45:22 -04:00
Erik Kline
8067d78c32 Don't unnecessarily reevaluate tethering provisioning
Registering for carrier config changes can deliver a sticky broadcast
and can cause Tethering to think something has changed and reevaluate
provisioning status, even though this has been checked before it
entered tethering mode alive state.

Additionally, move the provisioning_app{,no_ui} resources into the
TetheringConfiguration, if for no other reason than now we can log
it in .toString().

Test: as follows
    - built
    - flashed
    - booted
    - runtest frameworks-net passes
    - manual USB tethering toward WiFi works
Bug: 69565814
Change-Id: Ib8b2620ce44c55e5eb0afd3f00f3f5aa4fc8a593
2018-04-08 18:28:15 -07:00
Erik Kline
7a26ba37f6 Refactor isTetheringSupported() calls
Tethering currently wants access to complex isTetheringSupported
logic that is only available in ConnectivityService. Instead of
trying to access that via ConnectivityManager, pass this capability
in to Tethering directly, in the TetheringDependencies object.

Also:
    - ConnectivityManager is only a source of static constants now,
      so "import static" all the constants that are actually used.

Test: as follows
    - built
    - flashed
    - booted
    - runtest frameworks-net works
    - manual USB towards WiFi tethering works
Bug: 68951715

Merged-In: Ifa121b057f9959ddb980edc940327929e48ea973
Merged-In: Iad6358dc2f1d10b322d22ec90543adc50882962d
Change-Id: Ia64faaadefb4a5d84a50da98bdebd544b6fda101
(cherry picked from commit 465ff3a0c1)
2018-04-02 16:59:23 -07:00
Erik Kline
019cb1d42c Merge "Refactor isTetheringSupported() calls" am: e34c426fd3
am: 6f63d051d6

Change-Id: Iad6358dc2f1d10b322d22ec90543adc50882962d
2018-04-02 21:08:52 +00:00
Chalard Jean
72e7ad96be Merge "Fix PermissionMonitorTest that has been failing." into pi-dev
am: 6e66280d35

Change-Id: Ifb04fdda2b54b0bde8b6eeead3e0240d5cc1ff79
2018-04-02 20:14:29 +00:00
Chalard Jean
577164bd45 Fix PermissionMonitorTest that has been failing.
The fail is related to a recent fix to PermissionMonitor
that went into pi-dev only : ag/3799094, which fixed getting
the remote package name for the correct macro user instead of
the default. That fix had broken the test, this change fixes it.

Test: test now passes
Bug: 77315205
Change-Id: I26f8276eafe80478d5fefcff92e7dc2f12128bb4
2018-04-02 07:44:21 +00:00
Erik Kline
465ff3a0c1 Refactor isTetheringSupported() calls
Tethering currently wants access to complex isTetheringSupported
logic that is only available in ConnectivityService. Instead of
trying to access that via ConnectivityManager, pass this capability
in to Tethering directly, in the TetheringDependencies object.

Also:
    - ConnectivityManager is only a source of static constants now,
      so "import static" all the constants that are actually used.

Test: as follows
    - built
    - flashed
    - booted
    - runtest frameworks-net works
    - manual USB towards WiFi tethering works
Bug: 68951715

Change-Id: Ia64faaadefb4a5d84a50da98bdebd544b6fda101
2018-03-30 17:24:43 -07:00
Remi NGUYEN VAN
671547b224 Merge "Use InterfaceSet for upstream interfaces." into pi-dev 2018-03-30 09:15:13 +00:00
Remi NGUYEN VAN
4140cc106e Merge "Add tests for IPv4 of dual stack tethering." into pi-dev 2018-03-30 09:13:50 +00:00
Remi NGUYEN VAN
6c02f9942a Use InterfaceSet for upstream interfaces.
Allows using different upstream interfaces for IPv4 and IPv6.

Bug: 38218697
Bug: 64382985
Bug: 64976379
Bug: 64995262
Bug: 64380515
Test: runtest frameworks-net, manual (with aosp/644099 applied)
(cherry-pick of aosp I3db63f7aa5255a0229253187def7590a386c5133)
Merged-In: Ic8602dd029b5a9626aaf6651315b82ab6327037c
Merged-In: I015ac946afa581be1d94f10ab766ac00f5a4ede0

Change-Id: I8c48dab5eb67e60dadbfa974122fc884f4badd15
2018-03-30 18:08:52 +09:00
Remi NGUYEN VAN
5d0dc453e9 Add tests for IPv4 of dual stack tethering.
Also refactoring some Tethering and TetherInterfaceStateMachine calls
to address testability issues.

This is in preparation of other work to have IPv6-only or 464xlat
tethering working.

Test: runtest frameworks-net
Bug: 38218697
Bug: 64382985
Bug: 64976379
Bug: 64995262
Merged-In: I3b91125b1a715690c2cd417b1e937e568c755d9f
Merged-In: I05de77d9b90d147bf1d6ee7f7ee19a049afddfa1
(cherry-pick of aosp I721aca4789ddfbee5a97316aae0b378d79ee2107)

Change-Id: Idfdd1b9cd5419c1f51f0fbb1eba2f36a9c12474b
2018-03-30 18:08:52 +09:00
Chalard Jean
269a7b9efd Merge "Limit the number of routes for performance" am: b8a1509d68
am: 7d25b9abf6

Change-Id: I1fcf34b553b4a7cbadd0a2a7bf697140e948243e
2018-03-30 08:58:44 +00:00
Chalard Jean
507754a81e Limit the number of routes for performance
In evaluating whether "most" of the addressing space is
covered, the list of routes are obtained from a third-party
app, so it's possbile the system service stalls unless
some limit is enforced on how much work it has to do.
This change limits the number of routes to 400, as determined
by time measurement on various devices.

Bug: 74176086
Test: runtest framework-net
Change-Id: Ie4a96098bc044ade87b188839586f14dd101c100
2018-03-30 15:41:50 +09:00
Chalard Jean
b8a1509d68 Merge "Limit the number of routes for performance" 2018-03-30 06:40:29 +00:00
Remi NGUYEN VAN
293eb12069 Merge "Use InterfaceSet for upstream interfaces." am: e18fd9fff0
am: 36d3bf8372

Change-Id: Ic8602dd029b5a9626aaf6651315b82ab6327037c
2018-03-30 02:32:07 +00:00
Remi NGUYEN VAN
25a7e4fdbf Use InterfaceSet for upstream interfaces.
Allows using different upstream interfaces for IPv4 and IPv6.

Bug: 38218697
Bug: 64382985
Bug: 64976379
Bug: 64995262
Bug: 64380515
Test: runtest frameworks-net, manual (with aosp/644099 applied)

Change-Id: I3db63f7aa5255a0229253187def7590a386c5133
2018-03-29 18:13:46 +09:00
Chalard Jean
e0d26f66b0 Limit the number of routes for performance
In evaluating whether "most" of the addressing space is
covered, the list of routes are obtained from a third-party
app, so it's possbile the system service stalls unless
some limit is enforced on how much work it has to do.
This change limits the number of routes to 400, as determined
by time measurement on various devices.

Bug: 74176086
Test: runtest framework-net
Change-Id: Ie4a96098bc044ade87b188839586f14dd101c100
2018-03-29 18:13:23 +09:00
dimitry
bb9855d08e resolve merge conflicts of a2640b6f51 to pi-dev-plus-aosp
Test: n/a
Change-Id: I3b91125b1a715690c2cd417b1e937e568c755d9f
2018-03-27 17:57:59 +02:00
Remi NGUYEN VAN
a2640b6f51 resolve merge conflicts of f8b537d7a3 to stage-aosp-master
Test: TODO
Change-Id: I7959d7812f8db31de689154f37b92497a992fb6c
2018-03-27 23:04:08 +09:00
Remi NGUYEN VAN
a911e84798 Add tests for IPv4 of dual stack tethering.
Also refactoring some Tethering and TetherInterfaceStateMachine calls
to address testability issues.

This is in preparation of other work to have IPv6-only or 464xlat
tethering working.

Test: runtest frameworks-net
Bug: 38218697
Bug: 64382985
Bug: 64976379
Bug: 64995262

Change-Id: I721aca4789ddfbee5a97316aae0b378d79ee2107
2018-03-26 11:38:34 +09:00
Chalard Jean
d1052c2cfa Merge "Have PermissionMonitor arbiter which app can access background networks"
am: 06f0fc04e7

Change-Id: Ic05e362af58d667b5be84c3bd421c9250927abe2
2018-03-23 08:12:51 +00:00
Chalard Jean
26aa91ab27 Have PermissionMonitor arbiter which app can access background networks
This will let ConnectivityService send the right callbacks to the
relevant apps.

Test: manual with apps
      runtest frameworks-net
      cts
      new tests for this functionality
Bug: 67408339

Change-Id: I6f08efd9e73c7e191f833d7f307a3bf4c9e2f0b4
2018-03-23 13:37:56 +09:00
Chalard Jean
1d738004e8 Have PermissionMonitor arbiter which app can access background networks
This will let ConnectivityService send the right callbacks to the
relevant apps.

Test: manual with apps
      runtest frameworks-net
      cts
      new tests for this functionality
Bug: 67408339

Change-Id: I6f08efd9e73c7e191f833d7f307a3bf4c9e2f0b4
2018-03-22 19:03:59 +09:00
Chalard Jean
9fae0a82af Merge "Give VPNs the INTERNET capability when they route most of the IP space" am: 20013384dc am: 18e51821b1
am: 207b8e2b4e

Change-Id: Ifd77149ca2c45249b8776c878c6fac46ae81c2a4
2018-03-02 12:54:29 +00:00
Chalard Jean
18e51821b1 Merge "Give VPNs the INTERNET capability when they route most of the IP space"
am: 20013384dc

Change-Id: Icd1466c79d2593fcab5bd2e31a1acb3a36a705da
2018-03-02 12:34:25 +00:00
Chalard Jean
adbf1d029b Give VPNs the INTERNET capability when they route most of the IP space
Test: manual, plus wrote some new tests for this
Bug: 72765718
Change-Id: I9759da72b752fd8eeb1d0647db9ab341f04c0528
2018-03-02 16:20:22 +09:00