//
// 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_applicable_licenses: ["Android-Apache-2.0"],
}

cc_library_headers {
    name: "bpf_connectivity_headers",
    vendor_available: false,
    host_supported: false,
    header_libs: ["bpf_headers"],
    export_header_lib_headers: ["bpf_headers"],
    export_include_dirs: ["."],
    cflags: [
        "-Wall",
        "-Werror",
    ],
    sdk_version: "30",
    min_sdk_version: "30",
    apex_available: [
        "//apex_available:platform",
        "com.android.tethering",
        ],
    visibility: [
        // TODO: remove it when NetworkStatsService is moved into the mainline module and no more
        // calls to JNI in libservices.core.
        "//frameworks/base/services/core/jni",
        "//packages/modules/Connectivity/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",
        "//packages/modules/Connectivity/service-t/native/libs/libnetworkstats",
        "//packages/modules/Connectivity/tests/unit/jni",
        "//system/netd/server",
        "//system/netd/tests",
    ],
}

//
// bpf kernel programs
//
bpf {
    name: "block.o",
    srcs: ["block.c"],
    cflags: [
        "-Wall",
        "-Werror",
    ],
    sub_dir: "net_shared",
}

bpf {
    name: "dscp_policy.o",
    srcs: ["dscp_policy.c"],
    cflags: [
        "-Wall",
        "-Werror",
    ],
    sub_dir: "net_shared",
}

bpf {
    name: "offload.o",
    srcs: ["offload.c"],
    cflags: [
        "-Wall",
        "-Werror",
    ],
}

bpf {
    name: "test.o",
    srcs: ["test.c"],
    cflags: [
        "-Wall",
        "-Werror",
    ],
}

bpf {
    name: "clatd.o",
    srcs: ["clatd.c"],
    cflags: [
        "-Wall",
        "-Werror",
    ],
    include_dirs: [
        "frameworks/libs/net/common/netd/libnetdutils/include",
    ],
    sub_dir: "net_shared",
}

bpf {
    name: "netd.o",
    srcs: ["netd.c"],
    cflags: [
        "-Wall",
        "-Werror",
    ],
    include_dirs: [
        "frameworks/libs/net/common/netd/libnetdutils/include",
    ],
    sub_dir: "net_shared",
}
