提交 6e280896 authored 作者: Anthony Minessale's avatar Anthony Minessale

this is much more correct, we respond to the NT sending RR commands instead of…

this is much more correct, we respond to the NT sending RR commands instead of us sending RR commands on the timer.

git-svn-id: http://svn.openzap.org/svn/openzap/trunk@123 a93c3328-9c30-0410-af19-c9cd2b2d52af
上级 1ba03504
...@@ -501,14 +501,12 @@ int Q921Rx12(L2TRUNK trunk) ...@@ -501,14 +501,12 @@ int Q921Rx12(L2TRUNK trunk)
/* check for I frame */ /* check for I frame */
if((mes[2] & 0x01) == 0) if((mes[2] & 0x01) == 0)
{ {
L2INT vs = trunk->vs;
/* we increment before we "really" know its good so that if we send in the callback, we use the right nr */ /* we increment before we "really" know its good so that if we send in the callback, we use the right nr */
trunk->vr++; trunk->vr++;
if(Q921Tx23Proc(trunk, smes, size-2) >= 0) /* -2 to clip away CRC */ if(Q921Tx23Proc(trunk, smes, size-2) >= 0) /* -2 to clip away CRC */
{ {
if (vs == trunk->vs) { Q921SendRR(trunk, (mes[0]&0xfc)>>2, (mes[0]>>1)&0x01, mes[1]>>1, mes[3]&0x01);
Q921SendRR(trunk, (mes[0]&0xfc)>>2, (mes[0]>>1)&0x01, mes[1]>>1, mes[3]&0x01);
}
} }
else else
{ {
...@@ -519,11 +517,11 @@ int Q921Rx12(L2TRUNK trunk) ...@@ -519,11 +517,11 @@ int Q921Rx12(L2TRUNK trunk)
/* check for RR */ /* check for RR */
else if(mes[2] ==0x01) else if(mes[2] ==0x01)
{ {
if (((mes[0]>>1)&0x01) == (trunk->NetUser == Q921_TE ? 1 : 0)) { /* if this is a command */
/* todo: we probably should schedule to send RR at timeout here */ Q921SendRR(trunk, (mes[0]&0xfc)>>2, (mes[0]>>1)&0x01, mes[1]>>1, mes[2]&0x01);
/* todo: check if RR is responce to I */ }
Q921T203TimerStart(trunk);
} }
/* check for RNR */ /* check for RNR */
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论