https://bugzilla.mindrot.org/show_bug.cgi?id=1964
--- Comment #5 from Philip Prindeville <[email protected]> 2012-02-25 13:55:06 EST --- (In reply to comment #4) > So it looks as if your #defines do not actually specify the hex value > of the DSCP classes, but they define the hex value shifted left by two > bits. For instance, cs1 is 0x08 in the RFC, but you store 0x20, which > is <<2. They follow the notation that's present in /usr/include/netinet/ip.h which has been present for 20 years. It's a POSIX standard. > This is all good and well and an implementation detail, really, but I > think the problem is that when someone specifies IPQoS=0x08, they > expect the same behaviour as if they specfied "cs1". However, 0x08 is > used directly without shifting, and so OpenSSH interprets it as 0x02, > which is undefined. Well, hopefully that person is acquainted with the BSD Sockets source code and it will all look very familiar to him. > What is the reason that #defines specify shifted values instead of the > standard values, making the shift happen explicitly later? Precedent and compatibility with existing source. If you look at "defines.h", it says: #include <netinet/ip.h> ... #ifndef IPTOS_DSCP_AF11 i.e. it can get the definition from netinet/ip.h (and it's recent enough to contain my patches to glibc 2.12). If those definitions aren't present, then it #define's then to duplicate names and values. The openssh sources don't do anything that isn't exactly the same as what's done in FreeBSD, Linux, QNX, HP-UX, Solaris, etc. I'm really not sure what the issue is here, other than we're trying too hard to be compatible. -- Configure bugmail: https://bugzilla.mindrot.org/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are watching the assignee of the bug. You are watching someone on the CC list of the bug. _______________________________________________ openssh-bugs mailing list [email protected] https://lists.mindrot.org/mailman/listinfo/openssh-bugs
