Commit Graph

1590 Commits

Author SHA1 Message Date
Lorenzo Colitti
daab695c62 Rename members in TestConnectivityManager. am: 9bbdac6275 am: a6d9d23180 am: cece10d4e0
Original change: https://android-review.googlesource.com/c/platform/packages/modules/Connectivity/+/1659938

Change-Id: I3aefc96deeb0cbed9bc608c3435e18cda174b391
2021-04-01 09:26:23 +00:00
Lorenzo Colitti
7ba849ee98 Add the ability to affect ordering in the tethering unit tests. am: 3e09f80e8a am: bdb012f733 am: a116b7f370
Original change: https://android-review.googlesource.com/c/platform/packages/modules/Connectivity/+/1635021

Change-Id: I1ebce83cee60c2b5adc2102a7bda23b9c06460e2
2021-04-01 09:26:22 +00:00
Lorenzo Colitti
cfe964feac Make Tethering file NetworkRequests only if needed. am: 2bcde0fd97 am: cce64f0dd7 am: bd868cd5d0
Original change: https://android-review.googlesource.com/c/platform/packages/modules/Connectivity/+/1556199

Change-Id: I5e1059993a86ec1fdd5bb9a7001683af5dcd6b57
2021-04-01 09:26:21 +00:00
Lorenzo Colitti
a403fd6c1a Expose upstream requirements to UpstreamNetworkMonitor. am: 0e7e32ab2c am: 9dcd8587ed am: 9902d8c14f
Original change: https://android-review.googlesource.com/c/platform/packages/modules/Connectivity/+/1556198

Change-Id: Ie3d1ea858e3582ff84a409efb4403bac0b609993
2021-04-01 09:26:19 +00:00
Lorenzo Colitti
cece10d4e0 Rename members in TestConnectivityManager. am: 9bbdac6275 am: a6d9d23180
Original change: https://android-review.googlesource.com/c/platform/packages/modules/Connectivity/+/1659938

Change-Id: If02ce4eed9804d705a575fe7171459dafba216c9
2021-04-01 08:39:16 +00:00
Lorenzo Colitti
a116b7f370 Add the ability to affect ordering in the tethering unit tests. am: 3e09f80e8a am: bdb012f733
Original change: https://android-review.googlesource.com/c/platform/packages/modules/Connectivity/+/1635021

Change-Id: Iee27da6e7f6972564ee062e789905197e8994aa9
2021-04-01 08:39:15 +00:00
Lorenzo Colitti
bd868cd5d0 Make Tethering file NetworkRequests only if needed. am: 2bcde0fd97 am: cce64f0dd7
Original change: https://android-review.googlesource.com/c/platform/packages/modules/Connectivity/+/1556199

Change-Id: I66b565a18a850c020f1289566c646bdda1b6bd94
2021-04-01 08:39:15 +00:00
Lorenzo Colitti
9902d8c14f Expose upstream requirements to UpstreamNetworkMonitor. am: 0e7e32ab2c am: 9dcd8587ed
Original change: https://android-review.googlesource.com/c/platform/packages/modules/Connectivity/+/1556198

Change-Id: I47a5bdced72c17ecc5182f57623de1ae21f29036
2021-04-01 08:39:14 +00:00
Lorenzo Colitti
9bbdac6275 Rename members in TestConnectivityManager.
These members are public mutable and their names are confusing.
Make them package-private and final.

Bug: 173068192
Test: test-only change
Change-Id: I87131c48f67b6614c25aa99e1cbc53196f49aa7c
2021-03-31 20:23:20 +09:00
Lorenzo Colitti
3e09f80e8a Add the ability to affect ordering in the tethering unit tests.
Currently, TestConnectivityManager immediately sends all
callbacks and broadcasts to the Tethering code as soon as the
test code makes any change.

This makes it impossible to affect the order in which those
events are delivered to the Tethering code, so it is not possible
to test for races.

Fix some of this as follows:
1. Make TestConnectivityManager post all its callbacks to the
   handlers that Tethering registered them with.
2. In TetheringTest, use the existing TestLooper object to
   advance time manually. Also use setUseRegisteredHandlers to
   ensure that the broadcasts are sent in order. This requires
   calling dispatchAll() after sending the broadcast to preserve
   the existing synchronous behaviour. Take advantage of that to
   remove lots of existing dispatchAll calls.
3. Add a TestLooper to UpstreamNetworkMonitorTest and use it.
   Keep the test passing by adding lots of mLooper.dispatchAll(),
   which is a bit ugly but probably acceptable given the
   additional coverage it provides.

This exposes an existing bug in the code where if upstream
selection is in automatic mode, and all CONNECTIVITY_ACTION
broadcasts are received before all NetworkCallbacks, the code
does not switch upstream.

In order to make the tests pass, re-order the CONNECTIVITY_ACTION
broadcasts with the NetworkCallbacks in TestConnectivityManager
so as not to trigger the bug. A future CL will make the order
configurable.

While I'm at it, switch TestConnectivityManager from HashMap to
ArrayMap, which is generally preferred for maps that do not
contain too many elements.

Bug: 173068192
Test: test-only change
Change-Id: I964f365c691fbc396ab0a87f292bd32b123011fe
2021-03-31 20:17:11 +09:00
Lorenzo Colitti
2bcde0fd97 Make Tethering file NetworkRequests only if needed.
Currently, Tethering files NetworkRequests even when
config_tether_upstream_automatic is enabled. This is incorrect:
when the automatic upstream selection is enabled, the tethering
upstream should always follow the default network and there is
no need to file any requests.

These requests are harmful when tethering is not using cellular
as its upstream, because:

- If the device does not use mobile data always on, the request
  causes the cellular network to be brought up, causing power
  draw.
- Even if the device does use mobile data always on, the request
  causes the cellular network to come to the foreground, which
  allows all apps to access it, causing potential data usage.

Amend the existing testGetCurrentPreferredUpstream to cover these
changes, by making that test case always set automatic upstream
mode. This does not result in any loss of meaningful test
coverage, because getCurrentPreferredUpstream is only ever called
when chooseUpstreamAutomatically is enabled.

Bug: 173068192
Test: atest TetheringTests
Change-Id: I068a5338699a3ed04f24f97f785ea89ff5890e50
2021-03-31 19:27:17 +09:00
Lorenzo Colitti
0e7e32ab2c Expose upstream requirements to UpstreamNetworkMonitor.
UpstreamNetworkMonitor is the part of tethering that files
NetworkRequests for upstream netwoks, but it currently does not
know all the requirements for upstream selection. For example, it
does not know whether automatic upstream selection is in use.
This forces the upstream selection code to be split between
UpstreamNetworkMonitor and Tethering. This makes it difficult to
follow.

This CL ensures that all information about upstream requirements
(DUN required, automatic upstream selection, tryCell) is passed
to UpstreamNetworkMonitor so it can be aware of it.

This CL also removes the ability for UpstreamNetworkMonitor's
callers to call registerMobileNetworkRequest or
releaseMobileNetworkRequest. In a future CL, this will be
automatically done by UpstreamNetworkMonitor depending on the
upstream requirements.

This CL is a no-op refactoring with no behaviour changes.

Bug: 173068192
Test: atest TetheringTests
Change-Id: I174f765c616e0dbe2aa493c12613e6131cff0666
2021-03-31 19:27:17 +09:00
Remi NGUYEN VAN
6d575cace8 Add framework-connectivity to the Tethering APEX
Add framework-connectivity and its jni library dependency to the APEX.

Bug: 171540887
Test: device boots, has connectivity
Ignore-AOSP-First: Merge conflicts, will cherry-pick

Change-Id: I72fc7fee7bfcd909cbc79b4c34e8b3f29055d378
2021-03-24 23:05:29 +09:00
Remi NGUYEN VAN
02b94faf80 Reference framework-connectivity stubs explicitly
To merge the framework-connectivity and framework-connectivity.impl
targets, framework-connectivity stubs need to be referenced explicitly
in java_sdk_libraries, otherwise the build system will currently see
dependency cycles.

Bug: 183600168
Test: m
Ignore-AOSP-First: Needs manual cherry-picks
Change-Id: I556747f9ba934f8b44b6ea9a518adbccc84ac2a9
2021-03-24 23:05:13 +09:00
Remi NGUYEN VAN
836e3e1276 Merge "Add framework-connectivity to tethering tests" into sc-dev 2021-03-22 04:19:31 +00:00
Remi NGUYEN VAN
34d197bc2d Add framework-connectivity to tethering tests
This is necessary for tethering tests to build against hidden
framework-connectivity APIs after it is moved out of
framework-minus-apex.

Bug: 179229316
Test: atest TetheringTests
Ignore-AOSP-First: Need manual cherry-picks
Change-Id: I912fcd19bacb75a5944409b07d8e014032657d4a
2021-03-19 13:16:01 +00:00
Maciej Żenczykowski
3f3743eb65 bpf_progs - remove unused dependencies am: b1ffd2ce9b am: 2f780deb38 am: d65201b5a1
Original change: https://android-review.googlesource.com/c/platform/packages/modules/Connectivity/+/1646235

Change-Id: Ie77273c3c40707d4324c1930a5be715968c0c2f8
2021-03-19 10:50:04 +00:00
Maciej Żenczykowski
d65201b5a1 bpf_progs - remove unused dependencies am: b1ffd2ce9b am: 2f780deb38
Original change: https://android-review.googlesource.com/c/platform/packages/modules/Connectivity/+/1646235

Change-Id: I7fbb943db076cf3a70686a9c208bc82798a02cf1
2021-03-19 09:58:37 +00:00
Maciej Żenczykowski
b1ffd2ce9b bpf_progs - remove unused dependencies
Test: builds, atest, TreeHugger
Signed-off-by: Maciej Żenczykowski <maze@google.com>
Change-Id: I9414bde566bb73b696593587db854de3fb14cdcc
2021-03-19 03:39:42 +00:00
Maciej Żenczykowski
13218831c5 Merge changes Ibe325714,I44f3dc9e am: 63be468bf4 am: 3828871130 am: cfd48295b3
Original change: https://android-review.googlesource.com/c/platform/packages/modules/Connectivity/+/1644628

Change-Id: I9641a9838fb5d5a970e869530ab7399d23dc89da
2021-03-18 23:08:04 +00:00
Maciej Żenczykowski
cfd48295b3 Merge changes Ibe325714,I44f3dc9e am: 63be468bf4 am: 3828871130
Original change: https://android-review.googlesource.com/c/platform/packages/modules/Connectivity/+/1644628

Change-Id: I456582e52c4991fb5e1c53e772ef14621d5434d6
2021-03-18 22:42:04 +00:00
Maciej Żenczykowski
5066bb74a5 Merge changes Ibe325714,I44f3dc9e am: 63be468bf4 am: 3828871130
Original change: https://android-review.googlesource.com/c/platform/packages/modules/Connectivity/+/1644628

Change-Id: I1636d12476f44d6b1e92ecc6d5335626cc07ea76
2021-03-18 22:41:56 +00:00
Maciej Żenczykowski
3f32a83207 fix whitespace in offload.c macro
Test: atest, TreeHugger
Signed-off-by: Maciej Żenczykowski <maze@google.com>
Change-Id: Ibe325714f95a1accce8add16220a31ca15913816
2021-03-18 02:34:01 -07:00
Maciej Żenczykowski
af1f314cbd change PRIO_CLAT into a comment
Test: atest, TreeHugger
Signed-off-by: Maciej Żenczykowski <maze@google.com>
Change-Id: I44f3dc9e3a3462f275a04ed5601370f664b985a2
2021-03-18 02:33:56 -07:00
Kimberly Kreider
38e41e4404 Merge "Enable networking tests to be included in partial MTS files as well as full mts." am: 6f4d35119f am: 8266302ee7 am: 17eae52145
Original change: https://android-review.googlesource.com/c/platform/packages/modules/Connectivity/+/1531141

Change-Id: Ic16ee449e5eec1e947ac215d5aa27845c0e2e675
2021-03-17 03:48:42 +00:00
Aaron Huang
517cfad3e6 Merge "Update import class of TAG_SYSTEM_NEIGHBOR" into sc-dev 2021-03-17 03:16:56 +00:00
Kimberly Kreider
56c0b8c40a Merge "Enable networking tests to be included in partial MTS files as well as full mts." am: 6f4d35119f am: 8266302ee7
Original change: https://android-review.googlesource.com/c/platform/packages/modules/Connectivity/+/1531141

Change-Id: Ida996c15aeed86febda6a44aa3625f53a882fda0
2021-03-17 03:07:45 +00:00
Kimberly Kreider
17eae52145 Merge "Enable networking tests to be included in partial MTS files as well as full mts." am: 6f4d35119f am: 8266302ee7
Original change: https://android-review.googlesource.com/c/platform/packages/modules/Connectivity/+/1531141

Change-Id: Id1fc29e6bfcc8422a2a2b8b0f609035b6ab9ae09
2021-03-17 03:07:27 +00:00
Kimberly Kreider
6f4d35119f Merge "Enable networking tests to be included in partial MTS files as well as full mts." 2021-03-17 02:23:54 +00:00
Maciej Żenczykowski
8726a8bc8e Merge "Test conntrack event monitor on R" am: d5f07c1243 am: 4c9bfb1fbd am: 870595ef67
Original change: https://android-review.googlesource.com/c/platform/packages/modules/Connectivity/+/1639707

Change-Id: I8f24ab0b2fdabb71991c2cf77833e6dbf4f8046c
2021-03-16 14:31:47 +00:00
Maciej Żenczykowski
870595ef67 Merge "Test conntrack event monitor on R" am: d5f07c1243 am: 4c9bfb1fbd
Original change: https://android-review.googlesource.com/c/platform/packages/modules/Connectivity/+/1639707

Change-Id: Ifadec3b2360f535ace9504c0a3aa57950bbf1919
2021-03-16 13:27:10 +00:00
Maciej Żenczykowski
9788c4a2e6 Merge "Test conntrack event monitor on R" am: d5f07c1243 am: 4c9bfb1fbd
Original change: https://android-review.googlesource.com/c/platform/packages/modules/Connectivity/+/1639707

Change-Id: Ib3f2e2253fafdf6bd306d065c6d8a8101cfcc6a1
2021-03-16 13:27:03 +00:00
Maciej Żenczykowski
d5f07c1243 Merge "Test conntrack event monitor on R" 2021-03-16 12:29:20 +00:00
Hungming Chen
62afc9809b Test conntrack event monitor on R
Should not {start, stop} conntrack event monitor on R because
it is used by S feature.

Test: atest TetheringCoverageTests
Change-Id: I57a0a84d46e973660b24fc10d314820ada0d45b9
2021-03-16 18:14:38 +08:00
Treehugger Robot
c394bc2089 Merge "Do not start conntrack event monitor when running on R" am: c162fc297f am: de2d7bef3b am: cf31e5cbe4
Original change: https://android-review.googlesource.com/c/platform/packages/modules/Connectivity/+/1639703

Change-Id: Ic5b03b49e605057a048100fcc1e5b22b158e47c3
2021-03-16 09:49:12 +00:00
Treehugger Robot
cf31e5cbe4 Merge "Do not start conntrack event monitor when running on R" am: c162fc297f am: de2d7bef3b
Original change: https://android-review.googlesource.com/c/platform/packages/modules/Connectivity/+/1639703

Change-Id: Iaebb922ecd5a62eb548f0ed6fede51c0ae8618a3
2021-03-16 09:05:49 +00:00
Treehugger Robot
cde05e5133 Merge "Do not start conntrack event monitor when running on R" am: c162fc297f am: de2d7bef3b
Original change: https://android-review.googlesource.com/c/platform/packages/modules/Connectivity/+/1639703

Change-Id: I566869dbb5e14ced269e286597381533d6f92c1b
2021-03-16 09:05:40 +00:00
Treehugger Robot
c162fc297f Merge "Do not start conntrack event monitor when running on R" 2021-03-16 08:03:46 +00:00
Maciej Żenczykowski
5fee5079dc Merge "add test for TetheringUtils::setupNsSocket()" am: d3bb5a544c am: b0c92ad6c8 am: 277bed477f
Original change: https://android-review.googlesource.com/c/platform/packages/modules/Connectivity/+/1638165

Change-Id: I497be045f1884e8a5ca166a812a4cc04768dde3e
2021-03-16 07:11:35 +00:00
Lorenzo Colitti
c4cff79329 Merge "Add a test for TetheringUtils.setupNaSocket." am: d5edbb9eb4 am: 706d7ffb3e am: d1107edddd
Original change: https://android-review.googlesource.com/c/platform/packages/modules/Connectivity/+/1639699

Change-Id: Id940af07f2191e0460dee40bdffa5a0ffc3745ba
2021-03-16 07:11:29 +00:00
Maciej Żenczykowski
277bed477f Merge "add test for TetheringUtils::setupNsSocket()" am: d3bb5a544c am: b0c92ad6c8
Original change: https://android-review.googlesource.com/c/platform/packages/modules/Connectivity/+/1638165

Change-Id: I8649019d166ccc13d37daacd1cd14dda398b6ca3
2021-03-16 07:07:46 +00:00
Lorenzo Colitti
d1107edddd Merge "Add a test for TetheringUtils.setupNaSocket." am: d5edbb9eb4 am: 706d7ffb3e
Original change: https://android-review.googlesource.com/c/platform/packages/modules/Connectivity/+/1639699

Change-Id: Ib03fde8607b62802f897a5075ad0b638e9039fe6
2021-03-16 07:07:28 +00:00
Maciej Żenczykowski
d3bc95b1d2 Merge "add test for TetheringUtils::setupNsSocket()" am: d3bb5a544c am: b0c92ad6c8
Original change: https://android-review.googlesource.com/c/platform/packages/modules/Connectivity/+/1638165

Change-Id: If39dd7f5d6d4dbe1a0bbc487b743d6fbc360cd98
2021-03-16 07:07:10 +00:00
Lorenzo Colitti
804a3e1f98 Merge "Add a test for TetheringUtils.setupNaSocket." am: d5edbb9eb4 am: 706d7ffb3e
Original change: https://android-review.googlesource.com/c/platform/packages/modules/Connectivity/+/1639699

Change-Id: I957fc61a12f514de19496dd84d739dd794f040eb
2021-03-16 07:06:55 +00:00
Maciej Żenczykowski
d3bb5a544c Merge "add test for TetheringUtils::setupNsSocket()" 2021-03-16 06:23:06 +00:00
Hungming Chen
23ee901e76 Do not start conntrack event monitor when running on R
Starting conntrack event monitor on R devices is unnecessary because
no code uses them.

Bug: 177884581
Test: atest TetheringCoverageTests
Change-Id: I036cb8e29b32a4e220da9a52849b978a6ab821e4
2021-03-16 14:18:32 +08:00
Lorenzo Colitti
d5edbb9eb4 Merge "Add a test for TetheringUtils.setupNaSocket." 2021-03-16 06:17:37 +00:00
Maciej Żenczykowski
e7c57368f8 add test for TetheringUtils::setupNsSocket()
Bug: 154669942
Test: test-only change
Change-Id: I33fe5a92667a0a6ee38bbcfdee40405cd37cc30f
2021-03-15 21:10:21 -07:00
Lorenzo Colitti
82d4b9956d Add a test for TetheringUtils.setupNaSocket.
Because most of the tethering tests are unprivileged, we cannot
test this code on real sockets. So use an AF_UNIX socketpair.

Bug: 154669942
Bug: 182785371
Test: test-only change
Change-Id: I843fddb3aaeab33628438f3bcd6a4166062de962
2021-03-15 21:01:42 -07:00
Remi NGUYEN VAN
c53077244f Merge changes from topic "conn_resources_cp" am: 016e0b9261 am: 16763614c0
Original change: https://android-review.googlesource.com/c/platform/packages/modules/Connectivity/+/1635019

Change-Id: Ib1c92cf86dbdae88ad384d7aa0bf71f84dbb85d4
2021-03-16 03:50:49 +00:00