@@ -249,10 +249,41 @@ present in `fuchsia.net.interfaces/Watcher`,
249
249
` fuchsia.net.neighbor/EntryIterator ` , and a hypothetical
250
250
` fuchsia.net.routes/Watcher ` .
251
251
252
+ ## API compatibility with Netstack2
253
+
254
+ Netstack3 must be fully API compatible with Netstack2 and, when it comes the
255
+ time to transition to it, we must be able to drop it in the network realm
256
+ without any change to API clients.
257
+
258
+ ### Why?
259
+
260
+ A drop-in replacement means we can iteratively assert proper operation and
261
+ feature-completeness without carrying the burden of maintaining parallel client
262
+ implementations. Similarly, it decreases the cost of parallel test cases and
263
+ tooling. The shared test batteries also increase confidence since they run
264
+ against the production-ready Netstack2.
265
+
266
+ Furthermore, it allows an incremental approach to enabling Netstack3 in specific
267
+ product configurations, possibly accelerating real-world adoption before it is
268
+ at full parity with Netstack2.
269
+
270
+ ### How?
271
+
272
+ As Netstack3 progresses towards feature-completeness we will iteratively enable
273
+ [ FIDL integration] and [ POSIX] [ posix-tests ] tests. In the event we discover
274
+ shortcomings in the API surface, we * may* update existing APIs, but Netstack2's
275
+ implementation must be carried forward with it.
276
+
277
+ Note that ` inspect ` data is not considered part of the API surface and is not
278
+ part of this contract. Netstack3 is not expected to generate fully compatible
279
+ debugging or metrics information.
280
+
252
281
[ `fuchsia.net.interfaces/Watcher` ] : https://fuchsia.dev/reference/fidl/fuchsia.net.interfaces?hl=en#Watcher
253
282
[ DAD implementation ] : https://fuchsia-review.googlesource.com/c/fuchsia/+/648202
254
283
[ Originally in Netstack3 ] : https://cs.opensource.google/fuchsia/fuchsia/+/07b825aab40438237b2c47239786aae08c179139:src/connectivity/network/netstack3/
255
284
[ subnet-router anycast address ] : https://datatracker.ietf.org/doc/html/rfc4291#section-2.6.1
256
285
[ RFC 6724 Section 2.2 ] : https://datatracker.ietf.org/doc/html/rfc6724#section-2.2
257
286
[ RFC 6724 Section 5 ] : https://datatracker.ietf.org/doc/html/rfc6724#section-5
258
287
[ RFC 6724 Section 6 ] : https://datatracker.ietf.org/doc/html/rfc6724#section-6
288
+ [ FIDL integration ] : /src/connectivity/network/tests/fidl
289
+ [ posix-tests ] : /src/connectivity/network/tests/bsdsocket_test.cc
0 commit comments