[Nsi-wg] new state machine
Tomohiro Kudoh
t.kudoh at aist.go.jp
Wed Feb 15 09:54:34 EST 2012
Hi Henrik,
Thank you for your comments and state machine proposal.
I've put my comment inline.
On Wed, 15 Feb 2012 11:24:34 +0100 (CET)
Henrik Thostrup Jensen <htj at nordu.net> wrote:
> Hi Tomohiro
>
> (long email, sorry).
>
> On Thu, 9 Feb 2012, Tomohiro Kudoh wrote:
>
> > Here is a slide of a new state machine.
>
> Thanks for making this.
>
> I am bit puzzled by the introduction of the auto-provisioning state, but I
> can see it being useful in places where there is an NRM which can do
> auto-start, and auto-provisioning representing that we are interacting
> with the NRM to set this up. If this is what you meant, I think it makes
> sense.
The "Auto Provisioning" is required to wait confirm messages sent back
from all the children.
> It is still not possible to release an auto-provisioned connection (i.e.,
> going back to reserved from auto-provision), which I think is needed. It
> will probably not be the most used feature, but since we have the ability
> to release a provisioned connection it should also be possible to stop an
> auto-provisioning from happening, which is currently not possible. If we
> introduce this and the auto-provisioning state, we will also need a state
> for when auto-provisioning is being cancelled.
OK. I added them.
> Event when a connection have been auto-provisioned it should still, IMHO,
> go through the provision state as this is when the hardware brings up the
> connection - it is not something that can be skipped. This would cause
> provisionConfirmed to be emitted twice, which is not what we want. The new
> state machine is also slightly inconsistent wrt. provisionConfirmed - in
> auto provision it is emitted when going into auto-provision (i.e., long
> before the hardware is activated), and in the non-auto-provision it is
> emitted when the hardware is activated. Could we consider introducing a
> new primitive, e.g., autoProvisionConfirmed or linkActivated which was
> emitted when the hardware is brought up. I know this somewhat breaks the
> nice symmetry of the model.
This is a matter of whether to separate data plane errors from NSI base
messages. At Baton Rouge, I have discussed with John and Chin, and we
thought it is better to separate them. i.e. prof.cf/rel.cf just mean
prov.rq/prov.cf have already been propagated to all the children.
I think we need to discuss this matter first.
> Finally: I have difficulty seperating the cleaning and terminating state,
> and they seem mostly equivalent for me, but I hadn't joined NSI at the
> time it was created, so can someone fill me in. I also not quite sure how
> to respond to a forcedEnd message.
> > I am not sure how we can handle prov.fl (and rel.fl) messages. Since
> > they are not related to data plane, they are almost fatal. Going back
> > to the previous state may not make sense. (In most cases, such .fl
> > message will not be sent back, but time out will happen).
>
> I think we have to realize that the current four primitives and associated
> responses doesn't cut it. These failures can be either fatal (as in: the
> connection is termianted), or non-fatal (as in: try again later and it
> might work). However this is not possible to express in the current
> provisionFailed / releaseFailed primitives. The protocol is designed such
> that the requester can expect the remote connection to be in a certain
> state when a one of these primitives are received, but that is not the
> case here. This is also the case with terminateFailed, which I don't think
> any of us really know how to handle :-).
>
> A solution is to use the forcedEnd for fatal events, and have
> provisionFailed / releaseFailed indicate a move back to scheduled -
> however then there is no need for a releaseFailed.
OK. I think I agree with you.
> I've attached a picture of the state machine as I envision it. There are
> probably still some things wrong with it, and it mostly as basis for
> future discussion :-).
>
Your state machine does not allow skew of prov.rq message delivery. If
prov.rq is sent by an ultimate RA just before the start_time, some NSA
will receive prov.rq before the start_time and some will do after the
start_time.
In the attached slide, slide 2 is a SM which supports release during
auto provisioning, but does not transit to the provisioning state in
auto-provision. Slide 3 is a SM which transits to the provisioned state
by using non-symmetrical messages.
(last two slides are the state machines in which release is not
supported)
> Best regards, Henrik
>
> Henrik Thostrup Jensen <htj at nordu.net>
> Software Developer, NORDUnet
Thanks,
Tomohiro
-------------- next part --------------
A non-text attachment was scrubbed...
Name: NSI-SM-Single-Diagram-Feb_15_2012.pdf
Type: application/octet-stream
Size: 132206 bytes
Desc: not available
URL: <http://www.ogf.org/pipermail/nsi-wg/attachments/20120215/4a36a524/attachment-0001.obj>
More information about the nsi-wg
mailing list