package {
    // See: http://go/android-license-faq
    // A large-scale-change added 'default_applicable_licenses' to import
    // all of the 'license_kinds' from "system_netd_license"
    // to get the below license kinds:
    //   SPDX-license-identifier-Apache-2.0
    default_applicable_licenses: ["system_netd_license"],
}

aidl_interface {
    // This interface is for OEM calls to netd and vice versa that do not exist in AOSP.
    // Those calls cannot be part of INetd.aidl and INetdUnsolicitedEventListener.aidl
    // because those interfaces are versioned.
    // These interfaces must never be versioned or OEMs will not be able to change them.
    name: "oemnetd_aidl_interface",
    unstable: true,
    local_include_dir: "binder",
    srcs: [
        "binder/com/android/internal/net/IOemNetd.aidl",
        "binder/com/android/internal/net/IOemNetdUnsolicitedEventListener.aidl",
    ],
}

// These are used in netd_integration_test
// TODO: fold these into a cc_library_static after converting netd/server to Android.bp
filegroup {
    name: "netd_integration_test_shared",
    srcs: [
        "NetdConstants.cpp",
        "InterfaceController.cpp",
        "NetlinkCommands.cpp",
        "NetlinkListener.cpp",
        "OffloadUtils.cpp",
        "SockDiag.cpp",
        "XfrmController.cpp",
        "TrafficController.cpp",
    ],
}

// Modules common to both netd and netd_unit_test
cc_library_static {
    name: "libnetd_server",
    defaults: ["netd_defaults"],
    include_dirs: [
        "system/netd/include",
        "system/netd/server/binder",
    ],
    srcs: [
        "BandwidthController.cpp",
        "ClatdController.cpp",
        "Controllers.cpp",
        "NetdConstants.cpp",
        "FirewallController.cpp",
        "IdletimerController.cpp",
        "InterfaceController.cpp",
        "IptablesRestoreController.cpp",
        "NFLogListener.cpp",
        "NetlinkCommands.cpp",
        "NetlinkListener.cpp",
        "NetlinkManager.cpp",
        "OffloadUtils.cpp",
        "RouteController.cpp",
        "SockDiag.cpp",
        "StrictController.cpp",
        "TcpSocketMonitor.cpp",
        "TetherController.cpp",
        "TrafficController.cpp",
        "UidRanges.cpp",
        "WakeupController.cpp",
        "XfrmController.cpp",
    ],
    shared_libs: [
        "libbpf_android",
        "libbase",
        "libbinder",
        "libnetdbpf",
        "libnetutils",
        "libnetdutils",
        "libpcap",
        "libqtaguid",
        "libssl",
        "libsysutils",
        "netd_aidl_interface-V7-cpp",
        "netd_event_listener_interface-V1-cpp",
    ],
    aidl: {
        export_aidl_headers: true,
        local_include_dirs: ["binder"],
    },
}

cc_binary {
    name: "netd",
    defaults: ["netd_defaults"],
    include_dirs: [
        "external/mdnsresponder/mDNSShared",
        "system/netd/include",
    ],
    init_rc: ["netd.rc"],
    required: [
        "bpfloader",
        "clatd.o",
        "netd.o",
    ],
    shared_libs: [
        "android.system.net.netd@1.0",
        "android.system.net.netd@1.1",
        "libbase",
        "libbinder",
        "libbpf_android",
        "libcutils",
        "libdl",
        "libhidlbase",
        "liblog",
        "libmdnssd",
        "libnetd_resolv",
        "libnetdbpf",
        "libnetdutils",
        "libnetutils",
        "libpcap",
        "libprocessgroup",
        "libqtaguid",
        "libselinux",
        "libsysutils",
        "libutils",
        "netd_aidl_interface-V7-cpp",
        "netd_event_listener_interface-V1-cpp",
        "oemnetd_aidl_interface-cpp",
    ],
    static_libs: [
        "libnetd_server",
    ],
    srcs: [
        "DummyNetwork.cpp",
        "EventReporter.cpp",
        "FwmarkServer.cpp",
        "LocalNetwork.cpp",
        "MDnsSdListener.cpp",
        "NetdCommand.cpp",
        "NetdHwService.cpp",
        "NetdNativeService.cpp",
        "NetlinkHandler.cpp",
        "Network.cpp",
        "NetworkController.cpp",
        "OemNetdListener.cpp",
        "PhysicalNetwork.cpp",
        "PppController.cpp",
        "Process.cpp",
        "UnreachableNetwork.cpp",
        "VirtualNetwork.cpp",
        "main.cpp",
        "oem_iptables_hook.cpp",
    ],
    sanitize: {
        cfi: true,
    },
}

cc_binary {
    name: "ndc",
    defaults: ["netd_defaults"],
    include_dirs: [
        "system/netd/include",
    ],
    header_libs: [
        "libnetd_client_headers",
    ],
    shared_libs: [
        "libbase",
        "libnetdutils",
        "libnetutils",
        "libcutils",
        "liblog",
        "libutils",
        "libbinder",
        "dnsresolver_aidl_interface-V7-cpp",
        "netd_aidl_interface-V6-cpp",
    ],
    srcs: [
        "ndc.cpp",
        "UidRanges.cpp",
        "NdcDispatcher.cpp",
    ],
    sanitize: {
        cfi: true,
        memtag_heap: true,
    },
}

cc_test {
    name: "netd_unit_test",
    defaults: ["netd_defaults"],
    test_suites: ["device-tests"],
    require_root: true,
    include_dirs: [
        "system/netd/include",
        "system/netd/server/binder",
        "system/netd/tests",
    ],
    srcs: [
        "BandwidthControllerTest.cpp",
        "ClatdControllerTest.cpp",
        "ControllersTest.cpp",
        "FirewallControllerTest.cpp",
        "IdletimerControllerTest.cpp",
        "InterfaceControllerTest.cpp",
        "IptablesBaseTest.cpp",
        "IptablesRestoreControllerTest.cpp",
        "NFLogListenerTest.cpp",
        "OffloadUtilsTest.cpp",
        "RouteControllerTest.cpp",
        "SockDiagTest.cpp",
        "StrictControllerTest.cpp",
        "TetherControllerTest.cpp",
        "TrafficControllerTest.cpp",
        "XfrmControllerTest.cpp",
        "WakeupControllerTest.cpp",
    ],
    static_libs: [
        "libgmock",
        "libnetd_server",
        "libnetd_test_tun_interface",
        "libqtaguid",
        "netd_aidl_interface-V7-cpp",
        "netd_event_listener_interface-V1-cpp",
    ],
    shared_libs: [
        "libbase",
        "libbinder",
        "libbpf_android",
        "libcrypto",
        "libcutils",
        "liblog",
        "libnetdbpf",
        "libnetdutils",
        "libnetutils",
        "libsysutils",
        "libutils",
    ],
    // tidy: false,  // cuts test build time by almost 1 minute
}
