[svn-commits] rmudgett: branch mISDN/1.0 r101 - in /mISDN/branches/1.0: ./ drivers/isdn/har...

SVN commits to the Digium repositories svn-commits at lists.digium.com
Mon Apr 13 14:32:42 CDT 2009


Author: rmudgett
Date: Mon Apr 13 14:32:39 2009
New Revision: 101

URL: http://svn.digium.com/svn-view/thirdparty?view=rev&rev=101
Log:
Merged revisions 93-94 via svnmerge from 
https://origsvn.digium.com/svn/thirdparty/mISDN/trunk

........
  r93 | rmudgett | 2009-04-09 14:06:40 -0500 (Thu, 09 Apr 2009) | 1 line
  
  Added Q.921 L2 state name comments to L2 state definitions.
........
  r94 | rmudgett | 2009-04-13 12:14:58 -0500 (Mon, 13 Apr 2009) | 32 lines
  
  Added handling of EV_RELEASE_CNF to ST_L3_LC_ESTAB_WAIT state to bring L2 back up.
  
  The mISDN L2 and L3 state machines could get into a deadlocked condition
  while L2 is going down just as the TE side attempts to initiate a call
  or respond to an incoming call.
  
  JIRA ABE-1816, issue 14030
  
  Sequence of events between L2 and L3:
  ST_L3_LC_ESTAB::EV_RELEASE_REQ -> ST_L3_LC_REL_DELAY
          Event for various reasons when L3 is no longer needed.
          i.e. RELEASE_COMPLETE is sent.
  ST_L3_LC_REL_DELAY::TIMEOUT -> ST_L3_LC_REL_WAIT
          Event sent to L2 state machine to initiate bringing L2 down.
  ST_L2_7::EV_L2_DL_RELEASE_REQ -> ST_L2_6
          L2 sends disconnect and waits for a reply.
  ST_L3_LC_REL_WAIT::EV_ESTABLISH_REQ -> ST_L3_LC_ESTAB_WAIT
          L3 message (SETUP, SETUP_ACK, or PROCEEDING) attempts to bring
          L2 back up by sending event to L2 to establish link.
  ST_L2_6::EV_L2_DL_ESTABLISH_REQ (Ignored)
          L2 is busy still waiting for a reply to the disconnect.
  ST_L2_6::EV_L2_UA -> ST_L2_4
          L2 completes going down and sends event to L3.
  ST_L3_LC_ESTAB_WAIT::EV_RELEASE_CNF (Ignored)
          L3 thinks L2 is trying to go up so does not know what
          to do when L2 confirms that is has completed going down.
  ST_L3_LC_ESTAB_WAIT::EV_ESTABLISH_REQ (Ignored)
          Subsequent messages cannot go out because L3 is already
          waiting for L2 to go up.  Since L2 is never going
          to try to go up anymore, the state machines are
          deadlocked.
........

Modified:
    mISDN/branches/1.0/   (props changed)
    mISDN/branches/1.0/drivers/isdn/hardware/mISDN/layer2.c
    mISDN/branches/1.0/drivers/isdn/hardware/mISDN/layer3.c

Propchange: mISDN/branches/1.0/
------------------------------------------------------------------------------
--- trunk-merged (original)
+++ trunk-merged Mon Apr 13 14:32:39 2009
@@ -1,1 +1,1 @@
-/mISDN/trunk:1-75
+/mISDN/trunk:1-75,93-94

Modified: mISDN/branches/1.0/drivers/isdn/hardware/mISDN/layer2.c
URL: http://svn.digium.com/svn-view/thirdparty/mISDN/branches/1.0/drivers/isdn/hardware/mISDN/layer2.c?view=diff&rev=101&r1=100&r2=101
==============================================================================
--- mISDN/branches/1.0/drivers/isdn/hardware/mISDN/layer2.c (original)
+++ mISDN/branches/1.0/drivers/isdn/hardware/mISDN/layer2.c Mon Apr 13 14:32:39 2009
@@ -22,14 +22,14 @@
 struct Fsm l2fsm = {NULL, 0, 0, NULL, NULL};
 
 enum {
-	ST_L2_1,
-	ST_L2_2,
-	ST_L2_3,
-	ST_L2_4,
-	ST_L2_5,
-	ST_L2_6,
-	ST_L2_7,
-	ST_L2_8,
+	ST_L2_1, /* TEI unassigned. */
+	ST_L2_2, /* Assign awaiting TEI. */
+	ST_L2_3, /* Establish awaiting TEI. */
+	ST_L2_4, /* TEI assigned. */
+	ST_L2_5, /* Awaiting establishment. */
+	ST_L2_6, /* Awaiting release. */
+	ST_L2_7, /* Multiple frame established. */
+	ST_L2_8, /* Timer recovery. */
 };
 
 #define L2_STATE_COUNT (ST_L2_8+1)

Modified: mISDN/branches/1.0/drivers/isdn/hardware/mISDN/layer3.c
URL: http://svn.digium.com/svn-view/thirdparty/mISDN/branches/1.0/drivers/isdn/hardware/mISDN/layer3.c?view=diff&rev=101&r1=100&r2=101
==============================================================================
--- mISDN/branches/1.0/drivers/isdn/hardware/mISDN/layer3.c (original)
+++ mISDN/branches/1.0/drivers/isdn/hardware/mISDN/layer3.c Mon Apr 13 14:32:39 2009
@@ -495,6 +495,7 @@
 	{ST_L3_LC_ESTAB_WAIT,	EV_ESTABLISH_CNF,	lc_connected},
 	{ST_L3_LC_ESTAB_WAIT,	EV_RELEASE_REQ,		lc_start_delay},
 	{ST_L3_LC_ESTAB_WAIT,	EV_RELEASE_IND,		lc_release_ind},
+	{ST_L3_LC_ESTAB_WAIT,	EV_RELEASE_CNF,		lc_activate},
 	{ST_L3_LC_ESTAB,	EV_RELEASE_IND,		lc_release_ind},
 	{ST_L3_LC_ESTAB,	EV_RELEASE_REQ,		lc_start_delay},
         {ST_L3_LC_REL_DELAY,    EV_RELEASE_IND,         lc_release_ind},




More information about the svn-commits mailing list