| < draft-fu-nsis-qos-nslp-statemachine-01.txt | draft-fu-nsis-qos-nslp-statemachine-02.txt > | |||
|---|---|---|---|---|
| NSIS X. Fu | NSIS X. Fu | |||
| Internet-Draft Univ. Goettingen | Internet-Draft Univ. Goettingen | |||
| Expires: August 25, 2005 H. Tschofenig | Expires: February 25, 2005 H. Tschofenig | |||
| T. Tsenov | T. Tsenov | |||
| Siemens | Siemens | |||
| February 21, 2005 | August 24, 2005 | |||
| QoS NSLP State Machine | QoS NSLP State Machine | |||
| draft-fu-nsis-qos-nslp-statemachine-01.txt | draft-fu-nsis-qos-nslp-statemachine-02.txt | |||
| Status of this Memo | Status of this Memo | |||
| This document is an Internet-Draft and is subject to all provisions | By submitting this Internet-Draft, each author represents that any | |||
| of Section 3 of RFC 3667. By submitting this Internet-Draft, each | applicable patent or other IPR claims of which he or she is aware | |||
| author represents that any applicable patent or other IPR claims of | have been or will be disclosed, and any of which he or she becomes | |||
| which he or she is aware have been or will be disclosed, and any of | aware will be disclosed, in accordance with Section 6 of BCP 79. | |||
| which he or she become aware will be disclosed, in accordance with | ||||
| RFC 3668. | ||||
| Internet-Drafts are working documents of the Internet Engineering | Internet-Drafts are working documents of the Internet Engineering | |||
| Task Force (IETF), its areas, and its working groups. Note that | Task Force (IETF), its areas, and its working groups. Note that | |||
| other groups may also distribute working documents as | other groups may also distribute working documents as Internet- | |||
| Internet-Drafts. | Drafts. | |||
| Internet-Drafts are draft documents valid for a maximum of six months | Internet-Drafts are draft documents valid for a maximum of six months | |||
| and may be updated, replaced, or obsoleted by other documents at any | and may be updated, replaced, or obsoleted by other documents at any | |||
| time. It is inappropriate to use Internet-Drafts as reference | time. It is inappropriate to use Internet-Drafts as reference | |||
| material or to cite them other than as "work in progress." | material or to cite them other than as "work in progress." | |||
| The list of current Internet-Drafts can be accessed at | The list of current Internet-Drafts can be accessed at | |||
| http://www.ietf.org/ietf/1id-abstracts.txt. | http://www.ietf.org/ietf/1id-abstracts.txt. | |||
| The list of Internet-Draft Shadow Directories can be accessed at | The list of Internet-Draft Shadow Directories can be accessed at | |||
| http://www.ietf.org/shadow.html. | http://www.ietf.org/shadow.html. | |||
| This Internet-Draft will expire on August 25, 2005. | This Internet-Draft will expire on February 25, 2006. | |||
| Copyright Notice | Copyright Notice | |||
| Copyright (C) The Internet Society (2005). | Copyright (C) The Internet Society (2005). All Rights Reserved. | |||
| Abstract | Abstract | |||
| This document describes the state machines for the NSIS Signaling | This document describes the state machines for the NSIS Signaling | |||
| Layer Protocol for Quality-of-Service signaling (QoS NSLP). A set of | Layer Protocol for Quality-of-Service signaling (QoS NSLP). A set of | |||
| state machines for QoS NSLP entities at different locations of a flow | state machines for QoS NSLP entities at different locations of a flow | |||
| path are presented in order to illustrate how QoS NSLP may be | path are presented in order to illustrate how QoS NSLP may be | |||
| implemented. | implemented. | |||
| Table of Contents | Table of Contents | |||
| 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 3 | 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 3 | |||
| 2. Terminology . . . . . . . . . . . . . . . . . . . . . . . . 4 | 2. Terminology . . . . . . . . . . . . . . . . . . . . . . . . 3 | |||
| 3. Notational conventions used in state diagrams . . . . . . . 5 | 3. Notational conventions used in state diagrams . . . . . . . 3 | |||
| 4. State Machine Symbols . . . . . . . . . . . . . . . . . . . 7 | 4. State Machine Symbols . . . . . . . . . . . . . . . . . . . 5 | |||
| 5. Common Rules . . . . . . . . . . . . . . . . . . . . . . . . 8 | 5. Common Rules . . . . . . . . . . . . . . . . . . . . . . . . 6 | |||
| 5.1 Common Procedures . . . . . . . . . . . . . . . . . . . . 8 | 5.1 Common Procedures . . . . . . . . . . . . . . . . . . . . 6 | |||
| 5.2 Common Variables . . . . . . . . . . . . . . . . . . . . . 8 | 5.2 Common Variables . . . . . . . . . . . . . . . . . . . . . 8 | |||
| 5.3 Constants . . . . . . . . . . . . . . . . . . . . . . . . 9 | 5.3 Constants . . . . . . . . . . . . . . . . . . . . . . . . 9 | |||
| 5.4 Assumptions . . . . . . . . . . . . . . . . . . . . . . . 9 | 5.4 Assumptions . . . . . . . . . . . . . . . . . . . . . . . 9 | |||
| 6. State machine for QNI QoS NSLP node . . . . . . . . . . . . 10 | 6. State machines . . . . . . . . . . . . . . . . . . . . . . . . 10 | |||
| 7. State machine for QNE QoS NSLP nodes . . . . . . . . . . . . 13 | 6.1 Diagram notations . . . . . . . . . . . . . . . . . . . . 10 | |||
| 8. State machine for QNR QoS NSLP node . . . . . . . . . . . . 17 | 6.2 State machine for QNI QoS NSLP node . . . . . . . . . . . 11 | |||
| 9. Security Considerations . . . . . . . . . . . . . . . . . . 20 | 6.3 State machine for QNE QoS NSLP node . . . . . . . . . . . 13 | |||
| 10. Open Issues . . . . . . . . . . . . . . . . . . . . . . . . 21 | 6.4 State machine for QNR QoS NSLP node . . . . . . . . . . . 16 | |||
| 11. Change History . . . . . . . . . . . . . . . . . . . . . . . 22 | 7. Security Considerations . . . . . . . . . . . . . . . . . . 17 | |||
| 11.1 Changes in Version -01 . . . . . . . . . . . . . . . . . 22 | 8. Open Issues . . . . . . . . . . . . . . . . . . . . . . . . 17 | |||
| 12. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . 23 | 9. Change History . . . . . . . . . . . . . . . . . . . . . . . 17 | |||
| 13. References . . . . . . . . . . . . . . . . . . . . . . . . . 24 | 9.1 Changes in Version -01 . . . . . . . . . . . . . . . . . 17 | |||
| 13.1 Normative References . . . . . . . . . . . . . . . . . . 24 | 9.2 Changes in Version -02 . . . . . . . . . . . . . . . . . 18 | |||
| 13.2 Informative References . . . . . . . . . . . . . . . . . 24 | 10. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . 18 | |||
| Authors' Addresses . . . . . . . . . . . . . . . . . . . . . 24 | 11. References . . . . . . . . . . . . . . . . . . . . . . . . . 19 | |||
| Intellectual Property and Copyright Statements . . . . . . . 26 | 12.1 Normative References . . . . . . . . . . . . . . . . . . 19 | |||
| 12.2 Informative References . . . . . . . . . . . . . . . . . 19 | ||||
| Appendix A. ASCII versions of the state diagrams . . . . . . . . 20 | ||||
| A.1 State machine for QNI QoS NSLP node (Figures 2,3). . . . 20 | ||||
| A.2 State machine for QNE QoS NSLP node (Figure 4,5,6) . . . 22 | ||||
| A.3 State machine for QNE QoS NSLP node (Figure 7) . . . . . 26 | ||||
| Authors' Addresses . . . . . . . . . . . . . . . . . . . . . 29 | ||||
| Intellectual Property and Copyright Statements . . . . . . . 30 | ||||
| 1. Introduction | 1. Introduction | |||
| This document describes the state machines for QoS NSLP [1], trying | This document describes the state machines for QoS NSLP [1], trying | |||
| to show how QoS NSLP can be implemented to support its deployment. | to show how QoS NSLP can be implemented to support its deployment. | |||
| The state machines described in this document are illustrative of how | The state machines described in this document are illustrative of how | |||
| the QoS NSLP protocol defined in [1] may be implemented for the QNI | the QoS NSLP protocol defined in [1] may be implemented for the QNI | |||
| QoS NSLP node, QNE QoS NSLP nodes, and QNR QoS NSLP node in the flow | QoS NSLP node, QNE QoS NSLP nodes, and QNR QoS NSLP node in the flow | |||
| path. Where there are differences [1] are authoritative. The state | path. Where there are differences [1] are authoritative. The state | |||
| machines are informative only. Implementations may achieve the same | machines are informative only. Implementations may achieve the same | |||
| results using different methods. | results using different methods. | |||
| According to [1], there are several possibilities for QoS NSLP | According to [1], there are several possibilities for QoS NSLP | |||
| signaling, at least including the following: | signaling, at least including the following: - end-to-end signaling | |||
| end-to-end signaling vs. scoped signaling | vs. scoped signaling - sender-initiated signaling vs. receiver- | |||
| sender-initiated signaling vs. receiver-initiated signaling | initiated signaling (which need to be incorporated into use scenarios | |||
| (which need to be incorporated into use scenarios when describing | when describing state machine. Note they are represented by way of | |||
| state machine. Note they are represented by way of certain | certain objects/flags in Reserve and Query messages.) | |||
| objects/flags in Reserve and Query messages.) | ||||
| The messages used in the QoS NSLP protocol can be summarized as | The messages used in the QoS NSLP protocol can be summarized as | |||
| follows: | follows: | |||
| Requesting message Responding message | Requesting message Responding message | |||
| ------------------------+--------------------------- | ------------------------+--------------------------- | |||
| RESERVE |None or RESERVE or RESPONSE | RESERVE |None or RESERVE or RESPONSE | |||
| QUERY |RESERVE or RESPONSE | QUERY |RESERVE or RESPONSE | |||
| RESPONSE |NONE | RESPONSE |NONE | |||
| NOTIFY |NONE | NOTIFY |NONE | |||
| skipping to change at page 5, line 13 ¶ | skipping to change at page 4, line 5 ¶ | |||
| document are to be interpreted as described in [2]. | document are to be interpreted as described in [2]. | |||
| 3. Notational conventions used in state diagrams | 3. Notational conventions used in state diagrams | |||
| The following text is reused from [3] and the state diagrams are | The following text is reused from [3] and the state diagrams are | |||
| based on the conventions specified in [4], Section 8.2.1. Additional | based on the conventions specified in [4], Section 8.2.1. Additional | |||
| state machine details are taken from [5]. | state machine details are taken from [5]. | |||
| The complete text is reproduced here: | The complete text is reproduced here: | |||
| State diagrams are used to represent the operation of the protocol | State diagrams are used to represent the operation of the protocol by | |||
| by a number of cooperating state machines each comprising a group | a number of cooperating state machines each comprising a group of | |||
| of connected, mutually exclusive states. Only one state of each | connected, mutually exclusive states. Only one state of each machine | |||
| machine can be active at any given time. | can be active at any given time. | |||
| All permissible transitions between states are represented by | All permissible transitions between states are represented by arrows, | |||
| arrows, the arrowhead denoting the direction of the possible | the arrowhead denoting the direction of the possible transition. | |||
| transition. Labels attached to arrows denote the condition(s) | Labels attached to arrows denote the condition(s) that must be met in | |||
| that must be met in order for the transition to take place. All | order for the transition to take place. All conditions are | |||
| conditions are expressions that evaluate to TRUE or FALSE; if a | expressions that evaluate to TRUE or FALSE; if a condition evaluates | |||
| condition evaluates to TRUE, then the condition is met. The label | to TRUE, then the condition is met. The label UCT denotes an | |||
| UCT denotes an unconditional transition (i.e., UCT always | unconditional transition (i.e., UCT always evaluates to TRUE). A | |||
| evaluates to TRUE). A transition that is global in nature (i.e., | transition that is global in nature (i.e., a transition that occurs | |||
| a transition that occurs from any of the possible states if the | from any of the possible states if the condition attached to the | |||
| condition attached to the arrow is met) is denoted by an open | arrow is met) is denoted by an open arrow; i.e., no specific state is | |||
| arrow; i.e., no specific state is identified as the origin of the | identified as the origin of the transition. When the condition | |||
| transition. When the condition associated with a global | associated with a global transition is met, it supersedes all other | |||
| transition is met, it supersedes all other exit conditions | exit conditions including UCT. The special global condition BEGIN | |||
| including UCT. The special global condition BEGIN supersedes all | supersedes all other global conditions, and once asserted remains | |||
| other global conditions, and once asserted remains asserted until | asserted until all state blocks have executed to the point that | |||
| all state blocks have executed to the point that variable | variable assignments and other consequences of their execution remain | |||
| assignments and other consequences of their execution remain | unchanged. | |||
| unchanged. | ||||
| On entry to a state, the procedures defined for the state (if any) | On entry to a state, the procedures defined for the state (if any) | |||
| are executed exactly once, in the order that they appear on the | are executed exactly once, in the order that they appear on the page. | |||
| page. Each action is deemed to be atomic; i.e., execution of a | Each action is deemed to be atomic; i.e., execution of a procedure | |||
| procedure completes before the next sequential procedure starts to | completes before the next sequential procedure starts to execute. No | |||
| execute. No procedures execute outside of a state block. The | procedures execute outside of a state block. The procedures in only | |||
| procedures in only one state block execute at a time, even if the | one state block execute at a time, even if the conditions for | |||
| conditions for execution of state blocks in different state | execution of state blocks in different state machines are satisfied, | |||
| machines are satisfied, and all procedures in an executing state | and all procedures in an executing state block complete execution | |||
| block complete execution before the transition to and execution of | before the transition to and execution of any other state block | |||
| any other state block occurs, i.e., the execution of any state | occurs, i.e., the execution of any state block appears to be atomic | |||
| block appears to be atomic with respect to the execution of any | with respect to the execution of any other state block and the | |||
| other state block and the transition condition to that state from | transition condition to that state from the previous state is TRUE | |||
| the previous state is TRUE when execution commences. The order of | when execution commences. The order of execution of state blocks in | |||
| execution of state blocks in different state machines is undefined | different state machines is undefined except as constrained by their | |||
| except as constrained by their transition conditions. A variable | transition conditions. A variable that is set to a particular value | |||
| that is set to a particular value in a state block retains this | in a state block retains this value until a subsequent state block | |||
| value until a subsequent state block executes a procedure that | executes a procedure that modifies the value. | |||
| modifies the value. | ||||
| On completion of all of the procedures within a state, all exit | On completion of all of the procedures within a state, all exit | |||
| conditions for the state (including all conditions associated with | conditions for the state (including all conditions associated with | |||
| global transitions) are evaluated continuously until one of the | global transitions) are evaluated continuously until one of the | |||
| conditions is met. The label ELSE denotes a transition that | conditions is met. The label ELSE denotes a transition that occurs | |||
| occurs if none of the other conditions for transitions from the | if none of the other conditions for transitions from the state are | |||
| state are met (i.e., ELSE evaluates to TRUE if all other possible | met (i.e., ELSE evaluates to TRUE if all other possible exit | |||
| exit conditions from the state evaluate to FALSE). Where two or | conditions from the state evaluate to FALSE). Where two or more exit | |||
| more exit conditions with the same level of precedence become TRUE | conditions with the same level of precedence become TRUE | |||
| simultaneously, the choice as to which exit condition causes the | simultaneously, the choice as to which exit condition causes the | |||
| state transition to take place is arbitrary. | state transition to take place is arbitrary. | |||
| In addition to the above notation, there are a couple of | In addition to the above notation, there are a couple of | |||
| clarifications specific to this document. First, all boolean | clarifications specific to this document. First, all boolean | |||
| variables are initialized to FALSE before the state machine execution | variables are initialized to FALSE before the state machine execution | |||
| begins. Second, the following notational shorthand is specific to | begins. Second, the following notational shorthand is specific to | |||
| this document: | this document: | |||
| <variable> = <expression1> | <expression2> | ... | <variable> = <expression1> | <expression2> | ... | |||
| Execution of a statement of this form will result in <variable> | Execution of a statement of this form will result in <variable> | |||
| having a value of exactly one of the expressions. The logic for | having a value of exactly one of the expressions. The logic for | |||
| which of those expressions gets executed is outside of the state | which of those expressions gets executed is outside of the state | |||
| machine and could be environmental, configurable, or based on | machine and could be environmental, configurable, or based on | |||
| another state machine such as that of the method. | another state machine such as that of the method. | |||
| 4. State Machine Symbols | 4. State Machine Symbols | |||
| ( ) Used to force the precedence of operators in Boolean expressions | ( ) | |||
| Used to force the precedence of operators in Boolean expressions | ||||
| and to delimit the argument(s) of actions within state boxes. | and to delimit the argument(s) of actions within state boxes. | |||
| ; Used as a terminating delimiter for actions within state boxes. | ||||
| ; | ||||
| Used as a terminating delimiter for actions within state boxes. | ||||
| Where a state box contains multiple actions, the order of | Where a state box contains multiple actions, the order of | |||
| execution follows the normal language conventions for reading | execution follows the normal English language conventions for | |||
| text. | reading text. | |||
| = Assignment action. The value of the expression to the right of | ||||
| = | ||||
| Assignment action. The value of the expression to the right of | ||||
| the operator is assigned to the variable to the left of the | the operator is assigned to the variable to the left of the | |||
| operator. Where this operator is used to define multiple | operator. Where this operator is used to define multiple | |||
| assignments, e.g., a = b = X the action causes the value of the | assignments, e.g., a = b = X the action causes the value of the | |||
| expression following the right-most assignment operator to be | expression following the right-most assignment operator to be | |||
| assigned to all of the variables that appear to the left of the | assigned to all of the variables that appear to the left of the | |||
| right-most assignment operator. | right-most assignment operator. | |||
| ! Logical NOT operator. | ||||
| && Logical AND operator. | ! | |||
| || Logical OR operator. | Logical NOT operator. | |||
| if...then... Conditional action. If the Boolean expression | ||||
| following the if evaluates to TRUE, then the action following the | && | |||
| then is executed. | Logical AND operator. | |||
| \{ statement 1, ... statement N \} Compound statement. Braces are | ||||
| used to group statements that are executed together as if they | || | |||
| were a single statement. | Logical OR operator. | |||
| != Inequality. Evaluates to TRUE if the expression to the left of | ||||
| if...then... | ||||
| Conditional action. If the Boolean expression following the if | ||||
| evaluates to TRUE, then the action following the then is executed. | ||||
| { statement 1, ... statement N } | ||||
| Compound statement. Braces are used to group statements that are | ||||
| executed together as if they were a single statement. | ||||
| != | ||||
| Inequality. Evaluates to TRUE if the expression to the left of | ||||
| the operator is not equal in value to the expression to the right. | the operator is not equal in value to the expression to the right. | |||
| == Equality. Evaluates to TRUE if the expression to the left of the | ||||
| == | ||||
| Equality. Evaluates to TRUE if the expression to the left of the | ||||
| operator is equal in value to the expression to the right. | operator is equal in value to the expression to the right. | |||
| > Greater than. Evaluates to TRUE if the value of the expression to | ||||
| > | ||||
| Greater than. Evaluates to TRUE if the value of the expression to | ||||
| the left of the operator is greater than the value of the | the left of the operator is greater than the value of the | |||
| expression to the right. | expression to the right. | |||
| <= Less than or equal to. Evaluates to TRUE if the value of the | ||||
| <= | ||||
| Less than or equal to. Evaluates to TRUE if the value of the | ||||
| expression to the left of the operator is either less than or | expression to the left of the operator is either less than or | |||
| equal to the value of the expression to the right. | equal to the value of the expression to the right. | |||
| ++ Increment the preceding integer operator by 1. | ||||
| ++ | ||||
| Increment the preceding integer operator by 1. | ||||
| + | ||||
| Arithmetic addition operator. | ||||
| & | ||||
| Bitwise AND operator. | ||||
| 5. Common Rules | 5. Common Rules | |||
| Throughout the document we use terms defined in the [1], such as flow | Throughout the document we use terms defined in the [1], such as flow | |||
| sender, flow receiver, QUERY, RESERVE or RESPONSE. | sender, flow receiver, QUERY, RESERVE or RESPONSE. | |||
| 5.1 Common Procedures | 5.1 Common Procedures | |||
| tx_RESERVE(Toff): Transmit RESERVE message with 'Teardown' bit off | tx_RESERVE(Toff): | |||
| tx_RESERVE(Ton): Transmit RESERVE message with 'Teardown' bit on | Transmit RESERVE message with 'Teardown' bit off | |||
| tx_RESPONSE(): Transmit RESPONSE message | ||||
| tx_QUERY(<object>): Transmit QUERY message with <object> | tx_RESERVE(Ton): | |||
| tx_QUERY(w/o<object>): Transmit QUERY message without <object> | ||||
| tx_NOTIFY(): Transmit NOTIFY message | Transmit RESERVE message with 'Teardown' bit on | |||
| rx_RESPONSE(): Receive RESPONSE message | ||||
| rx_QUERY(): Receive QUERY message | tx_RESPONSE(): | |||
| rx_RESERVE(): Receive RESERVE message | Transmit RESPONSE message | |||
| rx_NOTIFY(): Transmit NOTIFY message | ||||
| TIMEOUT_StateLifetime: State lifetime timer expiration | tx_QUERY(<object>): | |||
| TIMEOUT_Refresh: Refresh interval timer expiration | Transmit QUERY message with <object> | |||
| TIMEOUT_Refresh: Wait-Response interval timer expiration | ||||
| tg_QUERY: External trigger to send a QUERY message (typically | tx_QUERY(w/o<object>): | |||
| triggered by the application). | Transmit QUERY message without <object> | |||
| tg_RESERVE: External trigger to send a RESERVE message. | ||||
| tg_TEARDOWN: External trigger to clear previously established QoS | tx_NOTIFY(): | |||
| state (typically triggered by the application). It is translated | Transmit NOTIFY message | |||
| to a tx_RESERVE(Ton) message. | ||||
| Install QoS state: Install the local QoS state. | rx_RESPONSE(): | |||
| Refresh QoS state: Refresh the local QoS state. | Receive RESPONSE message | |||
| Delete QoS state: Delete the local QoS state. | ||||
| Send info to Application: Report information to the application. | rx_QUERY(): | |||
| RMF: Performs Resource Management Function and returns the following | Receive QUERY message | |||
| rx_RESERVE(): | ||||
| Receive RESERVE message | ||||
| tx_NOTIFY(): | ||||
| Transmit NOTIFY message | ||||
| TIMEOUT_StateLifetime: | ||||
| State lifetime timer expiration | ||||
| TIMEOUT_Refresh: | ||||
| Refresh interval timer expiration | ||||
| TIMEOUT_Refresh: | ||||
| Wait-Response interval timer expiration | ||||
| tg_QUERY: | ||||
| External trigger to send a QUERY message (typically triggered by | ||||
| the application). | ||||
| tg_RESERVE: | ||||
| External trigger to send a RESERVE message. | ||||
| tg_TEARDOWN: | ||||
| External trigger to clear previously established QoS state | ||||
| (typically triggered by the application). It is translated to a | ||||
| tx_RESERVE(Ton) message. | ||||
| Install QoS state: | ||||
| Install the local QoS state. | ||||
| Refresh QoS state: | ||||
| Refresh the local QoS state. | ||||
| Delete QoS state: | ||||
| Delete the local QoS state. | ||||
| Send info to Application: | ||||
| Report information to the application. | ||||
| RMF: | ||||
| Performs Resource Management Function and returns the following | ||||
| values{AVAIL, NO_AVAIL}. | values{AVAIL, NO_AVAIL}. | |||
| SetRII: Sets the RII object of the messages e.g. the node requests | ||||
| SetRII: | ||||
| Sets the RII object of the messages e.g. the node requests | ||||
| explicit response to the message being sent. Returns values | explicit response to the message being sent. Returns values | |||
| {0,1}. | {0,1}. | |||
| CheckRII: Checks the RII object of received RESPONSE message if it is | ||||
| CheckRII: | ||||
| Checks the RII object of received RESPONSE message if it is | ||||
| requested by current node or other upstream node. Returns values | requested by current node or other upstream node. Returns values | |||
| {LOCAL, NO_LOCAL}. | {LOCAL, NO_LOCAL}. | |||
| ProcessQUERY: Processes a Query message and provides the requested | ||||
| info | ProcessQUERY: | |||
| Processes a Query message and provides the requested info | ||||
| 5.2 Common Variables | 5.2 Common Variables | |||
| RII: Request Identification Information (RII) object. Logical | RII: | |||
| variable representing if the RII is set or not. Takes values | Request Identification Information (RII) object. Logical variable | |||
| {0,1}. | representing if the RII is set or not. Takes values {0,1}. | |||
| SCOPING: Scoping flag of common message header. Takes values | SCOPING: | |||
| Scoping flag of common message header. Takes values | ||||
| {"Next_hop","Whole_path"}. | {"Next_hop","Whole_path"}. | |||
| RSN: Reservation Sequence Number object. Takes values: | ||||
| RSN: | ||||
| Reservation Sequence Number object. Takes values: | ||||
| - recRSN - RSN object of the received message | - recRSN - RSN object of the received message | |||
| - currRSN - Current stored RSN value for installed QoS state. | - currRSN - Current stored RSN value for installed QoS state. | |||
| (Assumed to be the one for the direction where the message comes | (Assumed to be the one for the direction where the message comes | |||
| from e.g.Upstream/Downstream) | from e.g.Upstream/Downstream) | |||
| ACK: Acknowledgement flag of common message header. Takes values | ||||
| {"On","Off"}. | ACK: | |||
| SummaryRefresh: Keeps information if Summary refresh method may be | Acknowledgement flag of common message header. Takes values | |||
| used for refreshing a installed QoS state. Takes value | ||||
| {"On","Off"}. | {"On","Off"}. | |||
| E_SPEC: Error_Spec object. Takes values: | ||||
| ReducedRefresh: | ||||
| Keeps information if Reduced refresh method may be used for | ||||
| refreshing a installed QoS state. Takes value {"On","Off"}. | ||||
| E_SPEC: | ||||
| Error_Spec object. Takes values: | ||||
| - 0x02? - Success values | - 0x02? - Success values | |||
| - 0x04? - Transient Failure values | - 0x04? - Transient Failure values | |||
| - ERROR - Not specified in the QoS NSLP draft, but used | ||||
| here.(Section 10) | QSPEC: | |||
| QSPEC: QoS specification object. | QoS specification object. | |||
| FlowID: Flow ID kept by the installed QoS state. | ||||
| Replace: Replace flag of common message header. Takes values | FlowID: | |||
| {"On","Off"}. | Flow ID kept by the installed QoS state. | |||
| SII: Source Identification Information entry. Takes values: | ||||
| Replace: | ||||
| Replace flag of common message header. Takes values {"On","Off"}. | ||||
| SII: | ||||
| Source Identification Information entry. Takes values: | ||||
| - CurrSII - SII entry stored for current installed QoS state. | - CurrSII - SII entry stored for current installed QoS state. | |||
| (Assumed to be the one for the direction where the message comes | (Assumed to be the one for the direction where the message comes | |||
| from e.g.Upstream/Downstream) | from e.g.Upstream/Downstream) | |||
| - newSII - SII of the received message is different from the SII | - newSII - SII of the received message is different from the SII | |||
| stored for the current installed QoS state. | stored for the current installed QoS state. | |||
| 5.3 Constants | 5.3 Constants | |||
| 5.4 Assumptions | 5.4 Assumptions | |||
| o For simplification not all included objects in a message are | - For simplification not all included objects in a message are | |||
| showed. Only those that are significant for the case are showed. | showed. Only those that are significant for the case are showed. | |||
| State machines do not present handling of messages that are not | State machines do not present handling of messages that are not | |||
| significant for management of the states such as certain NOTIFY | significant for management of the states such as certain NOTIFY | |||
| and QUERY messages. | and QUERY messages. | |||
| o State machines represent handling of messages of the same Session | - State machines represent handling of messages of the same Session | |||
| ID and with no protocol errors. Separate parallel instances of | ID and with no protocol errors. Separate parallel instances of | |||
| the state machines should handle messages for different Session | the state machines should handle messages for different Session | |||
| IDs. | IDs. | |||
| o Default message handling should be defined for messages with | - Default message handling should be defined for messages with | |||
| different Session IDs that have impact on current session state | different Session IDs that have impact on current session state | |||
| and error messages. This is not included in the current version. | and error messages. This is not included in the current version. | |||
| o ACK flag in the common header is set "On" by default. | - ACK flag in the common header is set "On" by default. | |||
| o Direction of receiving and sending messages is not specified. We | - Direction of receiving and sending messages is not specified. We | |||
| assume it is implicit from the context. | assume it is implicit from the context. | |||
| 6. State machine for QNI QoS NSLP node | 6. State machines | |||
| ----------- | ||||
| State: INIT | ||||
| ----------- | ||||
| Condition Action State | ||||
| ------------------------+-------------------------+------------ | ||||
| UCT | initialize variables |IDLE | ||||
| ------------------------+-------------------------+------------ | ||||
| ----------- | ||||
| State: IDLE | ||||
| ----------- | ||||
| Condition Action State Note | ||||
| ------------------------+-------------------------+-----------+--- | ||||
| rx_QUERY(RII) |ProcessQUERY |IDLE | | ||||
| |tx_RESPONSE(RII) | | | ||||
| | | | | ||||
| (tg_RESERVE) && |Send info to Application |IDLE | | ||||
| (RMF="NO_AVAIL") | | | | ||||
| | | | | ||||
| (tg_RESERVE) && (!RII) |tx_RESERVE(w/oRII), |QoS state | | ||||
| && (!setRII) && | Install QoS state, |Installed | | ||||
| (RMF="AVAIL") | Send info to Application| | | ||||
| | | | | ||||
| (tg_RESERVE) && (setRII)|Install QoS state, |QoS state | | ||||
| &&(RMF="AVAIL") | tx_RESERVE(RII) |Installed +| | ||||
| | |WAITRESP2 | | ||||
| | | | | ||||
| (rx_QUERY)&&(!RII)&& |Tx_RESPONSE(RSN, |IDLE |1) | ||||
| (RMF="NO_AVAIL") | E_SPEC="ERROR") | |2) | ||||
| | | | | ||||
| (rx_QUERY) && (!RII) && |tx_RESERVE(w/oRII), |QoS state |2) | ||||
| (!setRII) && | Install QoS state, |Installed | | ||||
| (RMF="AVAIL") | Send info to Application| | | ||||
| | | | | ||||
| (rx_QUERY) && (!RII) && |Install QoS state, |QoS state |2) | ||||
| (setRII) && |tx_RESERVE( RII) |Installed +| | ||||
| (RMF="AVAIL") | |WAITRESP2 | | ||||
| | | | | ||||
| (tg_QUERY) && (setRII) |tx_QUERY(RII) |WAITRESP1 | | ||||
| | | | | ||||
| ------------------------+-------------------------+-----------+--- | ||||
| Note: | ||||
| 1) How to signal unsuccessful reservation for Receiver initiated | ||||
| reservation (No RII included; sent Response(RSN) should not be | ||||
| forwarded further than the next peer). No Error_SPEC value | ||||
| specified for this case. | ||||
| 2) Relevant for Receiver-initiated reservation. | ||||
| ---------------- | ||||
| State: WAITRESP1 | ||||
| ---------------- | ||||
| Condition Action State | ||||
| ------------------------+-------------------------+------------ | ||||
| (TIMEOUT_WaitResp) && |tx_QUERY(RII) |WAITRESP1 | ||||
| (!MaxRetry) | | | ||||
| | | | ||||
| (TIMEOUT_WaitResp) && |Send info to Application |IDLE | ||||
| (MaxRetry) | | | ||||
| | | | ||||
| rx_RESPONSE |Send info to Application |IDLE | ||||
| ------------------------+-------------------------+------------ | ||||
| -------------------------------------- | ||||
| State: QoS state installed + WAITRESP2 | ||||
| -------------------------------------- | ||||
| Condition Action State | ||||
| ------------------------+-------------------------+------------ | ||||
| (TIMEOUT_WaitResp) && |tx_RESERVE(RII) |QoS state | ||||
| (!MaxRetry) | |installed + | ||||
| | |WAITRESP2 | ||||
| | | | ||||
| | | | ||||
| (TIMEOUT_WaitResp) && |Delete QoS state |IDLE | ||||
| (MaxRetry) |Send info to Application | | ||||
| | | | ||||
| rx_RESPONSE(RII, |Delete QoS state |IDLE | ||||
| E_SPEC="0x04?") |Send info to Application | | ||||
| | | | ||||
| | | | ||||
| rx_RESPONSE(RII, |Send info to Application |QoS state | ||||
| E_SPEC="0x02?") |SummaryRefresh="On" |installed | ||||
| ------------------------+-------------------------+------------ | ||||
| -------------------------- | ||||
| State: QoS state installed | ||||
| -------------------------- | ||||
| Condition Action State Note | ||||
| ------------------------+-------------------------+-----------+--- | ||||
| TIMEOUT_Refresh |If (SummaryRefresh="On") |QoS state | | ||||
| | (Tx_RESERVE(RSN)) && |installed | | ||||
| | (SummaryRefresh="Off") | | | ||||
| |Else | | | ||||
| | Tx_RESERVE(RSN,QSPEC); | | | ||||
| | | | | ||||
| rx_RESPONSE(RSN, |SummaryRefresh="On" |QoS state | | ||||
| E_SPEC="0x02?") | |installed | | ||||
| | | | | ||||
| TIMEOUT_StateLifetime |Delete QoS state |IDLE |1) | ||||
| |Send info to Application | | | ||||
| | | | | ||||
| tg_TEARDOWN |Delete QoS state, |IDLE | | ||||
| | tx_RESERVE(Ton) | | | ||||
| | | | | ||||
| rx_NOTIFY(RSN, |Delete QoS state |IDLE | | ||||
| E_SPEC="0x04?") |Send info to Application | | | ||||
| ------------------------+-------------------------+-----------+--- | ||||
| Note: | ||||
| 1) If QoS state lifetime expires in QNI, should RESERVE(Ton) | ||||
| be sent downstream the path? | ||||
| 7. State machine for QNE QoS NSLP nodes | ||||
| ----------- | The following section presents the state machine diagrams of QoS NSLP | |||
| State: INIT | peers. | |||
| ----------- | ||||
| Condition Action State | 6.1 Diagram notations | |||
| ------------------------+-------------------------+------------ | ||||
| UCT | initialize variables |IDLE | ||||
| ------------------------+-------------------------+------------ | ||||
| ----------- | (see the .pdf version for missing diagram or | |||
| State: IDLE | refer to Appendix A if reading the .txt version) | |||
| ----------- | ||||
| Condition Action State Note | Figure 1: Diagram notations | |||
| ------------------------+-------------------------+-----------+--- | ||||
| (rx_QUERY) && (!RII) |tx_QUERY(w/oRII) |IDLE |2) | ||||
| | | | | ||||
| (rx_QUERY(RII, |ProcessQUERY, |IDLE |7) | ||||
| SCOPING="Next_hop") |Tx_RESPONSE(RII) | | | ||||
| | | | | ||||
| (rx_QUERY) && (RII) |tx_QUERY(w/RII) |IDLE |7) | ||||
| | | | | ||||
| (rx_RESERVE(RII)) && |Tx_RESPONSE(RII, |IDLE |3) | ||||
| (RMF="NO_AVAIL") | E_SPEC="0x04?") | | | ||||
| | | | | ||||
| (rx_RESERVE) && (!RII)&&|Tx_RESPONSE(RSN, |IDLE |3) | ||||
| (RMF="NO_AVAIL") | E_SPEC="0x04?") | | | ||||
| | | | | ||||
| (rx_RESPONSE(RII)) && |Tx_RESPONSE(RII) |IDLE | | ||||
| (CheckRII="Not_LOCAL")| | | | ||||
| | | | | ||||
| (rx_RESERVE)&& !(setRII)|Install QoS state, |QoS State |1a) | ||||
| && (RMF="AVAIL") |If(ACK="On") |Installed | | ||||
| | Tx_RESPONSE(RSN, | | | ||||
| | E_SPEC="0x02?");| | | ||||
| |If(RII) Tx_RESPONSE(RII) | | | ||||
| |Else Tx_RESPONSE(w/oRII)| | | ||||
| | | | | ||||
| (rx_RESERVE(SCOPING= |Install QoS state, |QoS State |1b) | ||||
| "Next_hop")) && |If(RII) Tx_RESPONSE(RII, |Installed | | ||||
| (RMF="AVAIL") | E_SPEC="0x02?") | | | ||||
| |Else Tx_RESPONSE(RSN, | | | ||||
| | E_SPEC="0x02?") | | | ||||
| | | | | ||||
| (rx_RESERVE) && (setRII)|Install QoS state, |QoS State |4) | 6.2 State machine for QNI QoS NSLP node | |||
| && (RMF="AVAIL") |Tx_RESPONSE(RII), |Installed +| | ||||
| |If(ACK="On") |WAITRESP1 | | ||||
| | Tx_RESPONSE(RSN, | | | ||||
| | E_SPEC="0x02?");| | | ||||
| | | | | ||||
| (tg_QUERY) && (setRII) |tx_QUERY(RII) |WAITRESP2 |5) | ||||
| ------------------------+-------------------------+-----------+--- | ||||
| ---------------- | The following are diagrams of the QNI QoS NSLP node state machine. | |||
| State: QoS State Installed + WAITRESP1 | ||||
| ---------------- | ||||
| Condition Action State Note | (see the .pdf version for missing diagram or | |||
| ------------------------+-------------------------+-----------+--- | refer to Appendix A.1 if reading the .txt version) | |||
| (TIMEOUT_WaitResp) && |tx_RESERVE(RII) |WAITRESP1 | | ||||
| (!MaxRetry) | | | | ||||
| | | | | ||||
| (TIMEOUT_WaitResp) && |Delete QoS State, | | | ||||
| (MaxRetry) && |tx_NOTIFY(RSN, |IDLE | | ||||
| | E_SPEC="0x04?") | | | ||||
| |Send info to Application | | | ||||
| | | | | ||||
| (rx_RESPONSE(RII, |Delete QoS State, |IDLE |4) | ||||
| E_SPEC="0x04?")) |tx_NOTIFY(RSN, | | | ||||
| &&(CheckRII="LOCAL") | E_SPEC="0x04?") | | | ||||
| |Send info to Application | | | ||||
| | | | | ||||
| (rx_RESPONSE(RII, |Send info to Application |QoS State | | ||||
| E_SPEC="0x02?")) |SummaryRefresh="On" |Installed | | ||||
| &&(CheckRII="LOCAL") | | | | ||||
| ------------------------+-------------------------+-----------+--- | ||||
| ---------------- | Figure 2: QNI node: "IDLE" state | |||
| State: WAITRESP2 | ||||
| ---------------- | ||||
| Condition Action State Note | (see the .pdf version for missing diagram or | |||
| ------------------------+-------------------------+-----------+--- | refer to Appendix A.1 if reading the .txt version) | |||
| (TIMEOUT_WaitResp) && |tx_QUERY(RII) |WAITRESP2 | | ||||
| (!MaxRetry) | | | | ||||
| | | | | ||||
| (TIMEOUT_WaitResp) && |Send info to Application |IDLE | | ||||
| (MaxRetry) | | | | ||||
| | | | | ||||
| (rx_RESPONSE) && |Send info to Application |IDLE | | ||||
| (CheckRII="LOCAL") | | | | ||||
| ------------------------+-------------------------+-----------+--- | ||||
| ------------------ | Figure 3: QNI node: "WAITRESP1", "WAITRESP2" and "QoS state installed" state | |||
| State: QoS State Installed | 6.3 State machine for QNE QoS NSLP node | |||
| ------------------ | ||||
| Condition Action State Note | The following are diagrams of the QNE QoS NSLP node state machine. | |||
| ------------------------+-------------------------+-----------+--- | ||||
| rx_RESERVE(Ton) |tx_RESERVE(Ton), |IDLE | | ||||
| |Delete QoS state | | | ||||
| | | | | ||||
| rx_RESERVE |Refresh QoS state |QoS State |6) | ||||
| |If(ACK="On") |Installed | | ||||
| |Tx_RESPONSE(RSN, | | | ||||
| | E_SPEC="0x02?") | | | ||||
| | | | | ||||
| rx_RESPONSE(RSN, |SummaryRefresh="On" |QoS State |6) | ||||
| E_SPEC="0x02?") | |Installed | | ||||
| | | | | ||||
| TIMEOUT_Refresh |If (SummaryRefresh="On") |QoS State |6) | ||||
| | (Tx_RESERVE(RSN)) |Installed | | ||||
| | &&(SummaryRefresh="Off")| | | ||||
| |Else | | | ||||
| | Tx_RESERVE(RSN,QSPEC) | | | ||||
| | | | | ||||
| (rx_RESPONSE(RII, |SummaryRefresh="On" |QoS State | | ||||
| E_SPEC="0x02?")) |Tx_RESPONSE(RII, |Installed | | ||||
| &&(ChechRII="NOT_LOCAL")| E_SPEC="0x02?") | | | ||||
| | | | | ||||
| | | | | ||||
| (TIMEOUT_StateLifetime) |Delete QoS state |IDLE |8) | ||||
| | | | | ||||
| (rx_RESPONSE(RII, | | | | ||||
| E_SPEC="0x04?")) |Delete QoS state |IDLE | | ||||
| &&(ChechRII="NOT_LOCAL")|rx_RESPONSE(RII, | | | ||||
| | E_SPEC="0x04?") | | | ||||
| | | | | ||||
| rx_RESPONSE(RSN, |Delete QoS state |IDLE | | ||||
| E_SPEC="0x04?") |rx_NOTIFY(RSN, | | | ||||
| | E_SPEC="0x04?") | | | ||||
| | | | | ||||
| rx_NOTIFY(RSN, |Delete QoS state |IDLE | | ||||
| E_SPEC="0x04?") |rx_NOTIFY(RSN, | | | ||||
| | E_SPEC="0x04?") | | | ||||
| | | | | ||||
| | | | | ||||
| (Rx_RESERVE)&&(currSII) |Update QoS state |QoS State |9) | (see the .pdf version for missing diagram or | |||
| &&(Replace="On") |If (RII) |Installed | | refer to Appendix A.2 if reading the .txt version) | |||
| &&(RMF="AVAIL") | Tx_RESERVE(RII,QSPEC)| | | ||||
| &&((recRSN>=currRSN) |else | | | ||||
| ||(newFlowID)) | Tx_RESERVE(RSN,QSPEC);| | | ||||
| |If (ACK="On")&&(!RII) | | | ||||
| | tx_RESPONSE(RSN, | | | ||||
| | E_SPEC="0x02?");| | | ||||
| | | | | ||||
| | | | | ||||
| (Rx_RESERVE)&&(newSII) |Update QoS state |QoS State |9) | ||||
| &&(RMF="AVAIL") |If (RII) |Installed | | ||||
| &&((recRSN>=currRSN) | Tx_RESERVE(RII,QSPEC)| | | ||||
| ||(newFlowID)) |else | | | ||||
| | Tx_RESERVE(RSN,QSPEC);| | | ||||
| |If (ACK="On")&&(!RII) | | | ||||
| | tx_RESPONSE(RSN, | | | ||||
| | E_SPEC="0x02?");| | | ||||
| |If (Replace="On") | | | ||||
| | tx_Reserve(Ton) | | | ||||
| | to currSII | | | ||||
| ------------------------+-------------------------+-----------+--- | ||||
| NOTE: | Figure 4: QNE node: "IDLE" state | |||
| 1) Successful reservation without Response request (1a) and with | ||||
| Scoping (1b). | ||||
| 2) Processing of Query msg for Receiver initiated reservation | ||||
| 3) Unsuccessful reservation with/without request for response | ||||
| from previous node in the path. | ||||
| 4) Unsuccessful reservation. RII requested at the local node. | ||||
| NOTIFY(RSN) is sent further to the upstream nodes. | ||||
| 5) Processing of Query msg triggered by the application layer. | ||||
| 6) QoS State refresh procedures | ||||
| 7) Processing of Query msg received from an upstream node. | ||||
| 8) We assume that handling of QoS state lifetime expiration | ||||
| event is based on the local policy of the node. | ||||
| NOTIFY/Reserve(Ton) messages might be sent to other peers. | ||||
| These issues are not described in the QoS NSLP draft. | ||||
| 9) Update QoS state and Re-route functionality | ||||
| 8. State machine for QNR QoS NSLP node | Notes: | |||
| 1) Successful reservation without Response request (1a) and with | ||||
| Scoping (1b). | ||||
| 2) Processing of Query msg for Receiver initiated reservation | ||||
| 3) Unsuccessful reservation with/without request for response from | ||||
| previous node in the path. | ||||
| 5) Processing of Query msg triggered by the application layer. | ||||
| 7) Processing of Query msg received from an upstream node. | ||||
| ----------- | (see the .pdf version for missing diagram or | |||
| State: INIT | refer to Appendix A.2 if reading the .txt version) | |||
| ----------- | ||||
| Condition Action State | Figure 5: QNE node: "QoS state installed" state | |||
| ------------------------+-------------------------+------------ | Notes: | |||
| UCT | initialize variables |IDLE | 4) Unsuccessful reservation. RII requested at the local node. | |||
| ------------------------+-------------------------+------------ | NOTIFY(RSN) is sent further to the upstream nodes. | |||
| 6) QoS State refresh procedures | ||||
| 8) We assume that handling of QoS state lifetime expiration event is | ||||
| based on the local policy of the node. NOTIFY/Reserve(Ton) | ||||
| messages might be sent to other peers. | ||||
| 9) Update QoS state and Re-route functionality | ||||
| (see the .pdf version for missing diagram or | ||||
| refer to Appendix A.2 if reading the .txt version) | ||||
| ----------- | Figure 6: QNE node: "QoS state installed & WaitRESP1" and "WaitRESP2" states | |||
| State: IDLE | 6.4 State machine for QNR QoS NSLP node | |||
| ----------- | ||||
| Condition Action State Note | The following are diagrams of the QNR QoS NSLP node state machine. | |||
| ------------------------+-------------------------+-----------+--- | ||||
| rx_QUERY(RII) |tx_RESPONSE(RII) |IDLE | | ||||
| | | | | ||||
| (rx_RESERVE)&&(!RII) |Tx_RESPONSE(RSN, |IDLE | | ||||
| && (RMF="NO_A") | E_SPEC="0x04?") | | | ||||
| | | | | ||||
| | | | | ||||
| (rx_RESERVE(RII)) |Tx_RESPONSE(RII, |IDLE | | ||||
| && (RMF="NO_A") | E_SPEC="0x04?") | | | ||||
| | | | | ||||
| (tg_QUERY) && |tx_QUERY(w/oRII) |WAITRESV |1) | ||||
| (!setRII) | | | | ||||
| | | | | ||||
| | | | | ||||
| (rx_RESERVE(RII)) |Install QoS state |QoS state |2) | ||||
| && (RMF="AVAIL") |Tx_RESPONSE(RII, |installed | | ||||
| | E_SPEC="0x02?") | | | ||||
| | | | | ||||
| (rx_RESERVE)&&(!RII) |Install QoS state |QoS state |2) | ||||
| && (RMF="AVAIL") |Tx_RESPONSE(RSN, |installed | | ||||
| E_SPEC="0x02?") | | | ||||
| ------------------------+-------------------------+-----------+--- | ||||
| --------------- | ||||
| State: WAITRESV | ||||
| --------------- | ||||
| Condition Action State Note | (see the .pdf version for missing diagram or | |||
| ------------------------+-------------------------+-----------+--- | refer to Appendix A.3 if reading the .txt version) | |||
| TIMEOUT_WaitResp |Tx_QUERY(w/oRII) |WAITRESV | | ||||
| | | | | ||||
| (TIMEOUT_WaitResp) |Send info to Appl. |IDLE | | ||||
| && (MaxRetry) | | | | ||||
| | | | | ||||
| (rx_RESERVE)&&(!RII) |tx_RESPONSE(RSN, |IDLE |3) | ||||
| && (RMF="Not_AVAIL") | E_SPEC="0x04?") | | | ||||
| |Send info to Appl. | | | ||||
| | | | | ||||
| (rx_RESERVE(RII)) |tx_RESPONSE(RII, |IDLE |3) | ||||
| && (RMF="Not_AVAIL") | E_SPEC="0x04?") | | | ||||
| |Send info to Appl. | | | ||||
| | | | | ||||
| rx_RESPONSE(E_SPEC= |Send info to Appl. |IDLE |4) | ||||
| "ERROR")| | | | ||||
| | | | | ||||
| | | | | ||||
| (rx_RESERVE)&&(!RII) |Install QoS state |QoS state | | ||||
| && (RMF="AVAIL") |Tx_RESPONSE(RSN, |installed | | ||||
| | E_SPEC="0x02?") | | | ||||
| | | | | ||||
| (rx_RESERVE(RII)) |Install QoS State |QoS state | | ||||
| && (RMF="AVAIL") |Tx_RESPONSE(RII) |installed | | ||||
| | | | | ||||
| ------------------------+-------------------------+-----------+--- | ||||
| ------------------ | ||||
| State: QoS state installed | ||||
| ------------------ | ||||
| Condition Action State Note | Figure 7: QNR node | |||
| ------------------------+-------------------------+-----------+--- | ||||
| rx_RESERVE |Refresh QoS state |QoS state | | ||||
| |If(ACK="On") |installed | | ||||
| | Tx_RESPONSE(RSN, | | | ||||
| | E_SPEC="0x02?")| | | ||||
| | | | | ||||
| TIMEOUT_StateLifetime |Delete QoS state |IDLE |5) | ||||
| | | | | ||||
| rx_RESERVE(Ton) |Delete QoS state |IDLE | | ||||
| | | | | ||||
| ------------------------+-------------------------+------------ | ||||
| Note: | Notes: | |||
| 1) Initiation of Receiver-side reservation | 1) Initiation of Receiver-side reservation | |||
| 2) Successful Reservation with& without response request from the | 2) Successful Reservation with& without response request from the QNI | |||
| QNI side | side | |||
| 3) Unsuccessful Reservation with & without response request from | 3) Unsuccessful Reservation with & without response request from the | |||
| QNI side. | ||||
| 5) We assume that handling of QoS state lifetime expiration event is | ||||
| based on the local policy of the node. NOTIFY/Reserve(Ton) | ||||
| messages might be sent to other peers. | ||||
| 6) Successful Reservation update with& without response request from | ||||
| the QNI side. | the QNI side. | |||
| 4) How to signal unsuccessful reservation for Receiver initiated | ||||
| reservation(No RII is included, received Response(RSN) should | ||||
| not be forwarded. | ||||
| 5) We assume that handling of QoS state lifetime expiration event | ||||
| is based on the local policy of the node. NOTIFY/Reserve(Ton) | ||||
| messages might be sent to other peers. These issues are not | ||||
| described in the QoS NSLP draft. | ||||
| 9. Security Considerations | 7. Security Considerations | |||
| This document does not raise new security considerations. Any | This document does not raise new security considerations. Any | |||
| security concerns with the QoS NSLP are likely reflected in security | security concerns with QoS NSLP are likely reflected in security | |||
| related NSIS work already (such as [1] or [6]). | related NSIS work already (such as [1] or [6]). | |||
| For the time being, the state machines described in this document do | For the time being, the state machines described in this document do | |||
| not consider the security aspect of QoS NSLP protocol itself. A | not consider the security aspect of QoS NSLP protocol itself. A | |||
| future versions of this document will add security relevant states | future versions of this document will add security relevant states | |||
| and state transitions. | and state transitions. | |||
| 10. Open Issues | 8. Open Issues | |||
| This document tries to describe possible states and transitions for | This document tries to describe possible states and transitions for | |||
| QoS NSLP according to its current specification [1], Section 5. We | QoS NSLP according to its current specification [1], Section 5. We | |||
| found some issues during the development of the state machines. | found some issues during the development of the state machines. | |||
| o For receiver-initiated reservation, it is unclear who triggers a | 1. For receiver-initiated reservation, it is unclear who triggers a | |||
| teardown. | teardown. | |||
| o Bi-directional reservation is difficult to support as the state | 2. Bi-directional reservation is difficult to support as the state | |||
| machine becomes quite complex (note at one particular point in | machine becomes quite complex (note at one particular point in | |||
| time the protocol state engine can be only in one state). | time the protocol state engine can be only in one state). | |||
| o How to signal unsuccessful reservation for Receiver initiated | 3. How to signal unsuccessful reservation for Receiver initiated | |||
| reservation (No RII included; a resulting Response(RSN) cannot be | reservation (No RII included; a resulting Response(RSN) cannot be | |||
| forwarded further than the next peer). No Error_SPEC value | forwarded further than the next peer). We use NOTIFY message. | |||
| specified for this case. | 4. If QoS state lifetime expires in QNI, should RESERVE(Ton) be sent | |||
| o If QoS state lifetime expires in QNI, should RESERVE(Ton) be sent | ||||
| downstream the path? | downstream the path? | |||
| o The case of unsuccessful reservation at a QNE node and no RII | 5. The case of unsuccessful reservation at a QNE node and no RII | |||
| specified by upstream nodes. According to the spec RESPONSE(RSN) | specified by upstream nodes. According to the spec RESPONSE(RSN) | |||
| should not be forwarded further than the next peer. Currently we | should not be forwarded further than the next peer. Currently we | |||
| use NOTIFY(RSN) that is sent further to the upstream nodes. | use NOTIFY(RSN) that is sent further to the upstream nodes. | |||
| o We assume that handling of QoS state lifetime expiration event is | 6. We assume that handling of QoS state lifetime expiration event is | |||
| based on the local policy of the node. NOTIFY/Reserve(Ton) | based on the local policy of the node. NOTIFY/Reserve(Ton) | |||
| messages might be sent to other peers. These issues are not | messages might be sent to other peers. | |||
| described in the QoS NSLP draft. | 7. The draft states that RESERVE message MUST be sent only towards | |||
| o The draft states that RESERVE message MUST be sent only towards | the QNR. This is not the case when re-routing procedure is done | |||
| the QNR. This is not the case when re-routing procedure is done | and RESERVE(Ton) message should be sent from merging QNE node for | |||
| and RESERVE(Ton) message should be sent from merging QNE node for | deleting the old branch. We believe this is towards the QNI. | |||
| deleting the old branch. We believe this is towards the QNI. | 8. Re-routing functionality described in this document is not | |||
| o Re-routing functionality described in this document is not | complete and need further consideration. | |||
| complete and need further consideration. | ||||
| 11. Change History | 9. Change History | |||
| 11.1 Changes in Version -01 | 9.1 Changes in Version -01 | |||
| Version -01 covers more functionalities of the QoS NSLP. This | 1. Notation of the nodes changed to QNI, QNE and QNR. | |||
| requires addition and changes of the notations. The main details are | ||||
| as follows: | ||||
| 1. Notation of the nodes changed to QNI, QNE and QNR. | 2. Description of soft state refresh functionality. | |||
| 2. Description of soft state refresh functionality. | 3. Support of ACK flag in the common header. | |||
| 3. Support of ACK flag in the common header. | 4. Include of QoS NSLP objects, flags from the common header and | |||
| 4. Include of QoS NSLP objects, flags from the common header and | entries stored with the installed QoS state in a node: ACK, | |||
| entries stored with the installed QoS state in a node: ACK, | Replace, RSN, Error_SPEC, QSPEQ, FlowID, SII. | |||
| Replace, RSN, Error_SPEC, QSPEQ, FlowID, SII. | 5. Initial description of Re-routing functionality. | |||
| 5. Initial description of Re-routing functionality (Section 10). | 6. For support of all listed changes, some notations are changed. | |||
| 6. For support of all listed changes, some notations are changed. | ||||
| 12. Acknowledgments | 9.2 Changes in Version -02 | |||
| 1. Switch to .pdf format of the draft and include graphic diagrams. | ||||
| 2. Update notation from "Summary refresh" to "Reduced refresh" | ||||
| 3. Description of QoS reservation update/upgrade | ||||
| 10. Acknowledgments | ||||
| The authors would like to thank Sven Van den Bosch for his feedback. | The authors would like to thank Sven Van den Bosch for his feedback. | |||
| 13. References | 11. References | |||
| 13.1 Normative References | 11.1. Normative References | |||
| [1] Bosch, S., Karagiannis, G. and A. McDonald, "NSLP for | [1] Manner, J., Karagiannis, G., McDonald, A. and S. Van den | |||
| Quality-of-Service signaling", | Bosch "NSLP for Quality-of-Service signaling", Internet | |||
| Internet-Draft draft-ietf-nsis-qos-nslp-05, October 2004. | draft, draft-ietf-nsis-qos-nslp-07, July 2005. | |||
| [2] Bradner, S., "Key words for use in RFCs to Indicate Requirement | [2] Bradner, S., "Key words for use in RFCs to Indicate | |||
| Levels", March 1997. | Requirement Levels", BCP 14, RFC 2119, March 1997. | |||
| 13.2 Informative References | 11.2. Informative References | |||
| [3] Vollbrecht, J., Eronen, P., Petroni, N. and Y. Ohba, "State | [3] Vollbrecht, J., Eronen, P., Petroni, N., and Y. Ohba, | |||
| Machines for Extensible Authentication Protocol (EAP) Peer and | "State Machines for Extensible Authentication Protocol | |||
| Authenticator", Internet-Draft draft-ietf-eap-statemachine-06, | (EAP) Peer and Authenticator", draft-ietf-eap- | |||
| December 2004. | statemachine-06 (work in progress), December 2004. | |||
| [4] Institute of Electrical and Electronics Engineers, "DRAFT | [4] Institute of Electrical and Electronics Engineers, "DRAFT | |||
| Standard for Local and Metropolitan Area Networks: Port-Based | Standard for Local and Metropolitan Area Networks: Port- | |||
| Network Access Control (Revision)", IEEE 802-1X-REV/D9, January | Based | |||
| 2004. | Network Access Control (Revision)", IEEE 802-1X-REV/D11, | |||
| July 2004. | ||||
| [5] Ohba, Y., "State Machines for Protocol for Carrying | [5] Ohba, Y., "State Machines for Protocol for Carrying | |||
| Authentication for Network Access (PANA)", | Authentication for Network Access (PANA)", | |||
| Internet-Draft draft-ohba-pana-statemachine-01, February 2005. | draft-ohba-pana-statemachine-01 (work in progress), | |||
| February 2005. | ||||
| [6] Tschofenig, H. and D. Kroeselberg, "Security Threats for NSIS", | [6] Tschofenig, H. and D. Kroeselberg, "Security Threats for | |||
| Internet-Draft draft-ietf-nsis-threats-06, October 2004. | NSIS", draft-ietf-nsis-threats-06 (work in progress), | |||
| October 2004. | ||||
| Appendix A. ASCII versions of state diagrams | ||||
| This appendix contains the state diagrams in ASCII format. Please | ||||
| use the PDF version whenever possible: it is much easier to | ||||
| understand. | ||||
| The notation is as follows: for each state there is a separate table | ||||
| that lists in each row: | ||||
| - an event that triggers a transition, | ||||
| - actions taken as a result of the incoming event, | ||||
| - and the new state at which the transitions ends. | ||||
| A.1. State machine for QNI QoS NSLP node (Figures 2,3) | ||||
| ----------- | ||||
| State: IDLE | ||||
| ----------- | ||||
| Condition Action State Note | ||||
| ------------------------+-------------------------+-----------+--- | ||||
| (tg_RESERVE) && |Send info to Application |IDLE | | ||||
| (RMF="NO_AVAIL") | | | | ||||
| | | | | ||||
| (tg_RESERVE) && |tx_RESERVE(w/oRII), |QoS state | | ||||
| (!setRII) && | Install QoS state, |Instaled | | ||||
| (RMF="AVAIL") | Send info to Application| | | ||||
| | | | | ||||
| (tg_RESERVE) && (setRII)|Install QoS state, |QoS state | | ||||
| &&(RMF="AVAIL") |tx_RESERVE(RII) |Installed +| | ||||
| | |WAITRESP2 | | ||||
| | | | | ||||
| (rx_QUERY)&&(!RII)&& |Tx_RESPONSE(RSN, |IDLE |1) | ||||
| (RMF="NO_AVAIL") | E_SPEC="ERROR") | |2) | ||||
| | | | | ||||
| (rx_QUERY) && (!RII) && |tx_RESERVE(w/oRII), |QoS state |2) | ||||
| (!setRII) && | Install QoS state, |Instaled | | ||||
| (RMF="AVAIL") | Send info to Application| | | ||||
| | | | | ||||
| (rx_QUERY) && (!RII) && |Install QoS state, |QoS state |2) | ||||
| (setRII) && |tx_RESERVE( RII) |Installed +| | ||||
| (RMF="AVAIL") | |WAITRESP2 | | ||||
| | | | | ||||
| (tg_QUERY) && (setRII) |tx_QUERY(RII) |WAITRESP1 | | ||||
| | | | | ||||
| ------------------------+-------------------------+-----------+--- | ||||
| Figure 8 | ||||
| ---------------- | ||||
| State: WAITRESP1 | ||||
| ---------------- | ||||
| Condition Action State | ||||
| ------------------------+-------------------------+------------ | ||||
| (TIMEOUT_WaitResp) && |tx_QUERY(RII) |WAITRESP1 | ||||
| (!MaxRetry) | | | ||||
| | | | ||||
| (TIMEOUT_WaitResp) && |Send info to Application |IDLE | ||||
| (MaxRetry) | | | ||||
| | | | ||||
| rx_RESPONSE |Send info to Application |IDLE | ||||
| ------------------------+-------------------------+------------ | ||||
| ---------------- | ||||
| State: QoS state installed + WAITRESP2 | ||||
| ---------------- | ||||
| Condition Action State | ||||
| ------------------------+-------------------------+------------ | ||||
| (TIMEOUT_WaitResp) && |tx_RESERVE(RII) |QoS state | ||||
| (!MaxRetry) | |installed + | ||||
| | |WAITRESP2 | ||||
| | | | ||||
| | | | ||||
| (TIMEOUT_WaitResp) && |Delete QoS state |IDLE | ||||
| (MaxRetry) |Send info to Application | | ||||
| | | | ||||
| rx_RESPONSE(RII, |Delete QoS state |IDLE | ||||
| E_SPEC="0x04?") |Send info to Application | | ||||
| | | | ||||
| | | | ||||
| rx_RESPONSE(RII, |Send info to Application |QoS state | ||||
| E_SPEC="0x02?") |SummaryRefresh="On" |installed | ||||
| ------------------------+-------------------------+------------ | ||||
| ------------------ | ||||
| State: QoS state installed | ||||
| ------------------ | ||||
| Condition Action State Note | ||||
| ------------------------+-------------------------+-----------+--- | ||||
| rx_QUERY(RII) |ProcessQUERY |QoS state | | ||||
| |tx_RESPONSE(RII) |installed | | ||||
| | | | | ||||
| TIMEOUT_Refresh |If (SummaryRefresh="On") |QoS state | | ||||
| | (Tx_RESERVE(RSN)) && |installed | | ||||
| | (SummaryRefresh="Off") | | | ||||
| |Else | | | ||||
| | Tx_RESERVE(RSN,QSPEC); | | | ||||
| | | | | ||||
| rx_RESPONSE(RSN, |SummaryRefresh="On" |QoS state | | ||||
| E_SPEC="0x02?") | |installed | | ||||
| | | | | ||||
| TIMEOUT_StateLifetime |Delete QoS state |IDLE | | ||||
| |Send info to Application | | | ||||
| | | | | ||||
| tg_TEARDOWN |Delete QoS state, |IDLE | | ||||
| | tx_RESERVE(Ton) | | | ||||
| | | | | ||||
| rx_NOTIFY(RSN, |Delete QoS state |IDLE | | ||||
| E_SPEC="0x04?") |Send info to Application | | | ||||
| | | | | ||||
| (tg_RESERVE) && |tx_RESERVE(w/oRII), |QoS state | | ||||
| (!setRII) && | Update QoS state, |Instaled | | ||||
| (RMF="AVAIL") | Send info to Application| | | ||||
| | | | | ||||
| (tg_RESERVE) && (setRII)|Update QoS state, |QoS state | | ||||
| &&(RMF="AVAIL") |tx_RESERVE(RII) |Installed +| | ||||
| | |WAITRESP2 | | ||||
| ------------------------+-------------------------+-----------+--- | ||||
| Figure 9 | ||||
| A.2. State machine for QNE QoS NSLP node (Figures 4,5,6) | ||||
| ----------- | ||||
| State: IDLE | ||||
| ----------- | ||||
| Condition Action State Note | ||||
| ------------------------+-------------------------+-----------+--- | ||||
| (rx_QUERY) && (!RII) |tx_QUERY(w/oRII) |IDLE |2) | ||||
| | | | | ||||
| (rx_QUERY(RII, |ProcessQUERY, |IDLE |7) | ||||
| SCOPING="Next_hop") |Tx_RESPONSE(RII) | | | ||||
| | | | | ||||
| (rx_QUERY) && (RII) |tx_QUERY(w/RII) |IDLE |7) | ||||
| | | | | ||||
| (rx_RESERVE(RII)) && |Tx_RESPONSE(RII, |IDLE |3) | ||||
| (RMF="NO_AVAIL") | E_SPEC="0x04?") | | | ||||
| | | | | ||||
| (rx_RESERVE) && (!RII)&&|Tx_RESPONSE(RSN, |IDLE |3) | ||||
| (RMF="NO_AVAIL") | E_SPEC="0x04?") | | | ||||
| | | | | ||||
| (rx_RESPONSE(RII)) && |Tx_RESPONSE(RII) |IDLE | | ||||
| (CheckRII="Not_LOCAL")| | | | ||||
| | | | | ||||
| (rx_RESERVE)&& !(setRII)|Install QoS state, |QoS State |1a) | ||||
| && (RMF="AVAIL") |If(ACK="On") |Installed | | ||||
| | Tx_RESPONSE(RSN, | | | ||||
| | E_SPEC="0x02?");| | | ||||
| |If(RII) Tx_RESPONSE(RII) | | | ||||
| |Else Tx_RESPONSE(w/oRII)| | | ||||
| | | | | ||||
| (rx_RESERVE(SCOPING= |Install QoS state, |QoS State |1b) | ||||
| "Next_hop")) && |If(RII) Tx_RESPONSE(RII, |Installed | | ||||
| (RMF="AVAIL") | E_SPEC="0x02?") | | | ||||
| |Else Tx_RESPONSE(RSN, | | | ||||
| | E_SPEC="0x02?") | | | ||||
| | | | | ||||
| (rx_RESERVE) && (setRII)|Install QoS state, |QoS State |4) | ||||
| && (RMF="AVAIL") |Tx_RESPONSE(RII), |Installed +| | ||||
| |If(ACK="On") |WAITRESP1 | | ||||
| | Tx_RESPONSE(RSN, | | | ||||
| | E_SPEC="0x02?");| | | ||||
| | | | | ||||
| (tg_QUERY) && (setRII) |tx_QUERY(RII) |WAITRESP2 |5) | ||||
| ------------------------+-------------------------+-----------+--- | ||||
| Figure 10 | ||||
| ------------------ | ||||
| State: QoS State Installed | ||||
| ------------------ | ||||
| Condition Action State Note | ||||
| ------------------------+-------------------------+-----------+--- | ||||
| rx_RESERVE(Ton) |tx_RESERVE(Ton), |IDLE | | ||||
| |Delete QoS state | | | ||||
| | | | | ||||
| rx_RESERVE |Refresh QoS state |QoS State |6) | ||||
| |If(ACK="On") |Installed | | ||||
| |Tx_RESPONSE(RSN, | | | ||||
| | E_SPEC="0x02?") | | | ||||
| | | | | ||||
| rx_RESPONSE(RSN, |SummaryRefresh="On" |QoS State |6) | ||||
| E_SPEC="0x02?") | |Installed | | ||||
| | | | | ||||
| TIMEOUT_Refresh |If (SummaryRefresh="On") |QoS State |6) | ||||
| | (Tx_RESERVE(RSN)) |Installed | | ||||
| | &&(SummaryRefresh="Off")| | | ||||
| |Else | | | ||||
| | Tx_RESERVE(RSN,QSPEC) | | | ||||
| | | | | ||||
| (rx_RESPONSE(RII, |SummaryRefresh="On" |QoS State | | ||||
| E_SPEC="0x02?")) |Tx_RESPONSE(RII, |Installed | | ||||
| &&(ChechRII="NOT_LOCAL")| E_SPEC="0x02?") | | | ||||
| | | | | ||||
| | | | | ||||
| (TIMEOUT_StateLifetime) |Delete QoS state |IDLE |8) | ||||
| | | | | ||||
| (rx_RESPONSE(RII, | | | | ||||
| E_SPEC="0x04?")) |Delete QoS state |IDLE | | ||||
| &&(ChechRII="NOT_LOCAL")|rx_RESPONSE(RII, | | | ||||
| | E_SPEC="0x04?") | | | ||||
| | | | | ||||
| rx_RESPONSE(RSN, |Delete QoS state |IDLE | | ||||
| E_SPEC="0x04?") |rx_NOTIFY(RSN, | | | ||||
| | E_SPEC="0x04?") | | | ||||
| | | | | ||||
| rx_NOTIFY(RSN, |Delete QoS state |IDLE | | ||||
| E_SPEC="0x04?") |rx_NOTIFY(RSN, | | | ||||
| | E_SPEC="0x04?") | | | ||||
| | | | | ||||
| | | | | ||||
| (Rx_RESERVE)&&(currSII) |Update QoS state |QoS State |9) | ||||
| &&(Replace="On") |If (RII) |Installed | | ||||
| &&(RMF="AVAIL") | Tx_RESERVE(RII,QSPEC)| | | ||||
| &&((recRSN>=currRSN) |else | | | ||||
| ||(newFlowID)) | Tx_RESERVE(RSN,QSPEC);| | | ||||
| |If (ACK="On")&&(!RII) | | | ||||
| | tx_RESPONSE(RSN, | | | ||||
| | E_SPEC="0x02?");| | | ||||
| | | | | ||||
| | | | | ||||
| (Rx_RESERVE)&&(newSII) |Update QoS state |QoS State |9) | ||||
| &&(RMF="AVAIL") |If (RII) |Installed | | ||||
| &&((recRSN>=currRSN) | Tx_RESERVE(RII,QSPEC)| | | ||||
| ||(newFlowID)) |else | | | ||||
| | Tx_RESERVE(RSN,QSPEC);| | | ||||
| |If (ACK="On")&&(!RII) | | | ||||
| | tx_RESPONSE(RSN, | | | ||||
| | E_SPEC="0x02?");| | | ||||
| |If (Replace="On") | | | ||||
| | tx_Reserve(Ton) | | | ||||
| | to currSII | | | ||||
| | | | | ||||
| (rx_RESERVE)&& !(setRII)|Update QoS state, |QoS State | | ||||
| && (RMF="AVAIL") |If(ACK="On") |Installed | | ||||
| | Tx_RESPONSE(RSN, | | | ||||
| | E_SPEC="0x02?");| | | ||||
| |If(RII) Tx_RESPONSE(RII) | | | ||||
| |Else Tx_RESPONSE(w/oRII)| | | ||||
| | | | | ||||
| (rx_RESERVE(SCOPING= |Update QoS state, |QoS State | | ||||
| "Next_hop")) && |If(RII) Tx_RESPONSE(RII, |Installed | | ||||
| (RMF="AVAIL") | E_SPEC="0x02?") | | | ||||
| |Else Tx_RESPONSE(RSN, | | | ||||
| | E_SPEC="0x02?") | | | ||||
| | | | | ||||
| (rx_RESERVE) && (setRII)|Update QoS state, |QoS State | | ||||
| && (RMF="AVAIL") |Tx_RESPONSE(RII), |Installed +| | ||||
| |If(ACK="On") |WAITRESP1 | | ||||
| | Tx_RESPONSE(RSN, | | | ||||
| | E_SPEC="0x02?");| | | ||||
| ------------------------+-------------------------+-----------+--- | ||||
| Figure 11 | ||||
| ---------------- | ||||
| State: QoS State Installed + WAITRESP1 | ||||
| ---------------- | ||||
| Condition Action State Note | ||||
| ------------------------+-------------------------+-----------+--- | ||||
| (TIMEOUT_WaitResp) && |tx_RESERVE(RII) |WAITRESP1 | | ||||
| (!MaxRetry) | | | | ||||
| | | | | ||||
| (TIMEOUT_WaitResp) && |Delete QoS State, | | | ||||
| (MaxRetry) && |tx_NOTIFY(RSN, |IDLE | | ||||
| | E_SPEC="0x04?") | | | ||||
| |Send info to Application | | | ||||
| | | | | ||||
| (rx_RESPONSE(RII, |Delete QoS State, |IDLE |4) | ||||
| E_SPEC="0x04?")) |tx_NOTIFY(RSN, | | | ||||
| &&(CheckRII="LOCAL") | E_SPEC="0x04?") | | | ||||
| |Send info to Application | | | ||||
| | | | | ||||
| (rx_RESPONSE(RII, |Send info to Application |QoS State | | ||||
| E_SPEC="0x02?")) |SummaryRefresh="On" |Installed | | ||||
| &&(CheckRII="LOCAL") | | | | ||||
| ------------------------+-------------------------+-----------+--- | ||||
| ---------------- | ||||
| State: WAITRESP2 | ||||
| ---------------- | ||||
| Condition Action State Note | ||||
| ------------------------+-------------------------+-----------+--- | ||||
| (TIMEOUT_WaitResp) && |tx_QUERY(RII) |WAITRESP2 | | ||||
| (!MaxRetry) | | | | ||||
| | | | | ||||
| (TIMEOUT_WaitResp) && |Send info to Application |IDLE | | ||||
| (MaxRetry) | | | | ||||
| | | | | ||||
| (rx_RESPONSE) && |Send info to Application |IDLE | | ||||
| (CheckRII="LOCAL") | | | | ||||
| ------------------------+-------------------------+-----------+--- | ||||
| Figure 12 | ||||
| A.3. State machine for QNR QoS NSLP node (Figure 7) | ||||
| ----------- | ||||
| State: IDLE | ||||
| ----------- | ||||
| Condition Action State Note | ||||
| ------------------------+-------------------------+-----------+--- | ||||
| rx_QUERY(RII) |tx_RESPONSE(RII) |IDLE | | ||||
| | | | | ||||
| (rx_RESERVE)&&(!RII) |Tx_RESPONSE(RSN, |IDLE | | ||||
| && (RMF="NO_A") | E_SPEC="0x04?") | | | ||||
| | | | | ||||
| | | | | ||||
| (rx_RESERVE(RII)) |Tx_RESPONSE(RII, |IDLE | | ||||
| && (RMF="NO_A") | E_SPEC="0x04?") | | | ||||
| | | | | ||||
| (tg_QUERY) && |tx_QUERY(w/oRII) |WAITRESV |1) | ||||
| (!setRII) | | | | ||||
| | | | | ||||
| | | | | ||||
| (rx_RESERVE(RII)) |Install QoS state |QoS state |2) | ||||
| && (RMF="AVAIL") |Tx_RESPONSE(RII, |installed | | ||||
| | E_SPEC="0x02?") | | | ||||
| | | | | ||||
| (rx_RESERVE)&&(!RII) |Install QoS state |QoS state |2) | ||||
| && (RMF="AVAIL") |Tx_RESPONSE(RSN, |installed | | ||||
| E_SPEC="0x02?") | | | ||||
| ------------------------+-------------------------+-----------+--- | ||||
| --------------- | ||||
| State: WAITRESV | ||||
| --------------- | ||||
| Condition Action State Note | ||||
| ------------------------+-------------------------+-----------+--- | ||||
| TIMEOUT_WaitResp |Tx_QUERY(w/oRII) |WAITRESV | | ||||
| | | | | ||||
| (TIMEOUT_WaitResp) |Send info to Appl. |IDLE | | ||||
| && (MaxRetry) | | | | ||||
| | | | | ||||
| (rx_RESERVE)&&(!RII) |tx_RESPONSE(RSN, |IDLE |3) | ||||
| && (RMF="Not_AVAIL") | E_SPEC="0x04?") | | | ||||
| |Send info to Appl. | | | ||||
| | | | | ||||
| (rx_RESERVE(RII)) |tx_RESPONSE(RII, |IDLE |3) | ||||
| && (RMF="Not_AVAIL") | E_SPEC="0x04?") | | | ||||
| |Send info to Appl. | | | ||||
| | | | | ||||
| rx_NOTIFY(RSN, |Send info to Appl. |IDLE | | ||||
| E_SPEC="0x04?")| | | | ||||
| | | | | ||||
| | | | | ||||
| (rx_RESERVE)&&(!RII) |Install QoS state |QoS state | | ||||
| && (RMF="AVAIL") |Tx_RESPONSE(RSN, |installed | | ||||
| | E_SPEC="0x02?") | | | ||||
| | | | | ||||
| (rx_RESERVE(RII)) |Install QoS State |QoS state | | ||||
| && (RMF="AVAIL") |Tx_RESPONSE(RII) |installed | | ||||
| | | | | ||||
| ------------------------+-------------------------+-----------+--- | ||||
| ------------------ | ||||
| State: QoS state installed | ||||
| ------------------ | ||||
| Condition Action State Note | ||||
| ------------------------+-------------------------+-----------+--- | ||||
| rx_RESERVE |Refresh QoS state |QoS state | | ||||
| |If(ACK="On") |installed | | ||||
| | Tx_RESPONSE(RSN, | | | ||||
| | E_SPEC="0x02?")| | | ||||
| | | | | ||||
| TIMEOUT_StateLifetime |Delete QoS state |IDLE |5) | ||||
| | | | | ||||
| rx_RESERVE(Ton) |Delete QoS state |IDLE | | ||||
| | | | | ||||
| (rx_RESERVE(RII)) |Update QoS state |QoS state |6) | ||||
| && (RMF="AVAIL") |Tx_RESPONSE(RII, |installed | | ||||
| | E_SPEC="0x02?") | | | ||||
| | | | | ||||
| (rx_RESERVE)&&(!RII) |Update QoS state |QoS state |6) | ||||
| && (RMF="AVAIL") |Tx_RESPONSE(RSN, |installed | | ||||
| E_SPEC="0x02?") | | | ||||
| ------------------------+-------------------------+------------ | ||||
| Figure 13 | ||||
| Authors' Addresses | Authors' Addresses | |||
| Xiaoming Fu | Xiaoming Fu | |||
| University of Goettingen | University of Goettingen | |||
| Telematics Group | Telematics Group | |||
| Lotzestr. 16-18 | Lotzestr. 16-18 | |||
| Goettingen 37083 | Goettingen 37083 | |||
| Germany | Germany | |||
| skipping to change at page 26, line 26 ¶ | skipping to change at page 30, line 26 ¶ | |||
| Copies of IPR disclosures made to the IETF Secretariat and any | Copies of IPR disclosures made to the IETF Secretariat and any | |||
| assurances of licenses to be made available, or the result of an | assurances of licenses to be made available, or the result of an | |||
| attempt made to obtain a general license or permission for the use of | attempt made to obtain a general license or permission for the use of | |||
| such proprietary rights by implementers or users of this | such proprietary rights by implementers or users of this | |||
| specification can be obtained from the IETF on-line IPR repository at | specification can be obtained from the IETF on-line IPR repository at | |||
| http://www.ietf.org/ipr. | http://www.ietf.org/ipr. | |||
| The IETF invites any interested party to bring to its attention any | The IETF invites any interested party to bring to its attention any | |||
| copyrights, patents or patent applications, or other proprietary | copyrights, patents or patent applications, or other proprietary | |||
| rights that may cover technology that may be required to implement | rights that may cover technology that may be required to implement | |||
| this standard. Please address the information to the IETF at | this standard. Please address the information to the IETF at ietf- | |||
| ietf-ipr@ietf.org. | ipr@ietf.org. | |||
| Disclaimer of Validity | Disclaimer of Validity | |||
| This document and the information contained herein are provided on an | This document and the information contained herein are provided on an | |||
| "AS IS" basis and THE CONTRIBUTOR, THE ORGANIZATION HE/SHE REPRESENTS | "AS IS" basis and THE CONTRIBUTOR, THE ORGANIZATION HE/SHE REPRESENTS | |||
| OR IS SPONSORED BY (IF ANY), THE INTERNET SOCIETY AND THE INTERNET | OR IS SPONSORED BY (IF ANY), THE INTERNET SOCIETY AND THE INTERNET | |||
| ENGINEERING TASK FORCE DISCLAIM ALL WARRANTIES, EXPRESS OR IMPLIED, | ENGINEERING TASK FORCE DISCLAIM ALL WARRANTIES, EXPRESS OR IMPLIED, | |||
| INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE | INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE | |||
| INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED | INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED | |||
| WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. | WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. | |||
| Copyright Statement | Copyright Statement | |||
| Copyright (C) The Internet Society (2005). This document is subject | Copyright (C) The Internet Society (2005). This document is subject | |||
| to the rights, licenses and restrictions contained in BCP 78, and | to the rights, licenses and restrictions contained in BCP 78, and | |||
| except as set forth therein, the authors retain all their rights. | except as set forth therein, the authors retain all their rights. | |||
| Acknowledgment | Acknowledgement | |||
| Funding for the RFC Editor function is currently provided by the | Funding for the RFC Editor function is currently provided by the | |||
| Internet Society. | Internet Society. | |||
| End of changes. 85 change blocks. | ||||
| 594 lines changed or deleted | 760 lines changed or added | |||
This html diff was produced by rfcdiff 1.48. The latest version is available from http://tools.ietf.org/tools/rfcdiff/ | ||||