[NFCT.TETHER.15] Attach BPF program in the mainline module
Migrate Maze's BPF program attaching and detaching functions from
system/netd/server/OffloadUtils.{c, h} to tethering module.
Test: atest TetheringCoverageTests
Test case #1:
Enable WiFi hotspot and check tc filters are added or removed on both
wlan1 and rmnet_data#.
$ adb shell tc filter show dev wlan1 ingress
filter protocol ipv6 pref 1 bpf chain 0
filter protocol ipv6 pref 1 bpf chain 0 handle 0x1
prog_offload_schedcls_tether_upstream6_ether:[*fsobj] direct-action
not_in_hw id 2 tag 7cf020cc09a7c982
filter protocol ip pref 2 bpf chain 0
filter protocol ip pref 2 bpf chain 0 handle 0x1
prog_offload_schedcls_tether_upstream4_ether:[*fsobj] direct-action
not_in_hw id 7 tag 2f87d55b636c082c
$ adb shell tc filter show dev rmnet_data2 ingress;
filter protocol ipv6 pref 1 bpf chain 0
filter protocol ipv6 pref 1 bpf chain 0 handle 0x1
prog_offload_schedcls_tether_downstream6_rawip:[*fsobj] direct-action
not_in_hw id 3 tag 8b3885b75bd261de
filter protocol ip pref 2 bpf chain 0
filter protocol ip pref 2 bpf chain 0 handle 0x1
prog_offload_schedcls_tether_downstream4_rawip:[*fsobj] direct-action
not_in_hw id 6 tag b1c9478c91f8df9a
Test case #2:
Enable USB tethering and check tc filters are added or removed on both
rndis0 and rmnet_data#.
Test case #3:
Enable WiFi and USB tethering and check tc filter are added or removed
on rndis0, wlan1 and rmnet_data#.
Change-Id: I3f9a65043271bc8f5bf1b82ae505c471625ca9de
This commit is contained in:
@@ -1291,6 +1291,7 @@ public class IpServer extends StateMachine {
|
||||
// Sometimes interfaces are gone before we get
|
||||
// to remove their rules, which generates errors.
|
||||
// Just do the best we can.
|
||||
mBpfCoordinator.maybeDetachProgram(mIfaceName, upstreamIface);
|
||||
try {
|
||||
mNetd.ipfwdRemoveInterfaceForward(mIfaceName, upstreamIface);
|
||||
} catch (RemoteException | ServiceSpecificException e) {
|
||||
@@ -1334,6 +1335,7 @@ public class IpServer extends StateMachine {
|
||||
mUpstreamIfaceSet = newUpstreamIfaceSet;
|
||||
|
||||
for (String ifname : added) {
|
||||
mBpfCoordinator.maybeAttachProgram(mIfaceName, ifname);
|
||||
try {
|
||||
mNetd.tetherAddForward(mIfaceName, ifname);
|
||||
mNetd.ipfwdAddInterfaceForward(mIfaceName, ifname);
|
||||
|
||||
Reference in New Issue
Block a user