DRD Server Get — Group 16, Code 150

Open read of one or many server-role descriptors stored by DRD Server Post.

Quick reference

Command Group16 (DRD)
Command Code150
Server functioncmd_drd_server_get
Header versionHV=2 only (HV=1 returns 219)
AccessOpen read (no identity block in body)
TransportSingle-row selectors fit UDP; large listings may require TCP (218)
IdempotentYes

Request body

OffsetSizeFieldDescription
01role0..4 for one role, or 0xFF for all roles.
11selector0x00 all rows, 0x01 one row by dn+sn, 0x02 one RAIDA by raida_id.
2...varselector payload0x00: none; 0x01: dn(1)+sn(4); 0x02: raida_id(1).

Response body

Body starts with count (2-byte BE), followed by that many records.

FieldSizeDescription
count2Number of returned records. 0 is valid success.
recordvariablerole(1), dn(1), sn(4), created_at(8), updated_at(8), last_seen_at(8), field_count(2), TLVs.

Selector semantics

  • role=0xFF is valid only with selector 0x00; otherwise 198.
  • Selector 0x02 is valid only when role is RAIDA (0) and raida_id is 0..24.
  • Selector miss returns 193 (ERROR_NO_ENTRY).
  • All-rows result is capped by server-side list maximum (DRD_SERVER_LIST_MAX).
  • On UDP, oversized listings return 218 and must be retried over TCP.

Status codes

CodeSymbolMeaning
250STATUS_SUCCESSRead succeeded (including count=0).
16ERROR_INVALID_PACKET_LENGTHMalformed body length for selected selector.
36ERROR_EMPTY_REQUESTBody missing.
193ERROR_NO_ENTRYRequested row or slot does not exist.
198ERROR_INVALID_PARAMETERInvalid role/selector combination or bad selector argument.
218ERROR_TCP_REQUIREDUDP response exceeded one datagram budget.
219ERROR_UNSUPPORTED_PROTOCOLCommand 150 sent as HV=1.
252ERROR_INTERNALStorage-layer failure.
254ERROR_MEMORY_ALLOCAllocation failure while building response.