blob: 96db22c0ccbecd6f662557a2c4615f0662f6092f [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",
Jiyong Park63917972020-04-13 15:09:35 +090065 unstable: true,
Luke Huang0e5e69d2019-03-06 15:42:38 +080066 local_include_dir: "binder",
67 srcs: [
68 "binder/com/android/internal/net/IOemNetd.aidl",
Luke Huang2ff8b342019-04-30 15:33:33 +080069 "binder/com/android/internal/net/IOemNetdUnsolicitedEventListener.aidl",
Luke Huang0e5e69d2019-03-06 15:42:38 +080070 ],
71}
72
Bernie Innocenti98951792018-06-26 17:13:44 +090073// Modules common to both netd and netd_unit_test
74cc_library_static {
75 name: "libnetd_server",
76 defaults: ["netd_defaults"],
77 include_dirs: [
Bernie Innocenti98951792018-06-26 17:13:44 +090078 "system/netd/include",
79 "system/netd/server/binder",
80 ],
81 srcs: [
82 "BandwidthController.cpp",
Lorenzo Colitti7ef8c0f2019-01-11 22:34:58 +090083 "ClatdController.cpp",
Bernie Innocenti98951792018-06-26 17:13:44 +090084 "Controllers.cpp",
85 "NetdConstants.cpp",
86 "FirewallController.cpp",
87 "IdletimerController.cpp",
88 "InterfaceController.cpp",
89 "IptablesRestoreController.cpp",
90 "NFLogListener.cpp",
91 "NetlinkCommands.cpp",
92 "NetlinkListener.cpp",
93 "NetlinkManager.cpp",
Maciej Żenczykowskieec72082020-02-04 23:29:41 -080094 "OffloadUtils.cpp",
Bernie Innocenti98951792018-06-26 17:13:44 +090095 "RouteController.cpp",
96 "SockDiag.cpp",
97 "StrictController.cpp",
98 "TcpSocketMonitor.cpp",
99 "TetherController.cpp",
100 "TrafficController.cpp",
101 "UidRanges.cpp",
102 "WakeupController.cpp",
103 "XfrmController.cpp",
Bernie Innocenti98951792018-06-26 17:13:44 +0900104 ],
105 shared_libs: [
Chenbo Fenga54aaf52018-11-07 17:51:51 -0800106 "libbpf_android",
Bernie Innocenti98951792018-06-26 17:13:44 +0900107 "libbase",
108 "libbinder",
Chenbo Fengd6104d12018-10-16 20:29:29 -0700109 "libnetdbpf",
Bernie Innocenti98951792018-06-26 17:13:44 +0900110 "libnetutils",
111 "libnetdutils",
112 "libpcap",
113 "libqtaguid",
114 "libssl",
Luke Huang8b4ee582020-04-14 17:42:46 +0000115 "netd_aidl_interface-cpp",
Jeongik Chab54ecec2019-10-15 17:06:59 +0900116 "netd_event_listener_interface-cpp",
Bernie Innocenti98951792018-06-26 17:13:44 +0900117 ],
118 aidl: {
119 export_aidl_headers: true,
120 local_include_dirs: ["binder"],
121 },
122}
123
124cc_binary {
125 name: "netd",
126 defaults: ["netd_defaults"],
127 include_dirs: [
Bernie Innocenti98951792018-06-26 17:13:44 +0900128 "external/mdnsresponder/mDNSShared",
129 "system/netd/include",
130 ],
131 init_rc: ["netd.rc"],
Maciej Żenczykowskif428d6e2020-02-19 10:26:35 -0800132 required: [
133 "bpfloader",
134 "clatd.o",
135 "netd.o",
136 "offload.o",
137 ],
Bernie Innocenti98951792018-06-26 17:13:44 +0900138 shared_libs: [
139 "android.system.net.netd@1.0",
140 "android.system.net.netd@1.1",
Bernie Innocentif89b3512018-08-30 07:34:37 +0900141 "libbase",
Bernie Innocenti98951792018-06-26 17:13:44 +0900142 "libbinder",
Chenbo Fenga54aaf52018-11-07 17:51:51 -0800143 "libbpf_android",
Bernie Innocenti98951792018-06-26 17:13:44 +0900144 "libcutils",
145 "libdl",
146 "libhidlbase",
Jeongik Cha0f750c22019-02-22 18:43:44 +0900147 "libjsoncpp",
Bernie Innocenti98951792018-06-26 17:13:44 +0900148 "liblog",
Bernie Innocenti98951792018-06-26 17:13:44 +0900149 "libmdnssd",
Jooyung Han3e64aa12019-11-27 15:36:29 +0900150 "libnetd_resolv",
Chenbo Fengd6104d12018-10-16 20:29:29 -0700151 "libnetdbpf",
Bernie Innocenti98951792018-06-26 17:13:44 +0900152 "libnetdutils",
Bernie Innocentif89b3512018-08-30 07:34:37 +0900153 "libnetutils",
Bernie Innocenti98951792018-06-26 17:13:44 +0900154 "libpcap",
Suren Baghdasaryane072a3c2019-01-16 14:36:07 -0800155 "libprocessgroup",
Bernie Innocenti98951792018-06-26 17:13:44 +0900156 "libqtaguid",
157 "libselinux",
Bernie Innocenti98951792018-06-26 17:13:44 +0900158 "libsysutils",
Bernie Innocenti98951792018-06-26 17:13:44 +0900159 "libutils",
Luke Huang29e5fdf2020-04-07 16:15:23 +0000160 "netd_aidl_interface-cpp",
Jeongik Chab54ecec2019-10-15 17:06:59 +0900161 "netd_event_listener_interface-cpp",
Luke Huang0e5e69d2019-03-06 15:42:38 +0800162 "oemnetd_aidl_interface-cpp",
Bernie Innocenti98951792018-06-26 17:13:44 +0900163 ],
164 static_libs: [
165 "libnetd_server",
Bernie Innocenti98951792018-06-26 17:13:44 +0900166 ],
167 srcs: [
Bernie Innocenti98951792018-06-26 17:13:44 +0900168 "DummyNetwork.cpp",
Bernie Innocenti98951792018-06-26 17:13:44 +0900169 "EventReporter.cpp",
170 "FwmarkServer.cpp",
171 "LocalNetwork.cpp",
172 "MDnsSdListener.cpp",
173 "NetdCommand.cpp",
174 "NetdHwService.cpp",
175 "NetdNativeService.cpp",
176 "NetlinkHandler.cpp",
177 "Network.cpp",
178 "NetworkController.cpp",
Luke Huang0e5e69d2019-03-06 15:42:38 +0800179 "OemNetdListener.cpp",
Bernie Innocenti98951792018-06-26 17:13:44 +0900180 "PhysicalNetwork.cpp",
181 "PppController.cpp",
182 "Process.cpp",
Bernie Innocenti98951792018-06-26 17:13:44 +0900183 "VirtualNetwork.cpp",
184 "main.cpp",
185 "oem_iptables_hook.cpp",
186 ],
Ken Chen2e413c32020-01-13 11:59:53 +0800187 sanitize: {
188 cfi: true,
Ken Chen2e413c32020-01-13 11:59:53 +0800189 },
Bernie Innocenti98951792018-06-26 17:13:44 +0900190}
191
192cc_binary {
193 name: "ndc",
194 defaults: ["netd_defaults"],
Luke Huangcfd04b22019-03-18 15:53:21 +0800195 include_dirs: [
196 "system/netd/include",
197 ],
198 header_libs: [
199 "libnetd_client_headers",
200 ],
201 shared_libs: [
202 "libbase",
203 "libnetdutils",
204 "libnetutils",
205 "libcutils",
206 "liblog",
207 "libutils",
208 "libbinder",
Jeongik Chab54ecec2019-10-15 17:06:59 +0900209 "dnsresolver_aidl_interface-cpp",
210 "netd_aidl_interface-cpp",
Luke Huangcfd04b22019-03-18 15:53:21 +0800211 ],
212 srcs: [
213 "ndc.cpp",
214 "UidRanges.cpp",
215 "NdcDispatcher.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_test {
223 name: "netd_unit_test",
224 defaults: ["netd_defaults"],
225 test_suites: ["device-tests"],
Bernie Innocenti83a67ca2019-06-19 16:28:05 +0900226 require_root: true,
Bernie Innocenti98951792018-06-26 17:13:44 +0900227 include_dirs: [
228 "system/netd/include",
229 "system/netd/server/binder",
230 "system/netd/tests",
Bernie Innocenti98951792018-06-26 17:13:44 +0900231 ],
232 srcs: [
233 "BandwidthControllerTest.cpp",
Lorenzo Colitti7ef8c0f2019-01-11 22:34:58 +0900234 "ClatdControllerTest.cpp",
Bernie Innocenti98951792018-06-26 17:13:44 +0900235 "ControllersTest.cpp",
236 "FirewallControllerTest.cpp",
237 "IdletimerControllerTest.cpp",
238 "InterfaceControllerTest.cpp",
239 "IptablesBaseTest.cpp",
240 "IptablesRestoreControllerTest.cpp",
241 "NFLogListenerTest.cpp",
Maciej Żenczykowskieec72082020-02-04 23:29:41 -0800242 "OffloadUtilsTest.cpp",
Bernie Innocenti98951792018-06-26 17:13:44 +0900243 "RouteControllerTest.cpp",
244 "SockDiagTest.cpp",
245 "StrictControllerTest.cpp",
246 "TetherControllerTest.cpp",
247 "TrafficControllerTest.cpp",
248 "XfrmControllerTest.cpp",
249 "WakeupControllerTest.cpp",
250 ],
251 static_libs: [
252 "libgmock",
253 "libnetd_server",
254 "libnetd_test_tun_interface",
Lorenzo Colitti3f52fae2019-06-27 18:46:22 +0900255 "libqtaguid",
Lorenzo Colittif0e051c2020-04-06 09:19:57 +0000256 "netd_aidl_interface-unstable-cpp",
Jeongik Chab54ecec2019-10-15 17:06:59 +0900257 "netd_event_listener_interface-cpp",
Bernie Innocenti98951792018-06-26 17:13:44 +0900258 ],
259 shared_libs: [
260 "libbase",
261 "libbinder",
Chenbo Fenga54aaf52018-11-07 17:51:51 -0800262 "libbpf_android",
Bernie Innocenti98951792018-06-26 17:13:44 +0900263 "libcrypto",
264 "libcutils",
265 "liblog",
Chenbo Fengd6104d12018-10-16 20:29:29 -0700266 "libnetdbpf",
Bernie Innocenti98951792018-06-26 17:13:44 +0900267 "libnetdutils",
268 "libnetutils",
Bernie Innocenti98951792018-06-26 17:13:44 +0900269 "libsysutils",
270 "libutils",
271 ],
272}