Subject: Session Deletion

From: Tanya Shastri <[email-masked]>
Date: Wed, 23 Feb 2005 10:56:55 -0800

Hi,

Session deletion has not been mentioned explicitly in the draft.

It is not clear to me whether Admin Down could be used for deletion.
So I am not sure which of the following is correct:
- Admin down should be treated as a transitionary state during session
   deletion (Putting a session in Admin Down leads to it being deleted).
- Admin down is a state that a session may be held in.

If Admin down is to be treated as a temporary state then the draft could
include a description on how to transition out of AdminDown state to
complete deletion of the session.
"TABLE 1" below should be valid i.e. Transition out of Admin Down state
or receiving IHY=0 from the other end or on Timer Expiry.

Possible events are: Create, IHY=0, IHY=1, GoAdminDown(Delete), GoAdminUp
TABLE 1: Finite State Machine Transition from Old State to New State,
on the above events. (Interesting cells have a *).
---------------------------------------------------------------------
New state -> |Deleted | Init  | Failing | Down   | UP    | AdminDown|
              |(session|       |         |        |       |          |
Old state    |does not|       |         |        |       |          |
    |         |exist)  |       |         |        |       |          |
    v         |        |       |         |        |       |          |
---------------------------------------------------------------------
Deleted      |        |       | Create  |        |       |          |
(adj does    |        |       |         |        |       |          |
not exist)   |        |       |         |        |       |          |
---------------------------------------------------------------------
Init         |        | IHY=0 |TimerExp |        | IHY=1 | GoAdminDn|
---------------------------------------------------------------------
Failing      |        |       | Create  | IHY=0  |       | GoAdminDn|
              |        |       | IHY=1   |        |       |          |
---------------------------------------------------------------------
Down         |        | IHY=0 |         |        | IHY=1 | GoAdminDn|
---------------------------------------------------------------------
Up           |        |       | IHY=0   |        | IHY=1 | GoAdminDn|
              |        |       | TimerExp|        |       |          |
---------------------------------------------------------------------
AdminDown    |* IHY=0 |       |GoAdminUp|        |       |          |
              |TimerExp|       |         |        |       | IHY=1    |
--------------------------------------------------------------------|

If Admin down is to be treated as a state that a session may be held in
(not just to transition to deleted state) then an extra state may be
needed (Deleting) as shown in the state transition table below.
A session in deleting state could behave similiar to if it were in
AdminDown state (i.e. the diagnostic code could be set to Admin Down
in outgoing BFD control packets).

Possible events are: Create, IHY=0, IHY=1, Delete, GoAdminUp,
                      GoAdminDown(GoAdDn)
TABLE 2: Finite State Machine Transition from Old State to New State.
-----------------------------------------------------------------------|
New state->|Deleted | Init| Failing | Down   | UP    | Deleting | AdDn |
            |(session|     |         |        |       |          |      |
Old state  |does not|     |         |        |       |          |      |
    |       |exist)  |     |         |        |       |          |      |
    v       |        |     |         |        |       |          |      |
-----------------------------------------------------------------------|
Deleted    |        |     | Create  |        |       |          |GoAdDn|
(adj does  |        |     |         |        |       |          |      |
not exist) |        |     |         |        |       |          |      |
-----------------------------------------------------------------------|
Init       | Delete |IHY=0|TimerExp |        | IHY=1 |          |GoAdDn|
-----------------------------------------------------------------------|
Failing    |        |     | Create  | IHY=0  |       | Delete   |GoAdDn|
            |        |     | IHY=1   |        |       |          |      |
-----------------------------------------------------------------------|
Down       | Delete |IHY=0|         |        | IHY=1 |          |GoAdDn|
-----------------------------------------------------------------------|
Up         |        |     | IHY=0   |        | IHY=1 | Delete   |GoAdDn|
            |        |     | TimerExp|        |       |          |      |
-----------------------------------------------------------------------|
Deleting   |* IHY=0 |     |* Create |        |       |* IHY=1   |      |
            |TimerExp|     |         |        |       | GoAdminDn|      |
-----------------------------------------------------------------------|
AdminDown  |        |     |GoAdminUp|        |       |* Delete  |GoAdDn|
-----------------------------------------------------------------------|

Please clarify deletion of a session and which (if) one of the above
approaches is correct.

Also I think it would help to have a state transition table like the ones
above or a state diagram (I guess that is in the works) to explain
section 6.6.6 in the draft.

Thanks,
Tanya

Hi,

Session deletion has not been mentioned explicitly in the draft.

It is not clear to me whether Admin Down could be used for deletion.
I am not sure which of the following is correct:
- Admin down should be treated as a transitionary state during session
  deletion (Putting a session in Admin Down leads to it being deleted).
- Admin down is a state that a session may be held in

If Admin down is to be treated as a temporary state then the draft could
include a description on how to transition out of AdminDown state to 
complete deletion of the session. 
"TABLE 1" below should be valid i.e. Transition out of Admin Down state 
or receiving IHY=0 from the other end or on Timer Expiry.

Possible events are: Create, IHY=0, IHY=1, GoAdminDown(Delete), GoAdminUp
TABLE 1: Finite State Machine Transition from Old State to New State,
on the above events. (Interesting cells have an asterix).
---------------------------------------------------------------------
New state -> |Deleted | Init  | Failing | Down   | UP    | AdminDown|
             |(session|       |         |        |       |          |
Old state    |does not|       |         |        |       |          |
   |         |exist)  |       |         |        |       |          |
   v         |        |       |         |        |       |          |
---------------------------------------------------------------------
Deleted      |        |       | Create  |        |       |          |
(adj does    |        |       |         |        |       |          |
not exist)   |        |       |         |        |       |          |
---------------------------------------------------------------------
Init         |        | IHY=0 |TimerExp |        | IHY=1 | GoAdminDn|
---------------------------------------------------------------------
Failing      |        |       | Create  | IHY=0  |       | GoAdminDn|
             |        |       | IHY=1   |        |       |          |
---------------------------------------------------------------------
Down         |        | IHY=0 |         |        | IHY=1 | GoAdminDn|
---------------------------------------------------------------------
Up           |        |       | IHY=0   |        | IHY=1 | GoAdminDn|
             |        |       | TimerExp|        |       |          |
---------------------------------------------------------------------
AdminDown    |* IHY=0 |       |GoAdminUp|        |       |          |
             |TimerExp|       |         |        |       | IHY=1    |
--------------------------------------------------------------------|

If Admin down is to be treated as a state that a session may be held in
(not just to transition to deleted state) then an extra state may be 
needed (Deleting?) as shown in the state transition table below. 
A session in deleting state could behave similiar to if it were in 
AdminDown state (i.e. set the diag bits to indicate Admin down).

Possible events are: Create, IHY=0, IHY=1, Delete, GoAdminUp, 
                     GoAdminDown(GoAdDn)
Table 2: Finite State Machine Transition from Old State to New State.
-----------------------------------------------------------------------|
New state->|Deleted | Init| Failing | Down   | UP    | Deleting | AdDn | 
           |(session|     |         |        |       |          |      |
Old state  |does not|     |         |        |       |          |      |
   |       |exist)  |     |         |        |       |          |      |
   v       |        |     |         |        |       |          |      |
-----------------------------------------------------------------------|
Deleted    |        |     | Create  |        |       |          |GoAdDn|
(adj does  |        |     |         |        |       |          |      | 
not exist) |        |     |         |        |       |          |      |
-----------------------------------------------------------------------|
Init	   | Delete |IHY=0|TimerExp |        | IHY=1 |          |GoAdDn|
-----------------------------------------------------------------------|
Failing    |        |     | Create  | IHY=0  |       | Delete   |GoAdDn| 
           |        |     | IHY=1   |        |       |          |      |
-----------------------------------------------------------------------|
Down	   | Delete |IHY=0|         |        | IHY=1 |          |GoAdDn|
-----------------------------------------------------------------------|
Up	   |        |     | IHY=0   |        | IHY=1 | Delete   |GoAdDn|
           |        |     | TimerExp|        |       |          |      |
-----------------------------------------------------------------------|
Deleting   |* IHY=0 |     |* Create |        |       |* IHY=1   |      |
           |TimerExp|     |         |        |       | GoAdminDn|      |
-----------------------------------------------------------------------|
AdminDown  |        |     |GoAdminUp|        |       |* Delete  |GoAdDn|
-----------------------------------------------------------------------|

Please clarify deletion of a session and which (if) one of the above 
approaches is correct.

Also I think it would help to have a state transition table like the ones
above or a state diagram (I guess that is in the works) to explain 
section 6.6.6 in the draft.

Thanks,
Tanya

---

From: Dave Katz <[email-masked]>
Date: Thu, 24 Feb 2005 00:25:36 -0700

Session deletion is an implementation detail that is outside the scope 
of the specification, as it does not affect interoperability (unless 
there's something I missed.)

We have made a conscious decision to define the spec in a way that 
guarantees interoperability but says as little as possible about 
implementation, partly because I happen to believe that implementation 
details have no place in standards, and partly because people tend to 
read too much into them and adversely impact interoperability.

--Dave