1// AIDL interface between netd and services.core 2aidl_interface { 3 name: "netd_event_listener_interface", 4 local_include_dir: "binder", 5 srcs: [ 6 "binder/android/net/metrics/INetdEventListener.aidl", 7 ], 8 api_dir: "aidl/netdeventlistener", 9 versions: ["1"], 10} 11 12// These are used in netd_integration_test 13// TODO: fold these into a cc_library_static after converting netd/server to Android.bp 14filegroup { 15 name: "netd_integration_test_shared", 16 srcs: [ 17 "NetdConstants.cpp", 18 "InterfaceController.cpp", 19 "NetlinkCommands.cpp", 20 "NetlinkListener.cpp", 21 "XfrmController.cpp", 22 "TrafficController.cpp", 23 ], 24} 25 26aidl_interface { 27 name: "netd_aidl_interface", 28 local_include_dir: "binder", 29 srcs: [ 30 "binder/android/net/INetd.aidl", 31 // AIDL interface that callers can implement to receive networking events from netd. 32 "binder/android/net/INetdUnsolicitedEventListener.aidl", 33 "binder/android/net/InterfaceConfigurationParcel.aidl", 34 "binder/android/net/TetherStatsParcel.aidl", 35 "binder/android/net/UidRangeParcel.aidl", 36 ], 37 api_dir: "aidl/netd", 38 backend: { 39 cpp: { 40 gen_log: true, 41 }, 42 }, 43 versions: [ 44 "1", 45 "2", 46 ], 47} 48 49aidl_interface { 50 // This interface is for OEM calls to netd and vice versa that do not exist in AOSP. 51 // Those calls cannot be part of INetd.aidl and INetdUnsolicitedEventListener.aidl 52 // because those interfaces are versioned. 53 // These interfaces must never be versioned or OEMs will not be able to change them. 54 name: "oemnetd_aidl_interface", 55 local_include_dir: "binder", 56 srcs: [ 57 "binder/com/android/internal/net/IOemNetd.aidl", 58 "binder/com/android/internal/net/IOemNetdUnsolicitedEventListener.aidl", 59 ], 60} 61 62// Modules common to both netd and netd_unit_test 63cc_library_static { 64 name: "libnetd_server", 65 defaults: ["netd_defaults"], 66 include_dirs: [ 67 "system/netd/include", 68 "system/netd/server/binder", 69 ], 70 srcs: [ 71 "BandwidthController.cpp", 72 "ClatdController.cpp", 73 "ClatUtils.cpp", 74 "Controllers.cpp", 75 "NetdConstants.cpp", 76 "FirewallController.cpp", 77 "IdletimerController.cpp", 78 "InterfaceController.cpp", 79 "IptablesRestoreController.cpp", 80 "NFLogListener.cpp", 81 "NetlinkCommands.cpp", 82 "NetlinkListener.cpp", 83 "NetlinkManager.cpp", 84 "RouteController.cpp", 85 "SockDiag.cpp", 86 "StrictController.cpp", 87 "TcpSocketMonitor.cpp", 88 "TetherController.cpp", 89 "TrafficController.cpp", 90 "UidRanges.cpp", 91 "WakeupController.cpp", 92 "XfrmController.cpp", 93 ], 94 shared_libs: [ 95 "libbpf_android", 96 "libbase", 97 "libbinder", 98 "liblogwrap", 99 "libnetdbpf", 100 "libnetutils", 101 "libnetdutils", 102 "libpcap", 103 "libqtaguid", 104 "libssl", 105 "netd_aidl_interface-V2-cpp", 106 "netd_event_listener_interface-V1-cpp", 107 ], 108 header_libs: [ 109 "libnetd_resolv_headers", 110 ], 111 aidl: { 112 export_aidl_headers: true, 113 local_include_dirs: ["binder"], 114 }, 115} 116 117cc_binary { 118 name: "netd", 119 defaults: ["netd_defaults"], 120 include_dirs: [ 121 "external/mdnsresponder/mDNSShared", 122 "system/netd/include", 123 ], 124 init_rc: ["netd.rc"], 125 shared_libs: [ 126 "android.system.net.netd@1.0", 127 "android.system.net.netd@1.1", 128 "libbase", 129 "libbinder", 130 "libbpf_android", 131 "libcutils", 132 "libdl", 133 "libhidlbase", 134 "libhidltransport", 135 "libjsoncpp", 136 "liblog", 137 "liblogwrap", 138 "libmdnssd", 139 "libnetdbpf", 140 "libnetdutils", 141 "libnetutils", 142 "libpcap", 143 "libprocessgroup", 144 "libqtaguid", 145 "libselinux", 146 "libsysutils", 147 "libutils", 148 "netd_aidl_interface-V2-cpp", 149 "netd_event_listener_interface-V1-cpp", 150 "oemnetd_aidl_interface-cpp", 151 ], 152 static_libs: [ 153 "libnetd_server", 154 ], 155 header_libs: [ 156 "libnetd_resolv_headers", 157 ], 158 srcs: [ 159 "DummyNetwork.cpp", 160 "EventReporter.cpp", 161 "FwmarkServer.cpp", 162 "LocalNetwork.cpp", 163 "MDnsSdListener.cpp", 164 "NetdCommand.cpp", 165 "NetdHwService.cpp", 166 "NetdNativeService.cpp", 167 "NetlinkHandler.cpp", 168 "Network.cpp", 169 "NetworkController.cpp", 170 "OemNetdListener.cpp", 171 "PhysicalNetwork.cpp", 172 "PppController.cpp", 173 "Process.cpp", 174 "ResolvStub.cpp", 175 "VirtualNetwork.cpp", 176 "main.cpp", 177 "oem_iptables_hook.cpp", 178 ], 179} 180 181cc_binary { 182 name: "ndc", 183 defaults: ["netd_defaults"], 184 include_dirs: [ 185 "system/netd/include", 186 ], 187 header_libs: [ 188 "libnetd_client_headers", 189 ], 190 shared_libs: [ 191 "libbase", 192 "libnetdutils", 193 "libnetutils", 194 "libcutils", 195 "liblog", 196 "libutils", 197 "libbinder", 198 "dnsresolver_aidl_interface-V2-cpp", 199 "netd_aidl_interface-V2-cpp", 200 ], 201 srcs: [ 202 "ndc.cpp", 203 "UidRanges.cpp", 204 "NdcDispatcher.cpp", 205 ], 206} 207 208cc_test { 209 name: "netd_unit_test", 210 defaults: ["netd_defaults"], 211 test_suites: ["device-tests"], 212 include_dirs: [ 213 "system/netd/include", 214 "system/netd/server/binder", 215 "system/netd/tests", 216 "system/core/logwrapper/include", 217 ], 218 srcs: [ 219 "BandwidthControllerTest.cpp", 220 "ClatdControllerTest.cpp", 221 "ClatUtilsTest.cpp", 222 "ControllersTest.cpp", 223 "FirewallControllerTest.cpp", 224 "IdletimerControllerTest.cpp", 225 "InterfaceControllerTest.cpp", 226 "IptablesBaseTest.cpp", 227 "IptablesRestoreControllerTest.cpp", 228 "NFLogListenerTest.cpp", 229 "RouteControllerTest.cpp", 230 "SockDiagTest.cpp", 231 "StrictControllerTest.cpp", 232 "TetherControllerTest.cpp", 233 "TrafficControllerTest.cpp", 234 "XfrmControllerTest.cpp", 235 "WakeupControllerTest.cpp", 236 ], 237 static_libs: [ 238 "libgmock", 239 "libnetd_server", 240 "libnetd_test_tun_interface", 241 ], 242 shared_libs: [ 243 "libbase", 244 "libbinder", 245 "libbpf_android", 246 "libcrypto", 247 "libcutils", 248 "liblog", 249 "libnetdbpf", 250 "libnetdutils", 251 "libnetutils", 252 "libqtaguid", 253 "libsysutils", 254 "libutils", 255 "netd_aidl_interface-V2-cpp", 256 "netd_event_listener_interface-V1-cpp", 257 ], 258} 259