blob: 9c89041a5a01e9f27435ec2b2433f1f63c86a003 [file] [log] [blame]
Bob Badour4114d1a2021-02-12 15:38:42 -08001package {
2 // See: http://go/android-license-faq
3 // A large-scale-change added 'default_applicable_licenses' to import
4 // all of the 'license_kinds' from "system_netd_license"
5 // to get the below license kinds:
6 // SPDX-license-identifier-Apache-2.0
7 default_applicable_licenses: ["system_netd_license"],
8}
9
Jeongik Cha62dde9d2021-02-04 19:57:47 +090010java_library {
11 name: "netd_aidl_interface-lateststable-java",
12 sdk_version: "system_current",
Jeongik Chaa29bdc22021-02-15 19:57:26 +090013 min_sdk_version: "29",
Jeongik Cha62dde9d2021-02-04 19:57:47 +090014 static_libs: [
Ken Chen95c9d402021-06-24 23:35:19 +080015 "netd_aidl_interface-V7-java",
Jeongik Cha62dde9d2021-02-04 19:57:47 +090016 ],
17 apex_available: [
18 "//apex_available:platform", // used from services.net
19 "com.android.bluetooth.updatable",
20 "com.android.tethering",
21 "com.android.wifi",
22 ],
23}
24
Jeongik Chaa1585472021-03-05 21:17:18 +090025cc_library_static {
26 name: "netd_event_listener_interface-lateststable-ndk_platform",
27 whole_static_libs: [
28 "netd_event_listener_interface-V1-ndk_platform",
29 ],
30 apex_available: [
31 "com.android.resolv",
32 ],
33 min_sdk_version: "29",
34}
35
36cc_library_static {
37 name: "netd_aidl_interface-lateststable-ndk_platform",
38 whole_static_libs: [
Ken Chen95c9d402021-06-24 23:35:19 +080039 "netd_aidl_interface-V7-ndk_platform",
Jeongik Chaa1585472021-03-05 21:17:18 +090040 ],
41 apex_available: [
42 "com.android.resolv",
43 ],
44 min_sdk_version: "29",
45}
46
47cc_library_static {
48 name: "netd_aidl_interface-lateststable-cpp",
49 whole_static_libs: [
Ken Chen95c9d402021-06-24 23:35:19 +080050 "netd_aidl_interface-V7-cpp",
Jeongik Chaa1585472021-03-05 21:17:18 +090051 ],
52}
53
Luke Huangcaebcbb2018-09-27 20:37:14 +080054aidl_interface {
55 name: "netd_aidl_interface",
56 local_include_dir: "binder",
57 srcs: [
Luke Huang03074eb2018-11-23 17:03:03 +080058 "binder/android/net/INetd.aidl",
Luke Huang528af602018-08-29 19:06:05 +080059 // AIDL interface that callers can implement to receive networking events from netd.
60 "binder/android/net/INetdUnsolicitedEventListener.aidl",
Luke Huang03074eb2018-11-23 17:03:03 +080061 "binder/android/net/InterfaceConfigurationParcel.aidl",
Chiachang Wang00fc62f2019-12-04 20:38:26 +080062 "binder/android/net/MarkMaskParcel.aidl",
Ken Chenab5f3472021-04-04 11:28:06 +080063 "binder/android/net/NativeNetworkConfig.aidl",
64 "binder/android/net/NativeNetworkType.aidl",
65 "binder/android/net/NativeVpnType.aidl",
Tyler Wearfa94a272019-12-05 15:01:48 -080066 "binder/android/net/RouteInfoParcel.aidl",
Chiachang Wang08cb2112019-12-10 09:53:24 +080067 "binder/android/net/TetherConfigParcel.aidl",
Lorenzo Colitti182cd3c2020-04-04 00:44:01 +090068 "binder/android/net/TetherOffloadRuleParcel.aidl",
Luke Huangcaebcbb2018-09-27 20:37:14 +080069 "binder/android/net/TetherStatsParcel.aidl",
Luke Huang94658ac2018-10-18 19:35:12 +090070 "binder/android/net/UidRangeParcel.aidl",
Ken Chend9aa98a2021-05-23 14:56:43 +080071 // Add new AIDL classes in android.net.netd.aidl to consist with other network modules.
72 "binder/android/net/netd/aidl/**/*.aidl",
Luke Huangcaebcbb2018-09-27 20:37:14 +080073 ],
Luke Huangf7782042018-08-08 13:13:04 +080074 backend: {
Xiao Ma33d562a2018-12-16 16:27:38 +090075 cpp: {
76 gen_log: true,
77 },
Luke Huanga06ea9c2020-04-01 01:17:42 +080078 java: {
Lorenzo Colittic3bc5842020-04-28 16:52:21 +090079 // TODO: Remove apex_available and restrict visibility to only mainline modules that are
80 // either outside the system server or use jarjar to rename the generated AIDL classes.
Luke Huanga06ea9c2020-04-01 01:17:42 +080081 apex_available: [
Jiyong Park973164a2020-04-08 14:12:27 +090082 "//apex_available:platform", // used from services.net
Luke Huanga06ea9c2020-04-01 01:17:42 +080083 "com.android.bluetooth.updatable",
Hungming Chen47b21a62020-05-29 19:54:57 +080084 "com.android.tethering",
Luke Huang67649312020-04-01 01:17:42 +080085 "com.android.wifi",
Luke Huanga06ea9c2020-04-01 01:17:42 +080086 ],
Jooyung Han6e30c3b2020-06-16 01:53:16 +090087 // this is part of updatable modules(NetworkStack) which targets 29(Q)
88 min_sdk_version: "29",
Luke Huanga06ea9c2020-04-01 01:17:42 +080089 },
Luke Huangfb124d62021-03-30 08:46:30 +080090 ndk: {
91 apex_available: [
92 "//apex_available:platform",
93 ],
94 // This is necessary for the DnsResovler tests to run in Android Q.
95 // Soong would recognize this value and produce the Q compatible aidl library.
96 min_sdk_version: "29",
97 },
Luke Huangf7782042018-08-08 13:13:04 +080098 },
Luke Huang00681282019-04-26 12:09:05 +080099 versions: [
100 "1",
101 "2",
Luke Huangaa980992020-04-07 16:31:03 +0800102 "3",
Lorenzo Colitti565a43d2020-06-09 12:47:27 +0900103 "4",
lucaslin00229252020-12-28 13:23:17 +0800104 "5",
Ken Chen25b61572021-05-11 12:50:07 +0800105 "6",
Ken Chen95c9d402021-06-24 23:35:19 +0800106 "7",
Luke Huang00681282019-04-26 12:09:05 +0800107 ],
Luke Huangcaebcbb2018-09-27 20:37:14 +0800108}
109
Jeongik Cha62dde9d2021-02-04 19:57:47 +0900110java_library {
111 name: "netd_event_listener_interface-lateststable-java",
112 sdk_version: "system_current",
Lorenzo Colitti7194f1f2021-02-25 22:18:17 +0900113 min_sdk_version: "29",
Jeongik Cha62dde9d2021-02-04 19:57:47 +0900114 static_libs: [
115 "netd_event_listener_interface-V1-java",
116 ],
117 apex_available: [
118 "//apex_available:platform",
119 "com.android.bluetooth.updatable",
120 "com.android.wifi",
121 "com.android.tethering",
122 ],
123}
124
Luke Huang0e5e69d2019-03-06 15:42:38 +0800125aidl_interface {
Lorenzo Colittic3bc5842020-04-28 16:52:21 +0900126 name: "netd_event_listener_interface",
127 local_include_dir: "binder",
128 srcs: [
129 "binder/android/net/metrics/INetdEventListener.aidl",
130 ],
131 versions: ["1"],
132 backend: {
133 ndk: {
134 apex_available: [
135 "//apex_available:platform",
136 "com.android.resolv",
137 ],
Jooyung Han3c222552020-04-16 18:48:35 +0900138 min_sdk_version: "29",
Lorenzo Colittic3bc5842020-04-28 16:52:21 +0900139 },
Jiyong Park1da1d3a2020-09-21 21:38:53 +0900140 java: {
141 apex_available: [
142 "//apex_available:platform",
143 "com.android.bluetooth.updatable",
144 "com.android.wifi",
lucaslinafb858b2020-12-28 13:24:59 +0800145 "com.android.tethering",
Jiyong Park1da1d3a2020-09-21 21:38:53 +0900146 ],
lucaslinafb858b2020-12-28 13:24:59 +0800147 min_sdk_version: "29",
Jiyong Park1da1d3a2020-09-21 21:38:53 +0900148 },
Lorenzo Colittic3bc5842020-04-28 16:52:21 +0900149 },
150}
151
152aidl_interface {
Luke Huang2ff8b342019-04-30 15:33:33 +0800153 // This interface is for OEM calls to netd and vice versa that do not exist in AOSP.
154 // Those calls cannot be part of INetd.aidl and INetdUnsolicitedEventListener.aidl
155 // because those interfaces are versioned.
156 // These interfaces must never be versioned or OEMs will not be able to change them.
Luke Huang0e5e69d2019-03-06 15:42:38 +0800157 name: "oemnetd_aidl_interface",
Jiyong Parkcfdd3382020-04-13 15:09:35 +0900158 unstable: true,
Luke Huang0e5e69d2019-03-06 15:42:38 +0800159 local_include_dir: "binder",
160 srcs: [
161 "binder/com/android/internal/net/IOemNetd.aidl",
Luke Huang2ff8b342019-04-30 15:33:33 +0800162 "binder/com/android/internal/net/IOemNetdUnsolicitedEventListener.aidl",
Luke Huang0e5e69d2019-03-06 15:42:38 +0800163 ],
164}
165
Lorenzo Colittic3bc5842020-04-28 16:52:21 +0900166// These are used in netd_integration_test
167// TODO: fold these into a cc_library_static after converting netd/server to Android.bp
168filegroup {
169 name: "netd_integration_test_shared",
170 srcs: [
171 "NetdConstants.cpp",
172 "InterfaceController.cpp",
173 "NetlinkCommands.cpp",
174 "NetlinkListener.cpp",
Maciej Żenczykowskie5bc2432020-06-01 01:24:22 -0700175 "OffloadUtils.cpp",
Lorenzo Colittic3bc5842020-04-28 16:52:21 +0900176 "SockDiag.cpp",
177 "XfrmController.cpp",
178 "TrafficController.cpp",
179 ],
180}
181
Bernie Innocenti98951792018-06-26 17:13:44 +0900182// Modules common to both netd and netd_unit_test
183cc_library_static {
184 name: "libnetd_server",
185 defaults: ["netd_defaults"],
186 include_dirs: [
Bernie Innocenti98951792018-06-26 17:13:44 +0900187 "system/netd/include",
188 "system/netd/server/binder",
189 ],
190 srcs: [
191 "BandwidthController.cpp",
Lorenzo Colitti7ef8c0f2019-01-11 22:34:58 +0900192 "ClatdController.cpp",
Bernie Innocenti98951792018-06-26 17:13:44 +0900193 "Controllers.cpp",
194 "NetdConstants.cpp",
195 "FirewallController.cpp",
196 "IdletimerController.cpp",
197 "InterfaceController.cpp",
198 "IptablesRestoreController.cpp",
199 "NFLogListener.cpp",
200 "NetlinkCommands.cpp",
201 "NetlinkListener.cpp",
202 "NetlinkManager.cpp",
Maciej Żenczykowskie5bc2432020-06-01 01:24:22 -0700203 "OffloadUtils.cpp",
Bernie Innocenti98951792018-06-26 17:13:44 +0900204 "RouteController.cpp",
205 "SockDiag.cpp",
206 "StrictController.cpp",
207 "TcpSocketMonitor.cpp",
208 "TetherController.cpp",
209 "TrafficController.cpp",
210 "UidRanges.cpp",
211 "WakeupController.cpp",
212 "XfrmController.cpp",
Bernie Innocenti98951792018-06-26 17:13:44 +0900213 ],
214 shared_libs: [
Chenbo Fenga54aaf52018-11-07 17:51:51 -0800215 "libbpf_android",
Bernie Innocenti98951792018-06-26 17:13:44 +0900216 "libbase",
217 "libbinder",
Chenbo Fengd6104d12018-10-16 20:29:29 -0700218 "libnetdbpf",
Bernie Innocenti98951792018-06-26 17:13:44 +0900219 "libnetutils",
220 "libnetdutils",
221 "libpcap",
222 "libqtaguid",
223 "libssl",
Elliott Hughesab683522020-08-20 15:15:45 -0700224 "libsysutils",
Ken Chend9aa98a2021-05-23 14:56:43 +0800225 "netd_aidl_interface-V7-cpp",
Jeongik Cha5f72c8f2021-01-26 22:35:13 +0900226 "netd_event_listener_interface-V1-cpp",
Bernie Innocenti98951792018-06-26 17:13:44 +0900227 ],
228 aidl: {
229 export_aidl_headers: true,
230 local_include_dirs: ["binder"],
231 },
232}
233
234cc_binary {
235 name: "netd",
236 defaults: ["netd_defaults"],
237 include_dirs: [
Bernie Innocenti98951792018-06-26 17:13:44 +0900238 "external/mdnsresponder/mDNSShared",
239 "system/netd/include",
240 ],
241 init_rc: ["netd.rc"],
Maciej Żenczykowskif428d6e2020-02-19 10:26:35 -0800242 required: [
243 "bpfloader",
244 "clatd.o",
245 "netd.o",
Maciej Żenczykowskif428d6e2020-02-19 10:26:35 -0800246 ],
Bernie Innocenti98951792018-06-26 17:13:44 +0900247 shared_libs: [
248 "android.system.net.netd@1.0",
249 "android.system.net.netd@1.1",
Bernie Innocentif89b3512018-08-30 07:34:37 +0900250 "libbase",
Bernie Innocenti98951792018-06-26 17:13:44 +0900251 "libbinder",
Chenbo Fenga54aaf52018-11-07 17:51:51 -0800252 "libbpf_android",
Bernie Innocenti98951792018-06-26 17:13:44 +0900253 "libcutils",
254 "libdl",
255 "libhidlbase",
Bernie Innocenti98951792018-06-26 17:13:44 +0900256 "liblog",
Bernie Innocenti98951792018-06-26 17:13:44 +0900257 "libmdnssd",
Jooyung Han3e64aa12019-11-27 15:36:29 +0900258 "libnetd_resolv",
Chenbo Fengd6104d12018-10-16 20:29:29 -0700259 "libnetdbpf",
Bernie Innocenti98951792018-06-26 17:13:44 +0900260 "libnetdutils",
Bernie Innocentif89b3512018-08-30 07:34:37 +0900261 "libnetutils",
Bernie Innocenti98951792018-06-26 17:13:44 +0900262 "libpcap",
Suren Baghdasaryane072a3c2019-01-16 14:36:07 -0800263 "libprocessgroup",
Bernie Innocenti98951792018-06-26 17:13:44 +0900264 "libqtaguid",
265 "libselinux",
Bernie Innocenti98951792018-06-26 17:13:44 +0900266 "libsysutils",
Bernie Innocenti98951792018-06-26 17:13:44 +0900267 "libutils",
Ken Chend9aa98a2021-05-23 14:56:43 +0800268 "netd_aidl_interface-V7-cpp",
Jeongik Cha5f72c8f2021-01-26 22:35:13 +0900269 "netd_event_listener_interface-V1-cpp",
Luke Huang0e5e69d2019-03-06 15:42:38 +0800270 "oemnetd_aidl_interface-cpp",
Bernie Innocenti98951792018-06-26 17:13:44 +0900271 ],
272 static_libs: [
273 "libnetd_server",
Bernie Innocenti98951792018-06-26 17:13:44 +0900274 ],
275 srcs: [
Bernie Innocenti98951792018-06-26 17:13:44 +0900276 "DummyNetwork.cpp",
Bernie Innocenti98951792018-06-26 17:13:44 +0900277 "EventReporter.cpp",
278 "FwmarkServer.cpp",
279 "LocalNetwork.cpp",
280 "MDnsSdListener.cpp",
281 "NetdCommand.cpp",
282 "NetdHwService.cpp",
283 "NetdNativeService.cpp",
284 "NetlinkHandler.cpp",
285 "Network.cpp",
286 "NetworkController.cpp",
Luke Huang0e5e69d2019-03-06 15:42:38 +0800287 "OemNetdListener.cpp",
Bernie Innocenti98951792018-06-26 17:13:44 +0900288 "PhysicalNetwork.cpp",
289 "PppController.cpp",
290 "Process.cpp",
Ken Chen4e8ef9b2021-03-17 01:57:19 +0800291 "UnreachableNetwork.cpp",
Bernie Innocenti98951792018-06-26 17:13:44 +0900292 "VirtualNetwork.cpp",
293 "main.cpp",
294 "oem_iptables_hook.cpp",
295 ],
Ken Chen2e413c32020-01-13 11:59:53 +0800296 sanitize: {
297 cfi: true,
Ken Chen2e413c32020-01-13 11:59:53 +0800298 },
Bernie Innocenti98951792018-06-26 17:13:44 +0900299}
300
301cc_binary {
302 name: "ndc",
303 defaults: ["netd_defaults"],
Luke Huangcfd04b22019-03-18 15:53:21 +0800304 include_dirs: [
305 "system/netd/include",
306 ],
307 header_libs: [
308 "libnetd_client_headers",
309 ],
310 shared_libs: [
311 "libbase",
312 "libnetdutils",
313 "libnetutils",
314 "libcutils",
315 "liblog",
316 "libutils",
317 "libbinder",
Jeongik Cha5f72c8f2021-01-26 22:35:13 +0900318 "dnsresolver_aidl_interface-V7-cpp",
Jiyong Parkdbdd8f02021-06-04 12:13:29 +0900319 "netd_aidl_interface-V6-cpp",
Luke Huangcfd04b22019-03-18 15:53:21 +0800320 ],
321 srcs: [
322 "ndc.cpp",
323 "UidRanges.cpp",
324 "NdcDispatcher.cpp",
325 ],
Ken Chen2e413c32020-01-13 11:59:53 +0800326 sanitize: {
327 cfi: true,
Evgenii Stepanov9e5d65c2021-04-02 15:46:24 -0700328 memtag_heap: true,
Ken Chen2e413c32020-01-13 11:59:53 +0800329 },
Bernie Innocenti98951792018-06-26 17:13:44 +0900330}
331
332cc_test {
333 name: "netd_unit_test",
334 defaults: ["netd_defaults"],
335 test_suites: ["device-tests"],
Bernie Innocenti83a67ca2019-06-19 16:28:05 +0900336 require_root: true,
Bernie Innocenti98951792018-06-26 17:13:44 +0900337 include_dirs: [
338 "system/netd/include",
339 "system/netd/server/binder",
340 "system/netd/tests",
Bernie Innocenti98951792018-06-26 17:13:44 +0900341 ],
342 srcs: [
343 "BandwidthControllerTest.cpp",
Lorenzo Colitti7ef8c0f2019-01-11 22:34:58 +0900344 "ClatdControllerTest.cpp",
Bernie Innocenti98951792018-06-26 17:13:44 +0900345 "ControllersTest.cpp",
346 "FirewallControllerTest.cpp",
347 "IdletimerControllerTest.cpp",
348 "InterfaceControllerTest.cpp",
349 "IptablesBaseTest.cpp",
350 "IptablesRestoreControllerTest.cpp",
351 "NFLogListenerTest.cpp",
Maciej Żenczykowskieec72082020-02-04 23:29:41 -0800352 "OffloadUtilsTest.cpp",
Bernie Innocenti98951792018-06-26 17:13:44 +0900353 "RouteControllerTest.cpp",
354 "SockDiagTest.cpp",
355 "StrictControllerTest.cpp",
356 "TetherControllerTest.cpp",
357 "TrafficControllerTest.cpp",
358 "XfrmControllerTest.cpp",
359 "WakeupControllerTest.cpp",
360 ],
361 static_libs: [
362 "libgmock",
363 "libnetd_server",
364 "libnetd_test_tun_interface",
Lorenzo Colitti3f52fae2019-06-27 18:46:22 +0900365 "libqtaguid",
Ken Chend9aa98a2021-05-23 14:56:43 +0800366 "netd_aidl_interface-V7-cpp",
Jeongik Cha5f72c8f2021-01-26 22:35:13 +0900367 "netd_event_listener_interface-V1-cpp",
Bernie Innocenti98951792018-06-26 17:13:44 +0900368 ],
369 shared_libs: [
370 "libbase",
371 "libbinder",
Chenbo Fenga54aaf52018-11-07 17:51:51 -0800372 "libbpf_android",
Bernie Innocenti98951792018-06-26 17:13:44 +0900373 "libcrypto",
374 "libcutils",
375 "liblog",
Chenbo Fengd6104d12018-10-16 20:29:29 -0700376 "libnetdbpf",
Bernie Innocenti98951792018-06-26 17:13:44 +0900377 "libnetdutils",
378 "libnetutils",
Bernie Innocenti98951792018-06-26 17:13:44 +0900379 "libsysutils",
380 "libutils",
381 ],
Lorenzo Colitti10819c52020-09-17 21:32:44 +0900382 // tidy: false, // cuts test build time by almost 1 minute
Bernie Innocenti98951792018-06-26 17:13:44 +0900383}