On Fri, Aug 2, 2024 at 10:57 PM Niu Danny <danny...@hotmail.com> wrote: > BAND data corresponds to out-of-band data bit mask for > flags in `recv` and `send` calls, which in turn corresponds > to TCP Urgent packet bit,
On what OS and where is that documented? > and it's a (legacy) mechanism > for dealing with head-of-line blocking. It's used by Telnet > and FTP but not HTTP. Where is that specified? It sure looks to me that TCP OOB data matches the semantics in previous POSIX specs for the 'high-priority' data checked for with POLLPRI. (At most one high-priority data was permitted, and it was not subject to queuing/backpressure like the priority bands) That's how URG 'data' is reported on OpenBSD and is what is documented by the Linux manual project at https://man7.org/linux/man-pages/man2/poll.2.html Indeed, that page currently documents that the values I suggest be deprecated "convey no further information" on Linux. > Windows has fully specifies behavior regarding TCP URG bit, > OOB, and its own WSAPoll, which is a distant relative of ours. I can believe that. Can you point us to the part of those docs which you feel are relevant? What POLL* constant (or WSAPoll equivalent) do they use for reporting not-yet-reached TCP URG pointer? > Someone previously voiced their opinion that, since OOB is > specified as protocol-specific by POSIX, OOB and band data > cannot be portably used. Nonetheless, I believe the standard > should note its history, and recommend developers to consult > implementations' documents, as well as IETF RFCs if they > insist on using it. Last I checked, no IETF RFC provides any indication about poll() POLL* values to use. Do you know of one that does? I was careful in my request to suggest deprecation of the 'BAND' and 'NORM' values and *not* POLLPRI. Philip Guenther