deceit operations for clans+chiefs.

Daniel Potts danielp at cse.unsw.edu.au
Sat May 1 07:33:32 CEST 1999


On Sat, 1 May 1999, Daniel Potts wrote:

> 
> 
> Assume task A is the chief of task B, which is the chief of task C, which
> is the chief of task D. ;-)
> 
> * Now, D does an ipc call to A. A successfully receives the message from D
> via the chiefs (C and B). 
> 
> * Now when A replies to this, the message first gets intercepted by B. 
> 
> * B sends a deceiting ipc to D with A as the virtual sender. This gets
> intercepted by C.
> 
> * C sends a deceiting ipc to D with A as the virtual sender. This step
> fails (?!) due to direction preservation not holding. That is when C 
> checks nchief on A it returns L4_NC_OUTER_CLAN, and nchief on D returns
> L4_NC_SAME_CLAN, which is not equal, and therefore not direction
> preserving.
> 
> Have I got this scenario correct? Assuming that each chief can obtain
> the virtual sender as part of it's ipc api. 

Whoops, I was wrong. Above I am returning incorrect values. nchief on D
should return INNER_CLAN, and we xor the result such that this ipc call
should work fine. The rules for checking the result of nchief for the
vsender and dthread: 

SAME  & INNER -> ok
OUTER & INNER -> ok  otherwise it will fail the direction preservation
test.

Daniel




More information about the l4-hackers mailing list