Merge changes I5ffa2faf,Id5f14d6e am: b6ac308b50

Original change: https://android-review.googlesource.com/c/platform/packages/modules/Connectivity/+/2099718

Change-Id: I93c6253739948e20da6581c694a68339ead618f8
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
This commit is contained in:
Treehugger Robot 2022-05-17 22:54:22 +00:00 • committed by Automerger Merge Worker
commit ba33b34c61
10 changed files with 68 additions and 52 deletions

View file

@ -123,5 +123,5 @@ bpf {
include_dirs: [
"frameworks/libs/net/common/netd/libnetdutils/include",
],
sub_dir: "net_shared",
sub_dir: "netd_shared",
}

View file

@ -19,6 +19,9 @@
#include <netinet/in.h>
#include <stdint.h>
// The resulting .o needs to load on the Android T bpfloader v0.12+
#define BPFLOADER_MIN_VER 12u
#include "bpf_helpers.h"
#define ALLOW 1

View file

@ -98,29 +98,29 @@ static const int IFACE_STATS_MAP_SIZE = 1000;
static const int CONFIGURATION_MAP_SIZE = 2;
static const int UID_OWNER_MAP_SIZE = 2000;
#define BPF_PATH "/sys/fs/bpf/net_shared/"
#define BPF_NETD_PATH "/sys/fs/bpf/netd_shared/"
#define BPF_EGRESS_PROG_PATH BPF_PATH "prog_netd_cgroupskb_egress_stats"
#define BPF_INGRESS_PROG_PATH BPF_PATH "prog_netd_cgroupskb_ingress_stats"
#define XT_BPF_INGRESS_PROG_PATH BPF_PATH "prog_netd_skfilter_ingress_xtbpf"
#define XT_BPF_EGRESS_PROG_PATH BPF_PATH "prog_netd_skfilter_egress_xtbpf"
#define XT_BPF_ALLOWLIST_PROG_PATH BPF_PATH "prog_netd_skfilter_allowlist_xtbpf"
#define XT_BPF_DENYLIST_PROG_PATH BPF_PATH "prog_netd_skfilter_denylist_xtbpf"
#define CGROUP_SOCKET_PROG_PATH BPF_PATH "prog_netd_cgroupsock_inet_create"
#define BPF_EGRESS_PROG_PATH BPF_NETD_PATH "prog_netd_cgroupskb_egress_stats"
#define BPF_INGRESS_PROG_PATH BPF_NETD_PATH "prog_netd_cgroupskb_ingress_stats"
#define XT_BPF_INGRESS_PROG_PATH BPF_NETD_PATH "prog_netd_skfilter_ingress_xtbpf"
#define XT_BPF_EGRESS_PROG_PATH BPF_NETD_PATH "prog_netd_skfilter_egress_xtbpf"
#define XT_BPF_ALLOWLIST_PROG_PATH BPF_NETD_PATH "prog_netd_skfilter_allowlist_xtbpf"
#define XT_BPF_DENYLIST_PROG_PATH BPF_NETD_PATH "prog_netd_skfilter_denylist_xtbpf"
#define CGROUP_SOCKET_PROG_PATH BPF_NETD_PATH "prog_netd_cgroupsock_inet_create"
#define TC_BPF_INGRESS_ACCOUNT_PROG_NAME "prog_netd_schedact_ingress_account"
#define TC_BPF_INGRESS_ACCOUNT_PROG_PATH BPF_PATH TC_BPF_INGRESS_ACCOUNT_PROG_NAME
#define TC_BPF_INGRESS_ACCOUNT_PROG_PATH BPF_NETD_PATH TC_BPF_INGRESS_ACCOUNT_PROG_NAME
#define COOKIE_TAG_MAP_PATH BPF_PATH "map_netd_cookie_tag_map"
#define UID_COUNTERSET_MAP_PATH BPF_PATH "map_netd_uid_counterset_map"
#define APP_UID_STATS_MAP_PATH BPF_PATH "map_netd_app_uid_stats_map"
#define STATS_MAP_A_PATH BPF_PATH "map_netd_stats_map_A"
#define STATS_MAP_B_PATH BPF_PATH "map_netd_stats_map_B"
#define IFACE_INDEX_NAME_MAP_PATH BPF_PATH "map_netd_iface_index_name_map"
#define IFACE_STATS_MAP_PATH BPF_PATH "map_netd_iface_stats_map"
#define CONFIGURATION_MAP_PATH BPF_PATH "map_netd_configuration_map"
#define UID_OWNER_MAP_PATH BPF_PATH "map_netd_uid_owner_map"
#define UID_PERMISSION_MAP_PATH BPF_PATH "map_netd_uid_permission_map"
#define COOKIE_TAG_MAP_PATH BPF_NETD_PATH "map_netd_cookie_tag_map"
#define UID_COUNTERSET_MAP_PATH BPF_NETD_PATH "map_netd_uid_counterset_map"
#define APP_UID_STATS_MAP_PATH BPF_NETD_PATH "map_netd_app_uid_stats_map"
#define STATS_MAP_A_PATH BPF_NETD_PATH "map_netd_stats_map_A"
#define STATS_MAP_B_PATH BPF_NETD_PATH "map_netd_stats_map_B"
#define IFACE_INDEX_NAME_MAP_PATH BPF_NETD_PATH "map_netd_iface_index_name_map"
#define IFACE_STATS_MAP_PATH BPF_NETD_PATH "map_netd_iface_stats_map"
#define CONFIGURATION_MAP_PATH BPF_NETD_PATH "map_netd_configuration_map"
#define UID_OWNER_MAP_PATH BPF_NETD_PATH "map_netd_uid_owner_map"
#define UID_PERMISSION_MAP_PATH BPF_NETD_PATH "map_netd_uid_permission_map"
enum UidOwnerMatchType {
NO_MATCH = 0,
@ -163,13 +163,15 @@ STRUCT_SIZE(UidOwnerValue, 2 * 4); // 8
#define UID_RULES_CONFIGURATION_KEY 1
#define CURRENT_STATS_MAP_CONFIGURATION_KEY 2
#define BPF_CLATD_PATH "/sys/fs/bpf/net_shared/"
#define CLAT_INGRESS6_PROG_RAWIP_NAME "prog_clatd_schedcls_ingress6_clat_rawip"
#define CLAT_INGRESS6_PROG_ETHER_NAME "prog_clatd_schedcls_ingress6_clat_ether"
#define CLAT_INGRESS6_PROG_RAWIP_PATH BPF_PATH CLAT_INGRESS6_PROG_RAWIP_NAME
#define CLAT_INGRESS6_PROG_ETHER_PATH BPF_PATH CLAT_INGRESS6_PROG_ETHER_NAME
#define CLAT_INGRESS6_PROG_RAWIP_PATH BPF_CLATD_PATH CLAT_INGRESS6_PROG_RAWIP_NAME
#define CLAT_INGRESS6_PROG_ETHER_PATH BPF_CLATD_PATH CLAT_INGRESS6_PROG_ETHER_NAME
#define CLAT_INGRESS6_MAP_PATH BPF_PATH "map_clatd_clat_ingress6_map"
#define CLAT_INGRESS6_MAP_PATH BPF_CLATD_PATH "map_clatd_clat_ingress6_map"
typedef struct {
uint32_t iif; // The input interface index
@ -187,10 +189,10 @@ STRUCT_SIZE(ClatIngress6Value, 4 + 4); // 8
#define CLAT_EGRESS4_PROG_RAWIP_NAME "prog_clatd_schedcls_egress4_clat_rawip"
#define CLAT_EGRESS4_PROG_ETHER_NAME "prog_clatd_schedcls_egress4_clat_ether"
#define CLAT_EGRESS4_PROG_RAWIP_PATH BPF_PATH CLAT_EGRESS4_PROG_RAWIP_NAME
#define CLAT_EGRESS4_PROG_ETHER_PATH BPF_PATH CLAT_EGRESS4_PROG_ETHER_NAME
#define CLAT_EGRESS4_PROG_RAWIP_PATH BPF_CLATD_PATH CLAT_EGRESS4_PROG_RAWIP_NAME
#define CLAT_EGRESS4_PROG_ETHER_PATH BPF_CLATD_PATH CLAT_EGRESS4_PROG_ETHER_NAME
#define CLAT_EGRESS4_MAP_PATH BPF_PATH "map_clatd_clat_egress4_map"
#define CLAT_EGRESS4_MAP_PATH BPF_CLATD_PATH "map_clatd_clat_egress4_map"
typedef struct {
uint32_t iif; // The input interface index

View file

@ -30,6 +30,9 @@
#define __kernel_udphdr udphdr
#include <linux/udp.h>
// The resulting .o needs to load on the Android T bpfloader v0.12+
#define BPFLOADER_MIN_VER 12u
#include "bpf_helpers.h"
#include "bpf_net_helpers.h"
#include "bpf_shared.h"

View file

@ -27,6 +27,9 @@
#include <netinet/udp.h>
#include <string.h>
// The resulting .o needs to load on the Android T bpfloader v0.12+
#define BPFLOADER_MIN_VER 12u
#include "bpf_helpers.h"
#include "dscp_policy.h"

View file

@ -14,6 +14,9 @@
* limitations under the License.
*/
// The resulting .o needs to load on the Android T Beta 3 bpfloader v0.13+
#define BPFLOADER_MIN_VER 13u
#include <bpf_helpers.h>
#include <linux/bpf.h>
#include <linux/if.h>

View file

@ -38,7 +38,7 @@ public class BpfInterfaceMapUpdater {
private static final String TAG = BpfInterfaceMapUpdater.class.getSimpleName();
// This is current path but may be changed soon.
private static final String IFACE_INDEX_NAME_MAP_PATH =
"/sys/fs/bpf/net_shared/map_netd_iface_index_name_map";
"/sys/fs/bpf/netd_shared/map_netd_iface_index_name_map";
private final IBpfMap<U32, InterfaceMapValue> mBpfMap;
private final INetd mNetd;
private final Handler mHandler;

View file

@ -222,15 +222,15 @@ public class NetworkStatsService extends INetworkStatsService.Stub {
"netstats_combine_subtype_enabled";
private static final String UID_COUNTERSET_MAP_PATH =
"/sys/fs/bpf/net_shared/map_netd_uid_counterset_map";
"/sys/fs/bpf/netd_shared/map_netd_uid_counterset_map";
private static final String COOKIE_TAG_MAP_PATH =
"/sys/fs/bpf/net_shared/map_netd_cookie_tag_map";
"/sys/fs/bpf/netd_shared/map_netd_cookie_tag_map";
private static final String APP_UID_STATS_MAP_PATH =
"/sys/fs/bpf/net_shared/map_netd_app_uid_stats_map";
"/sys/fs/bpf/netd_shared/map_netd_app_uid_stats_map";
private static final String STATS_MAP_A_PATH =
"/sys/fs/bpf/net_shared/map_netd_stats_map_A";
"/sys/fs/bpf/netd_shared/map_netd_stats_map_A";
private static final String STATS_MAP_B_PATH =
"/sys/fs/bpf/net_shared/map_netd_stats_map_B";
"/sys/fs/bpf/netd_shared/map_netd_stats_map_B";
private final Context mContext;
private final NetworkStatsFactory mStatsFactory;

View file

@ -748,7 +748,7 @@ public class ConnectivityService extends IConnectivityManager.Stub
* The BPF program attached to the tc-police hook to account for to-be-dropped traffic.
*/
private static final String TC_POLICE_BPF_PROG_PATH =
"/sys/fs/bpf/net_shared/prog_netd_schedact_ingress_account";
"/sys/fs/bpf/netd_shared/prog_netd_schedact_ingress_account";
private static String eventName(int what) {
return sMagicDecoderRing.get(what, Integer.toString(what));

View file

@ -42,7 +42,9 @@ using android::modules::sdklevel::IsAtLeastT;
#define PLATFORM "/sys/fs/bpf/"
#define TETHERING "/sys/fs/bpf/tethering/"
#define PRIVATE "/sys/fs/bpf/net_private/"
#define SHARED "/sys/fs/bpf/net_shared/"
#define NETD "/sys/fs/bpf/netd_shared/"
class BpfExistenceTest : public ::testing::Test {
};
@ -95,16 +97,16 @@ static const set<string> INTRODUCED_T = {
SHARED "map_dscp_policy_ipv6_socket_to_policies_map_A",
SHARED "map_dscp_policy_ipv6_socket_to_policies_map_B",
SHARED "map_dscp_policy_switch_comp_map",
SHARED "map_netd_app_uid_stats_map",
SHARED "map_netd_configuration_map",
SHARED "map_netd_cookie_tag_map",
SHARED "map_netd_iface_index_name_map",
SHARED "map_netd_iface_stats_map",
SHARED "map_netd_stats_map_A",
SHARED "map_netd_stats_map_B",
SHARED "map_netd_uid_counterset_map",
SHARED "map_netd_uid_owner_map",
SHARED "map_netd_uid_permission_map",
NETD "map_netd_app_uid_stats_map",
NETD "map_netd_configuration_map",
NETD "map_netd_cookie_tag_map",
NETD "map_netd_iface_index_name_map",
NETD "map_netd_iface_stats_map",
NETD "map_netd_stats_map_A",
NETD "map_netd_stats_map_B",
NETD "map_netd_uid_counterset_map",
NETD "map_netd_uid_owner_map",
NETD "map_netd_uid_permission_map",
SHARED "prog_block_bind4_block_port",
SHARED "prog_block_bind6_block_port",
SHARED "prog_clatd_schedcls_egress4_clat_ether",
@ -113,14 +115,14 @@ static const set<string> INTRODUCED_T = {
SHARED "prog_clatd_schedcls_ingress6_clat_rawip",
SHARED "prog_dscp_policy_schedcls_set_dscp_ether",
SHARED "prog_dscp_policy_schedcls_set_dscp_raw_ip",
SHARED "prog_netd_cgroupskb_egress_stats",
SHARED "prog_netd_cgroupskb_ingress_stats",
SHARED "prog_netd_cgroupsock_inet_create",
SHARED "prog_netd_schedact_ingress_account",
SHARED "prog_netd_skfilter_allowlist_xtbpf",
SHARED "prog_netd_skfilter_denylist_xtbpf",
SHARED "prog_netd_skfilter_egress_xtbpf",
SHARED "prog_netd_skfilter_ingress_xtbpf",
NETD "prog_netd_cgroupskb_egress_stats",
NETD "prog_netd_cgroupskb_ingress_stats",
NETD "prog_netd_cgroupsock_inet_create",
NETD "prog_netd_schedact_ingress_account",
NETD "prog_netd_skfilter_allowlist_xtbpf",
NETD "prog_netd_skfilter_denylist_xtbpf",
NETD "prog_netd_skfilter_egress_xtbpf",
NETD "prog_netd_skfilter_ingress_xtbpf",
};
static const set<string> REMOVED_T = {