microsoft / xdp-for-windows

XDP speeds up networking on Windows
MIT License
363 stars 41 forks source link

Define Linux compatibility goals #50

Closed mtfriesen closed 1 year ago

mtfriesen commented 2 years ago

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?

nibanks commented 2 years ago

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

mtfriesen commented 2 years ago

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.

dthaler commented 2 years ago

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.