RDS applications make use of tos to classify database traffic. This feature has been used in shipping products from 2.6.32 based kernels. Its tied with RDS v4.1 protocol version and the compatibility gets negotiated as part of connections setup.
Patchset keeps full backward compatibility using existing connection negotiation scheme. Currently the feature is exploited by RDMA transport and for TCP transport the user tos values are mapped to same default class (0). For RDMA transports, RDMA CM service type API is used to set up different SL(service lanes) and the IB fabric is configured for tos mapping using Subnet Manager(SL to VL mappings). Similarly for ROCE fabric, user priority is mapped with different DSCP code points which are associated with different switch queues in the fabric. The original code was developed by Bang Nguyen in downstream kernel back in 2.6.32 kernel days and it has evolved significantly over period of time. Thanks to Yanjun for doing testing with various combinations of host like v3.1<->v4.1, v4.1.<->v3.1, v4.1 upstream to shipping v4.1 etc etc Patchset is also available on below git tree. The following changes since commit cc7335786f7278d66bdcf96d3d411edfcb01be51: socket: fix for Add SO_TIMESTAMP[NS]_NEW (2019-02-03 20:36:11 -0800) are available in the git repository at: git://git.kernel.org/pub/scm/linux/kernel/git/ssantosh/linux.git for_net-next-5.1/rds-tos-v4 for you to fetch changes up to fd261ce6a30e01ad67c416e2c67e263024b3a6f9: rds: rdma: update rdma transport for tos (2019-02-04 14:59:13 -0800) ---------------------------------------------------------------- Santosh Shilimkar (5): rds: make v3.1 as compat version rds: rdma: add consumer reject rds: add type of service(tos) infrastructure rds: add transport specific tos_map hook rds: rdma: update rdma transport for tos include/uapi/linux/rds.h | 11 ++++++++ net/rds/af_rds.c | 37 ++++++++++++++++++++++++- net/rds/connection.c | 21 ++++++++------ net/rds/ib.c | 11 ++++++++ net/rds/ib.h | 4 ++- net/rds/ib_cm.c | 72 +++++++++++++++++++++++++++--------------------- net/rds/ib_recv.c | 4 +-- net/rds/ib_send.c | 5 ++-- net/rds/rdma_transport.c | 14 ++++++++++ net/rds/rdma_transport.h | 6 ++++ net/rds/rds.h | 14 ++++++++-- net/rds/recv.c | 1 + net/rds/send.c | 7 +++-- net/rds/tcp.c | 8 ++++++ net/rds/tcp_listen.c | 2 +- net/rds/threads.c | 1 + 16 files changed, 166 insertions(+), 52 deletions(-) -- 1.9.1