[Planetlab-devel] NM semantics

Stephen Soltesz soltesz at CS.Princeton.EDU
Mon Dec 3 14:49:29 EST 2007


The following is behavior that currently exists in NM, whether by design or not. 
   I would like to bring this to everyone's attention, because we may want to 
improve the interface or design before it gets accepted by convention.  And, I 
would like to solicit any feedback on the proposed changes below.

Currently, NM exports (among others) the following three calls:

  * Ticket(ticket)
  * Create(slice_name)
  * Destroy(slice_name)

The semantics of Create and Destroy are what you'd expect.  The semantics of 
Ticket() are that it takes a ticket, as generated by GetSliceTicket() from the 
PLCAPI, and both stores this ticket for future operations, as well as calling 
Create() on the slice that it represents.

I see two problems with this:

  1. NM is maintaining state that is already maintained by the controller.
  2. Create() shouldn't be called automatically by Ticket().

In response to 1) I don't immediately see why Ticket() is a necessary call at 
all.  Why not have Create take two arguments, both the ticket and the slice name 
to be created, or only the ticket if it contains all the relevant information?
Why is NM keeping a record of data that is returned by the next GetSlivers call 
anyway?

In response to 2) this just feels right.  Why have different operations combined 
into a single call?

Also, does anyone have any strong feelings about Create() and Destroy() being 
synchronous wrt the operations taken by the call?  As it is now, Create() 
returns before a user can log into the slice.  Afaik, the time is unbounded 
between the return and when the user can log in.

Thank you,
Stephen.



More information about the Devel mailing list