Commit Graph

422 Commits

Author SHA1 Message Date
Mark Chien
d8a80a418d Merge "Remove sendMessage inside EntitlementManager" am: b4624df935 am: 2acc78a6a9
Change-Id: Ia582129af14366051e81f3d5b77cb018f453a2ee
2020-04-16 02:47:22 +00:00
Mark Chien
8c98b3d35e Do not stop IpServer when recieve wifi ap disabling state.
This is used to fix the race when quickly OFF/ON wifi tethering.
When IpServer is started/stopped, there is callback update tethering
interface status. Before this change, IpServer is stopped when wifi
ap is disabling. Then the next startTethering may fail in wifi because
wifi is in disabling state.
Error pattern: WifiService: Tethering is already active.
No unitest for this CL but it fixed the CtsTetheringTest flakty rate
than around 30% to 0 for more than 100 runs.

Bug: 153925821
Test: atest CtsTetheringTest --iteration 100
Merged-In: I8b65f621abe20799a3a0d410ba1f06368746ee49
Change-Id: I8b65f621abe20799a3a0d410ba1f06368746ee49
2020-04-16 02:09:48 +00:00
Mark Chien
b4624df935 Merge "Remove sendMessage inside EntitlementManager" 2020-04-16 02:07:55 +00:00
Paul Hu
7c789f41eb Merge "[TNU05] Add no upstream notification" am: b353c7eac3 am: 7cda806393
Change-Id: Ib65eeed784189e669cc5c22537671deb8d35a9e5
2020-04-16 01:59:03 +00:00
Paul Hu
b353c7eac3 Merge "[TNU05] Add no upstream notification" 2020-04-16 01:31:06 +00:00
Mark Chien
b90f7a5c5c Merge "Do not stop IpServer when recieve wifi ap disabling state." am: 197e35198d am: 7018843a2e
Change-Id: Ia0e60d2e72e2fe94ea14e30cb80a4c24e9b7b75c
2020-04-15 17:28:27 +00:00
markchien
a1a0be93f0 Remove sendMessage inside EntitlementManager
EntitlementManager and its callers(Tethering and UpstreamNetworkMonitor)
run in the same threads.

Bug: 141256482
Test: atest TetheringTests
Change-Id: I0a376d28b123eaab2e8d00a98a4719ce983d3bb2
2020-04-15 02:29:21 +00:00
paulhu
648fc2c8ea [TNU05] Add no upstream notification
Reminder user of unavailable tethering status if there is no
internet access.

Bug: 147818698
Test: atest TetheringTests
Change-Id: Ic6557f9f7703337596100cd6a477fd7239217166
2020-04-15 01:25:37 +08:00
markchien
1acfb0125c Change tethering file structure to respect its package name
Bug: 145099347
Test: atest TetheringTests
      atest CtsTetheringTest
Change-Id: I544ab9480bbaa5e18e030d21a28ab4c4a7265795
2020-04-14 12:25:03 +00:00
markchien
bdf1003c3b Do not stop IpServer when recieve wifi ap disabling state.
This is used to fix the race when quickly OFF/ON wifi tethering.
When IpServer is started/stopped, there is callback update tethering
interface status. Before this change, IpServer is stopped when wifi
ap is disabling. Then the next startTethering may fail in wifi because
wifi is in disabling state.
Error pattern: WifiService: Tethering is already active.
No unitest for this CL but it fixed the CtsTetheringTest flakty rate
than around 30% to 0 for more than 100 runs.

Bug: 153925821
Test: atest CtsTetheringTest --iteration 100
Change-Id: I8b65f621abe20799a3a0d410ba1f06368746ee49
2020-04-14 10:42:32 +00:00
Lorenzo Colitti
6f532ba30f Don't crash when receiving an RTM_DELNEIGH or NUD_FAILED.
These events don't have MAC addresses, so the code attempts to
create an Ipv6ForwardingRule with a null MAC address. This
crashes when attempting to get the raw MAC address bytes to send
to netd in the TetherOffloadRuleParcel.

This was not caught by unit tests because the test exercise this
code path in a way that is not correct (by sending RTM_DELNEIGH
and NUD_FAILED events with MAC addresses). Fix the unit tests to
properly pass in null MAC addresses for these events.

Bug: 153697068
Test: fixed existing tests to be more realistic
Merged-In: I26d89a81f1c448d9b4809652b079a5f5eace3924
Change-Id: I26d89a81f1c448d9b4809652b079a5f5eace3924
2020-04-14 09:55:17 +00:00
Lorenzo Colitti
dd43e05b6e Merge "Don't crash when receiving an RTM_DELNEIGH or NUD_FAILED." am: 941a53ce91 am: 81dd21611d
Change-Id: Ie7060e6408acd73f1a5d2456d030a1958df32847
2020-04-14 09:21:19 +00:00
Lorenzo Colitti
941a53ce91 Merge "Don't crash when receiving an RTM_DELNEIGH or NUD_FAILED." 2020-04-14 08:22:30 +00:00
markchien
7dc2dcc37a Change tethering file structure to respect its package name
Bug: 145099347
Test: atest TetheringTests
      atest CtsTetheringTest
Change-Id: I7401c550fbafd17a5ed2d925b5d0e17e358af467
Merged-In: I7401c550fbafd17a5ed2d925b5d0e17e358af467
2020-04-14 14:33:45 +08:00
Lorenzo Colitti
330a9b9fa7 Don't crash when receiving an RTM_DELNEIGH or NUD_FAILED.
These events don't have MAC addresses, so the code attempts to
create an Ipv6ForwardingRule with a null MAC address. This
crashes when attempting to get the raw MAC address bytes to send
to netd in the TetherOffloadRuleParcel.

This was not caught by unit tests because the test exercise this
code path in a way that is not correct (by sending RTM_DELNEIGH
and NUD_FAILED events with MAC addresses). Fix the unit tests to
properly pass in null MAC addresses for these events.

Bug: 153697068
Test: fixed existing tests to be more realistic
Change-Id: I26d89a81f1c448d9b4809652b079a5f5eace3924
2020-04-14 15:02:17 +09:00
markchien
d995566700 Change tethering file structure to respect its package name
Bug: 145099347
Test: atest TetheringTests
      atest CtsTetheringTest
Change-Id: I7401c550fbafd17a5ed2d925b5d0e17e358af467
2020-04-14 02:09:51 +00:00
Treehugger Robot
5da1070d8f Assign specific client address to dhcp server
Bug: 141256482
Test: manual
      atest TetheringTests

Merged-In: Ief76c98c843ba5420224cbf0f34464f366c891b7
Change-Id: Ief76c98c843ba5420224cbf0f34464f366c891b7
2020-04-10 10:03:20 +00:00
Paul Hu
aaf92e5165 Merge "Fix EntitlementManager issues" into rvc-dev 2020-04-07 04:37:30 +00:00
Xiao Ma
210adac5fa Merge "Rename IDhcpLeaseCallbacks to IDhcpEventCallbacks for more generic." into rvc-dev 2020-04-07 02:50:41 +00:00
Xiao Ma
06c8ba0cd7 Rename IDhcpLeaseCallbacks to IDhcpEventCallbacks for more generic.
Bug: 130741856
Test: atest TetheringTests
Merged-In: I66614fbf67fba1e7dab0b8a2d41bc30a726e4f38
Change-Id: I66614fbf67fba1e7dab0b8a2d41bc30a726e4f38
2020-04-07 01:26:50 +00:00
Paul Hu
bd8d7a8208 Fix EntitlementManager issues
1. Add TETHERING_ETHERNET to vaild downstream type. So starting
   ethernet tethering will do entitlement check as well.
2. Ignore request with invalid downstream type on
   handleRequestLatestTetheringEntitlementValue()

Bug: 152828758
Bug: 152828142
Test: atests TetheringTests CtsTetheringTest

Change-Id: Id0cb59cc4681f5ffbde7be54de05a05e46f0ffb8
Merged-In: Id0cb59cc4681f5ffbde7be54de05a05e46f0ffb8
(cherry picked from commit c502e050fd9543e8bde45014dd66ea1be91c90ef)
2020-04-07 01:23:49 +00:00
Lorenzo Colitti
e6107d2466 Migrate to TetherOffloadRuleParcel in IpServer
The netd tethering offload IPCs are changing from taking a list
of primitives to taking a TetherOffloadRuleParcel. Modify their
only caller.

Bug: 140541991
Test: atest IpServerTest
Merged-In: I83718c80ef9d31199c87021b4dd5821717fd5ba5
Change-Id: I83718c80ef9d31199c87021b4dd5821717fd5ba5
2020-04-06 15:45:58 +00:00
Xiao Ma
9558865f76 Merge "Rename IDhcpLeaseCallbacks to IDhcpEventCallbacks for more generic." am: a73e5c5c18 am: d0b65f11be
Change-Id: Ib5be6794077c5e932fdf4bfc93fab822e6cb70d7
2020-04-06 11:24:48 +00:00
Xiao Ma
a73e5c5c18 Merge "Rename IDhcpLeaseCallbacks to IDhcpEventCallbacks for more generic." 2020-04-06 10:43:28 +00:00
Lorenzo Colitti
dc25174ebe Merge "Migrate to TetherOffloadRuleParcel in IpServer" am: b22a70d7c8 am: 2aea86b521
Change-Id: I8257dacfb734e03b52d447a0b658ce372eb46fb0
2020-04-06 09:19:57 +00:00
Lorenzo Colitti
b22a70d7c8 Merge "Migrate to TetherOffloadRuleParcel in IpServer" 2020-04-06 08:40:51 +00:00
Paul Hu
784b7a6925 Merge "Fix EntitlementManager issues" am: 943af02d92 am: 7f05bb9b2d
Change-Id: I0fef76b2fa00757afc1db9a073ad9e912ca98b19
2020-04-06 08:33:31 +00:00
Paul Hu
943af02d92 Merge "Fix EntitlementManager issues" 2020-04-06 07:33:26 +00:00
Xiao Ma
49889dd4c0 Rename IDhcpLeaseCallbacks to IDhcpEventCallbacks for more generic.
Bug: 130741856
Test: atest TetheringTests
Change-Id: I66614fbf67fba1e7dab0b8a2d41bc30a726e4f38
2020-04-06 15:59:22 +09:00
Lorenzo Colitti
beb28405b1 Migrate to TetherOffloadRuleParcel in IpServer
The netd tethering offload IPCs are changing from taking a list
of primitives to taking a TetherOffloadRuleParcel. Modify their
only caller.

Bug: 140541991
Test: atest IpServerTest
Change-Id: I83718c80ef9d31199c87021b4dd5821717fd5ba5
2020-04-04 16:24:58 +09:00
paulhu
4175676eab Fix EntitlementManager issues
1. Add TETHERING_ETHERNET to vaild downstream type. So starting
   ethernet tethering will do entitlement check as well.
2. Ignore request with invalid downstream type on
   handleRequestLatestTetheringEntitlementValue()

Bug: 152828758
Bug: 152828142
Test: atests TetheringTests CtsTetheringTest

Change-Id: Id0cb59cc4681f5ffbde7be54de05a05e46f0ffb8
2020-03-31 18:01:54 +08:00
Treehugger Robot
a3fbca5f60 Merge "Assign specific client address to dhcp server" am: 037becbf64 am: 815ab636c3
Change-Id: Ia0e4a913faa5eac5d5ccba837eb7774d59670d27
2020-03-30 04:23:55 +00:00
Treehugger Robot
037becbf64 Merge "Assign specific client address to dhcp server" 2020-03-30 03:38:46 +00:00
Remi NGUYEN VAN
b3289466c5 Merge "Create a builder for NetworkCapabilities." 2020-03-30 02:58:45 +00:00
Mark Chien
6d4001132d Register callback and receiver after tethering is created
Tethering service is created after boot complete which means most of
the services are ready before tethering. Once tethering register the
callback, callback event may come-in immediately. Make sure all of
tethering related object is created, then register the callback,
receiver, or listener.

Bug: 149965121
Test: atest TetheringTests
      manual on/off tethering

Change-Id: Ifdc427341db7d1313ad4b61207a96ab379d100aa
Merged-In: I3941a186770679e7b476073d774e2310e25e44c6
(cherry picked from commit 285be1ee938ddc9728ccc3e951ed0ed1b2fa7117)
2020-03-27 14:01:49 +00:00
Mark Chien
bfe7965e6b Merge "Register callback and receiver after tethering is created" am: 33788bcaac am: 01326a25c0
Change-Id: Ifc4846347326ce5e18a2f8f1ac060febc0cbd486
2020-03-27 08:55:32 +00:00
Mark Chien
33788bcaac Merge "Register callback and receiver after tethering is created" 2020-03-27 08:31:11 +00:00
markchien
e31fb9d7bd Register callback and receiver after tethering is created
Tethering service is created after boot complete which means most of
the services are ready before tethering. Once tethering register the
callback, callback event may come-in immediately. Make sure all of
tethering related object is created, then register the callback,
receiver, or listener.

Bug: 149965121
Test: atest TetheringTests
      manual on/off tethering

Change-Id: I3941a186770679e7b476073d774e2310e25e44c6
2020-03-27 08:13:28 +00:00
Treehugger Robot
a4e2383d84 Update connected clients when a downstream disappears.
Otherwise, if another downstream of the same type reappears, the
code would fire a callback with the previous list of clients.

Bug: 150644681
Test: atest TetheringIntegrationTests:EthernetTetheringTest --rerun-until-failure 100
Change-Id: I6b34ea747ae1831001077f44879bb6828dcecc96
Merged-In: I6b34ea747ae1831001077f44879bb6828dcecc96
(cherry picked from commit 3984360f642ddd5820ced5a6935e37a8ae0d9d76)
2020-03-26 05:07:06 +00:00
Treehugger Robot
595266e4a8 Add a log message if enabling Ethernet tethering if it is already enabled.
Test: builds
Bug: 150644681
Change-Id: I68123e6dd04ccae5da2ecd7526c11d9f835d1d57
Merged-In: I68123e6dd04ccae5da2ecd7526c11d9f835d1d57
(cherry picked from commit e6b8ded8121c137a7e434e1c2a9e04cc144f2f28)
2020-03-26 05:05:35 +00:00
Paul Hu
fe6c41c815 [TNU04] Add tethering restricted notification
If tethering is restricted to the user, show restricted
notification to notify the user.

Bug: 122085773
Test: atest TetheringTests
Change-Id: Ic5baca2d6102886f4c3530ce1e321b5dab6ea9d7
Merged-In: Ic5baca2d6102886f4c3530ce1e321b5dab6ea9d7
(cherry picked from aosp/1188867)
2020-03-26 02:01:37 +00:00
Paul Hu
71007d31b5 [TNU03] Add TetheringNotificationUpdaterTest
Add new test for TetheringNotificationUpdater

Bug: 122085773
Bug: 130596698
Test: atest TetheringTests
Change-Id: I0db3df3e85dd6a8c3989c8bc66a06c50f45a0c15
Merged-In: I0db3df3e85dd6a8c3989c8bc66a06c50f45a0c15
(cherry picked from aosp/1209985)
2020-03-26 01:59:15 +00:00
Treehugger Robot
b989c19abf Merge "Update connected clients when a downstream disappears." am: 22e8c3350b am: bd69be52b1
Change-Id: I542acb7f50b1891b89f5fe495c3f58456dbd8d91
2020-03-25 15:32:41 +00:00
Treehugger Robot
22e8c3350b Merge "Update connected clients when a downstream disappears." 2020-03-25 15:00:43 +00:00
Paul Hu
e4beb93149 [TNU02] Update tethering notification by active data subid
Tethering notification can be customized by different subid. Thus
update notification when active data subid changed.

Bug: 122085773
Bug: 130596698
Test: atest TetheringTests
Change-Id: I799d713326cfbf4dc96c712c6b15ed5a4ac18dd2
Merged-In: I799d713326cfbf4dc96c712c6b15ed5a4ac18dd2
(cherry picked from aosp/1209984)
2020-03-25 13:47:48 +00:00
Lorenzo Colitti
ca071b79cd Update connected clients when a downstream disappears.
Otherwise, if another downstream of the same type reappears, the
code would fire a callback with the previous list of clients.

Bug: 150644681
Test: atest TetheringIntegrationTests:EthernetTetheringTest --rerun-until-failure 100
Change-Id: I6b34ea747ae1831001077f44879bb6828dcecc96
2020-03-25 22:14:46 +09:00
Paul Hu
5ea31650ae Merge "[TNU04] Add tethering restricted notification" am: 255565e839 am: 7696642a8c
Change-Id: Iad59bdf6b3c5b3ce059d7c01c7396866aab85767
2020-03-25 12:03:10 +00:00
Paul Hu
255565e839 Merge "[TNU04] Add tethering restricted notification" 2020-03-25 11:30:41 +00:00
Paul Hu
ff89f2fd43 Merge "[TNU03] Add TetheringNotificationUpdaterTest" am: 18c34694f9 am: 493d3a833c
Change-Id: I1085dceb190b32122416d0240275d7ecb81aa627
2020-03-25 07:15:31 +00:00
Paul Hu
18c34694f9 Merge "[TNU03] Add TetheringNotificationUpdaterTest" 2020-03-25 06:45:14 +00:00