Skip to content

Add business QoS configuration for URMA - #93

Open
Spicy-cream wants to merge 10 commits into
feature/rdma-runtime-recoveryfrom
feature/rdma-business-qos
Open

Spicy-cream wants to merge 10 commits into
feature/rdma-runtime-recoveryfrom
feature/rdma-business-qos

Conversation

@Spicy-cream

@Spicy-cream Spicy-cream commented Oct 27, 2026 •

Copy link
Copy Markdown

What problem does this PR solve?

URMA selects a process-wide Jetty priority. Applications need independent outgoing QoS settings for each business channel and server.

Based on PR92, synchronized with Apache master at 2a3a186. Merge PR92 first; this PR contains the URMA QoS increment.

What is changed and the side effects?

  • Add ChannelOptions and ServerOptions settings for request and response SL 0–255 and priority 0–15; -1 selects automatic behavior.
  • Resolve SL through the selected CTP/RTP device mapping. Reject unsupported, conflicting or out-of-range settings during Channel initialization or Server startup, with supported priority:SL pairs in diagnostics.
  • Include QoS in connection signatures and propagate it through naming services, accepted sockets and rebuilt Jettys. Use prepared Jettys only when their priority matches.
  • Propagate QoS through the upstream GetSubSocketOptions() helper so pooled/short children retain QoS alongside keepalive, TCP user timeout and bthread tag settings.
  • Expose requested/effective attributes in diagnostics and examples, and add independent QoS, child-option and connection-lifecycle regressions.

Different configurations use separate connections and Jetty resources. Defaults retain automatic URMA selection. Existing v2/v3 wire formats remain compatible.

Validation

  • The URMA mock workflow's configure/build/test commands pass locally with RDMA disabled and URMA enabled: 21 regression groups passed, including the inherited 8 server-SEND recovery cases.
  • A new regression verifies QoS, keepalive snapshots, TCP user timeout and bthread tag propagation to both pooled and short sockets. All 3 existing community Socket option tests also passed; their sources remain unchanged.
  • URMA-only sources and public headers with transports disabled passed C++14 compilation checks.
  • Prior lifecycle regressions cover small-pool v2/v3 short connections and request SL 4/response SL 2 across TCP cooldown and fresh URMA connections.
  • Prior URMA RM/RTP hardware runs passed all 12 event/polling, v2/v3 and auto/SL/SL-plus-priority RPC cases, plus all 6 client/server configuration rejection cases. A live server connection reported ESTABLISHED with effective priority 2 and SL 2.

Check List

  • Build the library and run URMA regressions with mock CI.
  • Add independent tests, preserve community UT sources and update documentation.
  • Follow four-space indentation and C++ nullptr conventions.

@Spicy-cream Spicy-cream changed the title Add per-channel RDMA SL and Traffic Class configuration Add business QoS configuration for RDMA and URMA Oct 28, 2026
@Spicy-cream
Spicy-cream changed the base branch from master to feature/rdma-runtime-recovery October 31, 2026 11:26
@Spicy-cream Spicy-cream changed the title Add business QoS configuration for RDMA and URMA Add business QoS configuration for URMA Nov 2, 2026
@Spicy-cream
Spicy-cream marked this pull request as ready for review November 2, 2026 07:06
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant