blob: c6695cb86bc1aa2fbb5e7b7e72ec2b8165615d84 [file] [log] [blame]
Luke Huangcaebcbb2018-09-27 20:37:14 +08001aidl_interface {
2 name: "netd_aidl_interface",
3 local_include_dir: "binder",
4 srcs: [
Luke Huang03074eb2018-11-23 17:03:03 +08005 "binder/android/net/INetd.aidl",
Luke Huang528af602018-08-29 19:06:05 +08006 // AIDL interface that callers can implement to receive networking events from netd.
7 "binder/android/net/INetdUnsolicitedEventListener.aidl",
Luke Huang03074eb2018-11-23 17:03:03 +08008 "binder/android/net/InterfaceConfigurationParcel.aidl",
Chiachang Wang00fc62f2019-12-04 20:38:26 +08009 "binder/android/net/MarkMaskParcel.aidl",
Tyler Wearfa94a272019-12-05 15:01:48 -080010 "binder/android/net/RouteInfoParcel.aidl",
Chiachang Wang08cb2112019-12-10 09:53:24 +080011 "binder/android/net/TetherConfigParcel.aidl",
Lorenzo Colittif0e051c2020-04-06 09:19:57 +000012 "binder/android/net/TetherOffloadRuleParcel.aidl",
Luke Huangcaebcbb2018-09-27 20:37:14 +080013 "binder/android/net/TetherStatsParcel.aidl",
Luke Huang94658ac2018-10-18 19:35:12 +090014 "binder/android/net/UidRangeParcel.aidl",
Luke Huangcaebcbb2018-09-27 20:37:14 +080015 ],
Luke Huangf7782042018-08-08 13:13:04 +080016 backend: {
Xiao Ma33d562a2018-12-16 16:27:38 +090017 cpp: {
18 gen_log: true,
19 },
Luke Huang67649312020-04-01 01:17:42 +080020 java: {
Lorenzo Colittie90d5c42020-04-30 08:33:38 +000021 // TODO: Remove apex_available and restrict visibility to only mainline modules that are
22 // either outside the system server or use jarjar to rename the generated AIDL classes.
Luke Huang67649312020-04-01 01:17:42 +080023 apex_available: [
Jiyong Park90813ad2020-04-08 14:12:27 +090024 "//apex_available:platform", // used from services.net
Luke Huang67649312020-04-01 01:17:42 +080025 "com.android.bluetooth.updatable",
Hungming Chenc6ec17f2020-05-29 19:54:57 +080026 "com.android.tethering",
Luke Huang67649312020-04-01 01:17:42 +080027 "com.android.wifi",
28 ],
29 },
Luke Huangf7782042018-08-08 13:13:04 +080030 },
Luke Huang00681282019-04-26 12:09:05 +080031 versions: [
32 "1",
33 "2",
Luke Huang29e5fdf2020-04-07 16:15:23 +000034 "3",
Luke Huang00681282019-04-26 12:09:05 +080035 ],
Luke Huangcaebcbb2018-09-27 20:37:14 +080036}
37
Luke Huang0e5e69d2019-03-06 15:42:38 +080038aidl_interface {
Lorenzo Colittie90d5c42020-04-30 08:33:38 +000039 name: "netd_event_listener_interface",
40 local_include_dir: "binder",
41 srcs: [
42 "binder/android/net/metrics/INetdEventListener.aidl",
43 ],
44 versions: ["1"],
45 backend: {
46 ndk: {
47 apex_available: [
48 "//apex_available:platform",
49 "com.android.resolv",
50 ],
Jooyung Han46969792020-04-16 18:48:35 +090051 min_sdk_version: "29",
Lorenzo Colittie90d5c42020-04-30 08:33:38 +000052 },
53 },
54}
55
56aidl_interface {
Luke Huang2ff8b342019-04-30 15:33:33 +080057 // This interface is for OEM calls to netd and vice versa that do not exist in AOSP.
58 // Those calls cannot be part of INetd.aidl and INetdUnsolicitedEventListener.aidl
59 // because those interfaces are versioned.
60 // These interfaces must never be versioned or OEMs will not be able to change them.
Luke Huang0e5e69d2019-03-06 15:42:38 +080061 name: "oemnetd_aidl_interface",
Jiyong Park63917972020-04-13 15:09:35 +090062 unstable: true,
Luke Huang0e5e69d2019-03-06 15:42:38 +080063 local_include_dir: "binder",
64 srcs: [
65 "binder/com/android/internal/net/IOemNetd.aidl",
Luke Huang2ff8b342019-04-30 15:33:33 +080066 "binder/com/android/internal/net/IOemNetdUnsolicitedEventListener.aidl",
Luke Huang0e5e69d2019-03-06 15:42:38 +080067 ],
68}
69
Lorenzo Colittie90d5c42020-04-30 08:33:38 +000070// Convenience build target for the version of the netd stable AIDL interface used by the platform.
71// This exists to ensure that all non-updatable code in the system server uses the same version.
72// Mixing different versions of generated classes results in code non-deterministically(?) using one
73// of the compiled-in versions, and potentially crashing when code compiled against a newer version
74// ends up using a generated class from an older version and calls methods that don't exist.
75// This must be a frozen version on REL builds and can be -unstable on development builds.
76// See http://b/143560726 for an example.
77java_library {
78 name: "netd_aidl_interfaces-platform-java",
79 static_libs: [
80 "netd_aidl_interface-java",
81 "netd_event_listener_interface-java",
82 ],
83 // TODO: remove bluetooth, which doesn't actually use netd at all.
84 apex_available: [
Jiyong Park2c6d7942020-05-04 20:20:54 +090085 "//apex_available:platform", // due to the dependency from services.net
Lorenzo Colittie90d5c42020-04-30 08:33:38 +000086 "com.android.bluetooth.updatable",
87 ],
88 sdk_version: "system_current",
89}
90
91// These are used in netd_integration_test
92// TODO: fold these into a cc_library_static after converting netd/server to Android.bp
93filegroup {
94 name: "netd_integration_test_shared",
95 srcs: [
96 "NetdConstants.cpp",
97 "InterfaceController.cpp",
98 "NetlinkCommands.cpp",
99 "NetlinkListener.cpp",
100 "SockDiag.cpp",
101 "XfrmController.cpp",
102 "TrafficController.cpp",
103 ],
104}
105
Maciej Żenczykowski8d6ed4a2020-05-29 00:41:22 -0700106// For use by netd, netd_integration_test and netd_unit_test
107cc_library_static {
108 name: "libnetd_offloadutils",
109 defaults: ["netd_defaults"],
110 include_dirs: [
111 "system/netd/include",
112 ],
113 srcs: [
114 "OffloadUtils.cpp",
115 ],
116 shared_libs: [
117 "libbpf_android",
118 "libbase",
119 "libnetdbpf",
120 "libnetdutils",
121 ],
122}
123
Bernie Innocenti98951792018-06-26 17:13:44 +0900124// Modules common to both netd and netd_unit_test
125cc_library_static {
126 name: "libnetd_server",
127 defaults: ["netd_defaults"],
128 include_dirs: [
Bernie Innocenti98951792018-06-26 17:13:44 +0900129 "system/netd/include",
130 "system/netd/server/binder",
131 ],
132 srcs: [
133 "BandwidthController.cpp",
Lorenzo Colitti7ef8c0f2019-01-11 22:34:58 +0900134 "ClatdController.cpp",
Bernie Innocenti98951792018-06-26 17:13:44 +0900135 "Controllers.cpp",
136 "NetdConstants.cpp",
137 "FirewallController.cpp",
138 "IdletimerController.cpp",
139 "InterfaceController.cpp",
140 "IptablesRestoreController.cpp",
141 "NFLogListener.cpp",
142 "NetlinkCommands.cpp",
143 "NetlinkListener.cpp",
144 "NetlinkManager.cpp",
145 "RouteController.cpp",
146 "SockDiag.cpp",
147 "StrictController.cpp",
148 "TcpSocketMonitor.cpp",
149 "TetherController.cpp",
150 "TrafficController.cpp",
151 "UidRanges.cpp",
152 "WakeupController.cpp",
153 "XfrmController.cpp",
Bernie Innocenti98951792018-06-26 17:13:44 +0900154 ],
155 shared_libs: [
Chenbo Fenga54aaf52018-11-07 17:51:51 -0800156 "libbpf_android",
Bernie Innocenti98951792018-06-26 17:13:44 +0900157 "libbase",
158 "libbinder",
Chenbo Fengd6104d12018-10-16 20:29:29 -0700159 "libnetdbpf",
Bernie Innocenti98951792018-06-26 17:13:44 +0900160 "libnetutils",
161 "libnetdutils",
162 "libpcap",
163 "libqtaguid",
164 "libssl",
Luke Huang8b4ee582020-04-14 17:42:46 +0000165 "netd_aidl_interface-cpp",
Jeongik Chab54ecec2019-10-15 17:06:59 +0900166 "netd_event_listener_interface-cpp",
Bernie Innocenti98951792018-06-26 17:13:44 +0900167 ],
168 aidl: {
169 export_aidl_headers: true,
170 local_include_dirs: ["binder"],
171 },
172}
173
174cc_binary {
175 name: "netd",
176 defaults: ["netd_defaults"],
177 include_dirs: [
Bernie Innocenti98951792018-06-26 17:13:44 +0900178 "external/mdnsresponder/mDNSShared",
179 "system/netd/include",
180 ],
181 init_rc: ["netd.rc"],
Maciej Żenczykowskif428d6e2020-02-19 10:26:35 -0800182 required: [
183 "bpfloader",
184 "clatd.o",
185 "netd.o",
186 "offload.o",
187 ],
Bernie Innocenti98951792018-06-26 17:13:44 +0900188 shared_libs: [
189 "android.system.net.netd@1.0",
190 "android.system.net.netd@1.1",
Bernie Innocentif89b3512018-08-30 07:34:37 +0900191 "libbase",
Bernie Innocenti98951792018-06-26 17:13:44 +0900192 "libbinder",
Chenbo Fenga54aaf52018-11-07 17:51:51 -0800193 "libbpf_android",
Bernie Innocenti98951792018-06-26 17:13:44 +0900194 "libcutils",
195 "libdl",
196 "libhidlbase",
Jeongik Cha0f750c22019-02-22 18:43:44 +0900197 "libjsoncpp",
Bernie Innocenti98951792018-06-26 17:13:44 +0900198 "liblog",
Bernie Innocenti98951792018-06-26 17:13:44 +0900199 "libmdnssd",
Jooyung Han3e64aa12019-11-27 15:36:29 +0900200 "libnetd_resolv",
Chenbo Fengd6104d12018-10-16 20:29:29 -0700201 "libnetdbpf",
Bernie Innocenti98951792018-06-26 17:13:44 +0900202 "libnetdutils",
Bernie Innocentif89b3512018-08-30 07:34:37 +0900203 "libnetutils",
Bernie Innocenti98951792018-06-26 17:13:44 +0900204 "libpcap",
Suren Baghdasaryane072a3c2019-01-16 14:36:07 -0800205 "libprocessgroup",
Bernie Innocenti98951792018-06-26 17:13:44 +0900206 "libqtaguid",
207 "libselinux",
Bernie Innocenti98951792018-06-26 17:13:44 +0900208 "libsysutils",
Bernie Innocenti98951792018-06-26 17:13:44 +0900209 "libutils",
Luke Huang29e5fdf2020-04-07 16:15:23 +0000210 "netd_aidl_interface-cpp",
Jeongik Chab54ecec2019-10-15 17:06:59 +0900211 "netd_event_listener_interface-cpp",
Luke Huang0e5e69d2019-03-06 15:42:38 +0800212 "oemnetd_aidl_interface-cpp",
Bernie Innocenti98951792018-06-26 17:13:44 +0900213 ],
214 static_libs: [
Maciej Żenczykowski8d6ed4a2020-05-29 00:41:22 -0700215 "libnetd_offloadutils",
Bernie Innocenti98951792018-06-26 17:13:44 +0900216 "libnetd_server",
Bernie Innocenti98951792018-06-26 17:13:44 +0900217 ],
218 srcs: [
Bernie Innocenti98951792018-06-26 17:13:44 +0900219 "DummyNetwork.cpp",
Bernie Innocenti98951792018-06-26 17:13:44 +0900220 "EventReporter.cpp",
221 "FwmarkServer.cpp",
222 "LocalNetwork.cpp",
223 "MDnsSdListener.cpp",
224 "NetdCommand.cpp",
225 "NetdHwService.cpp",
226 "NetdNativeService.cpp",
227 "NetlinkHandler.cpp",
228 "Network.cpp",
229 "NetworkController.cpp",
Luke Huang0e5e69d2019-03-06 15:42:38 +0800230 "OemNetdListener.cpp",
Bernie Innocenti98951792018-06-26 17:13:44 +0900231 "PhysicalNetwork.cpp",
232 "PppController.cpp",
233 "Process.cpp",
Bernie Innocenti98951792018-06-26 17:13:44 +0900234 "VirtualNetwork.cpp",
235 "main.cpp",
236 "oem_iptables_hook.cpp",
237 ],
Ken Chen2e413c32020-01-13 11:59:53 +0800238 sanitize: {
239 cfi: true,
Ken Chen2e413c32020-01-13 11:59:53 +0800240 },
Bernie Innocenti98951792018-06-26 17:13:44 +0900241}
242
243cc_binary {
244 name: "ndc",
245 defaults: ["netd_defaults"],
Luke Huangcfd04b22019-03-18 15:53:21 +0800246 include_dirs: [
247 "system/netd/include",
248 ],
249 header_libs: [
250 "libnetd_client_headers",
251 ],
252 shared_libs: [
253 "libbase",
254 "libnetdutils",
255 "libnetutils",
256 "libcutils",
257 "liblog",
258 "libutils",
259 "libbinder",
Jeongik Chab54ecec2019-10-15 17:06:59 +0900260 "dnsresolver_aidl_interface-cpp",
261 "netd_aidl_interface-cpp",
Luke Huangcfd04b22019-03-18 15:53:21 +0800262 ],
263 srcs: [
264 "ndc.cpp",
265 "UidRanges.cpp",
266 "NdcDispatcher.cpp",
267 ],
Ken Chen2e413c32020-01-13 11:59:53 +0800268 sanitize: {
269 cfi: true,
Ken Chen2e413c32020-01-13 11:59:53 +0800270 },
Bernie Innocenti98951792018-06-26 17:13:44 +0900271}
272
273cc_test {
274 name: "netd_unit_test",
275 defaults: ["netd_defaults"],
276 test_suites: ["device-tests"],
Bernie Innocenti83a67ca2019-06-19 16:28:05 +0900277 require_root: true,
Bernie Innocenti98951792018-06-26 17:13:44 +0900278 include_dirs: [
279 "system/netd/include",
280 "system/netd/server/binder",
281 "system/netd/tests",
Bernie Innocenti98951792018-06-26 17:13:44 +0900282 ],
283 srcs: [
284 "BandwidthControllerTest.cpp",
Lorenzo Colitti7ef8c0f2019-01-11 22:34:58 +0900285 "ClatdControllerTest.cpp",
Bernie Innocenti98951792018-06-26 17:13:44 +0900286 "ControllersTest.cpp",
287 "FirewallControllerTest.cpp",
288 "IdletimerControllerTest.cpp",
289 "InterfaceControllerTest.cpp",
290 "IptablesBaseTest.cpp",
291 "IptablesRestoreControllerTest.cpp",
292 "NFLogListenerTest.cpp",
Maciej Żenczykowskieec72082020-02-04 23:29:41 -0800293 "OffloadUtilsTest.cpp",
Bernie Innocenti98951792018-06-26 17:13:44 +0900294 "RouteControllerTest.cpp",
295 "SockDiagTest.cpp",
296 "StrictControllerTest.cpp",
297 "TetherControllerTest.cpp",
298 "TrafficControllerTest.cpp",
299 "XfrmControllerTest.cpp",
300 "WakeupControllerTest.cpp",
301 ],
302 static_libs: [
303 "libgmock",
Maciej Żenczykowski8d6ed4a2020-05-29 00:41:22 -0700304 "libnetd_offloadutils",
Bernie Innocenti98951792018-06-26 17:13:44 +0900305 "libnetd_server",
306 "libnetd_test_tun_interface",
Lorenzo Colitti3f52fae2019-06-27 18:46:22 +0900307 "libqtaguid",
Lorenzo Colittif0e051c2020-04-06 09:19:57 +0000308 "netd_aidl_interface-unstable-cpp",
Jeongik Chab54ecec2019-10-15 17:06:59 +0900309 "netd_event_listener_interface-cpp",
Bernie Innocenti98951792018-06-26 17:13:44 +0900310 ],
311 shared_libs: [
312 "libbase",
313 "libbinder",
Chenbo Fenga54aaf52018-11-07 17:51:51 -0800314 "libbpf_android",
Bernie Innocenti98951792018-06-26 17:13:44 +0900315 "libcrypto",
316 "libcutils",
317 "liblog",
Chenbo Fengd6104d12018-10-16 20:29:29 -0700318 "libnetdbpf",
Bernie Innocenti98951792018-06-26 17:13:44 +0900319 "libnetdutils",
320 "libnetutils",
Bernie Innocenti98951792018-06-26 17:13:44 +0900321 "libsysutils",
322 "libutils",
323 ],
324}