lists.osmocom.org
Sign In Sign Up
Manage this list Sign In Sign Up

Keyboard Shortcuts

Thread View

  • j: Next unread message
  • k: Previous unread message
  • j a: Jump to all threads
  • j l: Jump to MailingList overview

gerrit-log

Thread Start a new thread
Download
Threads by month
  • ----- 2026 -----
  • November
  • October
  • September
  • August
  • July
  • June
  • May
  • April
  • March
  • February
  • January
  • ----- 2025 -----
  • December
  • November
  • October
  • September
  • August
  • July
  • June
  • May
  • April
  • March
  • February
  • January
  • ----- 2024 -----
  • December
  • November
  • October
  • September
  • August
  • July
  • June
  • May
  • April
  • March
  • February
  • January
  • ----- 2023 -----
  • December
  • November
  • October
  • September
  • August
  • July
  • June
  • May
  • April
  • March
  • February
  • January
  • ----- 2022 -----
  • December
  • November
  • October
  • September
  • August
  • July
  • June
  • May
  • April
  • March
  • February
  • January
gerrit-log@lists.osmocom.org

June 2023

  • 1 participants
  • 2480 discussions
[L] Change in libosmocore[master]: ASCI: Add 3GPP TS 44.068 and 44.069 protocol definitions
by laforge 02 Jun '23

02 Jun '23
laforge has submitted this change. ( https://gerrit.osmocom.org/c/libosmocore/+/32930 ) Change subject: ASCI: Add 3GPP TS 44.068 and 44.069 protocol definitions ...................................................................... ASCI: Add 3GPP TS 44.068 and 44.069 protocol definitions Change-Id: I3554cea47e714c8fca18c3e9c0e6e80695915a90 --- M include/osmocom/gsm/protocol/Makefile.am A include/osmocom/gsm/protocol/gsm_44_068.h M src/gsm/Makefile.am A src/gsm/gsm44068.c M src/gsm/libosmogsm.map 5 files changed, 275 insertions(+), 1 deletion(-) Approvals: laforge: Looks good to me, approved fixeria: Looks good to me, but someone else must approve pespin: Looks good to me, approved Jenkins Builder: Verified diff --git a/include/osmocom/gsm/protocol/Makefile.am b/include/osmocom/gsm/protocol/Makefile.am index 5c8e2a6..23429dc 100644 --- a/include/osmocom/gsm/protocol/Makefile.am +++ b/include/osmocom/gsm/protocol/Makefile.am @@ -18,6 +18,7 @@ gsm_29_118.h \ gsm_44_004.h \ gsm_44_060.h \ + gsm_44_068.h \ gsm_44_318.h \ gsm_48_049.h \ gsm_48_071.h \ diff --git a/include/osmocom/gsm/protocol/gsm_44_068.h b/include/osmocom/gsm/protocol/gsm_44_068.h new file mode 100644 index 0000000..b1c4b45 --- /dev/null +++ b/include/osmocom/gsm/protocol/gsm_44_068.h @@ -0,0 +1,136 @@ +#pragma once +#include <stdint.h> +#include <osmocom/core/utils.h> + +/* Group Call Control (GCC) is an ETSI/3GPP standard protocol used between + * MS (Mobile Station) and MSC (Mobile Switchting Center) in 2G/GSM-R network. + * It is specified in 3GPP TS 44.068. + * + * (C) 2023 by Sysmocom s.f.m.c. GmbH + * All Rights Reserved + * + * Author: Andreas Eversberg + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. + * + * SPDX-License-Identifier: GPL-2.0+ + */ + +/* 9 Information Element Identifiers */ +enum osmo_gsm44068_iei { + OSMO_GSM44068_IEI_MOBILE_IDENTITY = 0x17, + OSMO_GSM44068_IEI_USER_USER = 0x7E, + OSMO_GSM44068_IEI_CALL_STATE = 0xA0, + OSMO_GSM44068_IEI_STATE_ATTRIBUTES = 0xB0, + OSMO_GSM44068_IEI_TALKER_PRIORITY = 0xC0, + OSMO_GSM44068_IEI_SMS_INDICATIONS = 0xD0, +}; + +/* 9.3 Message Type */ +enum osmo_gsm44068_msg_type { + OSMO_GSM44068_MSGT_IMMEDIATE_SETUP = 0x31, + OSMO_GSM44068_MSGT_SETUP = 0x32, + OSMO_GSM44068_MSGT_CONNECT = 0x33, + OSMO_GSM44068_MSGT_TERMINATION = 0x34, + OSMO_GSM44068_MSGT_TERMINATION_REQUEST = 0x35, + OSMO_GSM44068_MSGT_TERMINATION_REJECT = 0x36, + OSMO_GSM44068_MSGT_STATUS = 0x38, + OSMO_GSM44068_MSGT_GET_STATUS = 0x39, + OSMO_GSM44068_MSGT_SET_PARAMETER = 0x3a, + OSMO_GSM44068_MSGT_IMMEDIATE_SETUP_2 = 0x3b, +}; + +/* Table 9.2 priority */ +enum osmo_gsm44068_priority_level { + OSMO_GSM44068_PRIO_LEVEL_4 = 0x1, + OSMO_GSM44068_PRIO_LEVEL_3 = 0x2, + OSMO_GSM44068_PRIO_LEVEL_2 = 0x3, + OSMO_GSM44068_PRIO_LEVEL_1 = 0x4, + OSMO_GSM44068_PRIO_LEVEL_0 = 0x5, + OSMO_GSM44068_PRIO_LEVEL_B = 0x6, + OSMO_GSM44068_PRIO_LEVEL_A = 0x7, +}; + +/* 9.4.2 Call State */ +enum osmo_gsm44068_call_state { + OSMO_GSM44068_CSTATE_U0 = 0x0, + OSMO_GSM44068_CSTATE_U1 = 0x1, + OSMO_GSM44068_CSTATE_U2sl = 0x2, + OSMO_GSM44068_CSTATE_U3 = 0x3, + OSMO_GSM44068_CSTATE_U4 = 0x4, + OSMO_GSM44068_CSTATE_U5 = 0x5, + OSMO_GSM44068_CSTATE_U0p = 0x6, + OSMO_GSM44068_CSTATE_Uwr = 0x7, + OSMO_GSM44068_CSTATE_U2r = 0x8, + OSMO_GSM44068_CSTATE_U2ws = 0x9, + OSMO_GSM44068_CSTATE_U2sr = 0xa, + OSMO_GSM44068_CSTATE_U2nc = 0xb, +}; + +/* 9.4.3 Cause */ +enum osmo_gsm44068_cause { + OSMO_GSM44068_CAUSE_ILLEGAL_MS = 0x03, + OSMO_GSM44068_CAUSE_IMEI_NOT_ACCEPTED = 0x05, + OSMO_GSM44068_CAUSE_ILLEGAL_ME = 0x06, + OSMO_GSM44068_CAUSE_SERVICE_NOT_AUTHORIZED = 0x08, + OSMO_GSM44068_CAUSE_APP_NOT_SUPPORTED_ON_PROTO = 0x09, + OSMO_GSM44068_CAUSE_RR_CONNECTION_ABORTED = 0x0a, + OSMO_GSM44068_CAUSE_NORMAL_CALL_CLEARING = 0x10, + OSMO_GSM44068_CAUSE_NETWORK_FAILURE = 0x11, + OSMO_GSM44068_CAUSE_BUSY = 0x14, + OSMO_GSM44068_CAUSE_CONGESTION = 0x16, + OSMO_GSM44068_CAUSE_USER_NOT_ORIGINATOR = 0x17, + OSMO_GSM44068_CAUSE_NET_WANTS_TO_MAINTAIN_CALL = 0x18, + OSMO_GSM44068_CAUSE_RESPONSE_TO_GET_STATUS = 0x1e, + OSMO_GSM44068_CAUSE_SERVICE_OPTION_NOT_SUBSCR = 0x20, + OSMO_GSM44068_CAUSE_REQUESTED_SERVICE_NOT_SUB = 0x21, + OSMO_GSM44068_CAUSE_SERVICE_OPTION_OOO = 0x22, + OSMO_GSM44068_CAUSE_CALL_CANNOT_BE_IDENTIFIED = 0x26, + OSMO_GSM44068_CAUSE_RETRY_UPON_ENTRY_NEW_CALL = 0x30, /* up to 0x3f */ + OSMO_GSM44068_CAUSE_INVALID_TRANSACTION_ID = 0x51, + OSMO_GSM44068_CAUSE_SEMANTICALLY_INCORRECT_MSG = 0x5f, + OSMO_GSM44068_CAUSE_INVALID_MANDATORY_INFO = 0x60, + OSMO_GSM44068_CAUSE_MESSAGE_TYPE_NON_EXISTENT = 0x61, + OSMO_GSM44068_CAUSE_MESSAGE_TYPE_NOT_COMPAT = 0x62, + OSMO_GSM44068_CAUSE_IE_NON_EXISTENT = 0x63, + OSMO_GSM44068_CAUSE_IE_NOT_COMPAT = 0x64, + OSMO_GSM44068_CAUSE_PROTOCOL_ERROR = 0x70, +}; + +/* 9.4.4 Originator Indication */ +#define OSMO_GSM44068_OI_MS_IS_ORIGINATOR 0x01 + +/* 9.4.7 State Attributes */ +#define OSMO_GSM44068_DA_DOWNLINK_ATTACHED 0x08 +#define OSMO_GSM44068_UA_UPLINK_ATTACHED 0x04 +#define OSMO_GSM44068_COMM_T 0x02 + +/* 9.4.9 Talker Priority */ +enum osmo_gsm44068_talker_priority { + OSMO_GSM44068_PRIO_NORMAL = 0x0, + OSMO_GSM44068_PRIO_PRIVILEGED = 0x1, + OSMO_GSM44068_PRIO_EMERGENCY = 0x2, +}; + +/* 9.4.10 SMS Indications */ +#define OSMO_GSM44068_DC_DATA_CONFIDENTALLY_RQD 0x02 +#define OSMO_GSM44068_GP_GUARANTEED_PRIVACY_RQD 0x01 + +extern const struct value_string osmo_gsm44068_msg_type_names[]; +extern const struct value_string osmo_gsm44068_priority_level_names[]; +extern const struct value_string osmo_gsm44068_cause_names[]; +extern const struct value_string osmo_gsm44068_call_state_names[]; +extern const struct value_string osmo_gsm44068_talker_priority_names[]; + +extern const struct tlv_definition osmo_gsm44068_att_tlvdef; diff --git a/src/gsm/Makefile.am b/src/gsm/Makefile.am index ce0b1f4..ca850d2 100644 --- a/src/gsm/Makefile.am +++ b/src/gsm/Makefile.am @@ -33,7 +33,7 @@ gsup.c gsup_sms.c gprs_gea.c gsm0503_conv.c oap.c gsm0808_utils.c \ gsm23003.c gsm23236.c mncc.c bts_features.c oap_client.c \ gsm29118.c gsm48_rest_octets.c cbsp.c gsm48049.c \ - gad.c bsslap.c bssmap_le.c kdf.c iuup.c gsm44021.c + gad.c bsslap.c bssmap_le.c kdf.c iuup.c gsm44021.c gsm44068.c libgsmint_la_LDFLAGS = -no-undefined libgsmint_la_LIBADD = $(top_builddir)/src/core/libosmocore.la $(top_builddir)/src/isdn/libosmoisdn.la diff --git a/src/gsm/gsm44068.c b/src/gsm/gsm44068.c new file mode 100644 index 0000000..7da5ae2 --- /dev/null +++ b/src/gsm/gsm44068.c @@ -0,0 +1,121 @@ +/* Group Call Control (GCC) is an ETSI/3GPP standard protocol used between + * MS (Mobile Station) and MSC (Mobile Switchting Center) in 2G/GSM-R network. + * It is specified in 3GPP TS 44.068. + * + * (C) 2023 by Sysmocom s.f.m.c. GmbH + * All Rights Reserved + * + * Author: Andreas Eversberg + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. + * + * SPDX-License-Identifier: GPL-2.0+ + */ + +#include <stddef.h> +#include <osmocom/gsm/tlv.h> +#include <osmocom/gsm/protocol/gsm_44_068.h> + +/*********************************************************************** + * Protocol Definitions + ***********************************************************************/ + +const struct value_string osmo_gsm44068_msg_type_names[] = { + { OSMO_GSM44068_MSGT_IMMEDIATE_SETUP, "IMMEDIATE SETUP" }, + { OSMO_GSM44068_MSGT_SETUP, "SETUP" }, + { OSMO_GSM44068_MSGT_CONNECT, "CONNECT" }, + { OSMO_GSM44068_MSGT_TERMINATION, "TERMINATION" }, + { OSMO_GSM44068_MSGT_TERMINATION_REQUEST, "TERMINATION REQUEST" }, + { OSMO_GSM44068_MSGT_TERMINATION_REJECT, "TERMINATION REJECT" }, + { OSMO_GSM44068_MSGT_STATUS, "STATUS" }, + { OSMO_GSM44068_MSGT_GET_STATUS, "GET STATUS" }, + { OSMO_GSM44068_MSGT_SET_PARAMETER, "SET PARAMETER" }, + { OSMO_GSM44068_MSGT_IMMEDIATE_SETUP_2, "IMMEDIATE SETUP 2" }, + { 0, NULL } +}; + +const struct value_string osmo_gsm44068_priority_level_names[] = { + { OSMO_GSM44068_PRIO_LEVEL_4, "priority level 4" }, + { OSMO_GSM44068_PRIO_LEVEL_3, "priority level 3" }, + { OSMO_GSM44068_PRIO_LEVEL_2, "priority level 2" }, + { OSMO_GSM44068_PRIO_LEVEL_1, "priority level 1" }, + { OSMO_GSM44068_PRIO_LEVEL_0, "priority level 0" }, + { OSMO_GSM44068_PRIO_LEVEL_B, "priority level B" }, + { OSMO_GSM44068_PRIO_LEVEL_A, "priority level A" }, + { 0, NULL } +}; + +const struct value_string osmo_gsm44068_cause_names[] = { + { OSMO_GSM44068_CAUSE_ILLEGAL_MS, "Illegal MS" }, + { OSMO_GSM44068_CAUSE_IMEI_NOT_ACCEPTED, "IMEI not accepted" }, + { OSMO_GSM44068_CAUSE_ILLEGAL_ME, "Illegal ME" }, + { OSMO_GSM44068_CAUSE_SERVICE_NOT_AUTHORIZED, "Service not authorized" }, + { OSMO_GSM44068_CAUSE_APP_NOT_SUPPORTED_ON_PROTO, "Application not supported on the protocol" }, + { OSMO_GSM44068_CAUSE_RR_CONNECTION_ABORTED, "RR connection aborted" }, + { OSMO_GSM44068_CAUSE_NORMAL_CALL_CLEARING, "Normal call clearing" }, + { OSMO_GSM44068_CAUSE_NETWORK_FAILURE, "Network failure" }, + { OSMO_GSM44068_CAUSE_BUSY, "Busy" }, + { OSMO_GSM44068_CAUSE_CONGESTION, "Congestion" }, + { OSMO_GSM44068_CAUSE_USER_NOT_ORIGINATOR, "User not originator of call" }, + { OSMO_GSM44068_CAUSE_NET_WANTS_TO_MAINTAIN_CALL, "Network wants to maintain call" }, + { OSMO_GSM44068_CAUSE_RESPONSE_TO_GET_STATUS, "Response to GET STATUS" }, + { OSMO_GSM44068_CAUSE_SERVICE_OPTION_NOT_SUBSCR, "Service option not supported" }, + { OSMO_GSM44068_CAUSE_REQUESTED_SERVICE_NOT_SUB, "Requested service option not subscribed" }, + { OSMO_GSM44068_CAUSE_SERVICE_OPTION_OOO, "Service option temporarily out of order" }, + { OSMO_GSM44068_CAUSE_CALL_CANNOT_BE_IDENTIFIED, "Call cannot be identified" }, + { OSMO_GSM44068_CAUSE_RETRY_UPON_ENTRY_NEW_CALL, "retry upon entry into a new cell" }, + { OSMO_GSM44068_CAUSE_INVALID_TRANSACTION_ID, "Invalid transaction identifier value" }, + { OSMO_GSM44068_CAUSE_SEMANTICALLY_INCORRECT_MSG, "Semantically incorrect message" }, + { OSMO_GSM44068_CAUSE_INVALID_MANDATORY_INFO, "Invalid mandatory information" }, + { OSMO_GSM44068_CAUSE_MESSAGE_TYPE_NON_EXISTENT, "Message type non-existent or not implemented" }, + { OSMO_GSM44068_CAUSE_MESSAGE_TYPE_NOT_COMPAT, "Message type not compatible with the protocol state" }, + { OSMO_GSM44068_CAUSE_IE_NON_EXISTENT, "Information element non-existent or not implemented" }, + { OSMO_GSM44068_CAUSE_IE_NOT_COMPAT, "Message type not compatible with the protocol state" }, + { OSMO_GSM44068_CAUSE_PROTOCOL_ERROR, "Protocol error, unspecified" }, + { 0, NULL } +}; + +const struct value_string osmo_gsm44068_call_state_names[] = { + { OSMO_GSM44068_CSTATE_U0, "U0" }, + { OSMO_GSM44068_CSTATE_U1, "U1" }, + { OSMO_GSM44068_CSTATE_U2sl, "U2sl/U2" }, + { OSMO_GSM44068_CSTATE_U3, "U3" }, + { OSMO_GSM44068_CSTATE_U4, "U4" }, + { OSMO_GSM44068_CSTATE_U5, "U5" }, + { OSMO_GSM44068_CSTATE_U0p, "U0.p" }, + { OSMO_GSM44068_CSTATE_Uwr, "Uwr" }, + { OSMO_GSM44068_CSTATE_U2r, "U2r" }, + { OSMO_GSM44068_CSTATE_U2ws, "U2ws" }, + { OSMO_GSM44068_CSTATE_U2sr, "U2sr" }, + { OSMO_GSM44068_CSTATE_U2nc, "U2nc" }, + { 0, NULL } +}; + +const struct value_string osmo_gsm44068_talker_priority_names[] = { + { OSMO_GSM44068_PRIO_NORMAL, "Normal" }, + { OSMO_GSM44068_PRIO_PRIVILEGED, "Privileged" }, + { OSMO_GSM44068_PRIO_EMERGENCY, "Emergency" }, + { 0, NULL } +}; + +const struct tlv_definition osmo_gsm44068_att_tlvdef = { + .def = { + [OSMO_GSM44068_IEI_MOBILE_IDENTITY] = { TLV_TYPE_TLV }, + [OSMO_GSM44068_IEI_USER_USER] = { TLV_TYPE_TLV }, + [OSMO_GSM44068_IEI_CALL_STATE] = { TLV_TYPE_SINGLE_TV }, + [OSMO_GSM44068_IEI_STATE_ATTRIBUTES] = { TLV_TYPE_SINGLE_TV }, + [OSMO_GSM44068_IEI_TALKER_PRIORITY] = { TLV_TYPE_SINGLE_TV }, + [OSMO_GSM44068_IEI_SMS_INDICATIONS] = { TLV_TYPE_SINGLE_TV }, + }, +}; diff --git a/src/gsm/libosmogsm.map b/src/gsm/libosmogsm.map index 003d6e8..8bc1272 100644 --- a/src/gsm/libosmogsm.map +++ b/src/gsm/libosmogsm.map @@ -471,6 +471,13 @@ gsm48_pdisc_msgtype_name_c; gsm48_reject_value_names; +osmo_gsm44068_msg_type_names; +osmo_gsm44068_priority_level_names; +osmo_gsm44068_cause_names; +osmo_gsm44068_call_state_names; +osmo_gsm44068_talker_priority_names; +osmo_gsm44068_att_tlvdef; + gsm_7bit_decode; gsm_7bit_decode_ussd; gsm_7bit_encode; -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/32930 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I3554cea47e714c8fca18c3e9c0e6e80695915a90 Gerrit-Change-Number: 32930 Gerrit-PatchSet: 4 Gerrit-Owner: jolly <andreas(a)eversberg.eu> Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter <pmaier(a)sysmocom.de> Gerrit-Reviewer: fixeria <vyanitskiy(a)sysmocom.de> Gerrit-Reviewer: laforge <laforge(a)osmocom.org> Gerrit-Reviewer: pespin <pespin(a)sysmocom.de> Gerrit-MessageType: merged
1 0
0 0
[L] Change in libosmocore[master]: ASCI: Add IE transcoding according to 3GPP TS 48.008
by laforge 02 Jun '23

02 Jun '23
laforge has submitted this change. ( https://gerrit.osmocom.org/c/libosmocore/+/32931 ) Change subject: ASCI: Add IE transcoding according to 3GPP TS 48.008 ...................................................................... ASCI: Add IE transcoding according to 3GPP TS 48.008 Change-Id: Ic1fc714bb04228a7f32e9925811e21c8efc610bd --- M include/osmocom/gsm/gsm0808_utils.h M src/gsm/gsm0808_utils.c M src/gsm/libosmogsm.map 3 files changed, 568 insertions(+), 0 deletions(-) Approvals: laforge: Looks good to me, but someone else must approve pespin: Looks good to me, approved Jenkins Builder: Verified diff --git a/include/osmocom/gsm/gsm0808_utils.h b/include/osmocom/gsm/gsm0808_utils.h index 85244a5..dbe2abf 100644 --- a/include/osmocom/gsm/gsm0808_utils.h +++ b/include/osmocom/gsm/gsm0808_utils.h @@ -31,6 +31,8 @@ #include <osmocom/gsm/gsm23003.h> #include <osmocom/gsm/gsm_utils.h> #include <osmocom/gsm/tlv.h> +#include <osmocom/gsm/gsm48.h> +#include <osmocom/core/endian.h> /*! (225-1)/2 is the maximum number of elements in a cell identifier list. */ #define GSM0808_CELL_ID_LIST2_MAXLEN 127 @@ -62,6 +64,164 @@ unsigned int id_list_len; }; +/*! Packed representation of a Priority IE (GGPP TS 48.008 3.2.2.18) */ +struct gsm0808_priority { +#if OSMO_IS_LITTLE_ENDIAN + uint8_t pvi:1, /* Preemption Vulnerability indicator */ + qa:1, /* Queuing allowed indicator */ + priority_level:4, /* Priority level: 1 == hightest, 14 == lowest */ + pci:1, /* Preemption Capability indicator */ + spare:1; +#elif OSMO_IS_BIG_ENDIAN +/* auto-generated from the little endian part above (libosmocore/contrib/struct_endianness.py) */ + uint8_t spare:1, pci:1, priority_level:4, qa:1, pvi:1; +#endif +} __attribute__ ((packed)); + +/*! Packed representation of a VGCS Feature Flags IE (3GPP TS 48.008 3.2.2.88) */ +struct gsm0808_vgcs_feature_flags { +#if OSMO_IS_LITTLE_ENDIAN + uint8_t tp_ind:1, /* Talker priority supported */ + as_ind_circuit:1, /* A-interface circuit sharing supported */ + as_ind_link:1, /* A-interface link sharing supported */ + bss_res:1, /* BSS supports re-establishment */ + tcp:1, /* Talker channel parameter supported */ + spare:3; +#elif OSMO_IS_BIG_ENDIAN +/* auto-generated from the little endian part above (libosmocore/contrib/struct_endianness.py) */ + uint8_t spare:3, tcp:1, bss_res:1, as_ind_link:1, as_ind_circuit:1, tp_ind:1; +#endif +} __attribute__ ((packed)); + +/* TS 48.008 3.2.2.52 */ +enum gsm0808_assignment_requirement { + GSM0808_ASRQ_DELAY_ALLOWED = 0x00, + GSM0808_ASRQ_IMMEDIATE = 0x01, + GSM0808_ASRQ_IMMEDIATE_ON_DEMAND = 0x02, +}; + +/* TS 48.008 Table 10.5.8 */ +enum gsm0808_service_flag { + GSM0808_SF_VBS = 0, + GSM0808_SF_VGCS = 1, +}; + +enum gsm0808_call_priority { + GSM0808_CALL_PRIORITY_NONE = 0x00, + GSM0808_CALL_PRIORITY_LEVEL_4 = 0x01, + GSM0808_CALL_PRIORITY_LEVEL_3 = 0x02, + GSM0808_CALL_PRIORITY_LEVEL_2 = 0x03, + GSM0808_CALL_PRIORITY_LEVEL_1 = 0x04, + GSM0808_CALL_PRIORITY_LEVEL_0 = 0x05, + GSM0808_CALL_PRIORITY_LEVEL_B = 0x06, + GSM0808_CALL_PRIORITY_LEVEL_A = 0x07, +}; + +/*! Packed representation of a Group Call Reference IE (3GPP TS 48.008 3.2.2.55) */ +struct gsm0808_group_callref { +#if OSMO_IS_LITTLE_ENDIAN + uint8_t call_ref_hi[3]; + uint8_t call_priority:3, + af:1, /* Acknowledgement flag */ + sf:1, /* Service flag */ + call_ref_lo:3; + uint8_t spare:4, + ciphering_info:4; +#elif OSMO_IS_BIG_ENDIAN +/* auto-generated from the little endian part above (libosmocore/contrib/struct_endianness.py) */ + uint8_t call_ref_hi[3]; + uint8_t call_ref_lo:3, sf:1, af:1, call_priority:3; + uint8_t ciphering_info:4, spare:4; +#endif +} __attribute__ ((packed)); + +/* TS 48.008 3.2.2.26 */ +enum gsm0808_downlink_dtx_flag { + GSM0808_DTX_FLAG_ALLOW = 0, + GSM0808_DTX_FLAG_FORBID = 1, +}; + +/*! Parsed representation of a Cell Identifier List Segment IE (3GPP TS 48.008 3.2.2.27a) */ +struct gsm0808_cell_id_list_segment { + uint8_t seq_last; + uint8_t seq_number; + struct gsm0808_cell_id_list2 cil; +}; + +/*! Parsed representation of a Circuit Pool List IE (3GPP TS 48.008 3.2.2.26) */ +#define CIRCUIT_POOL_LIST_MAXLEN 252 +struct gsm0808_circuit_pool_list { + uint8_t pool[CIRCUIT_POOL_LIST_MAXLEN]; + unsigned int list_len; +}; + +/* 3GPP TS 48.008 Table 3.2.2.90.1 Talker Priority */ +enum gsm0808_talker_priority { + GSM0808_TALKER_PRIORITY_NORMAL = 0x00, + GSM0808_TALKER_PRIORITY_PRIVILEGED = 0x01, + GSM0808_TALKER_PRIORITY_EMERGENCY = 0x02, +}; + +/*! Parsed representation of a Layer 3 Information IE (3GPP TS 48.008 3.2.2.24) */ +#define LAYER_3_INFORMATION_MAXLEN 252 +struct gsm0808_layer_3_information { + uint8_t l3[LAYER_3_INFORMATION_MAXLEN]; + unsigned int l3_len; +}; + +/*! Parsed representation of a Talker Identity IE (3GPP TS 48.008 3.2.2.91) */ +#define TALKER_IDENTITY_MAXLEN 17 +struct gsm0808_talker_identity { + uint8_t talker_id[TALKER_IDENTITY_MAXLEN]; + unsigned int id_bits; +}; + +/* 3GPP TS 48.008 3.2.2.94 VGCS/VBS Cell Status */ +enum gsm0808_vgcs_vbs_cell_status { + GSM0808_CSTAT_ESTABLISHED = 0x00, + GSM0808_CSTAT_NOT_ESTABLISHED1 = 0x01, + GSM0808_CSTAT_RELEASED_NO_USER = 0x02, + GSM0808_CSTAT_NOT_ESTABLISHED2 = 0x03, +}; + +/*! Parsed representation of a SMS to VGCS IE (3GPP TS 48.008 3.2.2.92) */ +#define SMS_TO_VGCS_MAXLEN 252 +struct gsm0808_sms_to_vgcs { + uint8_t sms[SMS_TO_VGCS_MAXLEN]; + unsigned int sms_len; +}; + +/*! Parsed representation of a Application Data IE (3GPP TS 48.008 3.2.2.98) */ +#define APP_DATA_MAXLEN 9 +struct gsm0808_application_data { + uint8_t data[APP_DATA_MAXLEN]; + unsigned int data_len; +}; + +/*! Packed representation of a Data Identity IE (GGPP TS 48.008 3.2.2.99) */ +enum gsm0808_application_idndicator { + GSM0808_AI_APP_DATA = 0x00, + GSM0808_AI_CONFIRM_APP_DATA = 0x01, +}; + +#define GSM0808_DP_MASK_TALKERS_LISTENERS 0x04 +#define GSM0808_DP_MASK_DISPATCHERS 0x02 +#define GSM0808_DP_MASK_NETWORK_APP 0x01 + +struct gsm0808_data_identity { +#if OSMO_IS_LITTLE_ENDIAN + uint8_t ai:1, /* Application Indicator */ + di:4, /* Data identifier */ + dp:3; /* Distribution parameter (bit mask) */ +#elif OSMO_IS_BIG_ENDIAN +/* auto-generated from the little endian part above (libosmocore/contrib/struct_endianness.py) */ + uint8_t dp:3, di:4, ai:1; +#endif +} __attribute__ ((packed)); + +/*! Parsed representation of a MSISDN IE (3GPP TS 48.008 3.2.2.101) */ +#define MSISDN_MAXLEN 20 + /*! LCLS-related parameters from 3GPP TS 48.008 */ struct osmo_lcls { enum gsm0808_lcls_config config; /**< §3.2.2.116 Configuration */ @@ -303,4 +463,23 @@ char *gsm0808_channel_type_name_buf(char *buf, size_t buf_len, const struct gsm0808_channel_type *ct); char *gsm0808_channel_type_name_c(const void *ctx, const struct gsm0808_channel_type *ct); +uint8_t gsm0808_enc_group_callref(struct msgb *msg, const struct gsm0808_group_callref *gc); +int gsm0808_dec_group_callref(struct gsm0808_group_callref *gc, const uint8_t *elem, uint8_t len); +uint8_t gsm0808_enc_priority(struct msgb *msg, const struct gsm0808_priority *pri); +int gsm0808_dec_priority(struct gsm0808_priority *pri, const uint8_t *elem, uint8_t len); +uint8_t gsm0808_enc_vgcs_feature_flags(struct msgb *msg, const struct gsm0808_vgcs_feature_flags *ff); +int gsm0808_dec_vgcs_feature_flags(struct gsm0808_vgcs_feature_flags *ff, const uint8_t *elem, uint8_t len); +uint8_t gsm0808_enc_talker_identity(struct msgb *msg, const struct gsm0808_talker_identity *ti); +int gsm0808_dec_talker_identity(struct gsm0808_talker_identity *ti, const uint8_t *elem, uint8_t len); +uint8_t gsm0808_enc_data_identity(struct msgb *msg, const struct gsm0808_data_identity *ai); +int gsm0808_dec_data_identity(struct gsm0808_data_identity *ai, const uint8_t *elem, uint8_t len); +uint8_t gsm0808_enc_msisdn(struct msgb *msg, const char *msisdn); +int gsm0808_dec_msisdn(char *msisdn, const char *elem, uint8_t len); +uint8_t gsm0808_enc_assign_req(struct msgb *msg, const enum gsm0808_assignment_requirement ar); +int gsm0808_dec_assign_req(enum gsm0808_assignment_requirement *ar, const uint8_t *elem, uint8_t len); +uint8_t gsm0808_enc_cell_id_list_segment(struct msgb *msg, uint8_t ie_type, + const struct gsm0808_cell_id_list_segment *ci); +int gsm0808_dec_cell_id_list_segment(struct gsm0808_cell_id_list_segment *ci, const uint8_t *elem, uint8_t len); +int gsm0808_dec_call_id(uint32_t *ci, const uint8_t *elem, uint8_t len); + /*! @} */ diff --git a/src/gsm/gsm0808_utils.c b/src/gsm/gsm0808_utils.c index efa9305..b8e1ff0 100644 --- a/src/gsm/gsm0808_utils.c +++ b/src/gsm/gsm0808_utils.c @@ -2210,4 +2210,367 @@ return gsm0808_channel_type_name_buf(buf, 128, ct); } +/*! Encode Group Call Reference IE (3GPP TS 48.008 3.2.2.55). + * \param[out] msg Message Buffer to which IE is to be appended + * \param[in] gc Group Call Reference to be encoded + * \returns number of bytes appended to \a msg */ +uint8_t gsm0808_enc_group_callref(struct msgb *msg, const struct gsm0808_group_callref *gc) +{ + uint8_t *old_tail; + uint8_t *tlv_len; + + OSMO_ASSERT(msg); + OSMO_ASSERT(gc); + + msgb_put_u8(msg, GSM0808_IE_GROUP_CALL_REFERENCE); + tlv_len = msgb_put(msg, 1); + old_tail = msg->tail; + + memcpy(msgb_put(msg, sizeof(*gc)), gc, sizeof(*gc)); + + *tlv_len = (uint8_t) (msg->tail - old_tail); + return *tlv_len + 2; +} + +/*! Decode Group Call Reference IE (3GPP TS 48.008 3.2.2.55). + * \param[out] gc Group Call Reference structure to store data + * \param[in] elem IE value to be decoded. + * \param[in] len Length of \a elem in bytes. + * \returns number of bytes parsed; negative on error */ +int gsm0808_dec_group_callref(struct gsm0808_group_callref *gc, const uint8_t *elem, uint8_t len) +{ + OSMO_ASSERT(gc); + OSMO_ASSERT(elem); + + if (len != sizeof(*gc)) + return -EINVAL; + + memcpy(gc, elem, sizeof(*gc)); + + return len; +} + +/*! Encode Priority IE (3GPP TS 48.008 3.2.2.18). + * \param[out] msg Message Buffer to which IE is to be appended + * \param[in] pri Priority to be encoded + * \returns number of bytes appended to \a msg */ +uint8_t gsm0808_enc_priority(struct msgb *msg, const struct gsm0808_priority *pri) +{ + uint8_t *old_tail; + uint8_t *tlv_len; + + OSMO_ASSERT(msg); + OSMO_ASSERT(pri); + + msgb_put_u8(msg, GSM0808_IE_PRIORITY); + tlv_len = msgb_put(msg, 1); + old_tail = msg->tail; + + memcpy(msgb_put(msg, sizeof(*pri)), pri, sizeof(*pri)); + + *tlv_len = (uint8_t) (msg->tail - old_tail); + return *tlv_len + 2; +} + +/*! Decode Priority IE (3GPP TS 48.008 3.2.2.18). + * \param[out] pri Priority structure to store data + * \param[in] elem IE value to be decoded. + * \param[in] len Length of \a elem in bytes. + * \returns number of bytes parsed; negative on error */ +int gsm0808_dec_priority(struct gsm0808_priority *pri, const uint8_t *elem, uint8_t len) +{ + OSMO_ASSERT(pri); + OSMO_ASSERT(elem); + + if (len != sizeof(*pri)) + return -EINVAL; + + memcpy(pri, elem, sizeof(*pri)); + + return len; +} + +/*! Encode VGCS Feature Flags IE (3GPP TS 48.008 3.2.2.88). + * \param[out] msg Message Buffer to which IE is to be appended + * \param[in] ff VGCS Feature Flags to be encoded + * \returns number of bytes appended to \a msg */ +uint8_t gsm0808_enc_vgcs_feature_flags(struct msgb *msg, const struct gsm0808_vgcs_feature_flags *ff) +{ + uint8_t *old_tail; + uint8_t *tlv_len; + + OSMO_ASSERT(msg); + OSMO_ASSERT(ff); + + msgb_put_u8(msg, GSM0808_IE_VGCS_FEATURE_FLAGS); + tlv_len = msgb_put(msg, 1); + old_tail = msg->tail; + + memcpy(msgb_put(msg, sizeof(*ff)), ff, sizeof(*ff)); + + *tlv_len = (uint8_t) (msg->tail - old_tail); + return *tlv_len + 2; +} + +/*! Decode VGCS Feature Flags IE (3GPP TS 48.008 3.2.2.88). + * \param[out] ff VGCS Feature Flags structure to store data + * \param[in] elem IE value to be decoded. + * \param[in] len Length of \a elem in bytes. + * \returns number of bytes parsed; negative on error */ +int gsm0808_dec_vgcs_feature_flags(struct gsm0808_vgcs_feature_flags *ff, const uint8_t *elem, uint8_t len) +{ + OSMO_ASSERT(ff); + OSMO_ASSERT(elem); + + if (len != sizeof(*ff)) + return -EINVAL; + + memcpy(ff, elem, sizeof(*ff)); + + return len; +} + +/*! Encode Data Identity IE (3GPP TS 48.008 3.2.2.99). + * \param[out] msg Message Buffer to which IE is to be appended + * \param[in] di Data Identity to be encoded + * \returns number of bytes appended to \a msg */ +uint8_t gsm0808_enc_data_identity(struct msgb *msg, const struct gsm0808_data_identity *ti) +{ + uint8_t *old_tail; + uint8_t *tlv_len; + + OSMO_ASSERT(msg); + OSMO_ASSERT(ti); + + msgb_put_u8(msg, GSM0808_IE_DATA_IDENTITY); + tlv_len = msgb_put(msg, 1); + old_tail = msg->tail; + + memcpy(msgb_put(msg, sizeof(*ti)), ti, sizeof(*ti)); + + *tlv_len = (uint8_t) (msg->tail - old_tail); + return *tlv_len + 2; +} + +/*! Decode Data Identity IE (3GPP TS 48.008 3.2.2.99). + * \param[out] di Data Identity structure to store data + * \param[in] elem IE value to be decoded. + * \param[in] len Length of \a elem in bytes. + * \returns number of bytes parsed; negative on error */ +int gsm0808_dec_data_identity(struct gsm0808_data_identity *ti, const uint8_t *elem, uint8_t len) +{ + OSMO_ASSERT(ti); + OSMO_ASSERT(elem); + + if (len < sizeof(*ti)) + return -EINVAL; + + memcpy(ti, elem, sizeof(*ti)); + + return len; +} + +/*! Encode MSISDN IE (3GPP TS 48.008 3.2.2.101). + * \param[out] msg Message Buffer to which IE is to be appended + * \param[in] msisdn MSISDN to be encoded + * \returns number of bytes appended to \a msg */ +uint8_t gsm0808_enc_msisdn(struct msgb *msg, const char *msisdn) +{ + uint8_t *tlv_len; + uint8_t bcd_lv[11]; + int rc; + + OSMO_ASSERT(msg); + OSMO_ASSERT(msisdn); + + rc = gsm48_encode_bcd_number(bcd_lv, sizeof(bcd_lv), 0, msisdn); + if (rc < 1) + return 0; + + msgb_put_u8(msg, GSM0808_IE_MSISDN); + tlv_len = msgb_put(msg, rc); + + memcpy(tlv_len, bcd_lv, rc); + + *tlv_len = rc - 1; + return *tlv_len + 2; +} + +/*! Decode MSISDN IE (3GPP TS 48.008 3.2.2.101). + * \param[out] msisdn MSISDN structure to store data + * \param[in] elem IE value to be decoded. + * \param[in] len Length of \a elem in bytes. + * \returns number of bytes parsed; negative on error */ +int gsm0808_dec_msisdn(char *msisdn, const char *elem, uint8_t len) +{ + OSMO_ASSERT(msisdn); + OSMO_ASSERT(elem); + + if (len < 1) + return -EINVAL; + + gsm48_decode_bcd_number(msisdn, MSISDN_MAXLEN + 1, (uint8_t *)(elem - 1), 0); + + return len; +} + +/*! Encode Talker Identity IE (3GPP TS 48.008 3.2.2.91). + * \param[out] msg Message Buffer to which IE is to be appended + * \param[in] ti Talker Identity to be encoded + * \returns number of bytes appended to \a msg */ +uint8_t gsm0808_enc_talker_identity(struct msgb *msg, const struct gsm0808_talker_identity *ti) +{ + uint8_t *old_tail; + uint8_t *tlv_len; + uint8_t *ptr; + unsigned int bytes; + + OSMO_ASSERT(msg); + OSMO_ASSERT(ti); + + msgb_put_u8(msg, GSM0808_IE_TALKER_IDENTITY); + tlv_len = msgb_put(msg, 1); + old_tail = msg->tail; + + bytes = (ti->id_bits + 7) >> 3; + ptr = msgb_put(msg, 1 + bytes); + ptr[0] = -ti->id_bits & 0x7; + memcpy(ptr + 1, ti->talker_id, bytes); + + *tlv_len = (uint8_t) (msg->tail - old_tail); + return *tlv_len + 2; +} + +/*! Decode Talker Identity IE (3GPP TS 48.008 3.2.2.91). + * \param[out] ti Talker Identity structure to store data + * \param[in] elem IE value to be decoded. + * \param[in] len Length of \a elem in bytes. + * \returns number of bytes parsed; negative on error */ +int gsm0808_dec_talker_identity(struct gsm0808_talker_identity *ti, const uint8_t *elem, uint8_t len) +{ + OSMO_ASSERT(ti); + OSMO_ASSERT(elem); + + if (len < 2) + return -EINVAL; + unsigned int bytes; + + bytes = len - 1; + if (bytes > TALKER_IDENTITY_MAXLEN) + return -EINVAL; + ti->id_bits = (bytes << 3) - (elem[0] & 0x7); + memcpy(ti->talker_id, elem + 1, bytes); + + return len; +} + +/*! Encode Assignment Requirements IE (3GPP TS 48.008 3.2.2.52). + * \param[out] msg Message Buffer to which IE is to be appended + * \param[in] ar Assignment Requirement to be encoded + * \returns number of bytes appended to \a msg */ +uint8_t gsm0808_enc_assign_req(struct msgb *msg, const enum gsm0808_assignment_requirement ar) +{ + uint8_t *ptr; + + OSMO_ASSERT(msg); + + msgb_put_u8(msg, GSM0808_IE_ASSIGNMENT_REQUIREMENT); + + ptr = msgb_put(msg, 1); + ptr[0] = ar; + + return 2; +} + +/*! Decode Assignment Requirements IE (3GPP TS 48.008 3.2.2.52). + * \param[out] ar Assignment Requirements enum to store data + * \param[in] elem IE value to be decoded. + * \param[in] len Length of \a elem in bytes. + * \returns number of bytes parsed; negative on error */ +int gsm0808_dec_assign_req(enum gsm0808_assignment_requirement *ar, const uint8_t *elem, uint8_t len) +{ + OSMO_ASSERT(ar); + OSMO_ASSERT(elem); + + if (len != 1) + return -EINVAL; + + *ar = elem[0]; + + return 1; +} + +/*! Encode Cell Identifier List Segment IE (3GPP TS 48.008 3.2.2.27a). + * \param[out] msg Message Buffer to which IE is to be appended + * \param[in] ie_type Type of IE to use (5 different lists are specified.) + * \param[in] ci Cell Identifier List Segment to be encoded + * \returns number of bytes appended to \a msg */ +uint8_t gsm0808_enc_cell_id_list_segment(struct msgb *msg, uint8_t ie_type, + const struct gsm0808_cell_id_list_segment *ci) +{ + uint8_t *old_tail; + uint8_t *tlv_len; + int rc; + + OSMO_ASSERT(msg); + OSMO_ASSERT(ci); + + msgb_put_u8(msg, ie_type); + tlv_len = msgb_put(msg, 1); + old_tail = msg->tail; + + msgb_put_u8(msg, (ci->seq_last << 4) | ci->seq_number); + + rc = gsm0808_enc_cell_id_list2(msg, &ci->cil); + if (rc <= 0) + return rc; + + *tlv_len = (uint8_t) (msg->tail - old_tail); + return *tlv_len + 2; +} + +/*! Decode Cell Identifier List Segment IE (3GPP TS 48.008 3.2.2.27a). + * \param[out] ci Cell Identifier List Segment structure to store data + * \param[in] elem IE value to be decoded. + * \param[in] len Length of \a elem in bytes. + * \returns number of bytes parsed; negative on error */ +int gsm0808_dec_cell_id_list_segment(struct gsm0808_cell_id_list_segment *ci, const uint8_t *elem, uint8_t len) +{ + int rc; + + OSMO_ASSERT(ci); + OSMO_ASSERT(elem); + + if (len < 1) + return -EINVAL; + + ci->seq_last = elem[0] >> 4; + ci->seq_number = elem[0] & 0x0f; + + rc = gsm0808_dec_cell_id_list2(&ci->cil, elem + 1, len - 1); + if (rc < 0) + return rc; + + return len; +} + +/*! Decode Call Identifier IE (3GPP TS 48.008 3.2.2.105). + * \param[out] ci Call Identifier structure to store data + * \param[in] elem IE value to be decoded. + * \param[in] len Length of \a elem in bytes. + * \returns number of bytes parsed; negative on error */ +int gsm0808_dec_call_id(uint32_t *ci, const uint8_t *elem, uint8_t len) +{ + OSMO_ASSERT(ci); + OSMO_ASSERT(elem); + + if (len != 4) + return -EINVAL; + + /* The Call Identifier is stored as little endian. */ + *ci = osmo_load32le(elem); + + return 4; +} + /*! @} */ diff --git a/src/gsm/libosmogsm.map b/src/gsm/libosmogsm.map index 8bc1272..40f3e80 100644 --- a/src/gsm/libosmogsm.map +++ b/src/gsm/libosmogsm.map @@ -231,6 +231,23 @@ gsm0808_enc_cell_id_list2; gsm0808_dec_cell_id_list; gsm0808_dec_cell_id_list2; +gsm0808_enc_group_callref; +gsm0808_dec_group_callref; +gsm0808_enc_priority; +gsm0808_dec_priority; +gsm0808_enc_vgcs_feature_flags; +gsm0808_dec_vgcs_feature_flags; +gsm0808_enc_data_identity; +gsm0808_dec_data_identity; +gsm0808_enc_msisdn; +gsm0808_dec_msisdn; +gsm0808_enc_talker_identity; +gsm0808_dec_talker_identity; +gsm0808_enc_assign_req; +gsm0808_dec_assign_req; +gsm0808_enc_cell_id_list_segment; +gsm0808_dec_cell_id_list_segment; +gsm0808_dec_call_id; gsm0808_cell_id_list_add; gsm0808_cell_id_to_list; gsm0808_cell_id_to_cgi; -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/32931 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ic1fc714bb04228a7f32e9925811e21c8efc610bd Gerrit-Change-Number: 32931 Gerrit-PatchSet: 5 Gerrit-Owner: jolly <andreas(a)eversberg.eu> Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge <laforge(a)osmocom.org> Gerrit-Reviewer: pespin <pespin(a)sysmocom.de> Gerrit-CC: fixeria <vyanitskiy(a)sysmocom.de> Gerrit-MessageType: merged
1 0
0 0
[L] Change in libosmocore[master]: ASCI: Add message definition and encoding according to 3GPP TS 48.008
by laforge 02 Jun '23

02 Jun '23
Attention is currently required from: jolly, pespin. laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/32932 ) Change subject: ASCI: Add message definition and encoding according to 3GPP TS 48.008 ...................................................................... Patch Set 6: (1 comment) File include/osmocom/gsm/gsm0808.h: https://gerrit.osmocom.org/c/libosmocore/+/32932/comment/93271d6c_77592309 PS5, Line 386: struct sockaddr_storage *aoip_transport_layer; > osmocom/core/socket.h will not work on embedded systems. see line 5. […] the solution is to not build gsm0808 on embedded targets. The embedded builds are for osmocom-bb or simtrace2, where you just want code like msgb, linked lists, sercomm, ... - but certainly no 08.08 is required. So IMHO it would be fine to #ifdef this all out -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/32932 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ib94c64136c31ce4af67c314a8550d93946cc844f Gerrit-Change-Number: 32932 Gerrit-PatchSet: 6 Gerrit-Owner: jolly <andreas(a)eversberg.eu> Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge <laforge(a)osmocom.org> Gerrit-Reviewer: pespin <pespin(a)sysmocom.de> Gerrit-Attention: jolly <andreas(a)eversberg.eu> Gerrit-Attention: pespin <pespin(a)sysmocom.de> Gerrit-Comment-Date: Fri, 02 Jun 2023 08:28:42 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Comment-In-Reply-To: jolly <andreas(a)eversberg.eu> Comment-In-Reply-To: pespin <pespin(a)sysmocom.de> Gerrit-MessageType: comment
1 0
0 0
[L] Change in libosmocore[master]: ASCI: Add 3GPP TS 44.068 and 44.069 protocol definitions
by laforge 02 Jun '23

02 Jun '23
Attention is currently required from: jolly, dexter. laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/32930 ) Change subject: ASCI: Add 3GPP TS 44.068 and 44.069 protocol definitions ...................................................................... Patch Set 3: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/32930 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I3554cea47e714c8fca18c3e9c0e6e80695915a90 Gerrit-Change-Number: 32930 Gerrit-PatchSet: 3 Gerrit-Owner: jolly <andreas(a)eversberg.eu> Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter <pmaier(a)sysmocom.de> Gerrit-Reviewer: fixeria <vyanitskiy(a)sysmocom.de> Gerrit-Reviewer: laforge <laforge(a)osmocom.org> Gerrit-Reviewer: pespin <pespin(a)sysmocom.de> Gerrit-Attention: jolly <andreas(a)eversberg.eu> Gerrit-Attention: dexter <pmaier(a)sysmocom.de> Gerrit-Comment-Date: Fri, 02 Jun 2023 08:27:12 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment
1 0
0 0
[L] Change in libosmocore[master]: ASCI: Add 3GPP TS 44.068 and 44.069 protocol definitions
by laforge 02 Jun '23

02 Jun '23
Attention is currently required from: jolly, dexter. laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/32930 ) Change subject: ASCI: Add 3GPP TS 44.068 and 44.069 protocol definitions ...................................................................... Patch Set 3: (1 comment) File include/osmocom/gsm/protocol/gsm_44_068.h: https://gerrit.osmocom.org/c/libosmocore/+/32930/comment/a10c6483_1d6a66f1 PS3, Line 9: * (C) 2023 by Sysmocom s.f.m.c. GmbH "sysmocom" is always with lower-case s. -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/32930 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I3554cea47e714c8fca18c3e9c0e6e80695915a90 Gerrit-Change-Number: 32930 Gerrit-PatchSet: 3 Gerrit-Owner: jolly <andreas(a)eversberg.eu> Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter <pmaier(a)sysmocom.de> Gerrit-Reviewer: fixeria <vyanitskiy(a)sysmocom.de> Gerrit-Reviewer: laforge <laforge(a)osmocom.org> Gerrit-Reviewer: pespin <pespin(a)sysmocom.de> Gerrit-Attention: jolly <andreas(a)eversberg.eu> Gerrit-Attention: dexter <pmaier(a)sysmocom.de> Gerrit-Comment-Date: Fri, 02 Jun 2023 08:27:10 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Gerrit-MessageType: comment
1 0
0 0
[S] Change in pysim[master]: Switch from pycryptodome to pycryptodomex
by laforge 02 Jun '23

02 Jun '23
Attention is currently required from: dexter. laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/pysim/+/33124 ) Change subject: Switch from pycryptodome to pycryptodomex ...................................................................... Patch Set 1: Code-Review+2 (1 comment) File README.md: https://gerrit.osmocom.org/c/pysim/+/33124/comment/0da3c4f9_0fa8be0d PS1, Line 57: python3-pycryptodome \ > I don't understand this, isn't the pycryptodome dependency already satisfied when pycryptodomex is i […] * I typically prefer install distribution packages rater than pip packages, and as pycryptodome is packaged in Debian for many years, I added it there * as I wrote in the commit log, the debian package python3-pycryptodome actually contains pycryptodomex, not pycryptodome. -- To view, visit https://gerrit.osmocom.org/c/pysim/+/33124 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: I04daed01f51f9702595ef9f9e0d7fcdf1e4adb62 Gerrit-Change-Number: 33124 Gerrit-PatchSet: 1 Gerrit-Owner: laforge <laforge(a)osmocom.org> Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter <pmaier(a)sysmocom.de> Gerrit-Reviewer: laforge <laforge(a)osmocom.org> Gerrit-Reviewer: pespin <pespin(a)sysmocom.de> Gerrit-Attention: dexter <pmaier(a)sysmocom.de> Gerrit-Comment-Date: Fri, 02 Jun 2023 08:23:59 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: Yes Comment-In-Reply-To: dexter <pmaier(a)sysmocom.de> Gerrit-MessageType: comment
1 0
0 0
[S] Change in pysim[master]: ts_31_102: EF_SUPI_NAI: Decode/Encode GLI+GCI as UTF-8 strings
by laforge 02 Jun '23

02 Jun '23
Attention is currently required from: dexter. laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/pysim/+/33065 ) Change subject: ts_31_102: EF_SUPI_NAI: Decode/Encode GLI+GCI as UTF-8 strings ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/pysim/+/33065 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: I0a82bd0d0a2badd7bc4a1f8de2c3e3c144ee5b12 Gerrit-Change-Number: 33065 Gerrit-PatchSet: 2 Gerrit-Owner: laforge <laforge(a)osmocom.org> Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter <pmaier(a)sysmocom.de> Gerrit-Reviewer: fixeria <vyanitskiy(a)sysmocom.de> Gerrit-Reviewer: laforge <laforge(a)osmocom.org> Gerrit-Attention: dexter <pmaier(a)sysmocom.de> Gerrit-Comment-Date: Fri, 02 Jun 2023 08:21:42 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment
1 0
0 0
[S] Change in pysim[master]: ts_31_102: Add decoder/encoder for DF.5GS/EF.Routing_Indicator
by laforge 02 Jun '23

02 Jun '23
Attention is currently required from: merlinchlosta, dexter. laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/pysim/+/33064 ) Change subject: ts_31_102: Add decoder/encoder for DF.5GS/EF.Routing_Indicator ...................................................................... Patch Set 3: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/pysim/+/33064 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: I1b37fdfc2807976880b2cafb61951f08eebeb344 Gerrit-Change-Number: 33064 Gerrit-PatchSet: 3 Gerrit-Owner: laforge <laforge(a)osmocom.org> Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter <pmaier(a)sysmocom.de> Gerrit-Reviewer: fixeria <vyanitskiy(a)sysmocom.de> Gerrit-Reviewer: laforge <laforge(a)osmocom.org> Gerrit-Reviewer: merlinchlosta <merlin.chlosta(a)rub.de> Gerrit-Attention: merlinchlosta <merlin.chlosta(a)rub.de> Gerrit-Attention: dexter <pmaier(a)sysmocom.de> Gerrit-Comment-Date: Fri, 02 Jun 2023 08:21:29 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment
1 0
0 0
[S] Change in pysim[master]: WIP: apply pylint on cmd2 1.5 and later versions seperately
by dexter 02 Jun '23

02 Jun '23
dexter has abandoned this change. ( https://gerrit.osmocom.org/c/pysim/+/32719 ) Change subject: WIP: apply pylint on cmd2 1.5 and later versions seperately ...................................................................... Abandoned -- To view, visit https://gerrit.osmocom.org/c/pysim/+/32719 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: I129b8c90ac80d75e125c81f5d5028fae3e295e6d Gerrit-Change-Number: 32719 Gerrit-PatchSet: 5 Gerrit-Owner: dexter <pmaier(a)sysmocom.de> Gerrit-Reviewer: Jenkins Builder Gerrit-MessageType: abandon
1 0
0 0
[M] Change in osmo-pcu[master]: Move call to bts_set_current_frame_number() earlier in the code path
by pespin 01 Jun '23

01 Jun '23
pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-pcu/+/33154 ) Change subject: Move call to bts_set_current_frame_number() earlier in the code path ...................................................................... Move call to bts_set_current_frame_number() earlier in the code path The FN time counter is not really PDCH specific, but to the whole BTS, and all other calls t the bts_set_current_frame_number() are already laced in pcu_l1_if.cpp; move it there. Change-Id: If36f22a1067c904fa7fda87bed5062b6738f0dd1 --- M src/pcu_l1_if.cpp M src/pdch.cpp M tests/tbf/TbfTest.err 3 files changed, 34 insertions(+), 51 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-pcu refs/changes/54/33154/1 diff --git a/src/pcu_l1_if.cpp b/src/pcu_l1_if.cpp index 3f881cf..0370aeb 100644 --- a/src/pcu_l1_if.cpp +++ b/src/pcu_l1_if.cpp @@ -341,6 +341,9 @@ { int rc; + /* First of all, update TDMA clock: */ + bts_set_current_frame_number(bts, fn); + if (!pdch->is_enabled()) { LOGPDCH(pdch, DL1IF, LOGL_INFO, "Received DATA.ind (PDTCH) on disabled TS\n"); return -EINVAL; diff --git a/src/pdch.cpp b/src/pdch.cpp index a8becca..b265d71 100644 --- a/src/pdch.cpp +++ b/src/pdch.cpp @@ -986,9 +986,6 @@ int gprs_rlcmac_pdch::rcv_block(uint8_t *data, uint8_t len, uint32_t fn, struct pcu_l1_meas *meas) { - /* First of all, update TDMA clock: */ - bts_set_current_frame_number(trx->bts, fn); - /* No successfully decoded UL block was received during this FN: */ if (len == 0) return 0; diff --git a/tests/tbf/TbfTest.err b/tests/tbf/TbfTest.err index c21c196..ee2dc3a 100644 --- a/tests/tbf/TbfTest.err +++ b/tests/tbf/TbfTest.err @@ -2248,7 +2248,6 @@ UL_ASS_TBF(UL:TFI-0-0-0:G:TLLI-0xf1223344){WAIT_ACK}: state_chg to NONE UL_TBF(UL:TFI-0-0-0:G:TLLI-0xf1223344){ASSIGN}: Received Event ASSIGN_ACK_PACCH UL_TBF(UL:TFI-0-0-0:G:TLLI-0xf1223344){ASSIGN}: state_chg to FLOW -Detected FN jump! 2654283 -> 2654275 (expected 2654288, delta 8) PDCH(bts=0,trx=0,ts=7) Got CS-1 RLC block: R=0, SI=0, TFI=0, CPS=0, RSB=0, rc=184 PDCH(bts=0,trx=0,ts=7) FN=2654275 Rx UL DATA from unexpected TBF(UL:TFI-0-0-0:G:TLLI-0xf1223344){FLOW} TBF(UL:TFI-0-0-0:G:TLLI-0xf1223344){FLOW} UL DATA TFI=0 received (V(Q)=0 .. V(R)=0) @@ -2359,7 +2358,6 @@ UL_ASS_TBF(UL:TFI-0-0-0:G:TLLI-0xf1223344){WAIT_ACK}: state_chg to NONE UL_TBF(UL:TFI-0-0-0:G:TLLI-0xf1223344){ASSIGN}: Received Event ASSIGN_ACK_PACCH UL_TBF(UL:TFI-0-0-0:G:TLLI-0xf1223344){ASSIGN}: state_chg to FLOW -Detected FN jump! 2654283 -> 2654275 (expected 2654288, delta 8) PDCH(bts=0,trx=0,ts=7) Got CS-1 RLC block: R=0, SI=0, TFI=0, CPS=0, RSB=0, rc=184 PDCH(bts=0,trx=0,ts=7) FN=2654275 Rx UL DATA from unexpected TBF(UL:TFI-0-0-0:G:TLLI-0xf1223344){FLOW} TBF(UL:TFI-0-0-0:G:TLLI-0xf1223344){FLOW} UL DATA TFI=0 received (V(Q)=0 .. V(R)=0) @@ -2412,7 +2410,6 @@ TBF(UL:TFI-0-0-0:G:IMSI-0011223344:TLLI-0xf1223344){FLOW} Scheduled DL Assignment polling on PACCH (FN=2654288, TS=7) DL_ASS_TBF(UL:TFI-0-0-0:G:IMSI-0011223344:TLLI-0xf1223344){SEND_ASS}: state_chg to WAIT_ACK PDCH(bts=0,trx=0,ts=7) FN=2654275 Scheduling control message at RTS for TBF(UL:TFI-0-0-0:G:IMSI-0011223344:TLLI-0xf1223344){FLOW} -Detected FN jump! 2654275 -> 2654288 (expected 2654279, delta 13) PDCH(bts=0,trx=0,ts=7) FN=2654288 +++++++++++++++++++++++++ RX : Uplink Control Block +++++++++++++++++++++++++ PDCH(bts=0,trx=0,ts=7) FN=2654288 ------------------------- RX : Uplink Control Block ------------------------- TBF(UL:TFI-0-0-0:G:IMSI-0011223344:TLLI-0xf1223344){FLOW} FN=2654288 Rx Packet Control Ack (reason=DL_ASS) @@ -2550,7 +2547,6 @@ PDCH(bts=0,trx=0,ts=7) Expiring FN=2654361 but previous FN=2654353 is still reserved! PDCH(bts=0,trx=0,ts=7) Timeout for registered USF (FN=2654353): TBF(UL:TFI-0-0-0:G:IMSI-0011223344:TLLI-0xf1223344){FLOW} TBF(UL:TFI-0-0-0:G:IMSI-0011223344:TLLI-0xf1223344){FLOW} N3101 3 => 4 (< MAX 10) -Detected FN jump! 2654361 -> 2654353 (expected 2654366, delta 8) PDCH(bts=0,trx=0,ts=7) Got CS-1 RLC block: R=0, SI=0, TFI=1, CPS=0, RSB=0, rc=184 PDCH(bts=0,trx=0,ts=7) FN=2654353 Rx UL DATA from unexpected TBF(UL:TFI-0-0-1:G:TLLI-0xf5667788){FLOW} TBF(UL:TFI-0-0-1:G:TLLI-0xf5667788){FLOW} UL DATA TFI=1 received (V(Q)=0 .. V(R)=0) @@ -2678,7 +2674,6 @@ UL_ASS_TBF(UL:TFI-0-0-0:G:TLLI-0xf1223344){WAIT_ACK}: state_chg to NONE UL_TBF(UL:TFI-0-0-0:G:TLLI-0xf1223344){ASSIGN}: Received Event ASSIGN_ACK_PACCH UL_TBF(UL:TFI-0-0-0:G:TLLI-0xf1223344){ASSIGN}: state_chg to FLOW -Detected FN jump! 2654283 -> 2654275 (expected 2654288, delta 8) PDCH(bts=0,trx=0,ts=7) Got CS-1 RLC block: R=0, SI=0, TFI=0, CPS=0, RSB=0, rc=184 PDCH(bts=0,trx=0,ts=7) FN=2654275 Rx UL DATA from unexpected TBF(UL:TFI-0-0-0:G:TLLI-0xf1223344){FLOW} TBF(UL:TFI-0-0-0:G:TLLI-0xf1223344){FLOW} UL DATA TFI=0 received (V(Q)=0 .. V(R)=0) @@ -2737,7 +2732,7 @@ Allocated a single block at SBFn=2654327 TRX=0 TS=7 Tx Immediate Assignment on AGCH: TRX=0 (ARFCN 0) TS=7 TA=7 TSC=0 TFI=-1 USF=7 Found first unallocated TRX=0 TFI=0 -Detected FN jump! 2654275 -> 2654327 (expected 2654279, delta 52) +Detected FN jump! 2654283 -> 2654327 (expected 2654288, delta 44) PDCH(bts=0,trx=0,ts=7) FN=2654327 +++++++++++++++++++++++++ RX : Uplink Control Block +++++++++++++++++++++++++ PDCH(bts=0,trx=0,ts=7) FN=2654327 ------------------------- RX : Uplink Control Block ------------------------- MS(IMSI-0011223344:TLLI-0xf1223344:TA-7:MSCLS-1-0:DL): + rcv_resource_request: now used by 2 (tbf,rcv_resource_request) @@ -2824,7 +2819,6 @@ TBF(DL:TFI-0-0-0:G:IMSI-0011223344:TLLI-0xf1223344){NEW} set ass. type PACCH [prev CCCH:0, PACCH:0] DL_TBF(DL:TFI-0-0-0:G:IMSI-0011223344:TLLI-0xf1223344){NEW}: state_chg to ASSIGN TBF(DL:TFI-0-0-0:G:IMSI-0011223344:TLLI-0xf1223344){ASSIGN} Starting timer X2001 [assignment (PACCH)] with 2 sec. 0 microsec -Detected FN jump! 2654340 -> 2654331 (expected 2654344, delta 9) PDCH(bts=0,trx=0,ts=7) Got CS-1 RLC block: R=0, SI=0, TFI=0, CPS=0, RSB=0, rc=184 PDCH(bts=0,trx=0,ts=7) FN=2654331 Rx UL DATA from unexpected TBF(UL:TFI-0-0-0:G:IMSI-0011223344:TLLI-0xf1223344){FLOW} TBF(UL:TFI-0-0-0:G:IMSI-0011223344:TLLI-0xf1223344){FLOW} UL DATA TFI=0 received (V(Q)=0 .. V(R)=0) @@ -2905,7 +2899,6 @@ UL_ASS_TBF(UL:TFI-0-0-0:G:TLLI-0xf1223344){WAIT_ACK}: state_chg to NONE UL_TBF(UL:TFI-0-0-0:G:TLLI-0xf1223344){ASSIGN}: Received Event ASSIGN_ACK_PACCH UL_TBF(UL:TFI-0-0-0:G:TLLI-0xf1223344){ASSIGN}: state_chg to FLOW -Detected FN jump! 2654283 -> 2654275 (expected 2654288, delta 8) PDCH(bts=0,trx=0,ts=7) Got CS-1 RLC block: R=0, SI=0, TFI=0, CPS=0, RSB=0, rc=184 PDCH(bts=0,trx=0,ts=7) FN=2654275 Rx UL DATA from unexpected TBF(UL:TFI-0-0-0:G:TLLI-0xf1223344){FLOW} TBF(UL:TFI-0-0-0:G:TLLI-0xf1223344){FLOW} UL DATA TFI=0 received (V(Q)=0 .. V(R)=0) @@ -2986,7 +2979,7 @@ UL_TBF(UL:TFI-0-0-0:G){NEW}: Received Event ASSIGN_ADD_CCCH TBF(UL:TFI-0-0-0:G){NEW} set ass. type CCCH [prev CCCH:0, PACCH:0] UL_TBF(UL:TFI-0-0-0:G){NEW}: state_chg to FLOW -TBF(UL:TFI-0-0-0:G){FLOW} starting timer T3141 [Contention resolution (UL-TBF, CCCH)] with 10 sec. 0 microsec, cur_fn=2654275 +TBF(UL:TFI-0-0-0:G){FLOW} starting timer T3141 [Contention resolution (UL-TBF, CCCH)] with 10 sec. 0 microsec, cur_fn=2654283 MS(TA-220:MSCLS-0-0:UL): - bts_rcv_rach: now used by 1 (tbf) Modifying MS object, TLLI = 0xffffffff, TA 220 -> 7 Tx Immediate Assignment on AGCH: TRX=0 (ARFCN 0) TS=7 TA=7 TSC=0 TFI=0 USF=0 @@ -3096,7 +3089,6 @@ UL_ASS_TBF(UL:TFI-0-0-0:G:TLLI-0xf1223344){WAIT_ACK}: state_chg to NONE UL_TBF(UL:TFI-0-0-0:G:TLLI-0xf1223344){ASSIGN}: Received Event ASSIGN_ACK_PACCH UL_TBF(UL:TFI-0-0-0:G:TLLI-0xf1223344){ASSIGN}: state_chg to FLOW -Detected FN jump! 2654283 -> 2654275 (expected 2654288, delta 8) PDCH(bts=0,trx=0,ts=7) Got CS-1 RLC block: R=0, SI=0, TFI=0, CPS=0, RSB=0, rc=184 PDCH(bts=0,trx=0,ts=7) FN=2654275 Rx UL DATA from unexpected TBF(UL:TFI-0-0-0:G:TLLI-0xf1223344){FLOW} TBF(UL:TFI-0-0-0:G:TLLI-0xf1223344){FLOW} UL DATA TFI=0 received (V(Q)=0 .. V(R)=0) @@ -3189,7 +3181,6 @@ TBF(UL:TFI-0-0-0:G:IMSI-0011223344:TLLI-0xf1223344){FLOW} Scheduled DL Assignment polling on PACCH (FN=2654288, TS=7) DL_ASS_TBF(UL:TFI-0-0-0:G:IMSI-0011223344:TLLI-0xf1223344){SEND_ASS}: state_chg to WAIT_ACK PDCH(bts=0,trx=0,ts=7) FN=2654275 Scheduling control message at RTS for TBF(UL:TFI-0-0-0:G:IMSI-0011223344:TLLI-0xf1223344){FLOW} -Detected FN jump! 2654275 -> 2654288 (expected 2654279, delta 13) PDCH(bts=0,trx=0,ts=7) FN=2654288 +++++++++++++++++++++++++ RX : Uplink Control Block +++++++++++++++++++++++++ PDCH(bts=0,trx=0,ts=7) FN=2654288 ------------------------- RX : Uplink Control Block ------------------------- TBF(UL:TFI-0-0-0:G:IMSI-0011223344:TLLI-0xf1223344){FLOW} FN=2654288 Rx Packet Control Ack (reason=DL_ASS) @@ -4335,7 +4326,6 @@ UL_ASS_TBF(UL:TFI-0-0-0:E:TLLI-0xf1223344){WAIT_ACK}: state_chg to NONE UL_TBF(UL:TFI-0-0-0:E:TLLI-0xf1223344){ASSIGN}: Received Event ASSIGN_ACK_PACCH UL_TBF(UL:TFI-0-0-0:E:TLLI-0xf1223344){ASSIGN}: state_chg to FLOW -Detected FN jump! 2654283 -> 2654275 (expected 2654288, delta 8) PDCH(bts=0,trx=0,ts=7) Got CS-1 RLC block: R=0, SI=0, TFI=0, CPS=0, RSB=0, rc=184 PDCH(bts=0,trx=0,ts=7) FN=2654275 Rx UL DATA from unexpected TBF(UL:TFI-0-0-0:E:TLLI-0xf1223344){FLOW} TBF(UL:TFI-0-0-0:E:TLLI-0xf1223344){FLOW} UL DATA TFI=0 received (V(Q)=0 .. V(R)=0) @@ -4454,7 +4444,6 @@ UL_ASS_TBF(UL:TFI-0-0-0:E:TLLI-0xf1223344){WAIT_ACK}: state_chg to NONE UL_TBF(UL:TFI-0-0-0:E:TLLI-0xf1223344){ASSIGN}: Received Event ASSIGN_ACK_PACCH UL_TBF(UL:TFI-0-0-0:E:TLLI-0xf1223344){ASSIGN}: state_chg to FLOW -Detected FN jump! 2654283 -> 2654275 (expected 2654288, delta 8) PDCH(bts=0,trx=0,ts=7) Got CS-1 RLC block: R=0, SI=0, TFI=0, CPS=0, RSB=0, rc=184 PDCH(bts=0,trx=0,ts=7) FN=2654275 Rx UL DATA from unexpected TBF(UL:TFI-0-0-0:E:TLLI-0xf1223344){FLOW} TBF(UL:TFI-0-0-0:E:TLLI-0xf1223344){FLOW} UL DATA TFI=0 received (V(Q)=0 .. V(R)=0) @@ -5023,7 +5012,6 @@ TBF(DL:TFI-0-0-0:E:TLLI-0xffeeddcc){FLOW} Scheduled DL Acknowledgement polling on PACCH (FN=17, TS=4) TBF(DL:TFI-0-0-0:E:TLLI-0xffeeddcc){FLOW} Scheduled Ack/Nack polling on FN=17, TS=4 TBF(DL:TFI-0-0-0:E:TLLI-0xffeeddcc){FLOW} msg block (BSN 0, MCS-2): 0f 00 00 12 28 fe 03 02 02 02 02 02 02 02 02 02 56 56 56 56 56 56 56 56 56 56 56 56 56 56 56 56 00 -Detected FN jump! 112 -> 8 (expected 117, delta 104) MS(TLLI-0xffeeddcc:TA-0:MSCLS-11-11:DL) appending 512 bytes to DL LLC queue PDCH(bts=0,trx=0,ts=4) Received RTS for PDCH: FN=8 block_nr=2 scheduling free USF for polling at FN=13 of TBF(DL:TFI-0-0-0:E:TLLI-0xffeeddcc){FLOW} PDCH(bts=0,trx=0,ts=4) FN=8 Scheduling data message at RTS for DL TFI=0 prio=3 mcs_mode_restrict=EGPRS @@ -5188,17 +5176,16 @@ TBF(DL:TFI-0-0-0:E:TLLI-0xffeeddcc){FLOW} Scheduled DL Acknowledgement polling on PACCH (FN=99, TS=4) TBF(DL:TFI-0-0-0:E:TLLI-0xffeeddcc){FLOW} Scheduled Ack/Nack polling on FN=99, TS=4 TBF(DL:TFI-0-0-0:E:TLLI-0xffeeddcc){FLOW} msg block (BSN 19, MCS-2): 0f c0 04 12 20 fe 03 02 02 02 02 02 02 02 56 56 56 56 56 56 56 56 56 56 56 56 56 56 56 56 56 56 00 -Detected FN jump! 8 -> 91 (expected 13, delta 83) PDCH(bts=0,trx=0,ts=4) Expiring FN=91 but previous FN=13 is still reserved! PDCH(bts=0,trx=0,ts=4) Timeout for registered POLL (FN=13, reason=DL_ASS): TBF(DL:TFI-0-0-0:E:TLLI-0xffeeddcc){FLOW} -TBF(DL:TFI-0-0-0:E:TLLI-0xffeeddcc){FLOW} poll timeout for FN=13, TS=4 (curr FN 91) +TBF(DL:TFI-0-0-0:E:TLLI-0xffeeddcc){FLOW} poll timeout for FN=13, TS=4 (curr FN 112) TBF(DL:TFI-0-0-0:E:TLLI-0xffeeddcc){FLOW} N3105 0 => 1 (< MAX 8) DL_ASS_TBF(DL:TFI-0-0-0:E){WAIT_ACK}: Received Event ASS_POLL_TIMEOUT TBF(DL:TFI-0-0-0:E:TLLI-0xffeeddcc){FLOW} Timeout for polling PACKET CONTROL ACK for PACKET DOWNLINK ASSIGNMENT: |Assignment was on PACCH|No downlink ACK received yet| DL_ASS_TBF(DL:TFI-0-0-0:E){WAIT_ACK}: state_chg to SEND_ASS PDCH(bts=0,trx=0,ts=4) Expiring FN=91 but previous FN=17 is still reserved! PDCH(bts=0,trx=0,ts=4) Timeout for registered POLL (FN=17, reason=DL_ACK): TBF(DL:TFI-0-0-0:E:TLLI-0xffeeddcc){FLOW} -TBF(DL:TFI-0-0-0:E:TLLI-0xffeeddcc){FLOW} poll timeout for FN=17, TS=4 (curr FN 91) +TBF(DL:TFI-0-0-0:E:TLLI-0xffeeddcc){FLOW} poll timeout for FN=17, TS=4 (curr FN 112) TBF(DL:TFI-0-0-0:E:TLLI-0xffeeddcc){FLOW} Timeout for polling PACKET DOWNLINK ACK: |Assignment was on PACCH|No downlink ACK received yet| TBF(DL:TFI-0-0-0:E:TLLI-0xffeeddcc){FLOW} N3105 1 => 2 (< MAX 8) DL_TBF(DL:TFI-0-0-0:E){FLOW}: Received Event DL_ACKNACK_MISS @@ -5292,7 +5279,6 @@ TBF(DL:TFI-0-0-0:E:TLLI-0xffeeddcc){FLOW} Scheduled DL Acknowledgement polling on PACCH (FN=17, TS=4) TBF(DL:TFI-0-0-0:E:TLLI-0xffeeddcc){FLOW} Scheduled Ack/Nack polling on FN=17, TS=4 TBF(DL:TFI-0-0-0:E:TLLI-0xffeeddcc){FLOW} msg block (BSN 0, MCS-3): 0f 00 00 06 28 fe 03 02 02 02 02 02 02 02 02 02 56 56 56 56 56 56 56 56 56 56 56 56 56 56 56 56 56 56 56 56 56 56 56 56 56 00 -Detected FN jump! 91 -> 8 (expected 95, delta 83) MS(TLLI-0xffeeddcc:TA-0:MSCLS-11-11:DL) appending 512 bytes to DL LLC queue PDCH(bts=0,trx=0,ts=4) Received RTS for PDCH: FN=8 block_nr=2 scheduling free USF for polling at FN=13 of TBF(DL:TFI-0-0-0:E:TLLI-0xffeeddcc){FLOW} PDCH(bts=0,trx=0,ts=4) FN=8 Scheduling data message at RTS for DL TFI=0 prio=3 mcs_mode_restrict=EGPRS @@ -5417,17 +5403,16 @@ TBF(DL:TFI-0-0-0:E:TLLI-0xffeeddcc){FLOW} Scheduled DL Acknowledgement polling on PACCH (FN=78, TS=4) TBF(DL:TFI-0-0-0:E:TLLI-0xffeeddcc){FLOW} Scheduled Ack/Nack polling on FN=78, TS=4 TBF(DL:TFI-0-0-0:E:TLLI-0xffeeddcc){FLOW} msg block (BSN 14, MCS-3): 0f 80 03 06 7c fe 03 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 56 56 56 56 00 -Detected FN jump! 8 -> 69 (expected 13, delta 61) PDCH(bts=0,trx=0,ts=4) Expiring FN=69 but previous FN=13 is still reserved! PDCH(bts=0,trx=0,ts=4) Timeout for registered POLL (FN=13, reason=DL_ASS): TBF(DL:TFI-0-0-0:E:TLLI-0xffeeddcc){FLOW} -TBF(DL:TFI-0-0-0:E:TLLI-0xffeeddcc){FLOW} poll timeout for FN=13, TS=4 (curr FN 69) +TBF(DL:TFI-0-0-0:E:TLLI-0xffeeddcc){FLOW} poll timeout for FN=13, TS=4 (curr FN 112) TBF(DL:TFI-0-0-0:E:TLLI-0xffeeddcc){FLOW} N3105 0 => 1 (< MAX 8) DL_ASS_TBF(DL:TFI-0-0-0:E){WAIT_ACK}: Received Event ASS_POLL_TIMEOUT TBF(DL:TFI-0-0-0:E:TLLI-0xffeeddcc){FLOW} Timeout for polling PACKET CONTROL ACK for PACKET DOWNLINK ASSIGNMENT: |Assignment was on PACCH|No downlink ACK received yet| DL_ASS_TBF(DL:TFI-0-0-0:E){WAIT_ACK}: state_chg to SEND_ASS PDCH(bts=0,trx=0,ts=4) Expiring FN=69 but previous FN=17 is still reserved! PDCH(bts=0,trx=0,ts=4) Timeout for registered POLL (FN=17, reason=DL_ACK): TBF(DL:TFI-0-0-0:E:TLLI-0xffeeddcc){FLOW} -TBF(DL:TFI-0-0-0:E:TLLI-0xffeeddcc){FLOW} poll timeout for FN=17, TS=4 (curr FN 69) +TBF(DL:TFI-0-0-0:E:TLLI-0xffeeddcc){FLOW} poll timeout for FN=17, TS=4 (curr FN 112) TBF(DL:TFI-0-0-0:E:TLLI-0xffeeddcc){FLOW} Timeout for polling PACKET DOWNLINK ACK: |Assignment was on PACCH|No downlink ACK received yet| TBF(DL:TFI-0-0-0:E:TLLI-0xffeeddcc){FLOW} N3105 1 => 2 (< MAX 8) DL_TBF(DL:TFI-0-0-0:E){FLOW}: Received Event DL_ACKNACK_MISS @@ -5521,7 +5506,6 @@ TBF(DL:TFI-0-0-0:E:TLLI-0xffeeddcc){FLOW} Scheduled DL Acknowledgement polling on PACCH (FN=17, TS=4) TBF(DL:TFI-0-0-0:E:TLLI-0xffeeddcc){FLOW} Scheduled Ack/Nack polling on FN=17, TS=4 TBF(DL:TFI-0-0-0:E:TLLI-0xffeeddcc){FLOW} msg block (BSN 0, MCS-4): 0f 00 00 00 28 fe 03 02 02 02 02 02 02 02 02 02 56 56 56 56 56 56 56 56 56 56 56 56 56 56 56 56 56 56 56 56 56 56 56 56 56 56 56 56 56 56 56 56 00 -Detected FN jump! 69 -> 8 (expected 73, delta 61) MS(TLLI-0xffeeddcc:TA-0:MSCLS-11-11:DL) appending 512 bytes to DL LLC queue PDCH(bts=0,trx=0,ts=4) Received RTS for PDCH: FN=8 block_nr=2 scheduling free USF for polling at FN=13 of TBF(DL:TFI-0-0-0:E:TLLI-0xffeeddcc){FLOW} PDCH(bts=0,trx=0,ts=4) FN=8 Scheduling data message at RTS for DL TFI=0 prio=3 mcs_mode_restrict=EGPRS @@ -5630,17 +5614,16 @@ TBF(DL:TFI-0-0-0:E:TLLI-0xffeeddcc){FLOW} Scheduled DL Acknowledgement polling on PACCH (FN=69, TS=4) TBF(DL:TFI-0-0-0:E:TLLI-0xffeeddcc){FLOW} Scheduled Ack/Nack polling on FN=69, TS=4 TBF(DL:TFI-0-0-0:E:TLLI-0xffeeddcc){FLOW} msg block (BSN 12, MCS-4): 0f 00 03 00 70 fe 03 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 56 56 56 56 56 56 56 56 56 56 56 56 56 56 00 -Detected FN jump! 8 -> 60 (expected 13, delta 52) PDCH(bts=0,trx=0,ts=4) Expiring FN=60 but previous FN=13 is still reserved! PDCH(bts=0,trx=0,ts=4) Timeout for registered POLL (FN=13, reason=DL_ASS): TBF(DL:TFI-0-0-0:E:TLLI-0xffeeddcc){FLOW} -TBF(DL:TFI-0-0-0:E:TLLI-0xffeeddcc){FLOW} poll timeout for FN=13, TS=4 (curr FN 60) +TBF(DL:TFI-0-0-0:E:TLLI-0xffeeddcc){FLOW} poll timeout for FN=13, TS=4 (curr FN 112) TBF(DL:TFI-0-0-0:E:TLLI-0xffeeddcc){FLOW} N3105 0 => 1 (< MAX 8) DL_ASS_TBF(DL:TFI-0-0-0:E){WAIT_ACK}: Received Event ASS_POLL_TIMEOUT TBF(DL:TFI-0-0-0:E:TLLI-0xffeeddcc){FLOW} Timeout for polling PACKET CONTROL ACK for PACKET DOWNLINK ASSIGNMENT: |Assignment was on PACCH|No downlink ACK received yet| DL_ASS_TBF(DL:TFI-0-0-0:E){WAIT_ACK}: state_chg to SEND_ASS PDCH(bts=0,trx=0,ts=4) Expiring FN=60 but previous FN=17 is still reserved! PDCH(bts=0,trx=0,ts=4) Timeout for registered POLL (FN=17, reason=DL_ACK): TBF(DL:TFI-0-0-0:E:TLLI-0xffeeddcc){FLOW} -TBF(DL:TFI-0-0-0:E:TLLI-0xffeeddcc){FLOW} poll timeout for FN=17, TS=4 (curr FN 60) +TBF(DL:TFI-0-0-0:E:TLLI-0xffeeddcc){FLOW} poll timeout for FN=17, TS=4 (curr FN 112) TBF(DL:TFI-0-0-0:E:TLLI-0xffeeddcc){FLOW} Timeout for polling PACKET DOWNLINK ACK: |Assignment was on PACCH|No downlink ACK received yet| TBF(DL:TFI-0-0-0:E:TLLI-0xffeeddcc){FLOW} N3105 1 => 2 (< MAX 8) DL_TBF(DL:TFI-0-0-0:E){FLOW}: Received Event DL_ACKNACK_MISS @@ -5734,7 +5717,6 @@ TBF(DL:TFI-0-0-0:E:TLLI-0xffeeddcc){FLOW} Scheduled DL Acknowledgement polling on PACCH (FN=17, TS=4) TBF(DL:TFI-0-0-0:E:TLLI-0xffeeddcc){FLOW} Scheduled Ack/Nack polling on FN=17, TS=4 TBF(DL:TFI-0-0-0:E:TLLI-0xffeeddcc){FLOW} msg block (BSN 0, MCS-5): 0f 00 00 08 c5 7f 40 40 40 40 40 40 40 40 40 c0 ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca 0a -Detected FN jump! 60 -> 8 (expected 65, delta 52) MS(TLLI-0xffeeddcc:TA-0:MSCLS-11-11:DL) appending 512 bytes to DL LLC queue PDCH(bts=0,trx=0,ts=4) Received RTS for PDCH: FN=8 block_nr=2 scheduling free USF for polling at FN=13 of TBF(DL:TFI-0-0-0:E:TLLI-0xffeeddcc){FLOW} PDCH(bts=0,trx=0,ts=4) FN=8 Scheduling data message at RTS for DL TFI=0 prio=3 mcs_mode_restrict=EGPRS @@ -5827,17 +5809,16 @@ TBF(DL:TFI-0-0-0:E:TLLI-0xffeeddcc){FLOW} Scheduled DL Acknowledgement polling on PACCH (FN=60, TS=4) TBF(DL:TFI-0-0-0:E:TLLI-0xffeeddcc){FLOW} Scheduled Ack/Nack polling on FN=60, TS=4 TBF(DL:TFI-0-0-0:E:TLLI-0xffeeddcc){FLOW} msg block (BSN 10, MCS-5): 0f 80 02 08 c4 7f 40 40 40 40 40 40 40 c0 ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca 0a -Detected FN jump! 8 -> 52 (expected 13, delta 44) PDCH(bts=0,trx=0,ts=4) Expiring FN=52 but previous FN=13 is still reserved! PDCH(bts=0,trx=0,ts=4) Timeout for registered POLL (FN=13, reason=DL_ASS): TBF(DL:TFI-0-0-0:E:TLLI-0xffeeddcc){FLOW} -TBF(DL:TFI-0-0-0:E:TLLI-0xffeeddcc){FLOW} poll timeout for FN=13, TS=4 (curr FN 52) +TBF(DL:TFI-0-0-0:E:TLLI-0xffeeddcc){FLOW} poll timeout for FN=13, TS=4 (curr FN 112) TBF(DL:TFI-0-0-0:E:TLLI-0xffeeddcc){FLOW} N3105 0 => 1 (< MAX 8) DL_ASS_TBF(DL:TFI-0-0-0:E){WAIT_ACK}: Received Event ASS_POLL_TIMEOUT TBF(DL:TFI-0-0-0:E:TLLI-0xffeeddcc){FLOW} Timeout for polling PACKET CONTROL ACK for PACKET DOWNLINK ASSIGNMENT: |Assignment was on PACCH|No downlink ACK received yet| DL_ASS_TBF(DL:TFI-0-0-0:E){WAIT_ACK}: state_chg to SEND_ASS PDCH(bts=0,trx=0,ts=4) Expiring FN=52 but previous FN=17 is still reserved! PDCH(bts=0,trx=0,ts=4) Timeout for registered POLL (FN=17, reason=DL_ACK): TBF(DL:TFI-0-0-0:E:TLLI-0xffeeddcc){FLOW} -TBF(DL:TFI-0-0-0:E:TLLI-0xffeeddcc){FLOW} poll timeout for FN=17, TS=4 (curr FN 52) +TBF(DL:TFI-0-0-0:E:TLLI-0xffeeddcc){FLOW} poll timeout for FN=17, TS=4 (curr FN 112) TBF(DL:TFI-0-0-0:E:TLLI-0xffeeddcc){FLOW} Timeout for polling PACKET DOWNLINK ACK: |Assignment was on PACCH|No downlink ACK received yet| TBF(DL:TFI-0-0-0:E:TLLI-0xffeeddcc){FLOW} N3105 1 => 2 (< MAX 8) DL_TBF(DL:TFI-0-0-0:E){FLOW}: Received Event DL_ACKNACK_MISS @@ -5931,7 +5912,6 @@ TBF(DL:TFI-0-0-0:E:TLLI-0xffeeddcc){FLOW} Scheduled DL Acknowledgement polling on PACCH (FN=17, TS=4) TBF(DL:TFI-0-0-0:E:TLLI-0xffeeddcc){FLOW} Scheduled Ack/Nack polling on FN=17, TS=4 TBF(DL:TFI-0-0-0:E:TLLI-0xffeeddcc){FLOW} msg block (BSN 0, MCS-6): 0f 00 00 00 c5 7f 40 40 40 40 40 40 40 40 40 c0 ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca 0a -Detected FN jump! 52 -> 8 (expected 56, delta 44) MS(TLLI-0xffeeddcc:TA-0:MSCLS-11-11:DL) appending 512 bytes to DL LLC queue PDCH(bts=0,trx=0,ts=4) Received RTS for PDCH: FN=8 block_nr=2 scheduling free USF for polling at FN=13 of TBF(DL:TFI-0-0-0:E:TLLI-0xffeeddcc){FLOW} PDCH(bts=0,trx=0,ts=4) FN=8 Scheduling data message at RTS for DL TFI=0 prio=3 mcs_mode_restrict=EGPRS @@ -6000,17 +5980,16 @@ TBF(DL:TFI-0-0-0:E:TLLI-0xffeeddcc){FLOW} Scheduled DL Acknowledgement polling on PACCH (FN=47, TS=4) TBF(DL:TFI-0-0-0:E:TLLI-0xffeeddcc){FLOW} Scheduled Ack/Nack polling on FN=47, TS=4 TBF(DL:TFI-0-0-0:E:TLLI-0xffeeddcc){FLOW} msg block (BSN 7, MCS-6): 0f c0 01 00 e2 7f 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 c0 ca ca ca 0a -Detected FN jump! 8 -> 39 (expected 13, delta 31) PDCH(bts=0,trx=0,ts=4) Expiring FN=39 but previous FN=13 is still reserved! PDCH(bts=0,trx=0,ts=4) Timeout for registered POLL (FN=13, reason=DL_ASS): TBF(DL:TFI-0-0-0:E:TLLI-0xffeeddcc){FLOW} -TBF(DL:TFI-0-0-0:E:TLLI-0xffeeddcc){FLOW} poll timeout for FN=13, TS=4 (curr FN 39) +TBF(DL:TFI-0-0-0:E:TLLI-0xffeeddcc){FLOW} poll timeout for FN=13, TS=4 (curr FN 112) TBF(DL:TFI-0-0-0:E:TLLI-0xffeeddcc){FLOW} N3105 0 => 1 (< MAX 8) DL_ASS_TBF(DL:TFI-0-0-0:E){WAIT_ACK}: Received Event ASS_POLL_TIMEOUT TBF(DL:TFI-0-0-0:E:TLLI-0xffeeddcc){FLOW} Timeout for polling PACKET CONTROL ACK for PACKET DOWNLINK ASSIGNMENT: |Assignment was on PACCH|No downlink ACK received yet| DL_ASS_TBF(DL:TFI-0-0-0:E){WAIT_ACK}: state_chg to SEND_ASS PDCH(bts=0,trx=0,ts=4) Expiring FN=39 but previous FN=17 is still reserved! PDCH(bts=0,trx=0,ts=4) Timeout for registered POLL (FN=17, reason=DL_ACK): TBF(DL:TFI-0-0-0:E:TLLI-0xffeeddcc){FLOW} -TBF(DL:TFI-0-0-0:E:TLLI-0xffeeddcc){FLOW} poll timeout for FN=17, TS=4 (curr FN 39) +TBF(DL:TFI-0-0-0:E:TLLI-0xffeeddcc){FLOW} poll timeout for FN=17, TS=4 (curr FN 112) TBF(DL:TFI-0-0-0:E:TLLI-0xffeeddcc){FLOW} Timeout for polling PACKET DOWNLINK ACK: |Assignment was on PACCH|No downlink ACK received yet| TBF(DL:TFI-0-0-0:E:TLLI-0xffeeddcc){FLOW} N3105 1 => 2 (< MAX 8) DL_TBF(DL:TFI-0-0-0:E){FLOW}: Received Event DL_ACKNACK_MISS @@ -6105,7 +6084,6 @@ TBF(DL:TFI-0-0-0:E:TLLI-0xffeeddcc){FLOW} Scheduled DL Acknowledgement polling on PACCH (FN=17, TS=4) TBF(DL:TFI-0-0-0:E:TLLI-0xffeeddcc){FLOW} Scheduled Ack/Nack polling on FN=17, TS=4 TBF(DL:TFI-0-0-0:E:TLLI-0xffeeddcc){FLOW} msg block (BSN 0, MCS-5): 0f 00 00 08 c5 7f 40 40 40 40 40 40 40 40 40 c0 ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca 0a -Detected FN jump! 39 -> 8 (expected 43, delta 31) MS(TLLI-0xffeeddcc:TA-0:MSCLS-11-11:DL) appending 512 bytes to DL LLC queue PDCH(bts=0,trx=0,ts=4) Received RTS for PDCH: FN=8 block_nr=2 scheduling free USF for polling at FN=13 of TBF(DL:TFI-0-0-0:E:TLLI-0xffeeddcc){FLOW} PDCH(bts=0,trx=0,ts=4) FN=8 Scheduling data message at RTS for DL TFI=0 prio=3 mcs_mode_restrict=EGPRS @@ -6182,17 +6160,16 @@ TBF(DL:TFI-0-0-0:E:TLLI-0xffeeddcc){FLOW} Scheduled DL Acknowledgement polling on PACCH (FN=43, TS=4) TBF(DL:TFI-0-0-0:E:TLLI-0xffeeddcc){FLOW} Scheduled Ack/Nack polling on FN=43, TS=4 TBF(DL:TFI-0-0-0:E:TLLI-0xffeeddcc){FLOW} msg block (BSN 10, MCS-5): 0f 80 02 08 c4 7f 40 40 40 40 40 40 40 c0 ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca 0a -Detected FN jump! 8 -> 34 (expected 13, delta 26) PDCH(bts=0,trx=0,ts=4) Expiring FN=34 but previous FN=13 is still reserved! PDCH(bts=0,trx=0,ts=4) Timeout for registered POLL (FN=13, reason=DL_ASS): TBF(DL:TFI-0-0-0:E:TLLI-0xffeeddcc){FLOW} -TBF(DL:TFI-0-0-0:E:TLLI-0xffeeddcc){FLOW} poll timeout for FN=13, TS=4 (curr FN 34) +TBF(DL:TFI-0-0-0:E:TLLI-0xffeeddcc){FLOW} poll timeout for FN=13, TS=4 (curr FN 112) TBF(DL:TFI-0-0-0:E:TLLI-0xffeeddcc){FLOW} N3105 0 => 1 (< MAX 8) DL_ASS_TBF(DL:TFI-0-0-0:E){WAIT_ACK}: Received Event ASS_POLL_TIMEOUT TBF(DL:TFI-0-0-0:E:TLLI-0xffeeddcc){FLOW} Timeout for polling PACKET CONTROL ACK for PACKET DOWNLINK ASSIGNMENT: |Assignment was on PACCH|No downlink ACK received yet| DL_ASS_TBF(DL:TFI-0-0-0:E){WAIT_ACK}: state_chg to SEND_ASS PDCH(bts=0,trx=0,ts=4) Expiring FN=34 but previous FN=17 is still reserved! PDCH(bts=0,trx=0,ts=4) Timeout for registered POLL (FN=17, reason=DL_ACK): TBF(DL:TFI-0-0-0:E:TLLI-0xffeeddcc){FLOW} -TBF(DL:TFI-0-0-0:E:TLLI-0xffeeddcc){FLOW} poll timeout for FN=17, TS=4 (curr FN 34) +TBF(DL:TFI-0-0-0:E:TLLI-0xffeeddcc){FLOW} poll timeout for FN=17, TS=4 (curr FN 112) TBF(DL:TFI-0-0-0:E:TLLI-0xffeeddcc){FLOW} Timeout for polling PACKET DOWNLINK ACK: |Assignment was on PACCH|No downlink ACK received yet| TBF(DL:TFI-0-0-0:E:TLLI-0xffeeddcc){FLOW} N3105 1 => 2 (< MAX 8) DL_TBF(DL:TFI-0-0-0:E){FLOW}: Received Event DL_ACKNACK_MISS @@ -6288,7 +6265,6 @@ TBF(DL:TFI-0-0-0:E:TLLI-0xffeeddcc){FLOW} Scheduled DL Acknowledgement polling on PACCH (FN=17, TS=4) TBF(DL:TFI-0-0-0:E:TLLI-0xffeeddcc){FLOW} Scheduled Ack/Nack polling on FN=17, TS=4 TBF(DL:TFI-0-0-0:E:TLLI-0xffeeddcc){FLOW} msg block (BSN 0, MCS-8): 0f 00 00 00 60 50 fc 07 04 04 04 04 04 04 04 04 04 ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac 40 f1 1f 10 10 10 10 10 10 10 10 10 b0 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 02 -Detected FN jump! 34 -> 8 (expected 39, delta 26) MS(TLLI-0xffeeddcc:TA-0:MSCLS-11-11:DL) appending 512 bytes to DL LLC queue PDCH(bts=0,trx=0,ts=4) Received RTS for PDCH: FN=8 block_nr=2 scheduling free USF for polling at FN=13 of TBF(DL:TFI-0-0-0:E:TLLI-0xffeeddcc){FLOW} PDCH(bts=0,trx=0,ts=4) FN=8 Scheduling data message at RTS for DL TFI=0 prio=3 mcs_mode_restrict=EGPRS @@ -6355,17 +6331,16 @@ TBF(DL:TFI-0-0-0:E:TLLI-0xffeeddcc){FLOW} Scheduled DL Acknowledgement polling on PACCH (FN=39, TS=4) TBF(DL:TFI-0-0-0:E:TLLI-0xffeeddcc){FLOW} Scheduled Ack/Nack polling on FN=39, TS=4 TBF(DL:TFI-0-0-0:E:TLLI-0xffeeddcc){FLOW} msg block (BSN 8, MCS-8): 0f 00 02 00 60 20 fd 07 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac 80 f4 1f 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 b0 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 02 -Detected FN jump! 8 -> 30 (expected 13, delta 22) PDCH(bts=0,trx=0,ts=4) Expiring FN=30 but previous FN=13 is still reserved! PDCH(bts=0,trx=0,ts=4) Timeout for registered POLL (FN=13, reason=DL_ASS): TBF(DL:TFI-0-0-0:E:TLLI-0xffeeddcc){FLOW} -TBF(DL:TFI-0-0-0:E:TLLI-0xffeeddcc){FLOW} poll timeout for FN=13, TS=4 (curr FN 30) +TBF(DL:TFI-0-0-0:E:TLLI-0xffeeddcc){FLOW} poll timeout for FN=13, TS=4 (curr FN 112) TBF(DL:TFI-0-0-0:E:TLLI-0xffeeddcc){FLOW} N3105 0 => 1 (< MAX 8) DL_ASS_TBF(DL:TFI-0-0-0:E){WAIT_ACK}: Received Event ASS_POLL_TIMEOUT TBF(DL:TFI-0-0-0:E:TLLI-0xffeeddcc){FLOW} Timeout for polling PACKET CONTROL ACK for PACKET DOWNLINK ASSIGNMENT: |Assignment was on PACCH|No downlink ACK received yet| DL_ASS_TBF(DL:TFI-0-0-0:E){WAIT_ACK}: state_chg to SEND_ASS PDCH(bts=0,trx=0,ts=4) Expiring FN=30 but previous FN=17 is still reserved! PDCH(bts=0,trx=0,ts=4) Timeout for registered POLL (FN=17, reason=DL_ACK): TBF(DL:TFI-0-0-0:E:TLLI-0xffeeddcc){FLOW} -TBF(DL:TFI-0-0-0:E:TLLI-0xffeeddcc){FLOW} poll timeout for FN=17, TS=4 (curr FN 30) +TBF(DL:TFI-0-0-0:E:TLLI-0xffeeddcc){FLOW} poll timeout for FN=17, TS=4 (curr FN 112) TBF(DL:TFI-0-0-0:E:TLLI-0xffeeddcc){FLOW} Timeout for polling PACKET DOWNLINK ACK: |Assignment was on PACCH|No downlink ACK received yet| TBF(DL:TFI-0-0-0:E:TLLI-0xffeeddcc){FLOW} N3105 1 => 2 (< MAX 8) DL_TBF(DL:TFI-0-0-0:E){FLOW}: Received Event DL_ACKNACK_MISS @@ -6460,7 +6435,6 @@ TBF(DL:TFI-0-0-0:E:TLLI-0xffeeddcc){FLOW} Scheduled DL Acknowledgement polling on PACCH (FN=17, TS=4) TBF(DL:TFI-0-0-0:E:TLLI-0xffeeddcc){FLOW} Scheduled Ack/Nack polling on FN=17, TS=4 TBF(DL:TFI-0-0-0:E:TLLI-0xffeeddcc){FLOW} msg block (BSN 0, MCS-6): 0f 00 00 00 c5 7f 40 40 40 40 40 40 40 40 40 c0 ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca 0a -Detected FN jump! 30 -> 8 (expected 34, delta 22) MS(TLLI-0xffeeddcc:TA-0:MSCLS-11-11:DL) appending 512 bytes to DL LLC queue PDCH(bts=0,trx=0,ts=4) Received RTS for PDCH: FN=8 block_nr=2 scheduling free USF for polling at FN=13 of TBF(DL:TFI-0-0-0:E:TLLI-0xffeeddcc){FLOW} PDCH(bts=0,trx=0,ts=4) FN=8 Scheduling data message at RTS for DL TFI=0 prio=3 mcs_mode_restrict=EGPRS @@ -6517,17 +6491,16 @@ TBF(DL:TFI-0-0-0:E:TLLI-0xffeeddcc){FLOW} Scheduled DL Acknowledgement polling on PACCH (FN=34, TS=4) TBF(DL:TFI-0-0-0:E:TLLI-0xffeeddcc){FLOW} Scheduled Ack/Nack polling on FN=34, TS=4 TBF(DL:TFI-0-0-0:E:TLLI-0xffeeddcc){FLOW} msg block (BSN 6, MCS-9): 0f 80 01 02 00 05 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 80 f8 1f 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 b0 b2 b2 b2 02 -Detected FN jump! 8 -> 26 (expected 13, delta 18) PDCH(bts=0,trx=0,ts=4) Expiring FN=26 but previous FN=13 is still reserved! PDCH(bts=0,trx=0,ts=4) Timeout for registered POLL (FN=13, reason=DL_ASS): TBF(DL:TFI-0-0-0:E:TLLI-0xffeeddcc){FLOW} -TBF(DL:TFI-0-0-0:E:TLLI-0xffeeddcc){FLOW} poll timeout for FN=13, TS=4 (curr FN 26) +TBF(DL:TFI-0-0-0:E:TLLI-0xffeeddcc){FLOW} poll timeout for FN=13, TS=4 (curr FN 112) TBF(DL:TFI-0-0-0:E:TLLI-0xffeeddcc){FLOW} N3105 0 => 1 (< MAX 8) DL_ASS_TBF(DL:TFI-0-0-0:E){WAIT_ACK}: Received Event ASS_POLL_TIMEOUT TBF(DL:TFI-0-0-0:E:TLLI-0xffeeddcc){FLOW} Timeout for polling PACKET CONTROL ACK for PACKET DOWNLINK ASSIGNMENT: |Assignment was on PACCH|No downlink ACK received yet| DL_ASS_TBF(DL:TFI-0-0-0:E){WAIT_ACK}: state_chg to SEND_ASS PDCH(bts=0,trx=0,ts=4) Expiring FN=26 but previous FN=17 is still reserved! PDCH(bts=0,trx=0,ts=4) Timeout for registered POLL (FN=17, reason=DL_ACK): TBF(DL:TFI-0-0-0:E:TLLI-0xffeeddcc){FLOW} -TBF(DL:TFI-0-0-0:E:TLLI-0xffeeddcc){FLOW} poll timeout for FN=17, TS=4 (curr FN 26) +TBF(DL:TFI-0-0-0:E:TLLI-0xffeeddcc){FLOW} poll timeout for FN=17, TS=4 (curr FN 112) TBF(DL:TFI-0-0-0:E:TLLI-0xffeeddcc){FLOW} Timeout for polling PACKET DOWNLINK ACK: |Assignment was on PACCH|No downlink ACK received yet| TBF(DL:TFI-0-0-0:E:TLLI-0xffeeddcc){FLOW} N3105 1 => 2 (< MAX 8) DL_TBF(DL:TFI-0-0-0:E){FLOW}: Received Event DL_ACKNACK_MISS @@ -7625,7 +7598,6 @@ UL_ASS_TBF(UL:TFI-0-0-0:E:TLLI-0xf1223344){WAIT_ACK}: state_chg to NONE UL_TBF(UL:TFI-0-0-0:E:TLLI-0xf1223344){ASSIGN}: Received Event ASSIGN_ACK_PACCH UL_TBF(UL:TFI-0-0-0:E:TLLI-0xf1223344){ASSIGN}: state_chg to FLOW -Detected FN jump! 2654283 -> 2654275 (expected 2654288, delta 8) PDCH(bts=0,trx=0,ts=7) Got CS-1 RLC block: R=0, SI=0, TFI=0, CPS=0, RSB=0, rc=184 PDCH(bts=0,trx=0,ts=7) FN=2654275 Rx UL DATA from unexpected TBF(UL:TFI-0-0-0:E:TLLI-0xf1223344){FLOW} TBF(UL:TFI-0-0-0:E:TLLI-0xf1223344){FLOW} UL DATA TFI=0 received (V(Q)=0 .. V(R)=0) @@ -7847,7 +7819,6 @@ UL_ASS_TBF(UL:TFI-0-0-0:E:TLLI-0xf1223344){WAIT_ACK}: state_chg to NONE UL_TBF(UL:TFI-0-0-0:E:TLLI-0xf1223344){ASSIGN}: Received Event ASSIGN_ACK_PACCH UL_TBF(UL:TFI-0-0-0:E:TLLI-0xf1223344){ASSIGN}: state_chg to FLOW -Detected FN jump! 2654283 -> 2654275 (expected 2654288, delta 8) PDCH(bts=0,trx=0,ts=7) Got MCS-4 RLC block: R=1, SI=0, TFI=0, CPS=5, RSB=0, rc=385 PDCH(bts=0,trx=0,ts=7) FN=2654275 Rx UL DATA from unexpected TBF(UL:TFI-0-0-0:E:TLLI-0xf1223344){FLOW} TBF(UL:TFI-0-0-0:E:TLLI-0xf1223344){FLOW} UL DATA TFI=0 received (V(Q)=0 .. V(R)=0) @@ -8308,7 +8279,6 @@ UL_ASS_TBF(UL:TFI-0-0-0:E:TLLI-0xf1223344){WAIT_ACK}: state_chg to NONE UL_TBF(UL:TFI-0-0-0:E:TLLI-0xf1223344){ASSIGN}: Received Event ASSIGN_ACK_PACCH UL_TBF(UL:TFI-0-0-0:E:TLLI-0xf1223344){ASSIGN}: state_chg to FLOW -Detected FN jump! 2654283 -> 2654275 (expected 2654288, delta 8) PDCH(bts=0,trx=0,ts=7) Got MCS-4 RLC block: R=0, SI=0, TFI=0, CPS=0, RSB=0, rc=385 PDCH(bts=0,trx=0,ts=7) FN=2654275 Rx UL DATA from unexpected TBF(UL:TFI-0-0-0:E:TLLI-0xf1223344){FLOW} TBF(UL:TFI-0-0-0:E:TLLI-0xf1223344){FLOW} UL DATA TFI=0 received (V(Q)=0 .. V(R)=0) -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/33154 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: If36f22a1067c904fa7fda87bed5062b6738f0dd1 Gerrit-Change-Number: 33154 Gerrit-PatchSet: 1 Gerrit-Owner: pespin <pespin(a)sysmocom.de> Gerrit-MessageType: newchange
1 0
0 0
  • ← Newer
  • 1
  • ...
  • 231
  • 232
  • 233
  • 234
  • 235
  • 236
  • 237
  • ...
  • 248
  • Older →

HyperKitty Powered by HyperKitty version 1.3.12.