view cdg-hybrid/sap/l2r.pdf @ 275:79cfefc1e2b4

audio mode load: gracefully handle mode files of wrong AEC version Unfortunately our change of enabling L1_NEW_AEC (which is necessary in order to bring our Calypso ARM fw into match with the underlying DSP reality) brings along a change in the audio mode file binary format and file size - all those new tunable AEC parameters do need to be stored somewhere, after all. But we already have existing mode files in the old format, and setting AEC config to garbage when loading old audio modes (which is what would happen without the present change) is not an appealing proposition. The solution implemented in the present change is as follows: the audio mode loading code checks the file size, and if it differs from the active version of T_AUDIO_MODE, the T_AUDIO_AEC_CFG structure is cleared - set to the default (disabled AEC) for the compiled type of AEC. We got lucky in that this varying T_AUDIO_AEC_CFG structure sits at the end of T_AUDIO_MODE!
author Mychaela Falconia <falcon@freecalypso.org>
date Fri, 30 Jul 2021 02:55:48 +0000
parents 35f7a1dc9f7d
children
line wrap: on
line source

;********************************************************************************
;*** File           : l2r.pdf
;*** Creation       : Wed Mar 11 09:58:14 CST 2009
;*** XSLT Processor : Apache Software Foundation / http://xml.apache.org/xalan-j / supports XSLT-Ver: 1
;*** Copyright      : (c) Texas Instruments AG, Berlin Germany 2002
;********************************************************************************
;*** Document Type  : Service Access Point Specification
;*** Document Name  : l2r
;*** Document No.   : 8411.102.01.124
;*** Document Date  : 2001-10-31
;*** Document Status: BEING_PROCESSED
;*** Document Author: TVO
;********************************************************************************



PRAGMA 	SRC_FILE_TIME 	"Thu Nov 29 09:44:22 2007"
PRAGMA 	LAST_MODIFIED 	"2001-10-31"
PRAGMA 	ID_AND_VERSION 	"8411.102.01.124"



CONST 	L2R_K_MS_IWF_MIN 	0 	; window size ms->iwf (min)
CONST 	L2R_K_MS_IWF_MAX 	61 	; window size ms->iwf (max)
CONST 	L2R_K_MS_IWF_DEF 	61 	; window size ms->iwf (default)
CONST 	L2R_K_IWF_MS_MIN 	0 	; window size iwf->ms (min)
CONST 	L2R_K_IWF_MS_MAX 	61 	; window size iwf->ms (max)
CONST 	L2R_K_IWF_MS_DEF 	61 	; window size iwf->ms (default)
CONST 	L2R_T1_MIN_FULLRATE_14400 	42 	; acknowledge timer (min at fullrate 14400)
CONST 	L2R_T1_MIN_FULLRATE_9600 	38 	; acknowledge timer (min at fullrate 9600)
CONST 	L2R_T1_MIN_FULLRATE_4800 	44 	; acknowledge timer (min at fullrate 4800)
CONST 	L2R_T1_MIN_HALFRATE_4800 	60 	; acknowledge timer (min at halfrate 4800)
CONST 	L2R_T1_MIN 	38 	; acknowledge timer ( >>> to be removed !!! <<<)
CONST 	L2R_T1_MAX 	255 	; acknowledge timer (max at all rates)
CONST 	L2R_T1_DEF_FULLRATE_14400 	52 	; acknowledge timer (default at fullrate 14400)
CONST 	L2R_T1_DEF_FULLRATE_9600 	48 	; acknowledge timer (default at fullrate 9600)
CONST 	L2R_T1_DEF_FULLRATE_4800 	54 	; acknowledge timer (default at fullrate 4800)
CONST 	L2R_T1_DEF_HALFRATE_4800 	78 	; acknowledge timer (default at halfrate 4800)
CONST 	L2R_T1_DEF 	48 	; acknowledge timer ( >>> to be removed !!! <<<)
CONST 	L2R_T2_MIN 	0 	; reply delay (min)
CONST 	L2R_T2_MAX 	255 	; reply delay (max)
CONST 	L2R_T2_DEF 	20 	; reply delay (default)
CONST 	L2R_N2_MIN 	1 	; retransmission attempts (min)
CONST 	L2R_N2_MAX 	255 	; retransmission attempts (max)
CONST 	L2R_N2_DEF 	6 	; retransmission attempts (default)
CONST 	L2R_PT_MIN 	0 	; type of data compression (min)
CONST 	L2R_PT_MAX 	0 	; type of data compression (max)
CONST 	L2R_PT_DEF 	0 	; type of data compression (default)
CONST 	L2R_P0_MIN 	0 	; v.42 bis data compression direction (min)
CONST 	L2R_P0_MAX 	0 	; v.42 bis data compression direction (max)
CONST 	L2R_P0_DEF 	0 	; v.42 bis data compression direction (default)
CONST 	L2R_P1_MIN 	512 	; v.42 bis number of possible codewords (min)
CONST 	L2R_P1_MAX 	65535 	; v.42 bis number of possible codewords (max)
CONST 	L2R_P1_DEF 	512 	; v.42 bis number of possible codewords (default)
CONST 	L2R_P2_MIN 	6 	; v.42 bis maximum encodable data string length (min)
CONST 	L2R_P2_MAX 	250 	; v.42 bis maximum encodable data string length (max)
CONST 	L2R_P2_DEF 	6 	; v.42 bis maximum encodable data string length (default)
CONST 	L2R_BYTES_PER_PRIM_MIN 	25 	; bytes per primitive (min)
CONST 	L2R_BYTES_PER_PRIM_MAX 	250 	; bytes per primitive (max)
CONST 	L2R_BYTES_PER_PRIM_DEF 	250 	; bytes per primitive (default)
CONST 	L2R_BUFFER_SIZE_MIN 	2048 	; receive and transmit buffer size in bytes (min)
CONST 	L2R_BUFFER_SIZE_MAX 	4096 	; receive and transmit buffer size in bytes (max)
CONST 	L2R_BUFFER_SIZE_DEF 	2048 	; receive and transmit buffer size in bytes (default)
CONST 	L2R_ENTITY_NAME_LEN 	6 	; maximum length of entity name including NULL



VALTAB 	VAL_pt
VAL 	0 	L2R_COMPR_TYPE_V42BIS 	"V.42bis"

VALTAB 	VAL_p0
VAL 	0 	L2R_COMP_DIR_NONE 	"compress in neither direction"
VAL 	1 	L2R_COMP_DIR_TRANSMIT 	"compress in uplink direction only"
VAL 	2 	L2R_COMP_DIR_RECEIVE 	"compress in downlink direction only"
VAL 	3 	L2R_COMP_DIR_BOTH 	"compress in both directions"

VALTAB 	VAL_uil2p
VAL 	0 	L2R_ISO6429 	"ISO6429, codeset 0, DC1/DC3 (with flow control)"
VAL 	1 	L2R_COPnoFlCt 	"Character Oriented Protocol with No Flow Control"

VALTAB 	VAL_rate
VAL 	0 	L2R_HALFRATE_4800 	"halfrate 4,8/6 kBit"
VAL 	1 	L2R_FULLRATE_4800 	"fullrate 4,8/6 kBit"
VAL 	2 	L2R_FULLRATE_9600 	"fullrate 9,6/12 kBit"
VAL 	3 	L2R_FULLRATE_14400 	"fullrate 13,4/14,4 kBit"

VALTAB 	VAL_ack_flg
VAL 	0 	L2R_ACK 	"acknowledged"
VAL 	1 	L2R_NAK 	"not acknowledged"

VALTAB 	VAL_cause
VAL 	0x0000 	CAUSE_DUMMY 	"The following causes can occur within this primitive: all those possible within the RLP_ERROR_IND primitive of  the RLP SAP"

VALTAB 	VAL_dti_conn
VAL 	0 	L2R_CONNECT_DTI 	"Connect DTI to L2R"
VAL 	1 	L2R_DISCONNECT_DTI 	"Connect DTI to upper layer"

VALTAB 	VAL_link_id
VAL 	0 	L2R_LINK_ID_DEFAULT 	"Default link id"

VALTAB 	VAL_dti_direction
VAL 	0 	L2R_DTI_NORMAL 	"DTI used normally"
VAL 	1 	L2R_DTI_INVERTED 	"DTI is inverted"




VAR 	rlp_vers 	"rlp version number" 	B


VAR 	k_ms_iwf 	"window size ms -> iwf" 	S


VAR 	k_iwf_ms 	"window size iwf -> ms" 	S


VAR 	t1 	"acknowledge timer" 	B


VAR 	t2 	"reply delay" 	B


VAR 	n2 	"maximum number of retransmission attempts" 	B


VAR 	pt 	"type of data compression" 	B

VAL 	@p_l2r - VAL_pt@ 	

VAR 	p0 	"v.42bis data compression direction" 	B

VAL 	@p_l2r - VAL_p0@ 	

VAR 	p1 	"v.42bis number of possible codewords" 	S


VAR 	p2 	"v.42bis maximum encodable string length" 	B


VAR 	uil2p 	"user information layer 2 protocol" 	B

VAL 	@p_l2r - VAL_uil2p@ 	

VAR 	bytes_per_prim 	"bytes per primitive" 	S


VAR 	buffer_size 	"buffer size in bytes" 	S


VAR 	rate 	"transmission rate" 	B

VAL 	@p_l2r - VAL_rate@ 	

VAR 	ack_flg 	"acknowledge flag" 	B

VAL 	@p_l2r - VAL_ack_flg@ 	

VAR 	cause 	"error cause" 	S

VAL 	@p_l2r - VAL_cause@ 	

VAR 	error_rate 	"error_rate" 	L


VAR 	dti_conn 	"DTI connect" 	B

VAL 	@p_l2r - VAL_dti_conn@ 	

VAR 	entity_name 	"name of an neighbour entity" 	B


VAR 	link_id 	"Link identifier" 	L

VAL 	@p_l2r - VAL_link_id@ 	

VAR 	dti_direction 	"DTI direction" 	B

VAL 	@p_l2r - VAL_dti_direction@ 	







; L2R_ACTIVATE_REQ 	0x80000012
; L2R_ACTIVATE_CNF 	0x80004012
; L2R_DEACTIVATE_REQ 	0x80010012
; L2R_DEACTIVATE_CNF 	0x80014012
; L2R_CONNECT_REQ 	0x80020012
; L2R_CONNECT_CNF 	0x80024012
; L2R_CONNECT_IND 	0x80034012
; L2R_DISC_REQ 	0x80030012
; L2R_DISC_CNF 	0x80044012
; L2R_DISC_IND 	0x80054012
; L2R_XID_IND 	0x800A4012
; L2R_ERROR_IND 	0x800B4012
; L2R_RESET_IND 	0x800C4012
; L2R_STATISTIC_IND 	0x800D4012
; L2R_DTI_REQ 	0x80070012
; L2R_DTI_CNF 	0x800E4012
; L2R_DTI_IND 	0x800F4012
; L2R_CHANGE_RATE_REQ 	0x80080012



PRIM 	L2R_ACTIVATE_REQ 	0x80000012
{
 	k_ms_iwf 	 ; window size ms->iwf
 	k_iwf_ms 	 ; window size iwf->ms
 	t1 	 ; acknowledge timer
 	t2 	 ; reply delay
 	n2 	 ; retransmission attempts
 	pt 	 ; type of data compression
 	p0 	 ; v.42 bis data compression direction
 	p1 	 ; v.42 bis number of possible codewords
 	p2 	 ; v.42 bis maximum encodable data string length
 	uil2p 	 ; user information layer 2 protocol
 	bytes_per_prim 	 ; bytes per primitive
 	buffer_size 	 ; receive and transmit buffer size in bytes
 	rate 	 ; transmission rate
}






PRIM 	L2R_ACTIVATE_CNF 	0x80004012
{
 	ack_flg 	 ; acknowledge flag
}






PRIM 	L2R_DEACTIVATE_REQ 	0x80010012
{
}






PRIM 	L2R_DEACTIVATE_CNF 	0x80014012
{
}






PRIM 	L2R_CONNECT_REQ 	0x80020012
{
}






PRIM 	L2R_CONNECT_CNF 	0x80024012
{
 	ack_flg 	 ; acknowledge flag
}






PRIM 	L2R_CONNECT_IND 	0x80034012
{
}






PRIM 	L2R_DISC_REQ 	0x80030012
{
}






PRIM 	L2R_DISC_CNF 	0x80044012
{
}






PRIM 	L2R_DISC_IND 	0x80054012
{
}






PRIM 	L2R_XID_IND 	0x800A4012
{
 	rlp_vers 	 ; RLP version no.
 	k_ms_iwf 	 ; window size ms->iwf
 	k_iwf_ms 	 ; window size iwf->ms
 	t1 	 ; acknowledge timer
 	t2 	 ; reply delay
 	n2 	 ; retransmission attempts
 	pt 	 ; type of data compression
 	p0 	 ; v.42 bis data compression direction
 	p1 	 ; v.42 bis number of possible codewords
 	p2 	 ; v.42 bis maximum encodable data string length
}






PRIM 	L2R_ERROR_IND 	0x800B4012
{
 	cause 	 ; error cause
}






PRIM 	L2R_RESET_IND 	0x800C4012
{
}






PRIM 	L2R_STATISTIC_IND 	0x800D4012
{
 	error_rate 	 ; error rate
}






PRIM 	L2R_DTI_REQ 	0x80070012
{
 	dti_conn 	 ; DTI connect
 	entity_name 	[L2R_ENTITY_NAME_LEN] 	 ; entity name
 	link_id 	 ; link identifier
 	dti_direction 	 ; DTI direction
}






PRIM 	L2R_DTI_CNF 	0x800E4012
{
 	dti_conn 	 ; DTI connect
 	link_id 	 ; link identifier
}






PRIM 	L2R_DTI_IND 	0x800F4012
{
 	link_id 	 ; link identifier
}






PRIM 	L2R_CHANGE_RATE_REQ 	0x80080012
{
 	rate 	 ; transmission rate
}