Commit Graph

8175 Commits

Author SHA1 Message Date
Maciej Żenczykowski
258660ccff offload - ignore ethernet packets not destined for us am: 18552e8fb3
Original change: https://android-review.googlesource.com/c/platform/packages/modules/Connectivity/+/1559389

MUST ONLY BE SUBMITTED BY AUTOMERGER

Change-Id: If3a038d69bb84c3244258c47c39b214b1b100586
2021-01-25 19:28:13 +00:00
Maciej Żenczykowski
6b48c492c2 rename do_forward to do_forward6 am: bf8ec1a21d
Original change: https://android-review.googlesource.com/c/platform/packages/modules/Connectivity/+/1559388

MUST ONLY BE SUBMITTED BY AUTOMERGER

Change-Id: Ia1e1a0219585199f62dff3f69b08fcdc1ed2f55d
2021-01-25 19:25:01 +00:00
Maciej Żenczykowski
18552e8fb3 offload - ignore ethernet packets not destined for us
Test: atest, TreeHugger
Signed-off-by: Maciej Żenczykowski <maze@google.com>
Change-Id: Icabd1db48a1189425a941384d534c0f18bf20827
2021-01-24 19:59:21 -08:00
Maciej Żenczykowski
bf8ec1a21d rename do_forward to do_forward6
Test: atest, TreeHugger
Signed-off-by: Maciej Żenczykowski <maze@google.com>
Change-Id: I649dc490b1883a1e97f748370a77c956f1315e2e
2021-01-24 19:59:16 -08:00
Nucca Chen
2b82a04b56 Merge changes I73f30477,I84db13ac am: 2f1c2b25cd
Original change: https://android-review.googlesource.com/c/platform/packages/modules/Connectivity/+/1534829

MUST ONLY BE SUBMITTED BY AUTOMERGER

Change-Id: If3df71008b8801047660b9ccc15158fb76211b5c
2021-01-23 13:57:32 +00:00
Nucca Chen
2f1c2b25cd Merge changes I73f30477,I84db13ac
* changes:
  [NFCT.TETHER.8] Prepare the upstream information for IPv4 offload rule
  [NFCT.TETHER.7] Prepare the downstream information for IPv4 offload rule
2021-01-23 13:40:30 +00:00
Maciej Żenczykowski
d4fb2bcf13 bpf tether offload - do not offload TCP SYN/FIN/RST packets am: fc4f6540be
Original change: https://android-review.googlesource.com/c/platform/packages/modules/Connectivity/+/1558667

MUST ONLY BE SUBMITTED BY AUTOMERGER

Change-Id: I5d5fef2e673d96a465a8d8c12a973cf8193089f4
2021-01-23 08:52:06 +00:00
Maciej Żenczykowski
fc4f6540be bpf tether offload - do not offload TCP SYN/FIN/RST packets
We want connection establishment/shutdown to flow through
the kernel code path so connection tracking state is at least
somewhat correct.

Test: atest, TreeHugger
Signed-off-by: Maciej Żenczykowski <maze@google.com>
Change-Id: Iee97baa65750188f3436937b16c9b320f0495a5a
2021-01-23 07:11:07 +00:00
Roland Levillain
564a92f6c4 Merge "Added aidl for qos callback" am: 86654be2d8
Original change: https://android-review.googlesource.com/c/platform/packages/modules/Connectivity/+/1487838

MUST ONLY BE SUBMITTED BY AUTOMERGER

Change-Id: I4c6fcd093580e90bc17b6582797de162fa06f73a
2021-01-22 14:56:33 +00:00
Roland Levillain
86654be2d8 Merge "Added aidl for qos callback" 2021-01-22 14:19:58 +00:00
Daniel Bright
c16bfcc7f7 Added aidl for qos callback
Bug: 155176305
Change-Id: I62958d041a8f544dbd98d5434e97ce89f843c5cb
2021-01-22 14:03:47 +00:00
Nucca Chen
3efbe8414f Merge "[NFCT.TETHER.1] Add conntrack monitor to BpfCoordinator" am: 168a96643d
Original change: https://android-review.googlesource.com/c/platform/packages/modules/Connectivity/+/1488522

MUST ONLY BE SUBMITTED BY AUTOMERGER

Change-Id: I838f921dfd8140971af5b2308d9f12e9d4a1d1eb
2021-01-22 12:00:24 +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
21b466f290 adjust to changes in map location am: 30a2d8232b
Original change: https://android-review.googlesource.com/c/platform/packages/modules/Connectivity/+/1557274

MUST ONLY BE SUBMITTED BY AUTOMERGER

Change-Id: I5babd8539138e289fe49471b3dcba952dd4f9b7a
2021-01-22 05:18:16 +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
ffc65b4880 add placeholder ebpf programs for XDP tethering am: b199742d73
Original change: https://android-review.googlesource.com/c/platform/packages/modules/Connectivity/+/1553913

MUST ONLY BE SUBMITTED BY AUTOMERGER

Change-Id: I5b3c03ba44b9fdeee259cda7e567d569395b8277
2021-01-21 11:46:42 +00:00
Maciej Żenczykowski
f67811878a add placeholder ipv4 ebpf tethering offload programs am: 088fe1983b
Original change: https://android-review.googlesource.com/c/platform/packages/modules/Connectivity/+/1553912

MUST ONLY BE SUBMITTED BY AUTOMERGER

Change-Id: Ia261b07b7bbf180b312b539cb7cf4b127d9b4b43
2021-01-21 11:46:39 +00:00
Maciej Żenczykowski
b199742d73 add placeholder ebpf programs for XDP tethering
Test: atest, TreeHugger, the programs load
Signed-off-by: Maciej Żenczykowski <maze@google.com>
Change-Id: Idcacf0502719336c1b6a959fe6b782f2bce9d6b5
2021-01-21 05:12:35 +00:00
Maciej Żenczykowski
088fe1983b add placeholder ipv4 ebpf tethering offload programs
Additionally better document tether stats/limit keys/value.

Test: atest, TreeHugger, the programs load
Signed-off-by: Maciej Żenczykowski <maze@google.com>
Change-Id: I1e1832fc4f5a6704e00ea99ca377988c52a82eb1
2021-01-21 05:12:21 +00:00
Maciej Żenczykowski
18414d85d0 Merge changes from topic "v6_tether" am: 73dc23c4ea
Original change: https://android-review.googlesource.com/c/platform/packages/modules/Connectivity/+/1554638

MUST ONLY BE SUBMITTED BY AUTOMERGER

Change-Id: I33fa64e3241b3c99e0f98d3580ee3df61c2b0810
2021-01-21 01:48:21 +00:00
Maciej Żenczykowski
73dc23c4ea Merge changes from topic "v6_tether"
* changes:
  switch bpf programs to group network_stack
  Add tethering programs for upstream.
2021-01-21 00:50:47 +00:00
Maciej Żenczykowski
5b00fbd618 switch bpf programs to group network_stack
Test: atest, TreeHugger, the programs load
Signed-off-by: Maciej Żenczykowski <maze@google.com>
Change-Id: I3ab4383978acb2681a0fd5aee2700d12c62c2769
2021-01-20 18:09:32 +00:00
Maciej Żenczykowski
bca0c85822 Add tethering programs for upstream.
Test: atest, TreeHugger, the programs load
Signed-off-by: Maciej Żenczykowski <maze@google.com>
Change-Id: I26bc60c1066ed7317bda48ec3fa701c36e0b46dd
2021-01-20 18:05:52 +00:00
Maciej Żenczykowski
009cd35124 refactor: continued am: a0e2c0445d
Original change: https://android-review.googlesource.com/c/platform/packages/modules/Connectivity/+/1553320

MUST ONLY BE SUBMITTED BY AUTOMERGER

Change-Id: I35f19f1b378271907788b41631e864886bdf4e8a
2021-01-20 15:42:54 +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
14583198a0 refactor: TetherIngress becomes TetherDownstream6 (and friends) am: 770e0a7a8f
Original change: https://android-review.googlesource.com/c/platform/packages/modules/Connectivity/+/1554238

MUST ONLY BE SUBMITTED BY AUTOMERGER

Change-Id: I70ec2e2e05ce4b2d10c62409fae2f98776c2d75e
2021-01-20 11:25:20 +00:00
Maciej Żenczykowski
36b406bbfc Merge "BpfMapTest - adjust paths for bpfloader change" am: 3bf519f279
Original change: https://android-review.googlesource.com/c/platform/packages/modules/Connectivity/+/1554235

MUST ONLY BE SUBMITTED BY AUTOMERGER

Change-Id: I28dc39e671e01194c49f19056ad13027386afd07
2021-01-20 07:28:46 +00:00
Treehugger Robot
7c0b1b6149 Merge "add a test xdp program that drops all IPv4/UDP packets" am: d4bcf54678
Original change: https://android-review.googlesource.com/c/platform/packages/modules/Connectivity/+/1554236

MUST ONLY BE SUBMITTED BY AUTOMERGER

Change-Id: I06212ffe6ba8c8e95fe880d2ba48d42109836ac1
2021-01-20 07:28:35 +00:00
Maciej Żenczykowski
6258dc0071 switch from SEC() to DEFINE_BPF_PROG() am: 6b7829f2c1
Original change: https://android-review.googlesource.com/c/platform/packages/modules/Connectivity/+/1554237

MUST ONLY BE SUBMITTED BY AUTOMERGER

Change-Id: Id9c69c152617c4e9cdc96b7ce0bb21a5832f6aa9
2021-01-20 07:28:30 +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
Maciej Żenczykowski
3bf519f279 Merge "BpfMapTest - adjust paths for bpfloader change" 2021-01-20 07:12:35 +00:00
Treehugger Robot
d4bcf54678 Merge "add a test xdp program that drops all IPv4/UDP packets" 2021-01-20 06:42:51 +00:00
Maciej Żenczykowski
8c7cd343a4 add a test xdp program that drops all IPv4/UDP packets
Test: builds, boots, program present
Signed-off-by: Maciej Żenczykowski <maze@google.com>
Change-Id: Id5be48ec172366296929875856a3d17ecc87e84b
2021-01-20 05:20:05 +00:00
Maciej Żenczykowski
6b7829f2c1 switch from SEC() to DEFINE_BPF_PROG()
I keep on failing to find this using grep because it
doesn't match how all the other programs are defined,
so change it for consistency.

Test: builds, atest, TreeHugger
Signed-off-by: Maciej Żenczykowski<maze@google.com>
Change-Id: Ib61b375bef84d2b489080866b2411c84880e4ef2
2021-01-20 05:18:50 +00:00
Maciej Żenczykowski
7928fde758 BpfMapTest - adjust paths for bpfloader change
that puts tethering mainline module maps and programs
under /sys/fs/bpf/tethering

Test: builds, boots, atest, TreeHugger
Signed-off-by: Maciej Żenczykowski <maze@google.com>
Change-Id: If57e737168cefe9fe0fe180114c1d61918d20d21
2021-01-20 05:13:08 +00:00
Maciej Żenczykowski
379f93bccc add maze to OWNERS am: b213e84170
Original change: https://android-review.googlesource.com/c/platform/packages/modules/Connectivity/+/1554765

MUST ONLY BE SUBMITTED BY AUTOMERGER

Change-Id: I26ff477217616a56db5747a00d6fa71b85e91b1b
2021-01-20 04:51:15 +00:00
Lorenzo Colitti
68a007c616 Merge changes Id87b88f6,I67dfba75 am: fab97c22b2
Original change: https://android-review.googlesource.com/c/platform/packages/modules/Connectivity/+/1538841

MUST ONLY BE SUBMITTED BY AUTOMERGER

Change-Id: I607c967a38d2400369d42ca5703edcacff61e351
2021-01-20 03:38:15 +00:00
Maciej Żenczykowski
b213e84170 add maze to OWNERS
since there's now bpf code in tethering portion of the codebase.

Test: N/A
Signed-off-by: Maciej Żenczykowski <maze@google.com>
Change-Id: I679b7ba6d5fff49bad4fb2fe7d251875e4cb94b5
2021-01-19 18:31:52 -08:00
Lorenzo Colitti
fab97c22b2 Merge changes Id87b88f6,I67dfba75
* changes:
  [NFCT.TETHER.6] Migrate tetherOffloadGetAndClearStats from netd to mainline
  [NFCT.TETHER.5] Migrate tetherOffloadSetInterfaceQuota from netd to mainline
2021-01-20 02:19:14 +00:00
Nucca Chen
d3e7c33b2e Merge changes I969d6182,Ie73f7b4d am: 2668d4a0e2
Original change: https://android-review.googlesource.com/c/platform/packages/modules/Connectivity/+/1537801

MUST ONLY BE SUBMITTED BY AUTOMERGER

Change-Id: Ie425332418fd3cff8e58de9f553703ba67d87641
2021-01-19 11:38:32 +00:00
Maciej Żenczykowski
e15c4e0281 Merge "move bpf test map into a separate file" am: ab44322f9c
Original change: https://android-review.googlesource.com/c/platform/packages/modules/Connectivity/+/1554234

MUST ONLY BE SUBMITTED BY AUTOMERGER

Change-Id: Ic714fbc7a1f61b29d4967b85415c00c2700df51b
2021-01-19 11:38:24 +00:00
Junyu Lai
ca80fa4a1e Merge "Revert "[VCN06.1] Add CTS for request background network"" am: f555f4bca7
Original change: https://android-review.googlesource.com/c/platform/packages/modules/Connectivity/+/1553865

MUST ONLY BE SUBMITTED BY AUTOMERGER

Change-Id: Iacfe73e36cc6fe4068291af7391612ae725606a1
2021-01-19 11:34:18 +00:00
Nucca Chen
2668d4a0e2 Merge changes I969d6182,Ie73f7b4d
* changes:
  [NFCT.TETHER.4] Migrate tetherOffloadRuleRemove from netd to mainline
  [NFCT.TETHER.3] Migrate tetherOffloadGetStats from netd to mainline
2021-01-19 11:29:22 +00:00
Maciej Żenczykowski
ab44322f9c Merge "move bpf test map into a separate file" 2021-01-19 11:25:13 +00:00
Junyu Lai
f555f4bca7 Merge "Revert "[VCN06.1] Add CTS for request background network"" 2021-01-19 10:24:47 +00:00
Junyu Lai
3660b71c11 Revert "[VCN06.1] Add CTS for request background network"
Revert "[VCN06] Support request background network"

Revert submission 1545847-vcn06

Reason for revert: b/177876289 presubmit failure
Reverted Changes:
I8042ce197:[VCN06.1] Add CTS for request background network
If9aaa87b7:[VCN06] Support request background network

Change-Id: Icd01643cae86c4448eb7105ef0f238b1f10ebc19
2021-01-19 09:06:00 +00:00
Maciej Żenczykowski
e9810ffef1 move bpf test map into a separate file
This allows for better separation of test vs production code:
we will add more test maps and programs here later.

Test: builds
Signed-off-by: Maciej Żenczykowski <maze@google.com>
Change-Id: I7b22e3e148ebf43fdf43dc68d0dea354f7627688
2021-01-18 18:36:00 -08:00