Encoding

Most repo commands and status reports are Data packets whose Content contains RepoCommandParam or RepoCommandRes structure. These Data are issued via Pub-Sub protocol. Each RepoCommandParam and RepoCommandRes contains multiple ObjParam and ObjStatus, resp.

Current protocol does not support compatibility among different versions. All TLV-TYPE numbers are critical.

These structures are defined as follows:

ObjParam =
    Name
    [ForwardingHint]
    [StartBlockId]
    [EndBlockId]
    [RegisterPrefix]

SyncParam =
    SyncPrefix
    [RegisterPrefix]
    [DataNameDedupe]
    [Reset]

ObjStatus =
    Name
    StatusCode
    [InsertNum]
    [DeleteNum]

SyncStatus =
    Name
    StatusCode

RepoCommandParam =
    0* (OBJECT-PARAM-TYPE TLV-LENGTH ObjParam)
    0* (SYNC-PARAM-TYPE TLV-LENGTH SyncParam)

RepoCommandRes =
    StatusCode
    0* (OBJECT-RESULT-TYPE TLV-LENGTH ObjStatus)
    0* (SYNC-RESULT-TYPE TLV-LENGTH SyncStatus)

RepoStatQuery =
    RequestNo

ForwardingHint = FORWARDING-HINT-TYPE TLV-LENGTH Name

StartBlockId = START-BLOCK-ID-TYPE TLV-LENGTH NonNegativeInteger

EndBlockId = END-BLOCK-ID-TYPE TLV-LENGTH NonNegativeInteger

RegisterPrefix = REGISTER-PREFIX-TYPE TLV-LENGTH Name

SyncPrefix = SYNC-PREFIX-TYPE TLV-LENGTH Name

DataNameDedupe = SYNC-DATA-NAME-DEDUPE-TYPE TLV-LENGTH ; TLV-LENGTH = 0

Reset = SYNC-RESET-TYPE TLV-LENGTH ; TLV-LENGTH = 0

StatusCode = STATUS-CODE-TYPE TLV-LENGTH NonNegativeInteger

InsertNum = INSERT-NUM-TYPE TLV-LENGTH NonNegativeInteger

DeleteNum = DELETE-NUM-TYPE TLV-LENGTH NonNegativeInteger

RequestNo = REQUEST-NO-TYPE TLV-LENGTH 1*OCTET

The type number assignments are as follows:

type

Assigned number (decimal)

Assigned number (hexadecimal)

START-BLOCK-ID-TYPE

204

0xCC

END-BLOCK-ID-TYPE

205

0xCD

REQUEST-NO-TYPE

206

0xCE

STATUS-CODE-TYPE

208

0xD0

INSERT-NUM-TYPE

209

0xD1

DELETE-NUM-TYPE

210

0xD2

FORWARDING-HINT-TYPE

211

0xD3

REGISTER-PREFIX-TYPE

212

0xD4

OBJECT-PARAM-TYPE

301

0x12D

OBJECT-RESULT-TYPE

302

0x12E

SYNC-PARAM-TYPE

401

0x191

SYNC-RESULT-TYPE

402

0x192

SYNC-DATA-NAME-DEDUPE-TYPE

403

0x193

SYNC-RESET-TYPE

404

0x194

SYNC-PREFIX-TYPE

405

0x195

Status Code Definition

The status codes are defined as follows:

Code name

Value

Explanation

ROGER

100

Command received but not been executed yet

COMPLETED

200

Command completed

IN-PROGRESS

300

Command working in progress

FAILED

400

Command or parts of it failed

MALFORMED

403

Command is malformed

NOT-FOUND

404

Queried command not found