Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
deal with short eager messages in a better way
[simgrid.git] / SPEC
1 Here are some elements of specification of the GRAS protocol. It is not 
2 supposed to have several implementations, but once version 1 will be out,
3 all versions of GRAS are supposed to be able to communicate with previous
4 ones.
5
6 All messages have an header and a payload. Here is the header format,
7 considering it as an array of chars.
8
9 HEADER: Transport layer
10 msg[0...3]: the string 'GRAS'
11 msg[4]: protocol version (currently '0')
12
13 HEADER: Messaging layer
14
15 msg[5]: discriminent = Archi & msg type & Flags
16         D & 248 << 3 : archi (datasize, alignment, endianess) of message emitter
17                        (32 possibles; 5 known so far)
18         D & 7 : Type of message:
19           0: one-way message
20           1: method call (answer expected)
21           
22           2: successful return (usual datatype attached as payload)
23           3: error return (payload = remoterr)
24           
25           4..7: idem, with group communication (ask for forward)
26                 list of receivers (and path for answer) placed before the
27                 payload 
28
29 msg[6..8]: message serial (for answers; omitted for one-ways)
30            short in binary encoding (loop every 65536)
31 msg[9..]: message name (string in the binary encoding)
32
33 PAYLOAD: in the binary encoding
34