blob: 89ecda83c4ba20320d49374c73708f84143dded5 [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",
26 "com.android.wifi",
27 ],
28 },
Luke Huangf7782042018-08-08 13:13:04 +080029 },
Luke Huang00681282019-04-26 12:09:05 +080030 versions: [
31 "1",
32 "2",
Luke Huang29e5fdf2020-04-07 16:15:23 +000033 "3",
Luke Huang00681282019-04-26 12:09:05 +080034 ],
Luke Huangcaebcbb2018-09-27 20:37:14 +080035}
36
Luke Huang0e5e69d2019-03-06 15:42:38 +080037aidl_interface {
Lorenzo Colittie90d5c42020-04-30 08:33:38 +000038 name: "netd_event_listener_interface",
39 local_include_dir: "binder",
40 srcs: [
41 "binder/android/net/metrics/INetdEventListener.aidl",
42 ],
43 versions: ["1"],
44 backend: {
45 ndk: {
46 apex_available: [
47 "//apex_available:platform",
48 "com.android.resolv",
49 ],
50 },
51 },
52}
53
54aidl_interface {
Luke Huang2ff8b342019-04-30 15:33:33 +080055 // This interface is for OEM calls to netd and vice versa that do not exist in AOSP.
56 // Those calls cannot be part of INetd.aidl and INetdUnsolicitedEventListener.aidl
57 // because those interfaces are versioned.
58 // These interfaces must never be versioned or OEMs will not be able to change them.
Luke Huang0e5e69d2019-03-06 15:42:38 +080059 name: "oemnetd_aidl_interface",
Jiyong Park63917972020-04-13 15:09:35 +090060 unstable: true,
Luke Huang0e5e69d2019-03-06 15:42:38 +080061 local_include_dir: "binder",
62 srcs: [
63 "binder/com/android/internal/net/IOemNetd.aidl",
Luke Huang2ff8b342019-04-30 15:33:33 +080064 "binder/com/android/internal/net/IOemNetdUnsolicitedEventListener.aidl",
Luke Huang0e5e69d2019-03-06 15:42:38 +080065 ],
66}
67
Lorenzo Colittie90d5c42020-04-30 08:33:38 +000068// Convenience build target for the version of the netd stable AIDL interface used by the platform.
69// This exists to ensure that all non-updatable code in the system server uses the same version.
70// Mixing different versions of generated classes results in code non-deterministically(?) using one
71// of the compiled-in versions, and potentially crashing when code compiled against a newer version
72// ends up using a generated class from an older version and calls methods that don't exist.
73// This must be a frozen version on REL builds and can be -unstable on development builds.
74// See http://b/143560726 for an example.
75java_library {
76 name: "netd_aidl_interfaces-platform-java",
77 static_libs: [
78 "netd_aidl_interface-java",
79 "netd_event_listener_interface-java",
80 ],
81 // TODO: remove bluetooth, which doesn't actually use netd at all.
82 apex_available: [
83 "com.android.bluetooth.updatable",
84 ],
85 sdk_version: "system_current",
86}
87
88// These are used in netd_integration_test
89// TODO: fold these into a cc_library_static after converting netd/server to Android.bp
90filegroup {
91 name: "netd_integration_test_shared",
92 srcs: [
93 "NetdConstants.cpp",
94 "InterfaceController.cpp",
95 "NetlinkCommands.cpp",
96 "NetlinkListener.cpp",
97 "SockDiag.cpp",
98 "XfrmController.cpp",
99 "TrafficController.cpp",
100 ],
101}
102
Bernie Innocenti98951792018-06-26 17:13:44 +0900103// Modules common to both netd and netd_unit_test
104cc_library_static {
105 name: "libnetd_server",
106 defaults: ["netd_defaults"],
107 include_dirs: [
Bernie Innocenti98951792018-06-26 17:13:44 +0900108 "system/netd/include",
109 "system/netd/server/binder",
110 ],
111 srcs: [
112 "BandwidthController.cpp",
Lorenzo Colitti7ef8c0f2019-01-11 22:34:58 +0900113 "ClatdController.cpp",
Bernie Innocenti98951792018-06-26 17:13:44 +0900114 "Controllers.cpp",
115 "NetdConstants.cpp",
116 "FirewallController.cpp",
117 "IdletimerController.cpp",
118 "InterfaceController.cpp",
119 "IptablesRestoreController.cpp",
120 "NFLogListener.cpp",
121 "NetlinkCommands.cpp",
122 "NetlinkListener.cpp",
123 "NetlinkManager.cpp",
Maciej Żenczykowskieec72082020-02-04 23:29:41 -0800124 "OffloadUtils.cpp",
Bernie Innocenti98951792018-06-26 17:13:44 +0900125 "RouteController.cpp",
126 "SockDiag.cpp",
127 "StrictController.cpp",
128 "TcpSocketMonitor.cpp",
129 "TetherController.cpp",
130 "TrafficController.cpp",
131 "UidRanges.cpp",
132 "WakeupController.cpp",
133 "XfrmController.cpp",
Bernie Innocenti98951792018-06-26 17:13:44 +0900134 ],
135 shared_libs: [
Chenbo Fenga54aaf52018-11-07 17:51:51 -0800136 "libbpf_android",
Bernie Innocenti98951792018-06-26 17:13:44 +0900137 "libbase",
138 "libbinder",
Chenbo Fengd6104d12018-10-16 20:29:29 -0700139 "libnetdbpf",
Bernie Innocenti98951792018-06-26 17:13:44 +0900140 "libnetutils",
141 "libnetdutils",
142 "libpcap",
143 "libqtaguid",
144 "libssl",
Luke Huang8b4ee582020-04-14 17:42:46 +0000145 "netd_aidl_interface-cpp",
Jeongik Chab54ecec2019-10-15 17:06:59 +0900146 "netd_event_listener_interface-cpp",
Bernie Innocenti98951792018-06-26 17:13:44 +0900147 ],
148 aidl: {
149 export_aidl_headers: true,
150 local_include_dirs: ["binder"],
151 },
152}
153
154cc_binary {
155 name: "netd",
156 defaults: ["netd_defaults"],
157 include_dirs: [
Bernie Innocenti98951792018-06-26 17:13:44 +0900158 "external/mdnsresponder/mDNSShared",
159 "system/netd/include",
160 ],
161 init_rc: ["netd.rc"],
Maciej Żenczykowskif428d6e2020-02-19 10:26:35 -0800162 required: [
163 "bpfloader",
164 "clatd.o",
165 "netd.o",
166 "offload.o",
167 ],
Bernie Innocenti98951792018-06-26 17:13:44 +0900168 shared_libs: [
169 "android.system.net.netd@1.0",
170 "android.system.net.netd@1.1",
Bernie Innocentif89b3512018-08-30 07:34:37 +0900171 "libbase",
Bernie Innocenti98951792018-06-26 17:13:44 +0900172 "libbinder",
Chenbo Fenga54aaf52018-11-07 17:51:51 -0800173 "libbpf_android",
Bernie Innocenti98951792018-06-26 17:13:44 +0900174 "libcutils",
175 "libdl",
176 "libhidlbase",
Jeongik Cha0f750c22019-02-22 18:43:44 +0900177 "libjsoncpp",
Bernie Innocenti98951792018-06-26 17:13:44 +0900178 "liblog",
Bernie Innocenti98951792018-06-26 17:13:44 +0900179 "libmdnssd",
Jooyung Han3e64aa12019-11-27 15:36:29 +0900180 "libnetd_resolv",
Chenbo Fengd6104d12018-10-16 20:29:29 -0700181 "libnetdbpf",
Bernie Innocenti98951792018-06-26 17:13:44 +0900182 "libnetdutils",
Bernie Innocentif89b3512018-08-30 07:34:37 +0900183 "libnetutils",
Bernie Innocenti98951792018-06-26 17:13:44 +0900184 "libpcap",
Suren Baghdasaryane072a3c2019-01-16 14:36:07 -0800185 "libprocessgroup",
Bernie Innocenti98951792018-06-26 17:13:44 +0900186 "libqtaguid",
187 "libselinux",
Bernie Innocenti98951792018-06-26 17:13:44 +0900188 "libsysutils",
Bernie Innocenti98951792018-06-26 17:13:44 +0900189 "libutils",
Luke Huang29e5fdf2020-04-07 16:15:23 +0000190 "netd_aidl_interface-cpp",
Jeongik Chab54ecec2019-10-15 17:06:59 +0900191 "netd_event_listener_interface-cpp",
Luke Huang0e5e69d2019-03-06 15:42:38 +0800192 "oemnetd_aidl_interface-cpp",
Bernie Innocenti98951792018-06-26 17:13:44 +0900193 ],
194 static_libs: [
195 "libnetd_server",
Bernie Innocenti98951792018-06-26 17:13:44 +0900196 ],
197 srcs: [
Bernie Innocenti98951792018-06-26 17:13:44 +0900198 "DummyNetwork.cpp",
Bernie Innocenti98951792018-06-26 17:13:44 +0900199 "EventReporter.cpp",
200 "FwmarkServer.cpp",
201 "LocalNetwork.cpp",
202 "MDnsSdListener.cpp",
203 "NetdCommand.cpp",
204 "NetdHwService.cpp",
205 "NetdNativeService.cpp",
206 "NetlinkHandler.cpp",
207 "Network.cpp",
208 "NetworkController.cpp",
Luke Huang0e5e69d2019-03-06 15:42:38 +0800209 "OemNetdListener.cpp",
Bernie Innocenti98951792018-06-26 17:13:44 +0900210 "PhysicalNetwork.cpp",
211 "PppController.cpp",
212 "Process.cpp",
Bernie Innocenti98951792018-06-26 17:13:44 +0900213 "VirtualNetwork.cpp",
214 "main.cpp",
215 "oem_iptables_hook.cpp",
216 ],
Ken Chen2e413c32020-01-13 11:59:53 +0800217 sanitize: {
218 cfi: true,
Ken Chen2e413c32020-01-13 11:59:53 +0800219 },
Bernie Innocenti98951792018-06-26 17:13:44 +0900220}
221
222cc_binary {
223 name: "ndc",
224 defaults: ["netd_defaults"],
Luke Huangcfd04b22019-03-18 15:53:21 +0800225 include_dirs: [
226 "system/netd/include",
227 ],
228 header_libs: [
229 "libnetd_client_headers",
230 ],
231 shared_libs: [
232 "libbase",
233 "libnetdutils",
234 "libnetutils",
235 "libcutils",
236 "liblog",
237 "libutils",
238 "libbinder",
Jeongik Chab54ecec2019-10-15 17:06:59 +0900239 "dnsresolver_aidl_interface-cpp",
240 "netd_aidl_interface-cpp",
Luke Huangcfd04b22019-03-18 15:53:21 +0800241 ],
242 srcs: [
243 "ndc.cpp",
244 "UidRanges.cpp",
245 "NdcDispatcher.cpp",
246 ],
Ken Chen2e413c32020-01-13 11:59:53 +0800247 sanitize: {
248 cfi: true,
Ken Chen2e413c32020-01-13 11:59:53 +0800249 },
Bernie Innocenti98951792018-06-26 17:13:44 +0900250}
251
252cc_test {
253 name: "netd_unit_test",
254 defaults: ["netd_defaults"],
255 test_suites: ["device-tests"],
Bernie Innocenti83a67ca2019-06-19 16:28:05 +0900256 require_root: true,
Bernie Innocenti98951792018-06-26 17:13:44 +0900257 include_dirs: [
258 "system/netd/include",
259 "system/netd/server/binder",
260 "system/netd/tests",
Bernie Innocenti98951792018-06-26 17:13:44 +0900261 ],
262 srcs: [
263 "BandwidthControllerTest.cpp",
Lorenzo Colitti7ef8c0f2019-01-11 22:34:58 +0900264 "ClatdControllerTest.cpp",
Bernie Innocenti98951792018-06-26 17:13:44 +0900265 "ControllersTest.cpp",
266 "FirewallControllerTest.cpp",
267 "IdletimerControllerTest.cpp",
268 "InterfaceControllerTest.cpp",
269 "IptablesBaseTest.cpp",
270 "IptablesRestoreControllerTest.cpp",
271 "NFLogListenerTest.cpp",
Maciej Żenczykowskieec72082020-02-04 23:29:41 -0800272 "OffloadUtilsTest.cpp",
Bernie Innocenti98951792018-06-26 17:13:44 +0900273 "RouteControllerTest.cpp",
274 "SockDiagTest.cpp",
275 "StrictControllerTest.cpp",
276 "TetherControllerTest.cpp",
277 "TrafficControllerTest.cpp",
278 "XfrmControllerTest.cpp",
279 "WakeupControllerTest.cpp",
280 ],
281 static_libs: [
282 "libgmock",
283 "libnetd_server",
284 "libnetd_test_tun_interface",
Lorenzo Colitti3f52fae2019-06-27 18:46:22 +0900285 "libqtaguid",
Lorenzo Colittif0e051c2020-04-06 09:19:57 +0000286 "netd_aidl_interface-unstable-cpp",
Jeongik Chab54ecec2019-10-15 17:06:59 +0900287 "netd_event_listener_interface-cpp",
Bernie Innocenti98951792018-06-26 17:13:44 +0900288 ],
289 shared_libs: [
290 "libbase",
291 "libbinder",
Chenbo Fenga54aaf52018-11-07 17:51:51 -0800292 "libbpf_android",
Bernie Innocenti98951792018-06-26 17:13:44 +0900293 "libcrypto",
294 "libcutils",
295 "liblog",
Chenbo Fengd6104d12018-10-16 20:29:29 -0700296 "libnetdbpf",
Bernie Innocenti98951792018-06-26 17:13:44 +0900297 "libnetdutils",
298 "libnetutils",
Bernie Innocenti98951792018-06-26 17:13:44 +0900299 "libsysutils",
300 "libutils",
301 ],
302}