Skip to content

Commit ca4be0c

Browse files
committed
initial REQUEST_CHANNEL specification
1 parent 55b5e9f commit ca4be0c

File tree

1 file changed

+58
-2
lines changed

1 file changed

+58
-2
lines changed

Protocol.md

Lines changed: 58 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -363,7 +363,7 @@ Frame Contents
363363
0 1 2 3
364364
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
365365
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
366-
|R| Frame Length (for TCP only) |
366+
|R| Frame Length (For TCP Only) |
367367
+---------------+-+-+-----------+-------------------------------+
368368
| Version |0|M| Flags | Frame Type = REQUEST_SUB |
369369
+---------------+-+-+-----------+-------------------------------+
@@ -378,9 +378,38 @@ Frame Contents
378378

379379
* __Flags__:
380380
* (__M__)etadata: Metdadata present
381-
* __Request Data__: identification of the service being requested along with parameters for the request.
381+
* __Request Data__: idientification of the service being requested along with parameters for the request.
382382
* __Initial Request N__: initial request N value for subscription.
383383

384+
### Request Channel Frame
385+
386+
Frame Contents
387+
388+
```
389+
0 1 2 3
390+
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
391+
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
392+
|R| Frame Length (For TCP Only) |
393+
+---------------+-+-+-+-+-+-----+-------------------------------+
394+
| Version |0|M|F|C|N| | Frame Type = REQUEST_CHANNEL |
395+
+---------------+-+-+-+-+-+-----+-------------------------------+
396+
| Stream Id |
397+
| |
398+
+---------------------------------------------------------------+
399+
| Initial Request N (only if N bit set) |
400+
| |
401+
+---------------------------------------------------------------+
402+
Metadata & Request Data
403+
```
404+
405+
* __Flags__:
406+
* (__M__)etadata: Metdadata present
407+
* (__F__)ollows: More fragments follow this fragment.
408+
* (__C__)omplete: bit to indicate COMPLETE.
409+
* (__N__): Is Initial Request N present or not
410+
* __Request Data__: idientification of the service being requested along with parameters for the request.
411+
* __Initial Request N__: initial request N value for channel.
412+
384413
### Request N Frame
385414

386415
Frame Contents
@@ -713,6 +742,33 @@ Upon receiving a ERROR, the stream is terminated on the Requester.
713742

714743
Upon sending a ERROR, the stream is terminated on the Responder.
715744

745+
### Request Channel
746+
747+
1. RQ -> RS: REQUEST_CHANNEL* intermixed with
748+
1. RS -> RQ: RESPONSE*
749+
1. RS -> RQ: COMPLETE | ERROR
750+
751+
or
752+
753+
1. RQ -> RS: REQUEST_CHANNEL* intermixed with
754+
1. RS -> RQ: RESPONSE*
755+
1. RQ -> RS: CANCEL
756+
757+
At any time, a Requester may send REQUEST_CHANNEL frames with F bit set to indicate fragmentation.
758+
759+
At any time, a Requester may send REQUEST_N frames.
760+
761+
A Requester may indicate end of REQUEST_CHANNEL frames by setting the C bit. A Requester MUST NOT
762+
send any additional REQUEST_CHANNEL frames after sending a frame with the C bit set.
763+
764+
Upon receiving a CANCEL, the stream is terminated on the Responder.
765+
766+
Upon sending a CANCEL, the stream is terminated on the Requester.
767+
768+
Upon receiving a COMPLETE or ERROR, the stream is terminated on the Requester.
769+
770+
Upon sending a COMPLETE or ERROR, the stream is terminated on the Responder.
771+
716772
### Per Stream State
717773

718774
#### Requester

0 commit comments

Comments
 (0)