blob: 8b28b7d717b8c654e4df1dd0fb822565b362f86b [file] [log] [blame]
Colin Cross1a8e7972017-12-05 22:35:52 -08001// AIDL interface between netd and services.core
Lorenzo Colitti57bca9f2018-12-11 13:02:05 +09002aidl_interface {
3 name: "netd_event_listener_interface",
4 local_include_dir: "binder",
5 srcs: [
Remi NGUYEN VAN6b91b492019-04-09 13:57:03 +09006 "binder/android/net/metrics/INetdEventListener.aidl",
Lorenzo Colitti57bca9f2018-12-11 13:02:05 +09007 ],
Lorenzo Colitti866a03a2019-05-22 15:46:05 +09008 versions: ["1"],
Jiyong Park965a1ed2020-04-08 23:40:11 +09009 backend: {
10 ndk: {
11 apex_available: [
12 "//apex_available:platform",
13 "com.android.resolv",
14 ],
15 },
16 },
Colin Cross1a8e7972017-12-05 22:35:52 -080017}
Steven Moreland0b7e3802018-03-02 12:41:52 -080018
Bernie Innocenti37ceb532018-06-11 21:10:44 +090019// These are used in netd_integration_test
20// TODO: fold these into a cc_library_static after converting netd/server to Android.bp
21filegroup {
22 name: "netd_integration_test_shared",
23 srcs: [
24 "NetdConstants.cpp",
25 "InterfaceController.cpp",
26 "NetlinkCommands.cpp",
Chenbo Feng49586642018-08-30 18:01:53 -070027 "NetlinkListener.cpp",
Lorenzo Colitti5c53ae52020-04-15 17:26:21 +000028 "SockDiag.cpp",
Bernie Innocenti37ceb532018-06-11 21:10:44 +090029 "XfrmController.cpp",
Chenbo Feng49586642018-08-30 18:01:53 -070030 "TrafficController.cpp",
Bernie Innocenti37ceb532018-06-11 21:10:44 +090031 ],
32}
33
Luke Huangcaebcbb2018-09-27 20:37:14 +080034aidl_interface {
35 name: "netd_aidl_interface",
36 local_include_dir: "binder",
37 srcs: [
Luke Huang03074eb2018-11-23 17:03:03 +080038 "binder/android/net/INetd.aidl",
Luke Huang528af602018-08-29 19:06:05 +080039 // AIDL interface that callers can implement to receive networking events from netd.
40 "binder/android/net/INetdUnsolicitedEventListener.aidl",
Luke Huang03074eb2018-11-23 17:03:03 +080041 "binder/android/net/InterfaceConfigurationParcel.aidl",
Chiachang Wang00fc62f2019-12-04 20:38:26 +080042 "binder/android/net/MarkMaskParcel.aidl",
Tyler Wearfa94a272019-12-05 15:01:48 -080043 "binder/android/net/RouteInfoParcel.aidl",
Chiachang Wang08cb2112019-12-10 09:53:24 +080044 "binder/android/net/TetherConfigParcel.aidl",
Lorenzo Colittif0e051c2020-04-06 09:19:57 +000045 "binder/android/net/TetherOffloadRuleParcel.aidl",
Luke Huangcaebcbb2018-09-27 20:37:14 +080046 "binder/android/net/TetherStatsParcel.aidl",
Luke Huang94658ac2018-10-18 19:35:12 +090047 "binder/android/net/UidRangeParcel.aidl",
Luke Huangcaebcbb2018-09-27 20:37:14 +080048 ],
Luke Huangf7782042018-08-08 13:13:04 +080049 backend: {
Xiao Ma33d562a2018-12-16 16:27:38 +090050 cpp: {
51 gen_log: true,
52 },
Luke Huang67649312020-04-01 01:17:42 +080053 java: {
54 apex_available: [
Jiyong Park90813ad2020-04-08 14:12:27 +090055 "//apex_available:platform", // used from services.net
Luke Huang67649312020-04-01 01:17:42 +080056 "com.android.bluetooth.updatable",
57 "com.android.wifi",
58 ],
59 },
Luke Huangf7782042018-08-08 13:13:04 +080060 },
Luke Huang00681282019-04-26 12:09:05 +080061 versions: [
62 "1",
63 "2",
Luke Huang29e5fdf2020-04-07 16:15:23 +000064 "3",
Luke Huang00681282019-04-26 12:09:05 +080065 ],
Luke Huangcaebcbb2018-09-27 20:37:14 +080066}
67
Luke Huang0e5e69d2019-03-06 15:42:38 +080068aidl_interface {
Luke Huang2ff8b342019-04-30 15:33:33 +080069 // This interface is for OEM calls to netd and vice versa that do not exist in AOSP.
70 // Those calls cannot be part of INetd.aidl and INetdUnsolicitedEventListener.aidl
71 // because those interfaces are versioned.
72 // These interfaces must never be versioned or OEMs will not be able to change them.
Luke Huang0e5e69d2019-03-06 15:42:38 +080073 name: "oemnetd_aidl_interface",
Jiyong Park63917972020-04-13 15:09:35 +090074 unstable: true,
Luke Huang0e5e69d2019-03-06 15:42:38 +080075 local_include_dir: "binder",
76 srcs: [
77 "binder/com/android/internal/net/IOemNetd.aidl",
Luke Huang2ff8b342019-04-30 15:33:33 +080078 "binder/com/android/internal/net/IOemNetdUnsolicitedEventListener.aidl",
Luke Huang0e5e69d2019-03-06 15:42:38 +080079 ],
80}
81
Bernie Innocenti98951792018-06-26 17:13:44 +090082// Modules common to both netd and netd_unit_test
83cc_library_static {
84 name: "libnetd_server",
85 defaults: ["netd_defaults"],
86 include_dirs: [
Bernie Innocenti98951792018-06-26 17:13:44 +090087 "system/netd/include",
88 "system/netd/server/binder",
89 ],
90 srcs: [
91 "BandwidthController.cpp",
Lorenzo Colitti7ef8c0f2019-01-11 22:34:58 +090092 "ClatdController.cpp",
Bernie Innocenti98951792018-06-26 17:13:44 +090093 "Controllers.cpp",
94 "NetdConstants.cpp",
95 "FirewallController.cpp",
96 "IdletimerController.cpp",
97 "InterfaceController.cpp",
98 "IptablesRestoreController.cpp",
99 "NFLogListener.cpp",
100 "NetlinkCommands.cpp",
101 "NetlinkListener.cpp",
102 "NetlinkManager.cpp",
Maciej Żenczykowskieec72082020-02-04 23:29:41 -0800103 "OffloadUtils.cpp",
Bernie Innocenti98951792018-06-26 17:13:44 +0900104 "RouteController.cpp",
105 "SockDiag.cpp",
106 "StrictController.cpp",
107 "TcpSocketMonitor.cpp",
108 "TetherController.cpp",
109 "TrafficController.cpp",
110 "UidRanges.cpp",
111 "WakeupController.cpp",
112 "XfrmController.cpp",
Bernie Innocenti98951792018-06-26 17:13:44 +0900113 ],
114 shared_libs: [
Chenbo Fenga54aaf52018-11-07 17:51:51 -0800115 "libbpf_android",
Bernie Innocenti98951792018-06-26 17:13:44 +0900116 "libbase",
117 "libbinder",
Chenbo Fengd6104d12018-10-16 20:29:29 -0700118 "libnetdbpf",
Bernie Innocenti98951792018-06-26 17:13:44 +0900119 "libnetutils",
120 "libnetdutils",
121 "libpcap",
122 "libqtaguid",
123 "libssl",
Luke Huang8b4ee582020-04-14 17:42:46 +0000124 "netd_aidl_interface-cpp",
Jeongik Chab54ecec2019-10-15 17:06:59 +0900125 "netd_event_listener_interface-cpp",
Bernie Innocenti98951792018-06-26 17:13:44 +0900126 ],
127 aidl: {
128 export_aidl_headers: true,
129 local_include_dirs: ["binder"],
130 },
131}
132
133cc_binary {
134 name: "netd",
135 defaults: ["netd_defaults"],
136 include_dirs: [
Bernie Innocenti98951792018-06-26 17:13:44 +0900137 "external/mdnsresponder/mDNSShared",
138 "system/netd/include",
139 ],
140 init_rc: ["netd.rc"],
Maciej Żenczykowskif428d6e2020-02-19 10:26:35 -0800141 required: [
142 "bpfloader",
143 "clatd.o",
144 "netd.o",
145 "offload.o",
146 ],
Bernie Innocenti98951792018-06-26 17:13:44 +0900147 shared_libs: [
148 "android.system.net.netd@1.0",
149 "android.system.net.netd@1.1",
Bernie Innocentif89b3512018-08-30 07:34:37 +0900150 "libbase",
Bernie Innocenti98951792018-06-26 17:13:44 +0900151 "libbinder",
Chenbo Fenga54aaf52018-11-07 17:51:51 -0800152 "libbpf_android",
Bernie Innocenti98951792018-06-26 17:13:44 +0900153 "libcutils",
154 "libdl",
155 "libhidlbase",
Jeongik Cha0f750c22019-02-22 18:43:44 +0900156 "libjsoncpp",
Bernie Innocenti98951792018-06-26 17:13:44 +0900157 "liblog",
Bernie Innocenti98951792018-06-26 17:13:44 +0900158 "libmdnssd",
Jooyung Han3e64aa12019-11-27 15:36:29 +0900159 "libnetd_resolv",
Chenbo Fengd6104d12018-10-16 20:29:29 -0700160 "libnetdbpf",
Bernie Innocenti98951792018-06-26 17:13:44 +0900161 "libnetdutils",
Bernie Innocentif89b3512018-08-30 07:34:37 +0900162 "libnetutils",
Bernie Innocenti98951792018-06-26 17:13:44 +0900163 "libpcap",
Suren Baghdasaryane072a3c2019-01-16 14:36:07 -0800164 "libprocessgroup",
Bernie Innocenti98951792018-06-26 17:13:44 +0900165 "libqtaguid",
166 "libselinux",
Bernie Innocenti98951792018-06-26 17:13:44 +0900167 "libsysutils",
Bernie Innocenti98951792018-06-26 17:13:44 +0900168 "libutils",
Luke Huang29e5fdf2020-04-07 16:15:23 +0000169 "netd_aidl_interface-cpp",
Jeongik Chab54ecec2019-10-15 17:06:59 +0900170 "netd_event_listener_interface-cpp",
Luke Huang0e5e69d2019-03-06 15:42:38 +0800171 "oemnetd_aidl_interface-cpp",
Bernie Innocenti98951792018-06-26 17:13:44 +0900172 ],
173 static_libs: [
174 "libnetd_server",
Bernie Innocenti98951792018-06-26 17:13:44 +0900175 ],
176 srcs: [
Bernie Innocenti98951792018-06-26 17:13:44 +0900177 "DummyNetwork.cpp",
Bernie Innocenti98951792018-06-26 17:13:44 +0900178 "EventReporter.cpp",
179 "FwmarkServer.cpp",
180 "LocalNetwork.cpp",
181 "MDnsSdListener.cpp",
182 "NetdCommand.cpp",
183 "NetdHwService.cpp",
184 "NetdNativeService.cpp",
185 "NetlinkHandler.cpp",
186 "Network.cpp",
187 "NetworkController.cpp",
Luke Huang0e5e69d2019-03-06 15:42:38 +0800188 "OemNetdListener.cpp",
Bernie Innocenti98951792018-06-26 17:13:44 +0900189 "PhysicalNetwork.cpp",
190 "PppController.cpp",
191 "Process.cpp",
Bernie Innocenti98951792018-06-26 17:13:44 +0900192 "VirtualNetwork.cpp",
193 "main.cpp",
194 "oem_iptables_hook.cpp",
195 ],
Ken Chen2e413c32020-01-13 11:59:53 +0800196 sanitize: {
197 cfi: true,
Ken Chen2e413c32020-01-13 11:59:53 +0800198 },
Bernie Innocenti98951792018-06-26 17:13:44 +0900199}
200
201cc_binary {
202 name: "ndc",
203 defaults: ["netd_defaults"],
Luke Huangcfd04b22019-03-18 15:53:21 +0800204 include_dirs: [
205 "system/netd/include",
206 ],
207 header_libs: [
208 "libnetd_client_headers",
209 ],
210 shared_libs: [
211 "libbase",
212 "libnetdutils",
213 "libnetutils",
214 "libcutils",
215 "liblog",
216 "libutils",
217 "libbinder",
Jeongik Chab54ecec2019-10-15 17:06:59 +0900218 "dnsresolver_aidl_interface-cpp",
219 "netd_aidl_interface-cpp",
Luke Huangcfd04b22019-03-18 15:53:21 +0800220 ],
221 srcs: [
222 "ndc.cpp",
223 "UidRanges.cpp",
224 "NdcDispatcher.cpp",
225 ],
Ken Chen2e413c32020-01-13 11:59:53 +0800226 sanitize: {
227 cfi: true,
Ken Chen2e413c32020-01-13 11:59:53 +0800228 },
Bernie Innocenti98951792018-06-26 17:13:44 +0900229}
230
231cc_test {
232 name: "netd_unit_test",
233 defaults: ["netd_defaults"],
234 test_suites: ["device-tests"],
Bernie Innocenti83a67ca2019-06-19 16:28:05 +0900235 require_root: true,
Bernie Innocenti98951792018-06-26 17:13:44 +0900236 include_dirs: [
237 "system/netd/include",
238 "system/netd/server/binder",
239 "system/netd/tests",
Bernie Innocenti98951792018-06-26 17:13:44 +0900240 ],
241 srcs: [
242 "BandwidthControllerTest.cpp",
Lorenzo Colitti7ef8c0f2019-01-11 22:34:58 +0900243 "ClatdControllerTest.cpp",
Bernie Innocenti98951792018-06-26 17:13:44 +0900244 "ControllersTest.cpp",
245 "FirewallControllerTest.cpp",
246 "IdletimerControllerTest.cpp",
247 "InterfaceControllerTest.cpp",
248 "IptablesBaseTest.cpp",
249 "IptablesRestoreControllerTest.cpp",
250 "NFLogListenerTest.cpp",
Maciej Żenczykowskieec72082020-02-04 23:29:41 -0800251 "OffloadUtilsTest.cpp",
Bernie Innocenti98951792018-06-26 17:13:44 +0900252 "RouteControllerTest.cpp",
253 "SockDiagTest.cpp",
254 "StrictControllerTest.cpp",
255 "TetherControllerTest.cpp",
256 "TrafficControllerTest.cpp",
257 "XfrmControllerTest.cpp",
258 "WakeupControllerTest.cpp",
259 ],
260 static_libs: [
261 "libgmock",
262 "libnetd_server",
263 "libnetd_test_tun_interface",
Lorenzo Colitti3f52fae2019-06-27 18:46:22 +0900264 "libqtaguid",
Lorenzo Colittif0e051c2020-04-06 09:19:57 +0000265 "netd_aidl_interface-unstable-cpp",
Jeongik Chab54ecec2019-10-15 17:06:59 +0900266 "netd_event_listener_interface-cpp",
Bernie Innocenti98951792018-06-26 17:13:44 +0900267 ],
268 shared_libs: [
269 "libbase",
270 "libbinder",
Chenbo Fenga54aaf52018-11-07 17:51:51 -0800271 "libbpf_android",
Bernie Innocenti98951792018-06-26 17:13:44 +0900272 "libcrypto",
273 "libcutils",
274 "liblog",
Chenbo Fengd6104d12018-10-16 20:29:29 -0700275 "libnetdbpf",
Bernie Innocenti98951792018-06-26 17:13:44 +0900276 "libnetdutils",
277 "libnetutils",
Bernie Innocenti98951792018-06-26 17:13:44 +0900278 "libsysutils",
279 "libutils",
280 ],
281}