// // Copyright (C) 2020 The Android Open Source Project // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. // You may obtain a copy of the License at // // http://www.apache.org/licenses/LICENSE-2.0 // // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an "AS IS" BASIS, // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. // See the License for the specific language governing permissions and // limitations under the License. // // // struct definitions shared with JNI // package { default_team: "trendy_team_fwk_core_networking", default_applicable_licenses: ["Android-Apache-2.0"], } cc_library_headers { name: "bpf_connectivity_headers", vendor_available: false, host_supported: false, header_libs: [ "bpf_headers", "netd_mainline_headers", ], export_header_lib_headers: [ "bpf_headers", "netd_mainline_headers", ], export_include_dirs: ["."], cflags: [ "-Wall", "-Werror", "-Wextra", ], sdk_version: "30", min_sdk_version: "30", apex_available: [ "//apex_available:platform", "com.android.tethering", ], visibility: [ "//packages/modules/Connectivity/bpf/dns_helper", "//packages/modules/Connectivity/bpf/netd", "//packages/modules/Connectivity/service", "//packages/modules/Connectivity/service/native/libs/libclat", "//packages/modules/Connectivity/Tethering", "//packages/modules/Connectivity/service/native", "//packages/modules/Connectivity/tests/native/connectivity_native_test", "//packages/modules/Connectivity/tests/native/utilities", "//packages/modules/Connectivity/service-t/native/libs/libnetworkstats", "//packages/modules/Connectivity/tests/unit/jni", ], } // // bpf kernel programs // bpf { name: "dscpPolicy.o", srcs: ["dscpPolicy.c"], sub_dir: "net_shared", } // Ships to Android S, the bpfloader of which fails to parse BTF enabled .o's. bpf { name: "offload.o", srcs: ["offload.c"], btf: false, } // This version ships to Android T+ which uses mainline netbpfload. bpf { name: "offload@mainline.o", srcs: ["offload@mainline.c"], cflags: ["-DMAINLINE"], } // Ships to Android S, the bpfloader of which fails to parse BTF enabled .o's. bpf { name: "test.o", srcs: ["test.c"], btf: false, } // This version ships to Android T+ which uses mainline netbpfload. bpf { name: "test@mainline.o", srcs: ["test@mainline.c"], cflags: ["-DMAINLINE"], } bpf { name: "clatd.o", srcs: ["clatd.c"], sub_dir: "net_shared", } bpf { // WARNING: Android T's non-updatable netd depends on 'netd' string for xt_bpf programs it loads name: "netd.o", srcs: ["netd.c"], // WARNING: Android T's non-updatable netd depends on 'netd_shared' string for xt_bpf programs sub_dir: "netd_shared", }