blob: 3f9aa5c8746d4c3535881c8fdd2fb26c8ce9b517 [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"],
Colin Cross1a8e7972017-12-05 22:35:52 -08009}
Steven Moreland0b7e3802018-03-02 12:41:52 -080010
Bernie Innocenti37ceb532018-06-11 21:10:44 +090011// These are used in netd_integration_test
12// TODO: fold these into a cc_library_static after converting netd/server to Android.bp
13filegroup {
14 name: "netd_integration_test_shared",
15 srcs: [
16 "NetdConstants.cpp",
17 "InterfaceController.cpp",
18 "NetlinkCommands.cpp",
Chenbo Feng49586642018-08-30 18:01:53 -070019 "NetlinkListener.cpp",
Lorenzo Colitti5c53ae52020-04-15 17:26:21 +000020 "SockDiag.cpp",
Bernie Innocenti37ceb532018-06-11 21:10:44 +090021 "XfrmController.cpp",
Chenbo Feng49586642018-08-30 18:01:53 -070022 "TrafficController.cpp",
Bernie Innocenti37ceb532018-06-11 21:10:44 +090023 ],
24}
25
Luke Huangcaebcbb2018-09-27 20:37:14 +080026aidl_interface {
27 name: "netd_aidl_interface",
28 local_include_dir: "binder",
29 srcs: [
Luke Huang03074eb2018-11-23 17:03:03 +080030 "binder/android/net/INetd.aidl",
Luke Huang528af602018-08-29 19:06:05 +080031 // AIDL interface that callers can implement to receive networking events from netd.
32 "binder/android/net/INetdUnsolicitedEventListener.aidl",
Luke Huang03074eb2018-11-23 17:03:03 +080033 "binder/android/net/InterfaceConfigurationParcel.aidl",
Chiachang Wang00fc62f2019-12-04 20:38:26 +080034 "binder/android/net/MarkMaskParcel.aidl",
Tyler Wearfa94a272019-12-05 15:01:48 -080035 "binder/android/net/RouteInfoParcel.aidl",
Chiachang Wang08cb2112019-12-10 09:53:24 +080036 "binder/android/net/TetherConfigParcel.aidl",
Lorenzo Colittif0e051c2020-04-06 09:19:57 +000037 "binder/android/net/TetherOffloadRuleParcel.aidl",
Luke Huangcaebcbb2018-09-27 20:37:14 +080038 "binder/android/net/TetherStatsParcel.aidl",
Luke Huang94658ac2018-10-18 19:35:12 +090039 "binder/android/net/UidRangeParcel.aidl",
Luke Huangcaebcbb2018-09-27 20:37:14 +080040 ],
Luke Huangf7782042018-08-08 13:13:04 +080041 backend: {
Xiao Ma33d562a2018-12-16 16:27:38 +090042 cpp: {
43 gen_log: true,
44 },
Luke Huang67649312020-04-01 01:17:42 +080045 java: {
46 apex_available: [
47 "com.android.bluetooth.updatable",
48 "com.android.wifi",
49 ],
50 },
Luke Huangf7782042018-08-08 13:13:04 +080051 },
Luke Huang00681282019-04-26 12:09:05 +080052 versions: [
53 "1",
54 "2",
Luke Huang29e5fdf2020-04-07 16:15:23 +000055 "3",
Luke Huang00681282019-04-26 12:09:05 +080056 ],
Luke Huangcaebcbb2018-09-27 20:37:14 +080057}
58
Luke Huang0e5e69d2019-03-06 15:42:38 +080059aidl_interface {
Luke Huang2ff8b342019-04-30 15:33:33 +080060 // This interface is for OEM calls to netd and vice versa that do not exist in AOSP.
61 // Those calls cannot be part of INetd.aidl and INetdUnsolicitedEventListener.aidl
62 // because those interfaces are versioned.
63 // These interfaces must never be versioned or OEMs will not be able to change them.
Luke Huang0e5e69d2019-03-06 15:42:38 +080064 name: "oemnetd_aidl_interface",
65 local_include_dir: "binder",
66 srcs: [
67 "binder/com/android/internal/net/IOemNetd.aidl",
Luke Huang2ff8b342019-04-30 15:33:33 +080068 "binder/com/android/internal/net/IOemNetdUnsolicitedEventListener.aidl",
Luke Huang0e5e69d2019-03-06 15:42:38 +080069 ],
70}
71
Bernie Innocenti98951792018-06-26 17:13:44 +090072// Modules common to both netd and netd_unit_test
73cc_library_static {
74 name: "libnetd_server",
75 defaults: ["netd_defaults"],
76 include_dirs: [
Bernie Innocenti98951792018-06-26 17:13:44 +090077 "system/netd/include",
78 "system/netd/server/binder",
79 ],
80 srcs: [
81 "BandwidthController.cpp",
Lorenzo Colitti7ef8c0f2019-01-11 22:34:58 +090082 "ClatdController.cpp",
Bernie Innocenti98951792018-06-26 17:13:44 +090083 "Controllers.cpp",
84 "NetdConstants.cpp",
85 "FirewallController.cpp",
86 "IdletimerController.cpp",
87 "InterfaceController.cpp",
88 "IptablesRestoreController.cpp",
89 "NFLogListener.cpp",
90 "NetlinkCommands.cpp",
91 "NetlinkListener.cpp",
92 "NetlinkManager.cpp",
Maciej Żenczykowskieec72082020-02-04 23:29:41 -080093 "OffloadUtils.cpp",
Bernie Innocenti98951792018-06-26 17:13:44 +090094 "RouteController.cpp",
95 "SockDiag.cpp",
96 "StrictController.cpp",
97 "TcpSocketMonitor.cpp",
98 "TetherController.cpp",
99 "TrafficController.cpp",
100 "UidRanges.cpp",
101 "WakeupController.cpp",
102 "XfrmController.cpp",
Bernie Innocenti98951792018-06-26 17:13:44 +0900103 ],
104 shared_libs: [
Chenbo Fenga54aaf52018-11-07 17:51:51 -0800105 "libbpf_android",
Bernie Innocenti98951792018-06-26 17:13:44 +0900106 "libbase",
107 "libbinder",
Chenbo Fengd6104d12018-10-16 20:29:29 -0700108 "libnetdbpf",
Bernie Innocenti98951792018-06-26 17:13:44 +0900109 "libnetutils",
110 "libnetdutils",
111 "libpcap",
112 "libqtaguid",
113 "libssl",
Luke Huang8b4ee582020-04-14 17:42:46 +0000114 "netd_aidl_interface-cpp",
Jeongik Chab54ecec2019-10-15 17:06:59 +0900115 "netd_event_listener_interface-cpp",
Bernie Innocenti98951792018-06-26 17:13:44 +0900116 ],
117 aidl: {
118 export_aidl_headers: true,
119 local_include_dirs: ["binder"],
120 },
121}
122
123cc_binary {
124 name: "netd",
125 defaults: ["netd_defaults"],
126 include_dirs: [
Bernie Innocenti98951792018-06-26 17:13:44 +0900127 "external/mdnsresponder/mDNSShared",
128 "system/netd/include",
129 ],
130 init_rc: ["netd.rc"],
Maciej Żenczykowskif428d6e2020-02-19 10:26:35 -0800131 required: [
132 "bpfloader",
133 "clatd.o",
134 "netd.o",
135 "offload.o",
136 ],
Bernie Innocenti98951792018-06-26 17:13:44 +0900137 shared_libs: [
138 "android.system.net.netd@1.0",
139 "android.system.net.netd@1.1",
Bernie Innocentif89b3512018-08-30 07:34:37 +0900140 "libbase",
Bernie Innocenti98951792018-06-26 17:13:44 +0900141 "libbinder",
Chenbo Fenga54aaf52018-11-07 17:51:51 -0800142 "libbpf_android",
Bernie Innocenti98951792018-06-26 17:13:44 +0900143 "libcutils",
144 "libdl",
145 "libhidlbase",
Jeongik Cha0f750c22019-02-22 18:43:44 +0900146 "libjsoncpp",
Bernie Innocenti98951792018-06-26 17:13:44 +0900147 "liblog",
Bernie Innocenti98951792018-06-26 17:13:44 +0900148 "libmdnssd",
Jooyung Han3e64aa12019-11-27 15:36:29 +0900149 "libnetd_resolv",
Chenbo Fengd6104d12018-10-16 20:29:29 -0700150 "libnetdbpf",
Bernie Innocenti98951792018-06-26 17:13:44 +0900151 "libnetdutils",
Bernie Innocentif89b3512018-08-30 07:34:37 +0900152 "libnetutils",
Bernie Innocenti98951792018-06-26 17:13:44 +0900153 "libpcap",
Suren Baghdasaryane072a3c2019-01-16 14:36:07 -0800154 "libprocessgroup",
Bernie Innocenti98951792018-06-26 17:13:44 +0900155 "libqtaguid",
156 "libselinux",
Bernie Innocenti98951792018-06-26 17:13:44 +0900157 "libsysutils",
Bernie Innocenti98951792018-06-26 17:13:44 +0900158 "libutils",
Luke Huang29e5fdf2020-04-07 16:15:23 +0000159 "netd_aidl_interface-cpp",
Jeongik Chab54ecec2019-10-15 17:06:59 +0900160 "netd_event_listener_interface-cpp",
Luke Huang0e5e69d2019-03-06 15:42:38 +0800161 "oemnetd_aidl_interface-cpp",
Bernie Innocenti98951792018-06-26 17:13:44 +0900162 ],
163 static_libs: [
164 "libnetd_server",
Bernie Innocenti98951792018-06-26 17:13:44 +0900165 ],
166 srcs: [
Bernie Innocenti98951792018-06-26 17:13:44 +0900167 "DummyNetwork.cpp",
Bernie Innocenti98951792018-06-26 17:13:44 +0900168 "EventReporter.cpp",
169 "FwmarkServer.cpp",
170 "LocalNetwork.cpp",
171 "MDnsSdListener.cpp",
172 "NetdCommand.cpp",
173 "NetdHwService.cpp",
174 "NetdNativeService.cpp",
175 "NetlinkHandler.cpp",
176 "Network.cpp",
177 "NetworkController.cpp",
Luke Huang0e5e69d2019-03-06 15:42:38 +0800178 "OemNetdListener.cpp",
Bernie Innocenti98951792018-06-26 17:13:44 +0900179 "PhysicalNetwork.cpp",
180 "PppController.cpp",
181 "Process.cpp",
Bernie Innocenti98951792018-06-26 17:13:44 +0900182 "VirtualNetwork.cpp",
183 "main.cpp",
184 "oem_iptables_hook.cpp",
185 ],
Ken Chen2e413c32020-01-13 11:59:53 +0800186 sanitize: {
187 cfi: true,
Ken Chen2e413c32020-01-13 11:59:53 +0800188 },
Bernie Innocenti98951792018-06-26 17:13:44 +0900189}
190
191cc_binary {
192 name: "ndc",
193 defaults: ["netd_defaults"],
Luke Huangcfd04b22019-03-18 15:53:21 +0800194 include_dirs: [
195 "system/netd/include",
196 ],
197 header_libs: [
198 "libnetd_client_headers",
199 ],
200 shared_libs: [
201 "libbase",
202 "libnetdutils",
203 "libnetutils",
204 "libcutils",
205 "liblog",
206 "libutils",
207 "libbinder",
Jeongik Chab54ecec2019-10-15 17:06:59 +0900208 "dnsresolver_aidl_interface-cpp",
209 "netd_aidl_interface-cpp",
Luke Huangcfd04b22019-03-18 15:53:21 +0800210 ],
211 srcs: [
212 "ndc.cpp",
213 "UidRanges.cpp",
214 "NdcDispatcher.cpp",
215 ],
Ken Chen2e413c32020-01-13 11:59:53 +0800216 sanitize: {
217 cfi: true,
Ken Chen2e413c32020-01-13 11:59:53 +0800218 },
Bernie Innocenti98951792018-06-26 17:13:44 +0900219}
220
221cc_test {
222 name: "netd_unit_test",
223 defaults: ["netd_defaults"],
224 test_suites: ["device-tests"],
Bernie Innocenti83a67ca2019-06-19 16:28:05 +0900225 require_root: true,
Bernie Innocenti98951792018-06-26 17:13:44 +0900226 include_dirs: [
227 "system/netd/include",
228 "system/netd/server/binder",
229 "system/netd/tests",
Bernie Innocenti98951792018-06-26 17:13:44 +0900230 ],
231 srcs: [
232 "BandwidthControllerTest.cpp",
Lorenzo Colitti7ef8c0f2019-01-11 22:34:58 +0900233 "ClatdControllerTest.cpp",
Bernie Innocenti98951792018-06-26 17:13:44 +0900234 "ControllersTest.cpp",
235 "FirewallControllerTest.cpp",
236 "IdletimerControllerTest.cpp",
237 "InterfaceControllerTest.cpp",
238 "IptablesBaseTest.cpp",
239 "IptablesRestoreControllerTest.cpp",
240 "NFLogListenerTest.cpp",
Maciej Żenczykowskieec72082020-02-04 23:29:41 -0800241 "OffloadUtilsTest.cpp",
Bernie Innocenti98951792018-06-26 17:13:44 +0900242 "RouteControllerTest.cpp",
243 "SockDiagTest.cpp",
244 "StrictControllerTest.cpp",
245 "TetherControllerTest.cpp",
246 "TrafficControllerTest.cpp",
247 "XfrmControllerTest.cpp",
248 "WakeupControllerTest.cpp",
249 ],
250 static_libs: [
251 "libgmock",
252 "libnetd_server",
253 "libnetd_test_tun_interface",
Lorenzo Colitti3f52fae2019-06-27 18:46:22 +0900254 "libqtaguid",
Lorenzo Colittif0e051c2020-04-06 09:19:57 +0000255 "netd_aidl_interface-unstable-cpp",
Jeongik Chab54ecec2019-10-15 17:06:59 +0900256 "netd_event_listener_interface-cpp",
Bernie Innocenti98951792018-06-26 17:13:44 +0900257 ],
258 shared_libs: [
259 "libbase",
260 "libbinder",
Chenbo Fenga54aaf52018-11-07 17:51:51 -0800261 "libbpf_android",
Bernie Innocenti98951792018-06-26 17:13:44 +0900262 "libcrypto",
263 "libcutils",
264 "liblog",
Chenbo Fengd6104d12018-10-16 20:29:29 -0700265 "libnetdbpf",
Bernie Innocenti98951792018-06-26 17:13:44 +0900266 "libnetdutils",
267 "libnetutils",
Bernie Innocenti98951792018-06-26 17:13:44 +0900268 "libsysutils",
269 "libutils",
270 ],
271}