xdp-for-windows icon indicating copy to clipboard operation
xdp-for-windows copied to clipboard

Define Linux compatibility goals

Open mtfriesen opened this issue 2 years ago • 3 comments

How do we support Linux apps? Lowest common denominator of Windows/Linux features? If Windows XDP adds a new feature, can we avoid divergence if Linux adds a similar feature later?

mtfriesen avatar Jul 13 '22 20:07 mtfriesen

This seems related to #13. Can we merge these two somehow?

nibanks avatar Jul 14 '22 14:07 nibanks

Certainly related. This is about defining our high level compatibility goals across the entire project - we shouldn't be specific about any particular API set here, whereas e.g. #13 is about AF_XDP and dives into details. Basically, a short statement of our philosophy of converging with Linux as much as possible, defining what our process should be when introducing a feature not yet supported by Linux, etc.

mtfriesen avatar Jul 14 '22 15:07 mtfriesen

The sockets philosophy on Windows is that cross-plat BSD sockets APIs are supported with the same syntax (and semantics as much as possible), and that WIndows-specific additions that have no cross-platform analogy are added with "WSA" in the name to avoid any future name conflicts if a standard version is added in the future.

I'd recommend XDP follow a similar philosophy here. I.e., use cross-platform APIs whenever they exist and for any Windows-only APIs use a special word or whatever that will never conflict over time.

dthaler avatar Jul 14 '22 16:07 dthaler