Commit Graph

7724 Commits

Author SHA1 Message Date
Chalard Jean
8ffefbac16 [NS A23] Move a synchronized block in a central place
As the calls to this apparently need to be synchronized, let's
do it all in the same place instead of in all callers

Test: FrameworksNetTests
Change-Id: I0c097e7756fc155ba0243834b84626e86c68340e
2019-12-10 14:15:14 +09:00
Chalard Jean
ec70c4f03e [NS A22] Small refactoring
The point of this is to be able to move parts of processListenRequests
independently.

Test: FrameworksNetTests
Change-Id: I6c889b15696123c1120221977b0f36fa3d91de56
2019-12-10 14:15:14 +09:00
Chalard Jean
fa8105ac33 [NS A21] More cleanup
Test: FrameworksNetTests NetworkStackTests
Change-Id: I4771f2e9151ff16a7045d9c3025ac686f244b22d
2019-12-10 14:15:14 +09:00
Chalard Jean
1c89b21fca [NS A20] Cleanup
A lot of this code can't be triggered at all.
• newNetwork.created in l.6488 is implied by newNetwork.everConnected
  in l.6357
• !newNetwork.isVPN() in l.6488 is implied by the fact that VPNs are
  always foreground, so oldPermission can't != newPermission in l.6488
• updateUids in l.6502 is useless because uids can't change during a
  rematch (because there is no code doing that). Metered state and
  roaming state similarly can't change during a rematch, so
  meteredChanged and roamingChanged are always false
• updateAllVpnCapabilities in l.6537 is useless because VPN do not
  inherit the foreground state of their underlying networks, which
  would be the only reason to call that in l.6537
• Object.equals() in l.6480 is necessary false because at this line
  it is known that the foreground state has changed, which must have
  caused the NET_CAPABILITY_FOREGROUND to be different, so the objects
  can't be equal

Test: FrameworksNetTests NetworkStackTest
Change-Id: I2a52f7f4a085f3eea22a1dd170af8f04671250ff
2019-12-10 14:14:57 +09:00
lucaslin
817eb87936 Merge "Remove incorrect annotation - @TransportType" am: 644939bad5
am: b116ed1751

Change-Id: Ia82a146de1afadcc415ba69fd5cf01480332b37f
2019-12-05 21:01:12 -08:00
lucaslin
b116ed1751 Merge "Remove incorrect annotation - @TransportType"
am: 644939bad5

Change-Id: I99b74e5e67f5ff6f8d35f627e2c40ef4ca001c0c
2019-12-05 20:57:08 -08:00
Treehugger Robot
644939bad5 Merge "Remove incorrect annotation - @TransportType" 2019-12-06 04:50:27 +00:00
lucaslin
7ff9ed145a Remove incorrect annotation - @TransportType
This annotation is mis-adding by aosp/929879, and now it also
makes compilation failure for Telephony Mainline.

Bug: 145755373
Test: atest FrameworksNetTests
Change-Id: Ic22ce6bf17c4300b8cd52217976bfb215a123f68
2019-12-06 11:17:25 +08:00
markchien
bafe3cfffb Merge "Expose netId to SystemApi" am: cec4a7df3a
am: bd154aca0c

Change-Id: I23f6428954d08761d9671b419887d58dd29171fd
2019-12-04 18:39:46 -08:00
markchien
bd154aca0c Merge "Expose netId to SystemApi"
am: cec4a7df3a

Change-Id: I930b421d373ac67ec5987b9440a45e6dbc536074
2019-12-04 18:35:41 -08:00
Treehugger Robot
cec4a7df3a Merge "Expose netId to SystemApi" 2019-12-05 02:29:41 +00:00
Paul Hu
638ce2d8ca Merge "Replace the permission of internal connectivity checks" am: af0a3e0525
am: f7534cc2df

Change-Id: I461936789b24940cc81146e9d0fc6c4c455206ed
2019-12-04 08:51:28 -08:00
Chalard Jean
8324d9830c Merge changes Ie756b9aa,I38110f3a am: 810e743c54
am: 42ba28f18f

Change-Id: I8695507cb084a198308b5765bc8fb873ca3f6a30
2019-12-04 08:50:54 -08:00
Xin Li
8f18d75101 Merge "Merge Android10 QPR1 into AOSP master" am: d6c8feb116
am: 6ce75bed7f

Change-Id: I3bf58b1afbff9e0a40106771a9f389b1e2c1b940
2019-12-04 08:09:19 -08:00
markchien
931b4fae18 Expose netId to SystemApi
Tethering will be build as unblundled APP. It can't use @hide
API anymore. Expose netId for tethering because it need to set
proxy dns server with netId.

Bug: 144758139
Test: build
Change-Id: Ifefa791940874617bb479f5c23488d14be87f45e
2019-12-04 14:33:51 +08:00
Paul Hu
f7534cc2df Merge "Replace the permission of internal connectivity checks"
am: af0a3e0525

Change-Id: I5bb6a6074a2ac08f04147d415fb1d2bfbd411850
2019-12-03 22:04:50 -08:00
Paul Hu
af0a3e0525 Merge "Replace the permission of internal connectivity checks" 2019-12-04 05:59:59 +00:00
paulhu
d70b7dd6e3 Replace the permission of internal connectivity checks
A number of connectivity checks that protect system-only methods
check for CONNECTIVITY_INTERNAL, but CONNECTIVITY_INTERNAL is a
signature|privileged permission. We should audit the permission
checks, and convert checks that protect code that should not be
called outside the system to a signature permission. So replace
all CONNECTIVITY_INTERNAL to other proper permissions.

Bug: 32963470
Test: atest FrameworksNetTests NetworkPolicyManagerServiceTest
Change-Id: I8f2dd1cd0609056494eaf612d39820e273ae093f
Merged-In: I8f2dd1cd0609056494eaf612d39820e273ae093f
2019-12-04 11:44:45 +08:00
Chalard Jean
42ba28f18f Merge changes Ie756b9aa,I38110f3a
am: 810e743c54

Change-Id: I69e6c9234f0a983a56ee19d4d4dfe97618dc8f56
2019-12-03 18:18:53 -08:00
Treehugger Robot
810e743c54 Merge changes Ie756b9aa,I38110f3a
* changes:
  [NS A19] Inline updateCapabilities in rematch.
  [NS A18] Reverse listens and request-availables
2019-12-04 02:07:45 +00:00
Xin Li
6ce75bed7f Merge "Merge Android10 QPR1 into AOSP master"
am: d6c8feb116

Change-Id: I3b2912dffdd5be501077c9983bb922ee7a3767d1
2019-12-03 16:09:13 -08:00
Treehugger Robot
d6c8feb116 Merge "Merge Android10 QPR1 into AOSP master" 2019-12-03 23:15:02 +00:00
Chalard Jean
18946e3c78 Merge "Disable a flaky test" am: 932dda858a
am: cee0905447

Change-Id: Ie1fccb536e6df45491139ead179e8f5c2127d98f
2019-12-03 08:38:00 -08:00
Chalard Jean
cee0905447 Merge "Disable a flaky test"
am: 932dda858a

Change-Id: I8a6fc40976c6ab234cabd4af37dc4a530e2b47a1
2019-12-03 08:30:03 -08:00
Chalard Jean
b04416ea86 Disable a flaky test
Bug: 145513323
Test: FrameworkNetTests
Change-Id: I66e02fdaab2969b77db4a0f0e6fb8b1a981d9350
2019-12-03 16:13:22 +09:00
Xin Li
86afa905fd Merge Android10 QPR1 into AOSP master
Bug: 145570283
Change-Id: I557701733b49b0f231c89165239ba07c0fa288d2
2019-12-02 21:25:07 -08:00
Aaron Huang
644d130385 Add LinkProperties methods to system APIs
The exposed methods are used by telephony, wifi
and tethering. For mainline support, making the
methods @SystemApi.

Bug: 139268426
Bug: 135998869
Bug: 138306002
Test: atest FrameworksNetTests
      atest NetworkStackTests
      atest FrameworksTelephonyTests
      ./frameworks/opt/net/wifi/tests/wifitests/runtests.sh
      atest android.net.cts
      atest android.net.wifi.cts
      atest android.telephony.cts

Change-Id: Ib16a838cf9f748e1c5b045d6c2f17678f16af28c
2019-12-02 19:29:18 +08:00
Chalard Jean
8c29860024 Merge changes I720a1feb,I9539b8cc,Ib79b777b am: 230687643c
am: 75b3919e0c

Change-Id: I66a58f6f54a4d423ad603a2b642e6510c29bc07a
2019-12-02 01:55:20 -08:00
Chalard Jean
75b3919e0c Merge changes I720a1feb,I9539b8cc,Ib79b777b
am: 230687643c

Change-Id: Ieaa1371f6e52074b76e3353ea9a2653c783ff04e
2019-12-02 01:51:07 -08:00
Chalard Jean
95fa3677fc [NS A19] Inline updateCapabilities in rematch.
This is ugly, but it's a necessary step to improve the code.
Followups will clean this up. Importantly this kind of inlining
will let us break the very confusing apparent loop between
updateCapabilities and rematch.

Test: FrameworksNetTests
Change-Id: Ie756b9aa8066984264717f0b1e1f31606432f1a4
2019-12-02 18:44:11 +09:00
Chalard Jean
6f4173ec78 [NS A18] Reverse listens and request-availables
This is a long standing bug that happens to now be trivial
to fix, and also be beneficial for refactoring

Test: FrameworksNetTests NetworkStackTests
Change-Id: I38110f3a4a75936ea755788e7f9fee67863e14be
2019-12-02 18:44:10 +09:00
Chalard Jean
230687643c Merge changes I720a1feb,I9539b8cc,Ib79b777b
* changes:
  [NS A17] Update linger state after rematching.
  [NS A16] Cleanup
  [NS A15] Move legacy default broadcasts out of the loop
2019-12-02 09:40:44 +00:00
Chalard Jean
1922a45e9d Merge changes I0613c23f,Ibeab8d0a,I8bd668ad,I7d3a16be am: 604c2121a4
am: ea7b582312

Change-Id: Idca7b76f4e638aaa88ededcbfc890492152211e9
2019-12-01 21:32:55 -08:00
Chalard Jean
ea7b582312 Merge changes I0613c23f,Ibeab8d0a,I8bd668ad,I7d3a16be
am: 604c2121a4

Change-Id: Ibe34e78e53a15e987042703fdd27d6393e4e7d59
2019-12-01 21:26:44 -08:00
Chalard Jean
604c2121a4 Merge changes I0613c23f,Ibeab8d0a,I8bd668ad,I7d3a16be
* changes:
  [NS A14] Move code notifying battery stats in its right place
  [NS A13] Move legacy broadcast handling after rematch.
  [NS A12] Move some legacy type tracker handling to a function
  Add tests for ConnectivityService → BatteryStats messages
2019-12-02 05:17:39 +00:00
Chalard Jean
41bae5c936 [NS A17] Update linger state after rematching.
Test: FrameworksNetTests NetworkStackTests
Change-Id: I720a1feb89088aa123201ef5867de444234343e8
2019-12-02 13:02:41 +09:00
Chalard Jean
4005aeb760 [NS A16] Cleanup
Move LegacyTypeTracker work into a function for readability.

Test: FrameworksNetTests NetworkStackTests
Change-Id: I9539b8cc4422b3a0cc1d3d9b3a44d59dc1905b44
2019-12-02 13:02:41 +09:00
Chalard Jean
76b041667a [NS A15] Move legacy default broadcasts out of the loop
Test: FrameworksNetTests NetworkStackTests
Change-Id: Ib79b777b5efda3a4c85c30055f1a6d03d5d04c25
2019-12-02 13:02:41 +09:00
Chalard Jean
e55503198b [NS A14] Move code notifying battery stats in its right place
This should be done once every time an interface comes online.
Doing this in updateLinkProperties guarantees this happens every
time a new interface comes online, but it doesn't do it more
often than needed.

Test: FrameworksNetTests NetworkStackTests
Change-Id: I0613c23f44192944266d76107308da8d1c541d1c
2019-12-02 13:02:38 +09:00
Chalard Jean
9038bc9908 Merge "Give apps access to the NAT64 prefix." am: d6d1874f83
am: 72a0f88e74

Change-Id: I251c5ac17fb728d6f0fe91fd96c115c8b8d1879c
2019-12-01 18:27:36 -08:00
Chalard Jean
72a0f88e74 Merge "Give apps access to the NAT64 prefix."
am: d6d1874f83

Change-Id: I673a44f3f75a2395ae3d9d436c83708f20f414e6
2019-12-01 18:20:00 -08:00
Treehugger Robot
d6d1874f83 Merge "Give apps access to the NAT64 prefix." 2019-12-02 02:05:16 +00:00
Mark Chien
5515d06c39 Merge changes from topic "tether_migrate" am: 254a71dd7b
am: 29e7ec4550

Change-Id: Ice864e02b2ef9da73f5a69e0668b6856e718988f
2019-11-30 04:31:35 -08:00
markchien
6d49c339e8 [Tether07] Migrate Tethering into module am: 497a062e04
am: 7444958737

Change-Id: I6e71b418b7303d37144532ab056c21ccbefcb554
2019-11-30 04:31:28 -08:00
Mark Chien
29e7ec4550 Merge changes from topic "tether_migrate"
am: 254a71dd7b

Change-Id: I03e43b7a112f91637941e5193bd21b3e714f5dac
2019-11-30 04:26:07 -08:00
markchien
7444958737 [Tether07] Migrate Tethering into module
am: 497a062e04

Change-Id: I1aaa034e91eae2d6e9abcbbd70741a54a18b3ddc
2019-11-30 04:25:57 -08:00
Mark Chien
254a71dd7b Merge changes from topic "tether_migrate"
* changes:
  [Tether10]Remove UserManagerInternal usage in Tethering
  [Tether07] Migrate Tethering into module
  [Tether07] Clean up build rule for libtetheroffloadjni
2019-11-30 12:17:47 +00:00
Chalard Jean
6491fb772c Give apps access to the NAT64 prefix.
Apps that do their own DNS queries need to know the NAT64 prefix
to resolve v4 addresses on v6-only networks.

Test: FrameworksNetTests NetworkStackTests
Bug: 144877069
Change-Id: I5a255b7afc2038646b93a0ab893f8ad62d0fb34f
2019-11-30 10:25:02 +00:00
markchien
497a062e04 [Tether07] Migrate Tethering into module
Now tethering would be run in dedicated service.
TetheringManager is the interface used to communicate with
TetheringService. The new call flow would be: ConnectivityManager
-> ConnectivityService -> TetheringManager -> TetheringService.
Note: the return value of #tether(), #untether() and #setUsbTethering()
APIs would always be no error. Client can use #getLastTetherError()
or #getTetheredIfaces or listen tether state change to check
status of corresponding interface.

Bug: 136040414
Bug: 144742179
Test: -build, flash, boot
      -atest TetheringTests
      -atest FrameworksNetTests

Change-Id: I7e78c0e0a3e70f940a749ba2a39ece7c7ec5b9b3
Merged-In: I7e78c0e0a3e70f940a749ba2a39ece7c7ec5b9b3
2019-11-30 10:03:08 +00:00
Chalard Jean
dc623310c4 [NS A13] Move legacy broadcast handling after rematch.
As opposed to other patches in this series, there is a logic change
here. This will send all necessary legacy broadcasts after all
matches have been done.

This should be fine because the callbacks and the broadcasts are
unordered anyway, and the broadcasts are still sent in the same
order as before ; there should not be an observable change from
apps besides some jitter.

Bug: 113554781
Test: ConnectivityServiceTest
Change-Id: Ibeab8d0a9106c5198228888ac33084238c0a4a1a
2019-11-29 16:59:31 +09:00