Lorenzo Colitti
5b1ed508cf
Program the upstream IPv6 map in BpfCoordinator.
...
- Add methods to start and stop IPv6 forwarding upstream
- Populate the upstream IPv6 map when the first rule for any
upstream/downstream pair is created.
- Clear the upstream IPv6 map when the last rule for any
upstream/downstream pair is deleted.
Test: Added coverage to IpServerTest and BpfCoordinatorTest
Change-Id: Ib041081e95f5f449489ab63138de034222ffac8f
2021-01-27 00:52:09 +09:00
Lorenzo Colitti
d69a886235
Rename TetherDownstream6Value to Tether6Value.
...
The two value types are identical so there is no need to have
separate classes for them.
Test: atest TetheringTests
Change-Id: Ia622b082d0a44373d21f51222f5e675e5bde08e0
2021-01-27 00:52:09 +09:00
Maciej Żenczykowski
911a7267f5
merge Tether{Down,Up}stream4{Key,Value} - part 3 - fixups
...
Test: atest, TreeHugger
Signed-off-by: Maciej Żenczykowski <maze@google.com >
Change-Id: Ia7840698e80ded33d8e0b59efe1ca7267254b892
2021-01-25 20:32:10 -08:00
Maciej Żenczykowski
32874eb6bc
merge Tether{Down,Up}stream4{Key,Value} - part 2 - java
...
Generated via:
git grep 'Tether(Down|Up)stream4(Key|Value)' | cut -d: -f1 | sort -u | while read i; do
sed -r -i 's@TetherUpstream4Value@Tether4Value@g' "$i"
sed -r -i 's@TetherDownstream4Value@Tether4Value@g' "$i"
sed -r -i 's@TetherDownstream4Key@Tether4Key@g' "$i"
sed -r -i 's@TetherUpstream4Key@Tether4Key@g' "$i"
done
cd Tethering/src/com/android/networkstack/tethering
git mv TetherUpstream4Key.java Tether4Key.java
git mv TetherUpstream4Value.java Tether4Value.java
git diff TetherDownstream4Key.java Tether4Key.java
git diff TetherDownstream4Value.java Tether4Value.java
git rm TetherDownstream4Key.java
git rm TetherDownstream4Value.java
Fixup resulting 'import' duplication
mcedit Tethering/apishim/31/com/android/networkstack/tethering/apishim/api31/BpfCoordinatorShimImpl.java
mcedit Tethering/apishim/30/com/android/networkstack/tethering/apishim/api30/BpfCoordinatorShimImpl.java
mcedit Tethering/apishim/common/com/android/networkstack/tethering/apishim/common/BpfCoordinatorShim.java
mcedit Tethering/tests/unit/src/android/net/ip/IpServerTest.java
Test: N/A, requires follow up commit
Signed-off-by: Maciej Żenczykowski <maze@google.com >
Change-Id: I1dfc3108ca4bbd0cefc3420bc7e421594b62619c
2021-01-25 20:32:05 -08:00
Hungming Chen
dd833dee31
[NFCT.TETHER.10] Add/delete IPv4 offload BPF rules to/from BPF map
...
Access the IPv4 downstream and upstream BPF map with the built rules.
Test: atest TetheringCoverageTests
Change-Id: I8cd6e49b377c72250988019eea57f93cccd78309
2021-01-25 20:13:47 +08: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
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