blob: 1392ca1bd9cf6a2d4958ea53eb1693a84829a47b [file] [log] [blame]
/* ------------------------------------------------------------------
* Copyright (C) 1998-2009 PacketVideo
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
* express or implied.
* See the License for the specific language governing permissions
* and limitations under the License.
* -------------------------------------------------------------------
*/
// ----------------------------------------------------------------------
//
// This Software is an original work of authorship of PacketVideo Corporation.
// Portions of the Software were developed in collaboration with NTT DoCoMo,
// Inc. or were derived from the public domain or materials licensed from
// third parties. Title and ownership, including all intellectual property
// rights in and to the Software shall remain with PacketVideo Corporation
// and NTT DoCoMo, Inc.
//
// -----------------------------------------------------------------------
/************************************************************************/
/* file name : seblc.c */
/* file contents : Bi-Directional Logical Channel Signalling Entity */
/* : Management */
/* draw : '96.11.26 */
/*----------------------------------------------------------------------*/
/* amendment : */
/* Copyright (C) 1996 NTT DoCoMo */
/************************************************************************/
/************************************************************************/
/* Headerfile Include */
/************************************************************************/
#include "h245inf.h"
#include "msd.h"
#include "blc.h"
#include "lcblccmn.h"
/************************************************************************/
/* function name : Se_Blc_0300_0000 */
/* function outline : Event ESTABLISH.request */
/* : ( Bi-Directional ) */
/* : Status Outgoing Released */
/* function discription: Se_Blc_0300_0000( PS_LCB_ENTRY , */
/* : PS_ForwardReverseParam ) */
/* input data : PS_LCB_ENTRY p_LcbEntry */
/* : PS_ForwardReverseParam p_ForwardReverseParam */
/* output data : None */
/* draw time : '96.11.25 */
/*----------------------------------------------------------------------*/
/* amendent career (x) : */
/* */
/* Copyright (C) 1996 NTT DoCoMo */
/************************************************************************/
void BLC::_0300_0000(LCEntry *p_LcbEntry , PS_ForwardReverseParam p_ForwardReverseParam)
{
uint32 forwardLcn = p_LcbEntry->FwdLcnRead();
p_LcbEntry->StatusWrite(LCBLC_OUTGOING_AWTING_ETBMNT) ;
MsgOpenSend((uint16) forwardLcn, p_ForwardReverseParam) ;
T103TimerStart(forwardLcn, p_LcbEntry->TmrSqcNumberInc()) ;
}
/************************************************************************/
/* function name : Se_Blc_0300_0030 */
/* function outline : Event ESTABLISH.request */
/* : ( Bi-Directional ) */
/* : Status Outgoing Awaiting Release */
/* function discription: Se_Blc_0300_0030( PS_LCB_ENTRY , */
/* : PS_ForwardReverseParam ) */
/* input data : PS_LCB_ENTRY p_LcbEntry */
/* : PS_ForwardReverseParam p_ForwardReverseParam */
/* output data : None */
/* draw time : '96.11.25 */
/*----------------------------------------------------------------------*/
/* amendent career (x) : */
/* */
/* Copyright (C) 1996 NTT DoCoMo */
/************************************************************************/
void BLC::_0300_0030(LCEntry *p_LcbEntry , PS_ForwardReverseParam p_ForwardReverseParam)
{
uint32 forwardLcn = p_LcbEntry->FwdLcnRead();
T103TimerStop(forwardLcn) ;
p_LcbEntry->StatusWrite(LCBLC_OUTGOING_AWTING_ETBMNT) ;
MsgOpenSend((uint16) forwardLcn, p_ForwardReverseParam) ;
T103TimerStart(forwardLcn, p_LcbEntry->TmrSqcNumberInc()) ;
}
/************************************************************************/
/* function name : Se_Blc_0301_0010 */
/* function outline : Event OpenLogicalChannel */
/* : ( Bi-Directional ) */
/* : Status Outgoing Awaiting Establishment */
/* function discription: Se_Blc_0301_0010( PS_LCB_ENTRY , */
/* : PS_OpenLogicalChannel ) */
/* input data : PS_LCB_ENTRY p_LcbEntry */
/* : PS_OpenLogicalChannel p_OpenLogicalChannel */
/* output data : None */
/* draw time : '96.11.25 */
/*----------------------------------------------------------------------*/
/* amendent career (x) : */
/* */
/* Copyright (C) 1996 NTT DoCoMo */
/************************************************************************/
void BLC::_0301_0010(LCEntry *p_LcbEntry , PS_OpenLogicalChannel p_OpenLogicalChannel)
{
if (MyMSD->GetStatus() != MSD_MASTER)
{
uint32 forwardLcn = p_LcbEntry->FwdLcnRead();
uint32 reverseLcn = p_LcbEntry->RvsLcnRead();
T103TimerStop(forwardLcn) ;
p_LcbEntry->StatusWrite(LCBLC_INCOMING_AWTING_ETBMNT) ;
PtvEtbIdcSend(forwardLcn, p_OpenLogicalChannel, reverseLcn) ;
}
}
/************************************************************************/
/* function name : Se_Blc_0303_0010 */
/* function outline : Event RELEASE.request */
/* : ( Bi-Directional ) */
/* : Status Outgoing Awaiting Establishment */
/* function discription: Se_Blc_0303_0010( PS_LCB_ENTRY , */
/* : PS_Cause_LcBlc ) */
/* input data : PS_LCB_ENTRY p_LcbEntry */
/* : PS_Cause_LcBlc p_Cause_LcBlc */
/* output data : None */
/* draw time : '96.11.25 */
/*----------------------------------------------------------------------*/
/* amendent career (x) : */
/* */
/* Copyright (C) 1996 NTT DoCoMo */
/************************************************************************/
void BLC::_0303_0010(LCEntry *p_LcbEntry , PS_OlcRejectCause p_Cause)
{
S_Source source ;
OSCL_UNUSED_ARG(p_Cause);
uint32 forwardLcn = p_LcbEntry->FwdLcnRead();
T103TimerStop(forwardLcn) ;
source.index = 0 ; /* user */
p_LcbEntry->StatusWrite(LCBLC_OUTGOING_AWTING_RLS) ;
MsgCloseSend((uint16) forwardLcn, &source) ;
T103TimerStart(forwardLcn, p_LcbEntry->TmrSqcNumberInc()) ;
}
/************************************************************************/
/* function name : Se_Blc_0303_0020 */
/* function outline : Event RELEASE.request */
/* : ( Bi-Directional ) */
/* : Status Outgoing Established */
/* function discription: Se_Blc_0303_0020( PS_LCB_ENTRY , */
/* : PS_Cause_LcBlc ) */
/* input data : PS_LCB_ENTRY p_LcbEntry */
/* : PS_Cause_LcBlc p_Cause_LcBlc */
/* output data : None */
/* draw time : '96.11.25 */
/*----------------------------------------------------------------------*/
/* amendent career (x) : */
/* */
/* Copyright (C) 1996 NTT DoCoMo */
/************************************************************************/
void BLC::_0303_0020(LCEntry *p_LcbEntry , PS_OlcRejectCause p_Cause)
{
S_Source source ;
OSCL_UNUSED_ARG(p_Cause);
source.index = 0 ; /* user */
uint32 forwardLcn = p_LcbEntry->FwdLcnRead();
p_LcbEntry->StatusWrite(LCBLC_OUTGOING_AWTING_RLS) ;
MsgCloseSend((uint16) forwardLcn, &source) ;
T103TimerStart(forwardLcn, p_LcbEntry->TmrSqcNumberInc()) ;
}
/************************************************************************/
/* function name : Se_Blc_0304_0000 */
/* function outline : Event OpenLogicalChannelAck */
/* : ( Bi-Directional ) */
/* : Status Outgoing Released */
/* function discription: Se_Blc_0304_0000( PS_LCB_ENTRY , */
/* : PS_OpenLogicalChannelAck ) */
/* input data : PS_LCB_ENTRY p_LcbEntry */
/* : PS_OpenLogicalChannelAck */
/* : p_OpenLogicalChannelAck */
/* output data : None */
/* draw time : '96.11.25 */
/*----------------------------------------------------------------------*/
/* amendent career (x) : */
/* */
/* Copyright (C) 1996 NTT DoCoMo */
/************************************************************************/
void BLC::_0304_0000(LCEntry *p_LcbEntry , PS_OpenLogicalChannelAck p_OpenLogicalChannelAck)
{
OSCL_UNUSED_ARG(p_OpenLogicalChannelAck);
uint32 forwardLcn = p_LcbEntry->FwdLcnRead();
uint32 reverseLcn = p_LcbEntry->RvsLcnRead();
PtvErrIdcSend(forwardLcn, ErrCode_Blc_A, reverseLcn) ;
}
/************************************************************************/
/* function name : Se_Blc_0304_0010 */
/* function outline : Event OpenLogicalChannelAck */
/* : ( Bi-Directional ) */
/* : Status Outgoing Awaiting Establishment */
/* function discription: Se_Blc_0304_0010( PS_LCB_ENTRY , */
/* : PS_OpenLogicalChannelAck ) */
/* input data : PS_LCB_ENTRY p_LcbEntry */
/* : PS_OpenLogicalChannelAck */
/* : p_OpenLogicalChannelAck */
/* output data : None */
/* draw time : '96.11.25 */
/*----------------------------------------------------------------------*/
/* amendent career (x) : */
/* */
/* Copyright (C) 1996 NTT DoCoMo */
/************************************************************************/
void BLC::_0304_0010(LCEntry *p_LcbEntry , PS_OpenLogicalChannelAck p_OpenLogicalChannelAck)
{
uint32 forwardLcn = p_LcbEntry->FwdLcnRead();
T103TimerStop(forwardLcn) ;
p_LcbEntry->StatusWrite(LCBLC_OUTGOING_ETBED) ;
p_LcbEntry->RvsLcnWrite(p_OpenLogicalChannelAck->ackReverseLogicalChannelParameters.reverseLogicalChannelNumber) ;
uint32 reverseLcn = p_LcbEntry->RvsLcnRead();
PtvEtbCfmSend(forwardLcn, p_OpenLogicalChannelAck, reverseLcn) ;
MsgOpenCfmSend((uint16) forwardLcn, p_OpenLogicalChannelAck) ;
}
/************************************************************************/
/* function name : Se_Blc_0306_0000 */
/* function outline : Event OpenLogicalChannelReject */
/* : ( Bi-Directional ) */
/* : Status Outgoing Released */
/* function discription: Se_Blc_0306_0000 ( PS_LCB_ENTRY , */
/* : PS_OpenLogicalChannelReject ) */
/* input data : PS_LCB_ENTRY p_LcbEntry */
/* : PS_OpenLogicalChannelReject */
/* : p_OpenLogicalChannelReject */
/* output data : None */
/* draw time : '96.11.25 */
/*----------------------------------------------------------------------*/
/* amendent career (x) : */
/* */
/* Copyright (C) 1996 NTT DoCoMo */
/************************************************************************/
void BLC::_0306_0000(LCEntry *p_LcbEntry , PS_OpenLogicalChannelReject p_OpenLogicalChannelReject)
{
OSCL_UNUSED_ARG(p_OpenLogicalChannelReject);
uint32 forwardLcn = p_LcbEntry->FwdLcnRead();
uint32 reverseLcn = p_LcbEntry->RvsLcnRead();
PtvErrIdcSend(forwardLcn, ErrCode_Blc_B, reverseLcn) ;
}
/************************************************************************/
/* function name : Se_Blc_0306_0010 */
/* function outline : Event OpenLogicalChannelReject */
/* : ( Bi-Directional ) */
/* : Status Outgoing Awaiting Establishment */
/* function discription: Se_Blc_0306_0010 ( PS_LCB_ENTRY , */
/* : PS_OpenLogicalChannelReject ) */
/* input data : PS_LCB_ENTRY p_LcbEntry */
/* : PS_OpenLogicalChannelReject */
/* : p_OpenLogicalChannelReject */
/* output data : None */
/* draw time : '96.11.25 */
/*----------------------------------------------------------------------*/
/* amendent career (x) : */
/* */
/* Copyright (C) 1996 NTT DoCoMo */
/************************************************************************/
void BLC::_0306_0010(LCEntry *p_LcbEntry , PS_OpenLogicalChannelReject p_OpenLogicalChannelReject)
{
S_Source source ;
uint32 forwardLcn = p_LcbEntry->FwdLcnRead();
uint32 reverseLcn = p_LcbEntry->RvsLcnRead();
T103TimerStop(forwardLcn) ;
source.index = 0 ; /* user */
p_LcbEntry->StatusWrite(LCBLC_OUTGOING_RLSED) ;
PtvRlsIdcSend(forwardLcn, &source , &p_OpenLogicalChannelReject->olcRejectCause, S_InfHeader::OUTGOING, reverseLcn) ;
}
/************************************************************************/
/* function name : Se_Blc_0306_0020 */
/* function outline : Event OpenLogicalChannelReject */
/* : ( Bi-Directional ) */
/* : Status Outgoing Established */
/* function discription: Se_Blc_0306_0020 ( PS_LCB_ENTRY , */
/* : PS_OpenLogicalChannelReject ) */
/* input data : PS_LCB_ENTRY p_LcbEntry */
/* : PS_OpenLogicalChannelReject */
/* : p_OpenLogicalChannelReject */
/* output data : None */
/* draw time : '96.11.25 */
/*----------------------------------------------------------------------*/
/* amendent career (x) : */
/* */
/* Copyright (C) 1996 NTT DoCoMo */
/************************************************************************/
void BLC::_0306_0020(LCEntry *p_LcbEntry , PS_OpenLogicalChannelReject p_OpenLogicalChannelReject)
{
S_Source source ;
uint32 forwardLcn = p_LcbEntry->FwdLcnRead();
uint32 reverseLcn = p_LcbEntry->RvsLcnRead();
p_LcbEntry->StatusWrite(LCBLC_OUTGOING_RLSED) ;
PtvErrIdcSend(forwardLcn, ErrCode_Blc_B, reverseLcn) ;
source.index = 1 ; /* lcse */
PtvRlsIdcSend(forwardLcn, &source , &p_OpenLogicalChannelReject->olcRejectCause, S_InfHeader::OUTGOING, reverseLcn) ;
}
/************************************************************************/
/* function name : Se_Blc_0306_0030 */
/* function outline : Event OpenLogicalChannelReject */
/* : ( Bi-Directional ) */
/* : Status Outgoing Awaiting Release */
/* function discription: Se_Blc_0306_0030 ( PS_LCB_ENTRY , */
/* : PS_OpenLogicalChannelReject ) */
/* input data : PS_LCB_ENTRY p_LcbEntry */
/* : PS_OpenLogicalChannelReject */
/* : p_OpenLogicalChannelReject */
/* output data : None */
/* draw time : '96.11.25 */
/*----------------------------------------------------------------------*/
/* amendent career (x) : */
/* */
/* Copyright (C) 1996 NTT DoCoMo */
/************************************************************************/
void BLC::_0306_0030(LCEntry *p_LcbEntry , PS_OpenLogicalChannelReject p_OpenLogicalChannelReject)
{
OSCL_UNUSED_ARG(p_OpenLogicalChannelReject);
uint32 forwardLcn = p_LcbEntry->FwdLcnRead();
uint32 reverseLcn = p_LcbEntry->RvsLcnRead();
T103TimerStop(forwardLcn) ;
p_LcbEntry->StatusWrite(LCBLC_OUTGOING_RLSED) ;
PtvRlsCfmSend(forwardLcn, reverseLcn) ;
}
/************************************************************************/
/* function name : Se_Blc_0307_0010 */
/* function outline : Event Timer T103 Timeout */
/* : ( Bi-Directional ) */
/* : Status Outgoing Awaiting Establishment */
/* function discription: Se_Blc_0307_0010( PS_LCB_ENTRY , int32 ) */
/* input data : PS_LCB_ENTRY p_LcbEntry */
/* : int32 TmrSqcNumber */
/* output data : None */
/* draw time : '96.11.25 */
/*----------------------------------------------------------------------*/
/* amendent career (x) : */
/* */
/* Copyright (C) 1996 NTT DoCoMo */
/************************************************************************/
void BLC::_0307_0010(LCEntry *p_LcbEntry , int32 TmrSqcNumber)
{
S_Source source ;
S_OlcRejectCause cause ;
if (TmrSqcNumber == p_LcbEntry->TmrSqcNumberRead())
{
uint32 forwardLcn = p_LcbEntry->FwdLcnRead();
uint32 reverseLcn = p_LcbEntry->RvsLcnRead();
p_LcbEntry->StatusWrite(LCBLC_OUTGOING_RLSED) ;
PtvErrIdcSend(forwardLcn, ErrCode_Blc_D, reverseLcn) ;
source.index = 1 ; /* lcse */
MsgCloseSend((uint16) forwardLcn, &source) ;
oscl_memset((void*)&cause , 0 , sizeof(S_OlcRejectCause)) ;
PtvRlsIdcSend(forwardLcn, &source , &cause, S_InfHeader::OUTGOING, reverseLcn) ;
}
}
/************************************************************************/
/* function name : Se_Blc_0307_0030 */
/* function outline : Event Timer T103 Timeout */
/* : ( Bi-Directional ) */
/* : Status Outgoing Awaiting Release */
/* function discription: Se_Blc_0307_0030( PS_LCB_ENTRY , int32 ) */
/* input data : PS_LCB_ENTRY p_LcbEntry */
/* : int32 TmrSqcNumber */
/* output data : None */
/* draw time : '96.11.25 */
/*----------------------------------------------------------------------*/
/* amendent career (x) : */
/* */
/* Copyright (C) 1996 NTT DoCoMo */
/************************************************************************/
void BLC::_0307_0030(LCEntry *p_LcbEntry , int32 TmrSqcNumber)
{
if (TmrSqcNumber == p_LcbEntry->TmrSqcNumberRead())
{
uint32 forwardLcn = p_LcbEntry->FwdLcnRead();
uint32 reverseLcn = p_LcbEntry->RvsLcnRead();
p_LcbEntry->StatusWrite(LCBLC_OUTGOING_RLSED) ;
PtvErrIdcSend(forwardLcn, ErrCode_Blc_D, reverseLcn) ;
PtvRlsCfmSend(forwardLcn, reverseLcn) ;
}
}
/************************************************************************/
/* function name : Se_Blc_0309_0020 */
/* function outline : Event CloseLogicalChannelAck */
/* : ( Bi-Directional ) */
/* : Status Outgoing Established */
/* function discription: Se_Blc_0309_0020( PS_LCB_ENTRY , */
/* : PS_CloseLogicalChannelAck ) */
/* input data : PS_LCB_ENTRY p_LcbEntry */
/* : PS_CloseLogicalChannelAck */
/* : p_CloseLogicalChannelAck */
/* output data : None */
/* draw time : '96.11.25 */
/*----------------------------------------------------------------------*/
/* amendent career (x) : */
/* */
/* Copyright (C) 1996 NTT DoCoMo */
/************************************************************************/
void BLC::_0309_0020(LCEntry *p_LcbEntry , PS_CloseLogicalChannelAck p_CloseLogicalChannelAck)
{
S_Source source ;
S_OlcRejectCause cause ;
OSCL_UNUSED_ARG(p_CloseLogicalChannelAck);
uint32 forwardLcn = p_LcbEntry->FwdLcnRead();
uint32 reverseLcn = p_LcbEntry->RvsLcnRead();
p_LcbEntry->StatusWrite(LCBLC_OUTGOING_RLSED) ;
PtvErrIdcSend(forwardLcn, ErrCode_Blc_C, reverseLcn) ;
source.index = 1 ;
oscl_memset((void*)&cause , 0 , sizeof(S_OlcRejectCause)) ;
PtvRlsIdcSend(forwardLcn, &source , &cause, S_InfHeader::OUTGOING, reverseLcn) ;
}
/************************************************************************/
/* function name : Se_Blc_0309_0030 */
/* function outline : Event CloseLogicalChannelAck */
/* : ( Bi-Directional ) */
/* : Status Outgoing Awaiting Release */
/* function discription: Se_Blc_0309_0030( PS_LCB_ENTRY , */
/* : PS_CloseLogicalChannelAck ) */
/* input data : PS_LCB_ENTRY p_LcbEntry */
/* : PS_CloseLogicalChannelAck */
/* : p_CloseLogicalChannelAck */
/* output data : None */
/* draw time : '96.11.25 */
/*----------------------------------------------------------------------*/
/* amendent career (x) : */
/* */
/* Copyright (C) 1996 NTT DoCoMo */
/************************************************************************/
void BLC::_0309_0030(LCEntry *p_LcbEntry , PS_CloseLogicalChannelAck p_CloseLogicalChannelAck)
{
OSCL_UNUSED_ARG(p_CloseLogicalChannelAck);
uint32 forwardLcn = p_LcbEntry->FwdLcnRead();
uint32 reverseLcn = p_LcbEntry->RvsLcnRead();
T103TimerStop(forwardLcn) ;
p_LcbEntry->StatusWrite(LCBLC_OUTGOING_RLSED) ;
PtvRlsCfmSend(forwardLcn, reverseLcn) ;
}
/************************************************************************/
/* function name : Se_Blc_0301_0001 */
/* function outline : Event OpenLogicalChannel */
/* : ( Bi-Directional ) */
/* : Status Incoming Released */
/* : Status Outgoing Released */
/* function discription: Se_Blc_0301_0001( PS_LCB_ENTRY , */
/* : PS_OpenLogicalChannel ) */
/* input data : PS_LCB_ENTRY p_LcbEntry */
/* : PS_OpenLogicalChannel p_OpenLogicalChannel */
/* output data : None */
/* draw time : '96.11.25 */
/*----------------------------------------------------------------------*/
/* amendent career (x) : */
/* */
/* Copyright (C) 1996 NTT DoCoMo */
/************************************************************************/
void BLC::_0301_0001(LCEntry *p_LcbEntry , PS_OpenLogicalChannel p_OpenLogicalChannel)
{
uint32 forwardLcn = p_LcbEntry->FwdLcnRead();
uint32 reverseLcn = p_LcbEntry->RvsLcnRead();
p_LcbEntry->StatusWrite(LCBLC_INCOMING_AWTING_ETBMNT) ;
PtvEtbIdcSend(forwardLcn, p_OpenLogicalChannel, reverseLcn) ;
}
/************************************************************************/
/* function name : Se_Blc_0301_0011 */
/* function outline : Event OpenLogicalChannel */
/* : ( Bi-Directional ) */
/* : Status Incoming Awaiting Establishment */
/* : Status Incoming Established */
/* function discription: Se_Blc_0301_0011( PS_LCB_ENTRY , */
/* : PS_OpenLogicalChannel ) */
/* input data : PS_LCB_ENTRY p_LcbEntry */
/* : PS_OpenLogicalChannel p_OpenLogicalChannel */
/* output data : None */
/* draw time : '96.11.25 */
/*----------------------------------------------------------------------*/
/* amendent career (x) : */
/* */
/* Copyright (C) 1996 NTT DoCoMo */
/************************************************************************/
void BLC::_0301_0011(LCEntry *p_LcbEntry , PS_OpenLogicalChannel p_OpenLogicalChannel)
{
S_Source source ;
S_OlcRejectCause cause ;
source.index = 0 ; /* user */
cause.index = 0 ; /* unspecified */
uint32 forwardLcn = p_LcbEntry->FwdLcnRead();
uint32 reverseLcn = p_LcbEntry->RvsLcnRead();
p_LcbEntry->StatusWrite(LCBLC_INCOMING_AWTING_ETBMNT) ;
PtvRlsIdcSend(forwardLcn, &source , &cause , S_InfHeader::INCOMING, reverseLcn) ;
PtvEtbIdcSend(forwardLcn, p_OpenLogicalChannel, reverseLcn) ;
}
/************************************************************************/
/* function name : Se_Blc_0301_0021 */
/* function outline : Event OpenLogicalChannel */
/* : ( Bi-Directional ) */
/* : Status Incoming Awaiting Confirmation */
/* function discription: Se_Blc_0301_0021( PS_LCB_ENTRY , */
/* : PS_OpenLogicalChannel ) */
/* input data : PS_LCB_ENTRY p_LcbEntry */
/* : PS_OpenLogicalChannel p_OpenLogicalChannel */
/* output data : None */
/* draw time : '96.11.25 */
/*----------------------------------------------------------------------*/
/* amendent career (x) : */
/* */
/* Copyright (C) 1996 NTT DoCoMo */
/************************************************************************/
void BLC::_0301_0021(LCEntry *p_LcbEntry , PS_OpenLogicalChannel p_OpenLogicalChannel)
{
S_Source source ;
S_OlcRejectCause cause ;
uint32 forwardLcn = p_LcbEntry->FwdLcnRead();
uint32 reverseLcn = p_LcbEntry->RvsLcnRead();
T103TimerStop(forwardLcn) ;
source.index = 0 ; /* user */
cause.index = 0 ; /* unspecified */
p_LcbEntry->StatusWrite(LCBLC_INCOMING_AWTING_ETBMNT) ;
PtvRlsIdcSend(forwardLcn, &source , &cause, S_InfHeader::INCOMING, reverseLcn) ;
PtvEtbIdcSend(forwardLcn, p_OpenLogicalChannel, reverseLcn) ;
}
/************************************************************************/
/* function name : Se_Blc_0302_0011 */
/* function outline : Event ESTABLISH.response */
/* : ( Bi-Directional ) */
/* : Status Incoming Awaiting Establishment */
/* function discription: Se_Blc_0302_0011( PS_LCB_ENTRY , */
/* : PS_ReverseData , uint32 ) */
/* input data : PS_LCB_ENTRY p_LcbEntry */
/* : PS_ReverseData p_ReverseData */
/* : uint32 ReverseLogicalChannelNumber */
/* output data : None */
/* draw time : '96.11.26 */
/*----------------------------------------------------------------------*/
/* amendent career (x) : */
/* */
/* Copyright (C) 1996 NTT DoCoMo */
/************************************************************************/
void BLC::_0302_0011(LCEntry *p_LcbEntry , PS_ReverseData p_ReverseData , uint16 ReverseLogicalChannelNumber)
{
uint32 forwardLcn = p_LcbEntry->FwdLcnRead();
p_LcbEntry->RvsLcnWrite(ReverseLogicalChannelNumber) ;
p_ReverseData->reverseLogicalChannelParameters.reverseLogicalChannelNumber = ReverseLogicalChannelNumber;
p_LcbEntry->StatusWrite(LCBLC_INCOMING_AWTING_CNFMTN) ;
MsgOpenAckSend((uint16) forwardLcn, p_ReverseData) ;
T103TimerStart(forwardLcn, p_LcbEntry->TmrSqcNumberInc()) ;
}
/************************************************************************/
/* function name : Se_Blc_0303_0011 */
/* function outline : Event RELEASE.request */
/* : ( Bi-Directional ) */
/* : Status Incoming Awaiting Establishment */
/* function discription: Se_Blc_0303_0011( PS_LCB_ENTRY , */
/* : PS_Cause_LcBlc ) */
/* input data : PS_LCB_ENTRY p_LcbEntry */
/* : PS_Cause_LcBlc p_Cause_LcBlc */
/* output data : None */
/* draw time : '96.11.25 */
/*----------------------------------------------------------------------*/
/* amendent career (x) : */
/* */
/* Copyright (C) 1996 NTT DoCoMo */
/************************************************************************/
void BLC::_0303_0011(LCEntry *p_LcbEntry , PS_OlcRejectCause p_Cause)
{
uint32 forwardLcn = p_LcbEntry->FwdLcnRead();
p_LcbEntry->StatusWrite(LCBLC_INCOMING_RLSED) ;
MsgOpenRjtSend((uint16) forwardLcn, p_Cause) ;
}
/************************************************************************/
/* function name : Se_Blc_0305_0011 */
/* function outline : Event OpenLogicalChannelConfirm */
/* : ( Bi-Directional ) */
/* : Status Incoming Awaiting Establishment */
/* function discription: Se_Blc_0305_0011( PS_LCB_ENTRY , */
/* : PS_OpenLogicalChannelConfirm ) */
/* input data : PS_LCB_ENTRY p_LcbEntry */
/* : PS_OpenLogicalChannelConfirm */
/* : p_OpenLogicalChannelConfirm */
/* output data : None */
/* draw time : '96.11.25 */
/*----------------------------------------------------------------------*/
/* amendent career (x) : */
/* */
/* Copyright (C) 1996 NTT DoCoMo */
/************************************************************************/
void BLC::_0305_0011(LCEntry *p_LcbEntry , PS_OpenLogicalChannelConfirm p_OpenLogicalChannelConfirm)
{
S_Source source ;
S_OlcRejectCause cause ;
OSCL_UNUSED_ARG(p_OpenLogicalChannelConfirm);
uint32 forwardLcn = p_LcbEntry->FwdLcnRead();
uint32 reverseLcn = p_LcbEntry->RvsLcnRead();
p_LcbEntry->StatusWrite(LCBLC_INCOMING_RLSED) ;
PtvErrIdcSend(forwardLcn, ErrCode_Blc_E, reverseLcn) ;
source.index = 1 ; /* user */
oscl_memset((void*)&cause , 0 , sizeof(S_OlcRejectCause)) ;
PtvRlsIdcSend(forwardLcn, &source , &cause, S_InfHeader::INCOMING, reverseLcn) ;
}
/************************************************************************/
/* function name : Se_Blc_0305_0021 */
/* function outline : Event OpenLogicalChannelConfirm */
/* : ( Bi-Directional ) */
/* : Status Incoming Awaiting Confirmation */
/* function discription: Se_Blc_0305_0021( PS_LCB_ENTRY , */
/* : PS_OpenLogicalChannelConfirm ) */
/* input data : PS_LCB_ENTRY p_LcbEntry */
/* : PS_OpenLogicalChannelConfirm */
/* : p_OpenLogicalChannelConfirm */
/* output data : None */
/* draw time : '96.11.25 */
/*----------------------------------------------------------------------*/
/* amendent career (x) : */
/* */
/* Copyright (C) 1996 NTT DoCoMo */
/************************************************************************/
void BLC::_0305_0021(LCEntry *p_LcbEntry , PS_OpenLogicalChannelConfirm p_OpenLogicalChannelConfirm)
{
S_OpenLogicalChannelAck OpenLogicalChannelAck ;
OSCL_UNUSED_ARG(p_OpenLogicalChannelConfirm);
uint32 forwardLcn = p_LcbEntry->FwdLcnRead();
uint32 reverseLcn = p_LcbEntry->RvsLcnRead();
T103TimerStop(forwardLcn) ;
OpenLogicalChannelAck.forwardLogicalChannelNumber = (uint16) forwardLcn;
OpenLogicalChannelAck.option_of_ackReverseLogicalChannelParameters = false ;
oscl_memset((void*)&OpenLogicalChannelAck.ackReverseLogicalChannelParameters ,
0 ,
sizeof(S_AckReverseLogicalChannelParameters)) ;
OpenLogicalChannelAck.option_of_separateStack = false ;
oscl_memset((void*)&OpenLogicalChannelAck.separateStack , 0 , sizeof(S_NetworkAccessParameters)) ;
OpenLogicalChannelAck.option_of_forwardMultiplexAckParameters = false ;
oscl_memset((void*)&OpenLogicalChannelAck.forwardMultiplexAckParameters , 0 , sizeof(S_ForwardMultiplexAckParameters)) ;
p_LcbEntry->StatusWrite(LCBLC_INCOMING_ETBED) ;
PtvEtbCfmSend2(forwardLcn, &OpenLogicalChannelAck, reverseLcn) ;
}
/************************************************************************/
/* function name : Se_Blc_0307_0021 */
/* function outline : Event Timer T103 Timeout */
/* : ( Bi-Directional ) */
/* : Status Incoming Awaiting Confirmation */
/* function discription: Se_Blc_0307_0021( PS_LCB_ENTRY , int32 ) */
/* input data : PS_LCB_ENTRY p_LcbEntry */
/* : int32 TmrSqcNumber */
/* output data : None */
/* draw time : '96.11.25 */
/*----------------------------------------------------------------------*/
/* amendent career (x) : */
/* */
/* Copyright (C) 1996 NTT DoCoMo */
/************************************************************************/
void BLC::_0307_0021(LCEntry *p_LcbEntry , int32 TmrSqcNumber)
{
S_Source source ;
S_OlcRejectCause cause ;
if (TmrSqcNumber == p_LcbEntry->TmrSqcNumberRead())
{
uint32 forwardLcn = p_LcbEntry->FwdLcnRead();
uint32 reverseLcn = p_LcbEntry->RvsLcnRead();
p_LcbEntry->StatusWrite(LCBLC_INCOMING_RLSED) ;
PtvErrIdcSend(forwardLcn, ErrCode_Blc_F, reverseLcn) ;
source.index = 1 ; /* lcse */
oscl_memset((void*)&cause , 0 , sizeof(S_OlcRejectCause)) ;
PtvRlsIdcSend(forwardLcn, &source , &cause, S_InfHeader::INCOMING, reverseLcn) ;
}
}
/************************************************************************/
/* function name : Se_Blc_0308_0001 */
/* function outline : Event CloseLogicalChannel */
/* : ( Bi-Directional ) */
/* : Status Incoming Released */
/* function discription: Se_Blc_0308_0001( PS_LCB_ENTRY , */
/* : PS_CloseLogicalChannel ) */
/* input data : PS_LCB_ENTRY p_LcbEntry */
/* : PS_CloseLogicalChannel p_CloseLogicalChannel */
/* output data : None */
/* draw time : '96.11.25 */
/*----------------------------------------------------------------------*/
/* amendent career (x) : */
/* */
/* Copyright (C) 1996 NTT DoCoMo */
/************************************************************************/
void BLC::_0308_0001(LCEntry *p_LcbEntry , PS_CloseLogicalChannel p_CloseLogicalChannel)
{
OSCL_UNUSED_ARG(p_CloseLogicalChannel);
MsgCloseAckSend((uint16) p_LcbEntry->FwdLcnRead()) ;
}
/************************************************************************/
/* function name : Se_Blc_0308_0011 */
/* function outline : Event CloseLogicalChannel */
/* : ( Bi-Directional ) */
/* : Status Incoming Awaiting Establishment */
/* : Status Incoming Established */
/* function discription: Se_Blc_0308_0011( PS_LCB_ENTRY , */
/* : PS_CloseLogicalChannel ) */
/* input data : PS_LCB_ENTRY p_LcbEntry */
/* : PS_CloseLogicalChannel p_CloseLogicalChannel */
/* output data : None */
/* draw time : '96.11.25 */
/*----------------------------------------------------------------------*/
/* amendent career (x) : */
/* */
/* Copyright (C) 1996 NTT DoCoMo */
/************************************************************************/
void BLC::_0308_0011(LCEntry *p_LcbEntry , PS_CloseLogicalChannel p_CloseLogicalChannel)
{
S_OlcRejectCause cause ;
uint32 forwardLcn = p_LcbEntry->FwdLcnRead();
uint32 reverseLcn = p_LcbEntry->RvsLcnRead();
p_LcbEntry->StatusWrite(LCBLC_INCOMING_RLSED) ;
MsgCloseAckSend((uint16) forwardLcn) ;
cause.index = 0 ; /* unspecified */
PtvRlsIdcSend(forwardLcn, &p_CloseLogicalChannel->source , &cause, S_InfHeader::INCOMING, reverseLcn) ;
}
/************************************************************************/
/* function name : Se_Blc_0308_0021 */
/* function outline : Event CloseLogicalChannel */
/* : ( Bi-Directional ) */
/* : Status Incoming Awaiting Confirmation */
/* function discription: Se_Blc_0308_0021( PS_LCB_ENTRY , */
/* : PS_CloseLogicalChannel ) */
/* input data : PS_LCB_ENTRY p_LcbEntry */
/* : PS_CloseLogicalChannel p_CloseLogicalChannel */
/* output data : None */
/* draw time : '96.11.25 */
/*----------------------------------------------------------------------*/
/* amendent career () : */
/* */
/* Copyright (C) 1996 NTT DoCoMo */
/************************************************************************/
void BLC::_0308_0021(LCEntry *p_LcbEntry , PS_CloseLogicalChannel p_CloseLogicalChannel)
{
S_OlcRejectCause cause ;
uint32 forwardLcn = p_LcbEntry->FwdLcnRead();
uint32 reverseLcn = p_LcbEntry->RvsLcnRead();
T103TimerStop(forwardLcn) ;
cause.index = 0 ; /* unspecified */
p_LcbEntry->StatusWrite(LCBLC_INCOMING_RLSED) ;
MsgCloseAckSend((uint16) forwardLcn) ;
PtvRlsIdcSend(forwardLcn, &p_CloseLogicalChannel->source , &cause, S_InfHeader::INCOMING, reverseLcn) ;
}