Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Proposition of protocol reorganisation to handle RPC more cleanly
[simgrid.git] / SPEC
diff --git a/SPEC b/SPEC
new file mode 100644 (file)
index 0000000..7b7c169
--- /dev/null
+++ b/SPEC
@@ -0,0 +1,31 @@
+Here are some elements of specification of the GRAS protocol. It is not
+supposed to have several implementations, but once version 1 will be out,
+all versions of GRAS are supposed to be able to communicate with previous
+ones.
+
+All messages have an header and a payload. Here is the header format,
+considering it as an array of chars.
+
+HEADER: Transport layer
+msg[0...3]: the string 'GRAS'
+msg[4]: protocol version (currently '0')
+
+HEADER: Messaging layer
+
+msg[5]: discriminent = Archi & msg type & Flags
+       D & 248 << 3 : archi (datasize, alignment, endianess) of message emitter
+                      (32 possibles; 5 known so far)
+        D & 7 : Type of message:
+          0: one-way message
+          1: method call (answer expected)
+         
+         2: successful return (usual datatype attached as payload)
+         3: error return (payload = remoterr)
+         4..7: reserved.
+
+msg[6..8]: message serial (for answers; omitted for one-ways)
+           short in binary encoding (loop every 65536)
+msg[9..]: message name (string in the binary encoding)
+
+PAYLOAD: in the binary encoding
+