JavaScript is required to for searching.
Skip Navigation Links
Exit Print View
Remote Administration Daemon Developer Guide     Oracle Solaris 11.1 Information Library
search filter icon
search icon

Document Information

Preface

1.  Introduction

2.  Concepts

3.  Abstract Data Representation

4.  libadr

5.  Client Libraries

6.  Module Development

7.  rad Best Practices

A.  rad Binary Protocol

Overview

Common Data Formats

Operations

Errors

Time

Object Names

ADR Data

ADR types

Interface Definitions

Connection Initialization

Messages

Operations

INVOKE Operation

GETATTR Operation

SETATTR Operation

LOOKUP Operation

DEFINE Operation

LIST Operation

SUB and UNSUB Operations

Connection Initialization

Once a connection has been established between a client and server, a short synchronous handshake initiates the rad protocol. The server begins by sending a SERVER-HELLO message. This message specifies the minimum and maximum protocol versions (inclusive) recognized by the server.

Table A-33 SERVER-HELLO

Field Name
Length
Type
Description
protocol
3
string[3]
“RAD”
min_ver
4
int
Minimum supported version
max_ver
4
int
Maximum supported version

The client then replies with a CLIENT-HELLO message specifying the version it wishes to use. This version may not be less than the server's minimum version or greater than the server's maximum version.

Table A-34 CLIENT-HELLO

Field Name
Length
Type
Description
protocol
3
string[3]
“RAD”
version
4
int
Client-selected version
locale
Varies
string<256>
Client locale

Part of the rad protocol is the communication of structured error data on request failures. For consistency with the object-specific errors that server-side objects are permitted to return, the errors returned by rad when requests fail for other reasons are also defined using ADR. After the server receives and accepts a CLIENT-HELLO message, it replies with ERRORS to communicate those type definitions.

Table A-35 ERRORS

Field Name
Length
Type
Description
error_space
Varies
TYPESPACE
Typespace containing error types
errors
Varies
TYPEREF<>
Error types, starting with EC-NOMEM

The TYPEREFs refer to the types defined in the error_space TYPESPACE. The types define the first error_count errors, starting from the first non object-specific error, EC-NOMEM. Any errors for which types are not defined have type void.

At this point, the handshake is complete and normal client-server communication can occur.