MCCIProtocolTestCases

Toby Schneider edited this page May 26, 2016 · 5 revisions

MCCI: Protocol Test Cases

These test cases describe (and verify) the basic wire protocol of MCCI.

The cases will consider the following topology:

These components will be abbreviated C1, S1, and C2. All cases assume a fresh launch of the server -- no order of test cases is implied. The server is configured to be at a Node Address of 5.

At this stage, packets have fairly contrived names.

Connecting and Handshaking

TBD

Publishing Data

Experimentally, we assume there is a special message that can be used to ask the server what the latest revision of a particular variable is. This is different than requesting the latest of a given variable since the server only retains local data and we desire the freedom to ask about ANY variable known to the server, local or remote.

Un-acked

Response ID of zero is a special value indicating no response is desired.

Client1 to Server1:

[Table not converted]

Server1: ( No response )

Client2 to Server1: "get me the latest known revision number of variable 37 from local server (0)"

[Table not converted]

Server1 to Client2:

[Table not converted]

Acked

Client1 to Server1:

[Table not converted]

Server1:

[Table not converted]

Client2 to Server1: "get me the latest known revision number of variable 33 from local server (0)"

[Table not converted]

Server1 to Client2:

[Table not converted]

Requesting Data

Data Available, Request exact

Client1 to Server1:

[Table not converted]

Client2 to Server1:

[Table not converted]

Server1 to Client2:

[Table not converted]

Data Available, Request Latest

Client1 to Server1:

[Table not converted]

Client2 to Server1:

[Table not converted]

Server1 to Client2:

[Table not converted]

Data Unavailable, Request Exact

Note that the clients' ability to accept requests (forwarded from the server) should be implemented as publish/subscribe -- the clients subscribe to the types of requests that they can actually fulfill. In other words, Server1's request packet that is sent to the clients is only conceptual.

Client2 to Server1:

[Table not converted]

Server1 to Client1, Client2

[Table not converted]

Client1, Client2: no response.

Wait 10 seconds.

Client1 to Server1:

[Table not converted]

Server1 to Client2:

[Table not converted]

You can’t perform that action at this time.
You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session.
Press h to open a hovercard with more details.