FreeCalypso > hg > fc-tourmaline
view cdg-hybrid/cdginc/p_ll.val @ 303:f76436d19a7a default tip
!GPRS config: fix long-standing AT+COPS chance hanging bug
There has been a long-standing bug in FreeCalypso going back years:
sometimes in the AT command bring-up sequence of an ACI-only MS,
the AT+COPS command would produce only a power scan followed by
cessation of protocol stack activity (only L1 ADC traces), instead
of the expected network search sequence. This behaviour was seen
in different FC firmware versions going back to Citrine, and seemed
to follow some law of chance, not reliably repeatable.
This bug has been tracked down and found to be specific to !GPRS
configuration, stemming from our TCS2/TCS3 hybrid and reconstruction
of !GPRS support that was bitrotten in TCS3.2/LoCosto version.
ACI module psa_mms.c, needed only for !GPRS, was missing in the TCS3
version and had to be pulled from TCS2 - but as it turns out,
there is a new field in the MMR_REG_REQ primitive that needs to be
set correctly, and that psa_mms.c module is the place where this
initialization needed to be added.
author | Mychaela Falconia <falcon@freecalypso.org> |
---|---|
date | Thu, 08 Jun 2023 08:23:37 +0000 |
parents | 35f7a1dc9f7d |
children |
line wrap: on
line source
/* +--------------------------------------------------------------------------+ | PROJECT : PROTOCOL STACK | | FILE : p_ll.val | | SOURCE : "sap\ll.pdf" | | LastModified : "2003-02-04" | | IdAndVersion : "8441.104.99.017" | | SrcFileTime : "Thu Nov 29 09:44:38 2007" | | Generated by CCDGEN_2.5.5A on Fri Oct 14 21:41:52 2016 | | !!DO NOT MODIFY!!DO NOT MODIFY!!DO NOT MODIFY!! | +--------------------------------------------------------------------------+ */ /* PRAGMAS * PREFIX : NONE * COMPATIBILITY_DEFINES : NO (require PREFIX) * ALWAYS_ENUM_IN_VAL_FILE: NO * ENABLE_GROUP: NO * CAPITALIZE_TYPENAME: NO */ #ifndef P_LL_VAL #define P_LL_VAL #define CDG_ENTER__P_LL_VAL #define CDG_ENTER__FILENAME _P_LL_VAL #define CDG_ENTER__P_LL_VAL__FILE_TYPE CDGINC #define CDG_ENTER__P_LL_VAL__LAST_MODIFIED _2003_02_04 #define CDG_ENTER__P_LL_VAL__ID_AND_VERSION _8441_104_99_017 #define CDG_ENTER__P_LL_VAL__SRC_FILE_TIME _Thu_Nov_29_09_44_38_2007 #include "CDG_ENTER.h" #undef CDG_ENTER__P_LL_VAL #undef CDG_ENTER__FILENAME /* * Value constants for VAL_sapi */ #define LL_SAPI_1 (0x1) /* SAP for GMM */ #define LL_SAPI_3 (0x3) /* SAP 1 for SNDCP */ #define LL_SAPI_5 (0x5) /* SAP 2 for SNDCP */ #define LL_SAPI_7 (0x7) /* SAP for SMS */ #define LL_SAPI_9 (0x9) /* SAP 3 for SNDCP */ #define LL_SAPI_11 (0xb) /* SAP 4 for SNDCP */ #define LL_SAPI_INVALID (0xff) /* invalid SAPI identifier */ /* * Value constants for VAL_tlli */ #define LL_TLLI_INVALID (0xffffffff)/* invalid TLLI value */ /* * Value constants for VAL_xid_valid */ #define LL_XID_INVALID (0x0) /* layer-3 XID parameters are not valid */ #define LL_XID_VALID (0x1) /* layer-3 XID parameters are valid */ /* * Value constants for VAL_local */ #define LL_REL_NOTLOCAL (0x0) /* release both sides of the connection */ #define LL_REL_LOCAL (0x1) /* local release only (no notification of the peer LLC) */ /* * Value constants for VAL_cause */ #define LL_RELCS_INVALID_XID (0x5000) /* invalid XID response */ #define LL_RELCS_DM_RECEIVED (0x5001) /* DM received */ #define LL_RELCS_NO_PEER_RES (0x5002) /* no peer response */ #define LL_RELCS_NORMAL (0x5004) /* normal release */ /* * Value constants for VAL_cipher */ #define LL_CIPHER_OFF (0x0) /* UI frame not ciphered */ #define LL_CIPHER_ON (0x1) /* UI frame ciphered */ /* * Value constants for VAL_radio_prio */ #define LL_RADIO_PRIO_1 (0x0) /* Radio Priority Level 1 (higest) */ #define LL_RADIO_PRIO_2 (0x1) /* Radio Priority Level 2 */ #define LL_RADIO_PRIO_3 (0x2) /* Radio Priority Level 3 */ #define LL_RADIO_PRIO_4 (0x3) /* Radio Priority Level 4 (lowest) */ /* * Value constants for VAL_peak */ #define LL_PEAK_SUB (0x0) /* Subscribed peak throughput */ #define LL_PEAK_1K (0x1) /* Up to 1 000 octet/s */ #define LL_PEAK_2K (0x2) /* Up to 2 000 octet/s */ #define LL_PEAK_4K (0x3) /* Up to 4 000 octet/s */ #define LL_PEAK_8K (0x4) /* Up to 8 000 octet/s */ #define LL_PEAK_16K (0x5) /* Up to 16 000 octet/s */ #define LL_PEAK_32K (0x6) /* Up to 32 000 octet/s */ #define LL_PEAK_64K (0x7) /* Up to 64 000 octet/s */ #define LL_PEAK_128K (0x8) /* Up to 128 000 octet/s */ #define LL_PEAK_256K (0x9) /* Up to 256 000 octet/s */ /* * Value constants for VAL_relclass */ #define LL_RELCLASS_SUB (0x0) /* Subscribed reliability class */ #define LL_GTP_LLC_RLC_PROT (0x1) /* Acknowledged GTP, LLC, and RLC; Protected data */ #define LL_LLC_RLC_PROT (0x2) /* Unacknowledged GTP; Acknowledged LLC and RLC, Protected data */ #define LL_RLC_PROT (0x3) /* Unacknowledged GTP and LLC; Acknowledged RLC, Protected data */ #define LL_PROT (0x4) /* Unacknowledged GTP, LLC, and RLC, Protected data */ #define LL_NO_REL (0x5) /* Unacknowledged GTP, LLC, and RLC, Unprotected data */ /* * Value constants for VAL_delay */ #define LL_DELAY_SUB (0x0) /* Subscribed delay class */ #define LL_DELAY_1 (0x1) /* Delay class 1 */ #define LL_DELAY_2 (0x2) /* Delay class 2 */ #define LL_DELAY_3 (0x3) /* Delay class 3 */ #define LL_DELAY_4 (0x4) /* Delay class 4 (best effort) */ /* * Value constants for VAL_mean */ #define LL_MEAN_SUB (0x0) /* Subscribed mean throughput */ #define LL_MEAN_100 (0x1) /* 100 octet/h */ #define LL_MEAN_200 (0x2) /* 200 octet/h */ #define LL_MEAN_500 (0x3) /* 500 octet/h */ #define LL_MEAN_1K (0x4) /* 1 000 octet/h */ #define LL_MEAN_2K (0x5) /* 2 000 octet/h */ #define LL_MEAN_5K (0x6) /* 5 000 octet/h */ #define LL_MEAN_10K (0x7) /* 10 000 octet/h */ #define LL_MEAN_20K (0x8) /* 20 000 octet/h */ #define LL_MEAN_50K (0x9) /* 50 000 octet/h */ #define LL_MEAN_100K (0xa) /* 100 000 octet/h */ #define LL_MEAN_200K (0xb) /* 200 000 octet/h */ #define LL_MEAN_500K (0xc) /* 500 000 octet/h */ #define LL_MEAN_1M (0xd) /* 1 000 000 octet/h */ #define LL_MEAN_2M (0xe) /* 2 000 000 octet/h */ #define LL_MEAN_5M (0xf) /* 5 000 000 octet/h */ #define LL_MEAN_10M (0x10) /* 10 000 000 octet/h */ #define LL_MEAN_20M (0x11) /* 20 000 000 octet/h */ #define LL_MEAN_50M (0x12) /* 50 000 000 octet/h */ #define LL_MEAN_BEST (0x1f) /* Best effort */ /* * Value constants for VAL_preced */ #define LL_PRECED_SUB (0x0) /* Subscribed precedence */ #define LL_PRIO_HIGH (0x1) /* High priority */ #define LL_PRIO_NORM (0x2) /* Normal priority */ #define LL_PRIO_LOW (0x3) /* Low priority */ /* * Value constants for VAL_error_cause */ #define LL_ERRCS_INVALID_XID (0x5000) /* invalid XID response */ #define LL_ERRCS_NO_PEER_RES (0x5002) /* no peer response */ /* * Value constants for VAL_attached_counter */ #define LLC_NO_ATTACHE (0x0) /* no entity/service is attached to the primitive */ /* * Value constants for VAL_seg_pos */ #define LL_SEG_POS_NONE (0x0) /* In between */ #define LL_SEG_POS_FIRST (0x1) /* first */ #define LL_SEG_POS_LAST (0x2) /* last */ #define LL_SEG_POS_FIRST_LAST (0x3) /* both */ // VALTAB-FF: REL99 // // Value constants for VAL_pkt_flow_id // // VAL-FF: REL99 // #define LL_PFI_BEST_EFFORT (0x0) /* best effort */ // VAL-FF: REL99 // #define LL_PFI_SIGNALING (0x1) /* signalling */ // VAL-FF: REL99 // #define LL_PFI_SMS (0x2) /* SMS */ // VAL-FF: REL99 // #define LL_PKT_FLOW_ID_NOT_PRES (0xff) /* value FF is used to indicate when packet flwo identifier is not present */ /* * user defined constants */ #define N202 (0x4) #define LLC_SDU_OFFSET (0x25) #define LLC_SDU_OFFSET_BITS (0x128) #define LLC_MAX_L3_XID_LEN (0xff) #define LLC_MAX_L3_XID_LEN (0xff) #define LLC_MAX_CNF (0x20) #define LLC_ORIGINATING_ENTITY (0x10) #include "CDG_LEAVE.h" #endif