Commit Graph

528 Commits

Author SHA1 Message Date
Nucca Chen
a950792808 Merge changes I73f30477,I84db13ac am: 2f1c2b25cd am: 2b82a04b56 am: d98f2b685f
Original change: https://android-review.googlesource.com/c/platform/packages/modules/Connectivity/+/1534829

MUST ONLY BE SUBMITTED BY AUTOMERGER

Change-Id: I468c45d5bb13a55bc525dd8f839de1af87214b6b
2021-01-23 14:55:05 +00:00
Nucca Chen
36027bdbcd Merge "[NFCT.TETHER.1] Add conntrack monitor to BpfCoordinator" am: 168a96643d am: 3efbe8414f am: 4ad3fc7c39
Original change: https://android-review.googlesource.com/c/platform/packages/modules/Connectivity/+/1488522

MUST ONLY BE SUBMITTED BY AUTOMERGER

Change-Id: I9ca46e6510116e0859c0284d9547a6dcb8370662
2021-01-22 12:45:20 +00:00
Hungming Chen
8784a60eab [NFCT.TETHER.8] Prepare the upstream information for IPv4 offload rule
Add upstream interface index and its IPv4 address mapping

Required for building IPv4 forwarding rule when a conntrack event is
received.

Test: atest TetheringCoverageTests
Change-Id: I73f304777704f09481b80d18751e0bab5bab2edc
2021-01-22 19:37:31 +08:00
Hungming Chen
d71c06ec71 [NFCT.TETHER.7] Prepare the downstream information for IPv4 offload rule
Add and remove downstream client information to BpfCoordinator

Required for building IPv4 forwarding rule when a conntrack event is
received. The IpServer provides the following elements of a rule which
is not included in conntrack event:
- Downstream interface index
- Downstream Mac address
- Client IP address to Client Mac address

Test: atest TetheringCoverageTests
Change-Id: I84db13acc047ace5730d17f0d3dd99544f516084
2021-01-22 19:37:24 +08:00
Nucca Chen
168a96643d Merge "[NFCT.TETHER.1] Add conntrack monitor to BpfCoordinator" 2021-01-22 11:29:09 +00:00
Maciej Żenczykowski
eee7861b37 adjust to changes in map location am: 30a2d8232b am: 21b466f290 am: cc123a310d
Original change: https://android-review.googlesource.com/c/platform/packages/modules/Connectivity/+/1557274

MUST ONLY BE SUBMITTED BY AUTOMERGER

Change-Id: Ic5df5006474ae5ece29b6240c36284e6bf0f2478
2021-01-22 06:01:39 +00:00
Maciej Żenczykowski
30a2d8232b adjust to changes in map location
Test: atest, TreeHugger
Signed-off-by: Maciej Żenczykowski <maze@google.com>
Change-Id: Idaaa1ede7c239655f5ec489532533c363d297864
2021-01-21 17:51:20 -08:00
Hungming Chen
46c30b1fd4 [NFCT.TETHER.1] Add conntrack monitor to BpfCoordinator
A preparation for starting monitoring conntrack event which is required
by IPv4 tethering offload.

Test: atest TetheringCoverageTests
Change-Id: Ied46aeca193554f52a90889dfdf92827e94845d6
2021-01-21 21:25:18 +08:00
Maciej Żenczykowski
0006c9febf refactor: continued am: a0e2c0445d am: 009cd35124 am: 0c931c6c54
Original change: https://android-review.googlesource.com/c/platform/packages/modules/Connectivity/+/1553320

MUST ONLY BE SUBMITTED BY AUTOMERGER

Change-Id: I308465d41d3c43203583f0324bfb08b85f5ddfd8
2021-01-20 16:39:54 +00:00
Maciej Żenczykowski
79b7996f1a refactor: TetherIngress becomes TetherDownstream6 (and friends) am: 770e0a7a8f am: 14583198a0 am: 7a38a7d727
Original change: https://android-review.googlesource.com/c/platform/packages/modules/Connectivity/+/1554238

MUST ONLY BE SUBMITTED BY AUTOMERGER

Change-Id: I3aaf8738cd9e7c9bce8dcf9a82baafd9ca056ae9
2021-01-20 12:52:25 +00:00
Maciej Żenczykowski
a0e2c0445d refactor: continued
Test: builds, atest, TreeHugger
  git grep 'makeIngressKey|makeIngressValue|BpfIngressMap|TETHER_INGRESS_FS_PATH'
  no longer finds anything
Signed-off-by: Maciej Żenczykowski <maze@google.com>
Change-Id: I27200d33cbc4ea2094b18e05bf93ab54c564da0b
2021-01-20 11:34:48 +00:00
Maciej Żenczykowski
770e0a7a8f refactor: TetherIngress becomes TetherDownstream6 (and friends)
Generated via:
  #!/bin/bash

  do_replace() {
    pushd "$1" >/dev/null
    shift
    git grep "$1" | cut -d: -f1 | sort -u | while read f; do
      sed -i -r "s@$1@$2@g" "${f}"
      git add "${f}"
    done
    popd >/dev/null
  }

  replace() {
    do_replace packages/modules/Connectivity/Tethering "$@"
    do_replace system/netd "$@"
  }

  do_reset() {
    pushd "$1" >/dev/null
    git rhh
    popd >/dev/null
  }

  main() {
    do_reset packages/modules/Connectivity/Tethering
    do_reset system/netd

    replace TetherIngressKey TetherDownstream6Key
    replace TetherIngressValue TetherDownstream6Value

    pushd packages/modules/Connectivity/Tethering/src/com/android/networkstack/tethering >/dev/null
    git mv TetherIngressKey.java TetherDownstream6Key.java
    git mv TetherIngressValue.java TetherDownstream6Value.java
    popd >/dev/null

    replace TETHER_INGRESS_PROG TETHER_DOWNSTREAM6_TC_PROG
    replace ingress_tether tether_downstream6
    replace ingress/tether_ tether_downstream6_
    replace TETHER_INGRESS_MAP TETHER_DOWNSTREAM6_MAP
    replace tether_ingress_map tether_downstream6_map

    replace getTetherIngressMapFd getTetherDownstream6MapFd
    replace getTetherIngressProgFd getTetherDownstream6TcProgFd

    replace mBpfIngressMap mBpfDownstream6Map
    replace bpfIngressMap bpfDownstream6Map
    replace printIngressMap printDownstream6Map
    replace 'BPF ingress map' 'BPF downstream ipv6 map'
  }

  main "$@"; exit

Followed by:
  cd system/netd
  # change regexp in tests/binder_test.cpp:3374
  git add tests/binder_test.cpp

(and whitespace adjustments to prevent lines from going over 100 characters)

Afterwards we have:
  $ adbz shell ls /sys/fs/bpf/tethering
  map_offload_tether_downstream6_map
  map_offload_tether_limit_map
  map_offload_tether_stats_map
  map_test_tether_downstream6_map
  prog_offload_schedcls_tether_downstream6_ether
  prog_offload_schedcls_tether_downstream6_rawip
  prog_test_xdp_drop_ipv4_udp_ether

Test: atest, TreeHugger
Signed-off-by: Maciej Żenczykowski <maze@google.com>
Change-Id: Ib04dc0c6e3d034461f3f84e09f6fa93a862e1bb2
2021-01-19 23:18:46 -08:00
Lorenzo Colitti
a0ef944e66 Merge changes Id87b88f6,I67dfba75 am: fab97c22b2 am: 68a007c616 am: 73d47c1b20
Original change: https://android-review.googlesource.com/c/platform/packages/modules/Connectivity/+/1538841

MUST ONLY BE SUBMITTED BY AUTOMERGER

Change-Id: If4ab925309508d2bbdc5f4453aa6e5e047e91919
2021-01-20 05:21:54 +00:00
Nucca Chen
ab07e59707 Merge changes I969d6182,Ie73f7b4d am: 2668d4a0e2 am: d3e7c33b2e am: 33ee638bae
Original change: https://android-review.googlesource.com/c/platform/packages/modules/Connectivity/+/1537801

MUST ONLY BE SUBMITTED BY AUTOMERGER

Change-Id: I0d62905c33af794213ce419d309d953bafda94d9
2021-01-19 12:40:32 +00:00
Nucca Chen
071607ba28 Merge "[NFCT.TETHER.2] Migrate tetherOffloadRuleAdd from netd to mainline" am: 6bc18e6d2c am: 79f0ca8849 am: 0f360d1d11
Original change: https://android-review.googlesource.com/c/platform/packages/modules/Connectivity/+/1536562

MUST ONLY BE SUBMITTED BY AUTOMERGER

Change-Id: Ifebd26d45f2be22e7ec8b0936aeb9d102e2d3c26
2021-01-18 08:20:27 +00:00
Hungming Chen
6971e91d62 [NFCT.TETHER.6] Migrate tetherOffloadGetAndClearStats from netd to mainline
A preparation for updating BPF map in mainline module.

Test: atest TetheringCoverageTests
Change-Id: Id87b88f6dfcdfe5765756442ed880933cd1c6baf
2021-01-15 18:40:55 +08:00
Hungming Chen
67c14b549f [NFCT.TETHER.5] Migrate tetherOffloadSetInterfaceQuota from netd to mainline
A preparation for updating BPF map in mainline module.

Test: atest TetheringCoverageTests
Change-Id: I67dfba750c7303e4aeaf65f5086db1290d176b4d
2021-01-15 18:40:48 +08:00
Hungming Chen
5ea9c4b64a [NFCT.TETHER.4] Migrate tetherOffloadRuleRemove from netd to mainline
A preparation for updating BPF map in mainline module.

Test: atest TetheringCoverageTests
Change-Id: I969d6182a307f46c8ed0a30960deb460ecedd8ea
2021-01-15 18:40:40 +08:00
Hungming Chen
b350d7589f [NFCT.TETHER.3] Migrate tetherOffloadGetStats from netd to mainline
A preparation for updating BPF map in mainline module.

Test: TetheringCoverageTests
Change-Id: Ie73f7b4d9b191e62cfdfe2cfa3360cc7210f17e8
2021-01-15 17:11:12 +08:00
Hungming Chen
dd55b91228 [NFCT.TETHER.2] Migrate tetherOffloadRuleAdd from netd to mainline
A preparation for updating BPF map in mainline module.

Test: atest TetheringCoverageTests
Change-Id: I6f8667bf110dae3e2805c2752ff59e7284a7bce0
2021-01-15 17:10:58 +08:00
Hungming Chen
7a70d825db Follow-up CL to the change at aosp/1498277 am: 7d05e6fddd am: 0276690274 am: d40aa01f07
Original change: https://android-review.googlesource.com/c/platform/packages/modules/Connectivity/+/1547695

MUST ONLY BE SUBMITTED BY AUTOMERGER

Change-Id: Ia79c2d0f20241af73149cec27ff2d16c24cc3758
2021-01-12 15:14:45 +00:00
Hungming Chen
7d05e6fddd Follow-up CL to the change at aosp/1498277
1. Correct the API annotation.
2. The entry deletion failure causes the exception in cleanTestMap().
3. Use AtomicInteger to be the counter in the lambda.

Test: atest BpfMapTest
Change-Id: I4a56038881a38bda993ef5303b71f0e2a99f03d1
2021-01-12 19:08:15 +08:00
Nucca Chen
adfb2526bc Merge "Provide a easy way to access bpf maps from java" am: 12067258b2 am: 5a90ec8297 am: f9e96b9ce9
Original change: https://android-review.googlesource.com/c/platform/packages/modules/Connectivity/+/1498277

MUST ONLY BE SUBMITTED BY AUTOMERGER

Change-Id: Ib1a990bdc66510c3c9c7e87715adb59b581d3c1c
2021-01-12 09:37:33 +00:00
Nucca Chen
12067258b2 Merge "Provide a easy way to access bpf maps from java" 2021-01-12 08:06:03 +00:00
markchien
7052688dde Provide a easy way to access bpf maps from java
A wrapper for bpf map opening, reading/writing, and iteration.

Bug: 173167302
Test: atest BpfMapTest

Change-Id: I792b41978b322c9e4969cd7b6c35d6978ab86bc4
2021-01-11 17:43:27 +08:00
lucaslin
cb561f4183 Move BaseNetdUnsolicitedEventListener to frameworks/libs/net am: ee661dfb59 am: 8c250ac624 am: 5970ac8892
Original change: https://android-review.googlesource.com/c/platform/packages/modules/Connectivity/+/1517960

MUST ONLY BE SUBMITTED BY AUTOMERGER

Change-Id: I4883d85dcef3dcb9c56abdd4ab75f99cad2778f8
2021-01-11 02:52:05 +00:00
lucaslin
ee661dfb59 Move BaseNetdUnsolicitedEventListener to frameworks/libs/net
Move BaseNetdUnsolicitedEventListener to frameworks/libs/net and
create a new library - netd-client for using.
Also remove netd_aidl_interface-unstable-java since netd-client
links to the stable one.

Bug: 174837473
Test: Manual test and check the log.
Change-Id: Id65142b8c13a6cccbfe387d4ab757967497546e6
2021-01-08 01:55:53 +00:00
Treehugger Robot
ee3f33ac41 Merge "Also update connected clients for local only tethering" am: 561f38a799 am: 1b1c4adab5 am: 8e1e05ec1e
Original change: https://android-review.googlesource.com/c/platform/packages/modules/Connectivity/+/1531561

MUST ONLY BE SUBMITTED BY AUTOMERGER

Change-Id: I1bb18875a8c458c0ac112c13a277d4e563e3d8ac
2020-12-23 12:49:59 +00:00
Treehugger Robot
561f38a799 Merge "Also update connected clients for local only tethering" 2020-12-23 11:36:34 +00:00
markchien
f50f05ebcb Also update connected clients for local only tethering
mForwardedDownstreams is the set of downstreams who wanted upstream.
In other word, it don't contains localOnly tethering(e.g. local only
hotspot, wifi p2p tethering). Changing the list from mForwardedDownstreams
to mNotifyList make both tethered and localOnly tethering have connected
clients callback.

Bug: 172290164
Test: atest TetheringTests
Change-Id: I58fdb28efc616b00d63a1c237ea93aee4d8f2dcd
2020-12-22 23:23:09 +08:00
Chalard Jean
d2df5729f6 Move module utils to the module package.
Test: FrameworksWifiTest FrameworksNetTest
Merged-In: Ib04bebb061dc64d6d685116b596fb3179d5b959a
Change-Id: I9118da3898d864c7bf0ed7bc9d94b94343c4a084
2020-12-16 11:44:34 +09:00
paulhu
b2c0185da4 Fix tethering doesn't turn off issue am: 862c8a1ea0 am: cd34630e6b am: 1b62a26c1a am: c7884164c6
Original change: https://android-review.googlesource.com/c/platform/packages/modules/Connectivity/+/1484019

Change-Id: I896b23cf0e7d622d6814940656cd72a17f591a22
2020-11-10 16:40:27 +00:00
paulhu
862c8a1ea0 Fix tethering doesn't turn off issue
When user restriction turns on, all tethering functions should
be disabled. But tethering functions still work after
restrication is on. Because tethering request would be removed
from mActiveTetheringRequests after starting tethering that
will result in Tethering#isTetheringActive() always returns
false. Thus, update the design to check tethered interface to
ensure that any of tethering function is working.

Bug: 169596583
Test: atest TetheringTests
Test: Manually test that tethering function would be disabled
      and notification would show to user after restriction
      was on.
Change-Id: Icb9649a5ecdec2d029ac763b5b9b80042ad50eb9
2020-11-10 16:47:52 +08:00
Chalard Jean
7f65953491 Move module utils to the module package.
Test: FrameworksWifiTest FrameworksNetTest
Change-Id: Ib04bebb061dc64d6d685116b596fb3179d5b959a
2020-11-05 06:39:05 +00:00
Mark Chien
d1c31a2c11 Merge "Add the flag and default enable selectAllPrefixRange" am: 02fe8ac161 am: d11a25eb56 am: a1468b6591 am: c43f48d6cb
Original change: https://android-review.googlesource.com/c/platform/frameworks/base/+/1461742

Change-Id: I232a3a52daeed69230215f3be135881415dbdb5c
2020-10-19 13:33:30 +00:00
markchien
4607c5535b Add the flag and default enable selectAllPrefixRange
Also add MtsTetheringTest which only run if tethering mainline
module is installed.

Bug: 166057846
Bug: 170265597
Test: atest TetheringTests
Change-Id: I434dda81eb5fab700d873a8ff3429b4222f0c7e6
2020-10-19 16:50:29 +08:00
Mark Chien
3910988c18 Merge "Fix miss tracking downstream problem in PrivateAddressCoordinator" am: 8565b0244a am: a5b9e4a1b4 am: 7c1badf9b0 am: 0854becd64
Original change: https://android-review.googlesource.com/c/platform/frameworks/base/+/1459887

Change-Id: I9262e13e3f3919c2b36bb8765a09c4abf2e31aa4
2020-10-15 14:20:00 +00:00
markchien
634f0a8ec1 Fix miss tracking downstream problem in PrivateAddressCoordinator
The downstream do not be tracked if PrivateAddressCoordinator just
return cached address. Then, PrivateAddressCoordinator would not notify
that downstream if conflict happen.

Also remove the null check in getDownstreamPrefix because:
- An IpServer is only added to mDownstreams by requestDownstreamAddress.
- That method will only add the IpServer to mDownstreams if it has an
IPv4 address.
- As soon as that method returns, the IpServer sets mIpv4Address to the
address that was returned.
- When an IpServer is torn down, mIpv4Address is set to null after
releaseDownstream is called.

So it should never be possible for this to return null.

Bug: 168169687
Test: atest CtsTetheringTest
      atest TetheringTests
Change-Id: Ide5206b013acdc499344e1c839a830c5b245af41
2020-10-15 16:21:12 +08:00
Mark Chien
2833425097 Merge "Allow tethering pick prefix from all of private address range" am: 8c9a2645d8 am: 4388f63021 am: e2a905116c am: 6f601a0374
Original change: https://android-review.googlesource.com/c/platform/frameworks/base/+/1436852

Change-Id: I849f7d336fd4bc7d39d8b268620bcb25dbd26667
2020-10-13 14:58:33 +00:00
markchien
d9acdccbd3 Allow tethering pick prefix from all of private address range
Currently tethering only pick prefix from 192.168.0.0/16. There is no
aviable tethering address if the upstream address is 192.168.x.y/16.
This change allow tethering to pick prefix from any private address
rnages. Now it still pick from 192.168.0.0/16 only to avoid behavior
change. Will have follow up commit to change the configuration.

Bug: 166057846
Bug: 170265597
Test: atest TetheringTests
      atest CtsTetheringTest

Change-Id: Ib6304eb8b4788e9196d0af48e72f00a6bda73a5f
2020-10-13 16:45:09 +08:00
Mark Chien
7dc14ccfdf Merge "Make the IP subnet persistent till reboot" am: f052e40f79 am: 18b5773041 am: 4b52fef91d am: acbdee3924
Original change: https://android-review.googlesource.com/c/platform/frameworks/base/+/1432958

Change-Id: I8b109e26a043478b9058dbb058b65778259c496d
2020-10-07 11:12:10 +00:00
markchien
a2ffad84c7 Make the IP subnet persistent till reboot
Make the IP subnet persistent if it do not conflict with upstream.
It allow client to reuse its IP that usually reduce DHCP procedure.

Bug: 168169687
Test: atest TetheringTests
Change-Id: Iddc5304730dce7b11c5d124b7eddce057d752bbd
2020-10-06 20:25:19 +08:00
Treehugger Robot
9faf2c5b2a Merge "Make PrivateAddressCoordinator ignore vpn network" am: 0b1e7d8956 am: 3f85eccfaa am: a089de8bab am: f572842106 am: c92ae41b1e
Original change: https://android-review.googlesource.com/c/platform/frameworks/base/+/1413610

Change-Id: Ifb6e7159d4c45136414a9e1a9d0c8f05abdc1ecb
2020-10-05 05:57:55 +00:00
Treehugger Robot
0b1e7d8956 Merge "Make PrivateAddressCoordinator ignore vpn network" 2020-10-05 04:10:48 +00:00
TreeHugger Robot
0e2d8592ad Merge "Revert "Move module utils to the module package."" 2020-10-02 03:54:37 +00:00
Hridya Valsaraju
3d57544fb2 Revert "Move module utils to the module package."
Revert "Move util classes to their destination package"

Revert "Move PacketReader and FdEventReader"

Revert "Move static utils to a module package"

Revert "Move static utils to a module package"

Revert submission 12698912-move_packetreader

Reason for revert: Broke presubmit on git_master, b/169861635
Reverted Changes:
If5d1e4a58:Move module utils to the module package.
I44ffaad3d:Move PacketReader and FdEventReader
I93e9cfd96:Move util classes to their destination package
Ia84d64130:Move static utils to a module package
Iaac2810c7:Move static utils to a module package

Change-Id: Ibbe59075cd7bc4c38e0707ea6ae3b3703b40986f
2020-10-01 20:12:46 +00:00
Lorenzo Colitti
74f96cb61a Merge changes I53ca4b98,I1757fdeb am: 3a463815e2 am: f593d0eaa2 am: e8bbfd667b am: de14ddcb35 am: befc49ea1d
Original change: https://android-review.googlesource.com/c/platform/frameworks/base/+/1440767

Change-Id: I6960604ea5fe5958906d9f62d0c5816d222a5b25
2020-09-30 14:33:32 +00:00
Tyler Wear
7f70074abc tethering: offload: Netlink Req NfGen
Add the netfilter generic message header to
the netlink req. This is needed so the kernel
won't ignore the request for invalid params.

Bug: 149109043
Test: ConntrackSocketTest
Change-Id: I1757fdeb11a0cac5821021a22323cbd74fe22bdc
2020-09-30 15:07:47 +09:00
Chalard Jean
66a2d7bac8 Merge "Move module utils to the module package." 2020-09-28 13:22:23 +00:00
Treehugger Robot
03eba4d9b4 Merge "Fix TetheredClient callback fail in InProcessTethering" am: 18ee591257 am: 9fe2d11c12 am: 0c9a370cfc am: 513d2f34c5 am: f48195c89d
Original change: https://android-review.googlesource.com/c/platform/frameworks/base/+/1435273

Change-Id: If84a7df3a08ebda9687bbd0481fddf0c87e33b58
2020-09-28 10:50:33 +00:00