blob: 7c4f731754450c1578ed189c990fb6c80a69fc1a [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",
Bernie Innocenti37ceb532018-06-11 21:10:44 +090020 "XfrmController.cpp",
Chenbo Feng49586642018-08-30 18:01:53 -070021 "TrafficController.cpp",
Bernie Innocenti37ceb532018-06-11 21:10:44 +090022 ],
23}
24
Luke Huangcaebcbb2018-09-27 20:37:14 +080025aidl_interface {
26 name: "netd_aidl_interface",
27 local_include_dir: "binder",
28 srcs: [
Luke Huang03074eb2018-11-23 17:03:03 +080029 "binder/android/net/INetd.aidl",
Luke Huang528af602018-08-29 19:06:05 +080030 // AIDL interface that callers can implement to receive networking events from netd.
31 "binder/android/net/INetdUnsolicitedEventListener.aidl",
Luke Huang03074eb2018-11-23 17:03:03 +080032 "binder/android/net/InterfaceConfigurationParcel.aidl",
Chiachang Wang00fc62f2019-12-04 20:38:26 +080033 "binder/android/net/MarkMaskParcel.aidl",
Tyler Wearfa94a272019-12-05 15:01:48 -080034 "binder/android/net/RouteInfoParcel.aidl",
Chiachang Wang08cb2112019-12-10 09:53:24 +080035 "binder/android/net/TetherConfigParcel.aidl",
Lorenzo Colittif0e051c2020-04-06 09:19:57 +000036 "binder/android/net/TetherOffloadRuleParcel.aidl",
Luke Huangcaebcbb2018-09-27 20:37:14 +080037 "binder/android/net/TetherStatsParcel.aidl",
Luke Huang94658ac2018-10-18 19:35:12 +090038 "binder/android/net/UidRangeParcel.aidl",
Luke Huangcaebcbb2018-09-27 20:37:14 +080039 ],
Luke Huangf7782042018-08-08 13:13:04 +080040 backend: {
Xiao Ma33d562a2018-12-16 16:27:38 +090041 cpp: {
42 gen_log: true,
43 },
Luke Huang67649312020-04-01 01:17:42 +080044 java: {
45 apex_available: [
46 "com.android.bluetooth.updatable",
47 "com.android.wifi",
48 ],
49 },
Luke Huangf7782042018-08-08 13:13:04 +080050 },
Luke Huang00681282019-04-26 12:09:05 +080051 versions: [
52 "1",
53 "2",
Luke Huang29e5fdf2020-04-07 16:15:23 +000054 "3",
Luke Huang00681282019-04-26 12:09:05 +080055 ],
Luke Huangcaebcbb2018-09-27 20:37:14 +080056}
57
Luke Huang0e5e69d2019-03-06 15:42:38 +080058aidl_interface {
Luke Huang2ff8b342019-04-30 15:33:33 +080059 // This interface is for OEM calls to netd and vice versa that do not exist in AOSP.
60 // Those calls cannot be part of INetd.aidl and INetdUnsolicitedEventListener.aidl
61 // because those interfaces are versioned.
62 // These interfaces must never be versioned or OEMs will not be able to change them.
Luke Huang0e5e69d2019-03-06 15:42:38 +080063 name: "oemnetd_aidl_interface",
64 local_include_dir: "binder",
65 srcs: [
66 "binder/com/android/internal/net/IOemNetd.aidl",
Luke Huang2ff8b342019-04-30 15:33:33 +080067 "binder/com/android/internal/net/IOemNetdUnsolicitedEventListener.aidl",
Luke Huang0e5e69d2019-03-06 15:42:38 +080068 ],
69}
70
Bernie Innocenti98951792018-06-26 17:13:44 +090071// Modules common to both netd and netd_unit_test
72cc_library_static {
73 name: "libnetd_server",
74 defaults: ["netd_defaults"],
75 include_dirs: [
Bernie Innocenti98951792018-06-26 17:13:44 +090076 "system/netd/include",
77 "system/netd/server/binder",
78 ],
79 srcs: [
80 "BandwidthController.cpp",
Lorenzo Colitti7ef8c0f2019-01-11 22:34:58 +090081 "ClatdController.cpp",
Bernie Innocenti98951792018-06-26 17:13:44 +090082 "Controllers.cpp",
83 "NetdConstants.cpp",
84 "FirewallController.cpp",
85 "IdletimerController.cpp",
86 "InterfaceController.cpp",
87 "IptablesRestoreController.cpp",
88 "NFLogListener.cpp",
89 "NetlinkCommands.cpp",
90 "NetlinkListener.cpp",
91 "NetlinkManager.cpp",
Maciej Żenczykowskieec72082020-02-04 23:29:41 -080092 "OffloadUtils.cpp",
Bernie Innocenti98951792018-06-26 17:13:44 +090093 "RouteController.cpp",
94 "SockDiag.cpp",
95 "StrictController.cpp",
96 "TcpSocketMonitor.cpp",
97 "TetherController.cpp",
98 "TrafficController.cpp",
99 "UidRanges.cpp",
100 "WakeupController.cpp",
101 "XfrmController.cpp",
Bernie Innocenti98951792018-06-26 17:13:44 +0900102 ],
103 shared_libs: [
Chenbo Fenga54aaf52018-11-07 17:51:51 -0800104 "libbpf_android",
Bernie Innocenti98951792018-06-26 17:13:44 +0900105 "libbase",
106 "libbinder",
Chenbo Fengd6104d12018-10-16 20:29:29 -0700107 "libnetdbpf",
Bernie Innocenti98951792018-06-26 17:13:44 +0900108 "libnetutils",
109 "libnetdutils",
110 "libpcap",
111 "libqtaguid",
112 "libssl",
Lorenzo Colittif0e051c2020-04-06 09:19:57 +0000113 "netd_aidl_interface-unstable-cpp",
Jeongik Chab54ecec2019-10-15 17:06:59 +0900114 "netd_event_listener_interface-cpp",
Bernie Innocenti98951792018-06-26 17:13:44 +0900115 ],
116 aidl: {
117 export_aidl_headers: true,
118 local_include_dirs: ["binder"],
119 },
120}
121
122cc_binary {
123 name: "netd",
124 defaults: ["netd_defaults"],
125 include_dirs: [
Bernie Innocenti98951792018-06-26 17:13:44 +0900126 "external/mdnsresponder/mDNSShared",
127 "system/netd/include",
128 ],
129 init_rc: ["netd.rc"],
Maciej Żenczykowskif428d6e2020-02-19 10:26:35 -0800130 required: [
131 "bpfloader",
132 "clatd.o",
133 "netd.o",
134 "offload.o",
135 ],
Bernie Innocenti98951792018-06-26 17:13:44 +0900136 shared_libs: [
137 "android.system.net.netd@1.0",
138 "android.system.net.netd@1.1",
Bernie Innocentif89b3512018-08-30 07:34:37 +0900139 "libbase",
Bernie Innocenti98951792018-06-26 17:13:44 +0900140 "libbinder",
Chenbo Fenga54aaf52018-11-07 17:51:51 -0800141 "libbpf_android",
Bernie Innocenti98951792018-06-26 17:13:44 +0900142 "libcutils",
143 "libdl",
144 "libhidlbase",
Jeongik Cha0f750c22019-02-22 18:43:44 +0900145 "libjsoncpp",
Bernie Innocenti98951792018-06-26 17:13:44 +0900146 "liblog",
Bernie Innocenti98951792018-06-26 17:13:44 +0900147 "libmdnssd",
Jooyung Han3e64aa12019-11-27 15:36:29 +0900148 "libnetd_resolv",
Chenbo Fengd6104d12018-10-16 20:29:29 -0700149 "libnetdbpf",
Bernie Innocenti98951792018-06-26 17:13:44 +0900150 "libnetdutils",
Bernie Innocentif89b3512018-08-30 07:34:37 +0900151 "libnetutils",
Bernie Innocenti98951792018-06-26 17:13:44 +0900152 "libpcap",
Suren Baghdasaryane072a3c2019-01-16 14:36:07 -0800153 "libprocessgroup",
Bernie Innocenti98951792018-06-26 17:13:44 +0900154 "libqtaguid",
155 "libselinux",
Bernie Innocenti98951792018-06-26 17:13:44 +0900156 "libsysutils",
Bernie Innocenti98951792018-06-26 17:13:44 +0900157 "libutils",
Luke Huang29e5fdf2020-04-07 16:15:23 +0000158 "netd_aidl_interface-cpp",
Jeongik Chab54ecec2019-10-15 17:06:59 +0900159 "netd_event_listener_interface-cpp",
Luke Huang0e5e69d2019-03-06 15:42:38 +0800160 "oemnetd_aidl_interface-cpp",
Bernie Innocenti98951792018-06-26 17:13:44 +0900161 ],
162 static_libs: [
163 "libnetd_server",
Bernie Innocenti98951792018-06-26 17:13:44 +0900164 ],
165 srcs: [
Bernie Innocenti98951792018-06-26 17:13:44 +0900166 "DummyNetwork.cpp",
Bernie Innocenti98951792018-06-26 17:13:44 +0900167 "EventReporter.cpp",
168 "FwmarkServer.cpp",
169 "LocalNetwork.cpp",
170 "MDnsSdListener.cpp",
171 "NetdCommand.cpp",
172 "NetdHwService.cpp",
173 "NetdNativeService.cpp",
174 "NetlinkHandler.cpp",
175 "Network.cpp",
176 "NetworkController.cpp",
Luke Huang0e5e69d2019-03-06 15:42:38 +0800177 "OemNetdListener.cpp",
Bernie Innocenti98951792018-06-26 17:13:44 +0900178 "PhysicalNetwork.cpp",
179 "PppController.cpp",
180 "Process.cpp",
Bernie Innocenti98951792018-06-26 17:13:44 +0900181 "VirtualNetwork.cpp",
182 "main.cpp",
183 "oem_iptables_hook.cpp",
184 ],
Ken Chen2e413c32020-01-13 11:59:53 +0800185 sanitize: {
186 cfi: true,
Ken Chen2e413c32020-01-13 11:59:53 +0800187 },
Bernie Innocenti98951792018-06-26 17:13:44 +0900188}
189
190cc_binary {
191 name: "ndc",
192 defaults: ["netd_defaults"],
Luke Huangcfd04b22019-03-18 15:53:21 +0800193 include_dirs: [
194 "system/netd/include",
195 ],
196 header_libs: [
197 "libnetd_client_headers",
198 ],
199 shared_libs: [
200 "libbase",
201 "libnetdutils",
202 "libnetutils",
203 "libcutils",
204 "liblog",
205 "libutils",
206 "libbinder",
Jeongik Chab54ecec2019-10-15 17:06:59 +0900207 "dnsresolver_aidl_interface-cpp",
208 "netd_aidl_interface-cpp",
Luke Huangcfd04b22019-03-18 15:53:21 +0800209 ],
210 srcs: [
211 "ndc.cpp",
212 "UidRanges.cpp",
213 "NdcDispatcher.cpp",
214 ],
Ken Chen2e413c32020-01-13 11:59:53 +0800215 sanitize: {
216 cfi: true,
Ken Chen2e413c32020-01-13 11:59:53 +0800217 },
Bernie Innocenti98951792018-06-26 17:13:44 +0900218}
219
220cc_test {
221 name: "netd_unit_test",
222 defaults: ["netd_defaults"],
223 test_suites: ["device-tests"],
Bernie Innocenti83a67ca2019-06-19 16:28:05 +0900224 require_root: true,
Bernie Innocenti98951792018-06-26 17:13:44 +0900225 include_dirs: [
226 "system/netd/include",
227 "system/netd/server/binder",
228 "system/netd/tests",
Bernie Innocenti98951792018-06-26 17:13:44 +0900229 ],
230 srcs: [
231 "BandwidthControllerTest.cpp",
Lorenzo Colitti7ef8c0f2019-01-11 22:34:58 +0900232 "ClatdControllerTest.cpp",
Bernie Innocenti98951792018-06-26 17:13:44 +0900233 "ControllersTest.cpp",
234 "FirewallControllerTest.cpp",
235 "IdletimerControllerTest.cpp",
236 "InterfaceControllerTest.cpp",
237 "IptablesBaseTest.cpp",
238 "IptablesRestoreControllerTest.cpp",
239 "NFLogListenerTest.cpp",
Maciej Żenczykowskieec72082020-02-04 23:29:41 -0800240 "OffloadUtilsTest.cpp",
Bernie Innocenti98951792018-06-26 17:13:44 +0900241 "RouteControllerTest.cpp",
242 "SockDiagTest.cpp",
243 "StrictControllerTest.cpp",
244 "TetherControllerTest.cpp",
245 "TrafficControllerTest.cpp",
246 "XfrmControllerTest.cpp",
247 "WakeupControllerTest.cpp",
248 ],
249 static_libs: [
250 "libgmock",
251 "libnetd_server",
252 "libnetd_test_tun_interface",
Lorenzo Colitti3f52fae2019-06-27 18:46:22 +0900253 "libqtaguid",
Lorenzo Colittif0e051c2020-04-06 09:19:57 +0000254 "netd_aidl_interface-unstable-cpp",
Jeongik Chab54ecec2019-10-15 17:06:59 +0900255 "netd_event_listener_interface-cpp",
Bernie Innocenti98951792018-06-26 17:13:44 +0900256 ],
257 shared_libs: [
258 "libbase",
259 "libbinder",
Chenbo Fenga54aaf52018-11-07 17:51:51 -0800260 "libbpf_android",
Bernie Innocenti98951792018-06-26 17:13:44 +0900261 "libcrypto",
262 "libcutils",
263 "liblog",
Chenbo Fengd6104d12018-10-16 20:29:29 -0700264 "libnetdbpf",
Bernie Innocenti98951792018-06-26 17:13:44 +0900265 "libnetdutils",
266 "libnetutils",
Bernie Innocenti98951792018-06-26 17:13:44 +0900267 "libsysutils",
268 "libutils",
269 ],
270}