📄 rfc1934.txt
字号:
[5] Go to REMOVE, sub-state B.Enter Add [remote answerer] Action We've received a message from the remote requesting that bandwidth be added. The message contains the number of channels to add. Since the remote is the answerer, the mes- sage also contains the phone nubmers to dial. We may dial less than the number requested. [1] Restart idle timer. [2] If the number of channels requested will put us over the maximum number of channels allowed for the session reduce the channel count. [3] For each channel to add, [1] Integrate the phone number returned from the answerer with the original phone number dialed. [2] Request that a session be extended by dialing the integrated phone number. A callback is passed with the request so call success or fail- ure can be reported back to MP+. [4] Go to ADD:B. Note: This change must actu- ally occur before requesting the first outgoing call. If not, the callback could be called (and ignored) because the session is not in the correct state.Smith Informational [Page 29]RFC 1934 Multilink Protocol Plus April 1996Enter Add [remote caller] Action We've received a message from the remote requesting that bandwidth be added. The message contains the number of channels to add. Since the remote is the caller, it needs us to send the phone numbers to dial. We may send fewer phone numbers than requested [1] Restart idle timer. [2] If the number of channels requested will put us over the maximum number of channels allowed for the session reduce the channel count. [3] Reserve the adjusted number of channels, retrieving their phone numbers. [4] If the number of channels reserved is less than the adjusted number requested. [5] Build an add response message, including the phone numbers for the channels we will let the caller add and send it to the far end. [6] Go to ADD:C.Enter Idle Action The IDLE state is entered at the end of normal transactions. At entry the current status of the connection should be checked and new transactions initiated if necessary. To be safe, we can also use this state as a catch all place to release any bandwidth reserved for adds. The functions to perform are: [1] Restart the idle timer using the current retry value. [2] Release any reserved bandwidth not actually in use. [3] Check if bandwidth change reqested during last trans- action. If change indicated: [1] Query channel counts. [2] If current bandwidth less than suggested band- width and removes are not locked, store the requested bandwidth and initiate a remove trans- action (Enter Remove Action).Smith Informational [Page 30]RFC 1934 Multilink Protocol Plus April 1996 [3] If current bandwidth greater than suggested bandwidth and adds are not locked: [1] Store the requested bandwidth. [2] Intiate an add transaction (Enter Add [local] Action). [4] Go to the IDLE state.Remote Management Request Action We received a request to start/stop remote management. If this is a start request If we can/allow remote management: Build and send a Remote management response Allow message. Else Build and send a Remote management response Deny message. Else (this is a stop) Notify the remote management slave process to terminate.Remote Management Response Action We received a response to our remote management start request. If the response was an Allow response Notify the remote management master process, we can start sending keystrokes/commands Else The peer denied the request, so notify the remote management master process of failure.Remote Management Receive Data Action We (the slave) received data from the remote management master. Pass the received data to the remote management slave process. This is typically keystroke data received from the remote user interface.Remote Management Transmit Data Action We (the master) received data from the remote management slave. Pass the received data to the remote management master process. This is typically screen-updates to be passed to the user interface.Smith Informational [Page 31]RFC 1934 Multilink Protocol Plus April 1996Remote Management Transmit Data Response Action We (the slave) received an ack to data we previously sent to the master. Notify the remote management slave process so that it can queue further transmissions.Remote management (Master) start Action Build a REMOTE_MGMT_REQ start message and send to the far end. Send a proceeding message to the RM master process.Remote management (Slave) data Action Build a REMOTE_MGMT_TX_REQ message with the data passed from the remote management slave process, send it to the far end.Remote management (Master) data Action Build a REMOTE_MGMT_RX_REQ message with data passed from the remote management master process, send it to the far end.Remote management data acknowledgement Action Build a REMOTE_MGMT_TX_RSP message and send it so the slave can send the next block. There is no data associated with this message.Remote management (Master) stop Action Build a REMOTE_MGMT_REQ stop message and send to the far end.3.5.3. MP+STATE_INITIAL state machine All sessions start from this state, sub-state A. The state is not exited until version exchange succeeds. The sub-states are: A Initial state B Sent version request, waiting for version response. C Waiting for version request.Smith Informational [Page 32]RFC 1934 Multilink Protocol Plus April 1996Event Sub-state______________________________________________________________________ A B C======================================================================MP+START_SESSION 1,+ ** **______________________________________________________________________MP+SESSION_DOWN ** 2,Initial:A 2,Initial:A______________________________________________________________________MP+SESSION_TERM ** 3,Initial:A 3,Initial:A______________________________________________________________________MP+TIMER_EXPIRED ** 4,Initial:A 7,Initial:B______________________________________________________________________MP+RX_VERSION_REQ ** 8,Initial:A 5,+______________________________________________________________________MP+RX_VERSION_RSP ** 6,+ **______________________________________________________________________MP+START_RM 9,* 9,* 9,*______________________________________________________________________All other events ** ** **______________________________________________________________________ Table 2: Initial State MachineActions:1 Start timer, 60 seconds if originator, 30 seconds if answerer. Start MP+ If originator Build and send version exchange request Go to INITIAL, sub-state B. Go to INITIAL, sub-state C.2 Do Error Close Action, go to INITIAL, sub-state A.3 Do Term Action, go to INITIAL, sub-state A.4 Do Error Close Action, go to INITIAL, sub-state A.5 Stop the idle timer. Compare protocol versions, if they do not match Do Error Close Action, go to INITIAL, sub-state A.Smith Informational [Page 33]RFC 1934 Multilink Protocol Plus April 1996 Store off info received from remote. Build a version exchange response and send to remote end. Do Enter Idle Action which causes a state change.6 Stop the retry timer. Compare protocol versions, if they do not match Do Error Close Action, go to INITIAL, sub-state A. Store off info received from remote. Check the base channel count in the callers profile. If greater than 1 Set the requested bandwidth to the base channel count. Do Enter Add Caller action which causes a state change. Do Enter Idle Action which causes a state change.7 Both sides think they are the answerer. This is possible if both dial each other at the same time and the first channel that completed PPP negotiation happened to be the channel associated with the incoming call on both units. We resolve this by trying to become the originator. If both sides try to become the originator the one with the largest endpoint discriminator will fall back to being the answerer. Restart Idle timer at 60 seconds Build and send Version Exchange Request message Go to Initial:B8 Both sides think they are the originator. This can happen if both dial each other at the same time and the first channel that completed PPP negotiation happened to be the channel associated with the originating call on both units. MP+ determines which will be the caller and which the answerer by comparing the endpoind discriminator in the version exchange request with the local endpoint discriminator. The unit with the smaller endpoint is arbitrarily called the originator. The actions are:Smith Informational [Page 34]RFC 1934 Multilink Protocol Plus April 1996 Compare local endpoint discriminator with endpoint discrimator in message. If local endpoint discriminator is less than the remote value we are the caller, ignore the incoming message. Otherwise, if local endpoint discriminator is greater than the remote value we are the answerer: Compare protocol versions, if they do not match Do Error Close Action, go to INITIAL, sub-state A. Store off info received from remote. Build a version exchange response and send to remote end. Do Enter Idle Action which causes a state change. If the two values match, there is a problem, Do Error Close Action,go to INITIAL, sub-state A.9 Log an error message. Notify the user interface of remote management failure.3.5.4. MP+STATE_IDLE state machine The Idle state is the state of an active session with no call management activity in progress. There are no sub-states. Event State _____________________________________________ A ============================================= MP+SESSION_DOWN 1,Initial:A _____________________________________________ MP+SESSION_TERM 2,Initial:A _____________________________________________ MP+TIMER_EXPIRED 3,* _____________________________________________ MP+UTILIZATION 4,+ _____________________________________________ MP+RX_ADD_REQ 5,+ _____________________________________________ MP+RX_REMOVE_REQ 6,Remove:B _____________________________________________ MP+RX_RM_REQ 7,+Smith Informational [Page 35]RFC 1934 Multilink Protocol Plus April 1996 _____________________________________________ MP+RX_RM_RSP 8,+ _____________________________________________ MP+RX_RM_RX_REQ 9,+ _____________________________________________ MP+RX_RM_TX_REQ 10,+ _____________________________________________ MP+RX_RM_TX_RSP 11,+ _____________________________________________ MP+RX_CLOSE_REQ 12,+ _____________________________________________ MP+START_RM 13,* _____________________________________________ MP+SEND_RMS 14,* _____________________________________________ MP+SEND_RMM 15,* _____________________________________________ MP+RECV_RMM 16,* _____________________________________________ MP+ST
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -