summaryrefslogtreecommitdiff
path: root/server/RouteController.cpp
diff options
context:
space:
mode:
authorLorenzo Colitti <lorenzo@google.com>2021-01-06 11:44:02 +0900
committerLorenzo Colitti <lorenzo@google.com>2021-01-06 12:35:24 +0900
commit3810c9733cf66b7471275d4a438a481ee50ac522 (patch)
treeff2dfa34e9809b475522a74d88a9927879547c1a /server/RouteController.cpp
parent3676547e32eafff01e1ab069d89af19b1ff96a67 (diff)
Add clsact filters to local_network interfaces as well.
This is required for TC-BPF offload of upstream traffic. Bug: 176857251 Test: new tests in netd_integration_test Test: enabled wifi-to-wifi tethering Test: adb shell tc qdisc show 2>&1 | grep clsact Change-Id: I091d183682170d1ddf19ab9f04aa88413769de79
Diffstat (limited to 'server/RouteController.cpp')
-rw-r--r--server/RouteController.cpp5
1 files changed, 4 insertions, 1 deletions
diff --git a/server/RouteController.cpp b/server/RouteController.cpp
index 134bbcae..ec143dc3 100644
--- a/server/RouteController.cpp
+++ b/server/RouteController.cpp
@@ -146,6 +146,8 @@ static const char* familyName(uint8_t family) {
}
}
+static void maybeModifyQdiscClsact(const char* interface, bool add);
+
// Caller must hold sInterfaceToTableLock.
uint32_t RouteController::getRouteTableForInterfaceLocked(const char* interface) {
// If we already know the routing table for this interface name, use it.
@@ -745,6 +747,7 @@ int RouteController::configureDummyNetwork() {
if (int ret = modifyIncomingPacketMark(netId, interface, PERMISSION_NONE, add)) {
return ret;
}
+ maybeModifyQdiscClsact(interface, add);
return modifyOutputInterfaceRules(interface, ROUTE_TABLE_LOCAL_NETWORK, PERMISSION_NONE,
INVALID_UID, INVALID_UID, add);
}
@@ -918,7 +921,7 @@ int RouteController::modifyRoute(uint16_t action, uint16_t flags, const char* in
return 0;
}
-void maybeModifyQdiscClsact(const char* interface, bool add) {
+static void maybeModifyQdiscClsact(const char* interface, bool add) {
if (!bpf::isBpfSupported()) return;
// The clsact attaching of v4- tun interface is triggered by ClatdController::maybeStartBpf