21-07-0302-00-00001 IEEE 802.21 MEDIA INDEPENDENT HANDOVER DCN: 21-07-0302-00-0000 Title: MIH State...
-
Upload
dwain-stokes -
Category
Documents
-
view
224 -
download
0
description
Transcript of 21-07-0302-00-00001 IEEE 802.21 MEDIA INDEPENDENT HANDOVER DCN: 21-07-0302-00-0000 Title: MIH State...
21-07-0302-00-0000 1
IEEE 802.21 MEDIA INDEPENDENT HANDOVER DCN: 21-07-0302-00-0000Title: MIH State Machines RepresentationDate Submitted: October 2007Presented at IEEE 802.21 ad-hoc meeting, Murray Hill, NJ
Authors or Source(s): Yoshihiro Ohba, Miriam Tauil
Abstract: This document propose resolution to SB comments related to the MIH state Machines.
21-07-0302-00-0000 2
IEEE 802.21 presentation release statementsThis document has been prepared to assist the IEEE 802.21 Working Group. It is
offered as a basis for discussion and is not binding on the contributing individual(s) or organization(s). The material in this document is subject to change in form and content after further study. The contributor(s) reserve(s) the right to add, amend or withdraw material contained herein.
The contributor grants a free, irrevocable license to the IEEE to incorporate material contained in this contribution, and any modifications thereof, in the creation of an IEEE Standards publication; to copyright in the IEEE’s name any IEEE Standards publication even though it may include portions of this contribution; and at the IEEE’s sole discretion to permit others to reproduce in whole or in part the resulting IEEE Standards publication. The contributor also acknowledges and accepts that this contribution may be made public by IEEE 802.21.
The contributor is familiar with IEEE patent policy, as outlined in Section 6.3 of the IEEE-SA Standards Board Operations Manual <http://standards.ieee.org/guides/opman/sect6.html#6.3> and in Understanding Patent Issues During IEEE Standards Development http://standards.ieee.org/board/pat/guide.html>
21-07-0302-00-0000 3
State Machine SB Comments This contribution is mainly driven by SB comment 11 and its
suggested remedy.Comment 11: The MIH protocol is inadequately specified. In particular, the state
machine is overly simplified, and none of the state variables are rigorously or formally defined.
Comment 11 Suggested Remedy:Include a formal specification of the MIH protocol, either as a
completely defined state machine (in the manner of IEEE 802.3), a reference code specification (in the manner of IEEE 802.1), or a formalized language (in the manner of IEEE 802.11).
Also addresses the following comments ..
21-07-0302-00-0000 4
Additional SB Comments:Retransmission in the state machines diagrams
Comments 568, 569 Figure 22/24: The state diagram in Figure does not match the
description in the text. More specifically, the state diagram does not show that retransmission shall happen only twice. Note that the IEEE SA has ruled that state diagrams are normative, which means that the state diagram must be correct.
Comments 56, 57, 58- p. 145, l. 34 , 8.2.2.1/2/3The text states a transition from SENDING to INIT after two
(unsuccessful) retransmission but the state machine does not reflect this.
Text states that max. 2 retransmissions are allowed but the state machine does reflect this
21-07-0302-00-0000 5
Additional SB Comments:Retransmission – why 2 times?
Comment 231: There seems to be arbitrary decisions made regarding the MIH Protocol Acknowledgement operation. For example, why re-transmit only 2 times? Such variables are usually expressed in a MIB. What about the possibility of aggregated Ack messages?
Suggested Remedy: Restrict description of MIH Acknowledgement operation to the messages exchange. Implementation details should be left out or else in the Annex
Comment 2 : "The source MIH node may at most make two retransmission attempts in addition to the first attempt for an MIH protocol message with the same Message-ID and the same Transaction-ID.“ What's special about "two"? Why this embedded magic number?
This depends on the properties of the link, and couples the protocol to assumptions about the medium.
Suggested Remedy: Make this number a property of the link type.
21-07-0302-00-0000 6
Additional SB comments
Error condition transitions in the state machines- Comment 336- p145 What if a source node can not receive any answer even it sent a REQ? and also what if
a destination node can not give any response even if it receives a REQ? Therefore, I suggest all states except INIT should have transition to INIT when the transaction time expires.
Make transition to INIT in all states when the transaction time expires, page 145-146.Capability DiscoverComment 193: page 154 line 5The broadcasting of this message cannot be consumed by any of the state diagrams in
8.2. New state machines need to be added to permit transmission and reception of this very special case. None of the current state diagrams can be used because they all include the ack/rep bit behavior, which cannot be used in these cases.
Add new state diagrams, or remove this capability and any associated material from the entire draft.
Comment 338:There is no transaction state diagram for broadcast MIH_Capability_Discover
message.Refer to contribution, 21-07-0316-00-0000-MIH_Capability_Discovery
21-07-0302-00-0000 7
State Machines
Transaction Source State Machine
Transaction DestinationState Machine
ACK-requestorState Machine
ACK-responderState Machine
ACK-requestorState Machine
ACK-responderState Machine
ACK/Retransmission Handling
OpCode specific Handling
Remote Interaction via MIH protocolLocal Interaction via global variables
21-07-0302-00-0000 8
Variable Types
Name AttributesMessage Attributes Type Range Description
ACK-Req Integer:1 [0,1] ACK request bit. Initialized to 0.ACK-Rsp Integer:1 [0,1] ACK response bit. Initialized to 0MID Message-
IDN/A Message Identifier
TID Integer:16 [0,2^16-1] Transaction IdentifierVariable-Part
String N/A Variable Part (optional)
Name AttributesMessage-ID
Name Type Range DescriptionSID Integer:4 [1,4] Service IdentifierOpcode Integer:2 [1,3] Operation AID Integer:10 [1,1023] Action Identifier
Name Type Range DescriptionBoolean Enumerate {TRUE,FALSE} Logical 1 (TRUE) or 0 (FALSE)
21-07-0302-00-0000 9
Global Variables Name Type Read/
Write/Export
Description
MsgIn Message R/E Incoming MessageMsgInAvail Boolean R/W/E Indicates if there is an incoming message for
the transaction. Initialized to FALSE.MsgOut Message R/E Outgoing MessageMsgOutAvail Boolean R/E Indicates if there is an outgoing message for
the transaction. Initialized to FALSE.Opcode Integer R/W An OpcodeTID Integer R/W A transaction identifierMID Integer R/W A message identifierStartACKRequestor Boolean R/W Indicates if ACK requester state machine is
started.StartACKResponder Boolean R/W Indicates if ACK responder state machine is
started.AckFailure Boolean R/W Indicates if ACK operation failedTransactionTimeout Boolean R/W A timer to cancel transaction
Exported variables are writable from entities that use the state machines defined in this document.
21-07-0302-00-0000 10
Local Variables Name Type Within DescriptionBroadcast Boolean Tr. Src/Dst Indicates whether a message has a
broadcast destination address.DUP Message ACK
ResponderA message which has already been sent
ACK Message A message with a null variable load and ACK-Rsp bit set
DelayedAckTimeout Boolean A timer to delay ACKRetransmissionTimeout Boolean ACK
RequestorA timer to retransmit a message
RetransmissionInterval Integer The delay value for delayed ACKRtxCtr Integer Retransmission CounterRtxCtrMax Integer Maximum number of retransmission
21-07-0302-00-0000 11
Functions
Name Input Output DescriptionNewTID() Void Integer Output a new Transaction IdentifierStartTimer() Boolean Void Start a timer associated with the boolean input
variable. The boolean input variable is initialized to false. After a time period specified in the integer input variable, the boolean input variable is set to True.
Integer
StopTimer() Boolean Void Stop a timer corresponding to the input variable.
Process() Message Void Process an incoming messageTransmit() Message Void Transmit a message.BroadcastMsg() Message Boolean Output TRUE if the input message has a
broadcast destination MIHF ID. Otherwise output FALSE.
GetAckDelay() Integer Integer Compute the time duration for delaying an ACK using MID of a message. Especially the output value is always zero (0) if MID.Opcode==indication or MID.Opcode==response. If MID.opcode==request, the time duration for delaying the ACK may depend on MID.SID and MID.AID.
21-07-0302-00-0000 12
Conventions
• State machine conventions defined in IEEE 802.1X are used in this document
• State transitions occur upon a change in values of variables
• UCT (Unconditional Transition) is a special boolean variable which always has a TRUE value
• The action specified inside each state box is executed when entering the box (not when exiting the box)
21-07-0302-00-0000 13
Transaction Source State Machine
INIT
MsgOutAvail=MsgInAvail=FALSE;StartAckRequestor=StartAckResponder=FALSE;AckFailure=FALSE;StartTimer(TransactionTimeout, TransactionLifetime);Opcode=MsgOut.MID.Opcode;MsgOut.TID=NewTID();Transmit(MsgOut);StartAckRequestor=(MsgOut.ACK-Req==1?TRUE:FALSE);Broadcast=BroadcastMsg(MsgOut);MsgOutAvail=FALSE;
WAIT_RESPONSE_MSG
SUCCESSFAILURE
TransactionTimeout || AckFailure
MsgOutAvail
MsgInAvail&&MsgIn.TID==MsgOut.TID
PROCESS_MSG
StartAckResponder= (MsgIn.ACK-Req == 1 ? TRUE : FALSE);Process(MsgIn);MsgInAvail=FALSE;
! Broadcast || TransactionTimeout
Opcode==RequestOpcode==Indication ||( Opcode==Response && Broadcast )
MsgInAvail&& MsgIn.TID==MsgOut.TID&&Broadcast
Send unsolicited
broadcasted responses
Receive responses to broadcasted
request
21-07-0302-00-0000 14
Receive unsolicited
broadcasted responses
Transaction Destination State Machine
INIT
StartAckResponder=StartACKRequestor=FALSE;(Opcode,MID,TID)=MsgIn.(Opcode,MID,TID);StartTimer(TransactionTimeout, TransactionLifetime);Process(MsgIn);StartAckResponder=(Msg.ACK-Req==1 ? TRUE : FALSE);Broadcast=BroadcastMsg(MsgIn);MsgInAvail=FALSE;
SUCCESS
MsgInAvail
FAILURETransactionTimeout
SEND_RESPONSE
StartAckRequestor=(MsgOut.ACK-Req==1 ? TRUE : FALSE);MsgOut.TID=MsgIn.TID;Transmit(MsgOut);
WAIT_RESPONSE_PRM
MsgOutAvail&&(!StartAckResponder ||MsgOut.ACK-Rsp==1)
Opcode==Indication ||(Broadcast &&Opcode ==Response)
Opcode==Request
UCT
21-07-0302-00-0000 15
ACK Requestor State Machine
INIT
RtxCtr=0;
WAIT_ACK
StartTimer(RetransactionTimeout, RetransmissionInterval);
SUCCESS FAILURE
AckFailure=TRUE;
MsgInAvail&&MsgIn.ACK-Rsp==1&&MsgIn.TID==MsgOut.TID
RetransmissionTimeout&&RtxCtr==RtxCtrMax
StartAckRequestor
RETRANSMIT
Transmit(MsgOut);RtxCtr++
RetransmissionTimeout&&RtxCtr<RtxCtrMax
UCT
21-07-0302-00-0000 16
ACK Responder State Machine
RETURN_ACK
Transmit(ACK);MsgInAvail=FALSE;
DELAYING_ACK
StartTimer(DelayedAckTimeout, AckDelayTime);
AckDelayTime>0
MsgOutAvailDelayedAckTimeout
PIGGYBACKING
DUP=MsgOut;MsgOut.ACK-Rsp=1;
AckDelayTime==0
INIT
ACK.ACK-Req=0; ACK.ACK-Rsp=1;ACK.(Opcode, MID, TID)=(Opcode,MID,TID);AckDelayTime=GetAckDelay(MID);
StartAckResponder
MsgInAvail
MsgOutAvail
MsgInAvailRETURN_DUPLICATE
Transmit(DUP);MsgInAvail=FALSE;
MsgInAvail
SUCCESS TransactionTimeout
TransactionTimeout
TransactionTimeout
21-07-0302-00-0000 17
References
1. IEEE Std 802.1X™-2004 – Port-Based Network Access Control