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

July 2023

  • 1 participants
  • 3051 discussions
[S] Change in osmo-ttcn3-hacks[master]: ASCI: Add missing codec list to *_BSSMAP_VGCS_VBS_AssignmentFail temp...
by jolly 27 Jul '23

27 Jul '23
jolly has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/33975 ) Change subject: ASCI: Add missing codec list to *_BSSMAP_VGCS_VBS_AssignmentFail templates ...................................................................... ASCI: Add missing codec list to *_BSSMAP_VGCS_VBS_AssignmentFail templates Relates: OS#4854 Change-Id: I5f67c676035eaa9d61f7b123995770fd61eadaff --- M library/BSSMAP_Templates.ttcn 1 file changed, 14 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/75/33975/1 diff --git a/library/BSSMAP_Templates.ttcn b/library/BSSMAP_Templates.ttcn index 03479c1..a93fb02 100644 --- a/library/BSSMAP_Templates.ttcn +++ b/library/BSSMAP_Templates.ttcn @@ -2422,7 +2422,8 @@ cause := ts_BSSMAP_IE_Cause(cause), /* we only implement AoIP for now... */ circuitPool := omit, - circuitPoolList := omit + circuitPoolList := omit, + codecList := omit } } } @@ -2437,7 +2438,8 @@ cause := tr_BSSMAP_IE_Cause(cause), /* we only implement AoIP for now... */ circuitPool := omit, - circuitPoolList := omit + circuitPoolList := omit, + codecList := omit } } } -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/33975 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I5f67c676035eaa9d61f7b123995770fd61eadaff Gerrit-Change-Number: 33975 Gerrit-PatchSet: 1 Gerrit-Owner: jolly <andreas(a)eversberg.eu> Gerrit-MessageType: newchange
1 0
0 0
[L] Change in osmo-tetra[master]: Added first steps towards tetra crypto support
by wbokslag 27 Jul '23

27 Jul '23
Attention is currently required from: laforge. wbokslag has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-tetra/+/33943 ) Change subject: Added first steps towards tetra crypto support ...................................................................... Patch Set 4: (9 comments) Patchset: PS4: Thanks for the remarks, I simplified some stuff, and am waiting for your opinion on merging tetra_crypto_state into tetra_mac_state while keeping tetra_crypto_database a global. File src/crypto/tetra_crypto.h: https://gerrit.osmocom.org/c/osmo-tetra/+/33943/comment/a653f2ce_7e63b875 PS3, Line 47: mcc > it's been a long time since I read TETRA specs. […] ETSI EN 300 392-1 V1.4.1 Clause 7.2.5 states: The MNC is coded in binary using 14 bits. The range of MNC shall be limited to four decimal digits i.e. the maximum value is 9 999 decimal or 270F in hexadecimal format. This does not in any way seem to be a character based representation so I think we're good here. https://gerrit.osmocom.org/c/osmo-tetra/+/33943/comment/01b4abdd_13b0be75 PS3, Line 54: int is_gssi_range; : int start; : int end; > are there situations where those integers really can be negative? Since I'm not really using address ranges I've decided to remove them from this patch. We can re-introduce those when needed. https://gerrit.osmocom.org/c/osmo-tetra/+/33943/comment/82e93cb4_6ba25440 PS3, Line 61: mnc > is there a reeason to use int for mnc/mcc in 'struct network_info' but uint32_t here? You're right, I changed them to uint32_t in the network info struct https://gerrit.osmocom.org/c/osmo-tetra/+/33943/comment/7c6b69cd_98946b5a PS3, Line 71: int num_keys; > I guess all of these could be unsigned as they simply count the number of list elements? Using the […] Done https://gerrit.osmocom.org/c/osmo-tetra/+/33943/comment/07b52ca7_952ac2f5 PS3, Line 93: const char *tetra_get_key_type_name(int key_type); > didn't you define enums above for those types? Wondering why the argument type is int instead of the […] Done File src/crypto/tetra_crypto.c: https://gerrit.osmocom.org/c/osmo-tetra/+/33943/comment/9b060a51_c0b8d002 PS3, Line 14: struct tet > I'd generally suggest to a void global variables for state that might exist multiple times (think of […] I introduce two new global variables. How would you feel about merging the tetra_crypto_state into the tetra_mac_state? Since the MAC handles encryption, it would not be out of place. The second question then remains the tetra_crypto_database which serves as a database that stores user-supplied network specifications and key material. I think this neither fits in the tetra_mac_state, nor does it seem appropriate to pass it around through all the functions that are involved. To me, it seems okay to make the tetra_crypto_database a global since it is reasonable to assume one would want to use it across multiple tetra_mac_states. Agree? https://gerrit.osmocom.org/c/osmo-tetra/+/33943/comment/92efdc1d_85f4d289 PS3, Line 82: calloc > we generally use talloc in the existing osmo-tetra code base, and it would make sense to not mix dif […] Done https://gerrit.osmocom.org/c/osmo-tetra/+/33943/comment/b5ee42d5_5893be8a PS3, Line 96: k->mcc, k->mnc, k->key_type); > we have something like OSMO_STRBUF_APPEND() in osmocom/core/utils. […] I'll leave it as-is for now -- To view, visit https://gerrit.osmocom.org/c/osmo-tetra/+/33943 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-tetra Gerrit-Branch: master Gerrit-Change-Id: I63bc712630ae5dbaa049c129d456f7aef5bda863 Gerrit-Change-Number: 33943 Gerrit-PatchSet: 4 Gerrit-Owner: wbokslag <w.bokslag(a)midnightblue.nl> Gerrit-Reviewer: Jenkins Builder Gerrit-CC: laforge <laforge(a)osmocom.org> Gerrit-Attention: laforge <laforge(a)osmocom.org> Gerrit-Comment-Date: Thu, 27 Jul 2023 16:16:57 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Comment-In-Reply-To: laforge <laforge(a)osmocom.org> Gerrit-MessageType: comment
1 0
0 0
[L] Change in osmo-tetra[master]: Added first steps towards tetra crypto support
by wbokslag 27 Jul '23

27 Jul '23
Attention is currently required from: wbokslag. Hello Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-tetra/+/33943 to look at the new patch set (#4). Change subject: Added first steps towards tetra crypto support ...................................................................... Added first steps towards tetra crypto support A crypto folder has been added containing only a single c and h file at the moment. These files contain structs and high level functionality pertaining to TETRA crypto support which can be added in future patches. Change-Id: I63bc712630ae5dbaa049c129d456f7aef5bda863 --- M src/Makefile A src/crypto/tetra_crypto.c A src/crypto/tetra_crypto.h 3 files changed, 355 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-tetra refs/changes/43/33943/4 -- To view, visit https://gerrit.osmocom.org/c/osmo-tetra/+/33943 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-tetra Gerrit-Branch: master Gerrit-Change-Id: I63bc712630ae5dbaa049c129d456f7aef5bda863 Gerrit-Change-Number: 33943 Gerrit-PatchSet: 4 Gerrit-Owner: wbokslag <w.bokslag(a)midnightblue.nl> Gerrit-Reviewer: Jenkins Builder Gerrit-CC: laforge <laforge(a)osmocom.org> Gerrit-Attention: wbokslag <w.bokslag(a)midnightblue.nl> Gerrit-MessageType: newpatchset
1 0
0 0
[M] Change in libosmo-gprs[master]: sndcp: Forward QoS params from SM to LLC
by pespin 27 Jul '23

27 Jul '23
pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmo-gprs/+/33971 ) Change subject: sndcp: Forward QoS params from SM to LLC ...................................................................... sndcp: Forward QoS params from SM to LLC Change-Id: I70e355ef27d24bdaf00e54f0e7126193f5bbf19f --- M include/osmocom/gprs/sndcp/sndcp_private.h M src/sndcp/Makefile.am M src/sndcp/sndcp.c M src/sndcp/sndcp_prim.c M tests/sndcp/sndcp_prim_test.c 5 files changed, 65 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmo-gprs refs/changes/71/33971/1 diff --git a/include/osmocom/gprs/sndcp/sndcp_private.h b/include/osmocom/gprs/sndcp/sndcp_private.h index 5630c97..07fbb2b 100644 --- a/include/osmocom/gprs/sndcp/sndcp_private.h +++ b/include/osmocom/gprs/sndcp/sndcp_private.h @@ -151,6 +151,9 @@ /* The NSAPI we shall use on top of LLC */ uint8_t nsapi; + /* Peak Throughput, Reliability Class, from QoS Profile TS 24.008 10.5.6.5 */ + uint8_t peak_throughput; + uint8_t reliability_class; /* Radio Priority (MS only, used by LLC/RLCMAC), TS 24.008 10.5.7.2 */ uint8_t radio_prio; diff --git a/src/sndcp/Makefile.am b/src/sndcp/Makefile.am index ca72ecb..f3ec7b5 100644 --- a/src/sndcp/Makefile.am +++ b/src/sndcp/Makefile.am @@ -37,6 +37,7 @@ $(NULL) libosmo_gprs_sndcp_la_LIBADD = \ + $(top_builddir)/src/common/libosmo-gprs-common.la \ $(LIBOSMOCORE_LIBS) \ $(LIBOSMOGSM_LIBS) \ -lm \ diff --git a/src/sndcp/sndcp.c b/src/sndcp/sndcp.c index 7e82b5d..88c4979 100644 --- a/src/sndcp/sndcp.c +++ b/src/sndcp/sndcp.c @@ -229,6 +229,8 @@ llc_prim_tx = osmo_gprs_llc_prim_alloc_ll_unitdata_req(sne->snme->tlli, sne->llc_sapi, data, len); OSMO_ASSERT(llc_prim_tx); + llc_prim_tx->ll.unitdata_req.qos_params.peak_throughput = sne->peak_throughput; + llc_prim_tx->ll.unitdata_req.qos_params.reliability_class = sne->reliability_class; llc_prim_tx->ll.unitdata_req.radio_prio = sne->radio_prio; rc = gprs_sndcp_prim_call_down_cb(llc_prim_tx); return rc; diff --git a/src/sndcp/sndcp_prim.c b/src/sndcp/sndcp_prim.c index 2e2139c..45d6a0f 100644 --- a/src/sndcp/sndcp_prim.c +++ b/src/sndcp/sndcp_prim.c @@ -31,6 +31,8 @@ #include <osmocom/gprs/sndcp/sndcp_prim.h> #include <osmocom/gprs/sndcp/sndcp_private.h> +#include "../common/qos.h" + #define SNDCP_MSGB_HEADROOM 0 const struct value_string osmo_gprs_sndcp_prim_sap_names[] = { @@ -635,6 +637,7 @@ uint8_t nsapi = sndcp_prim->snsm.activate_ind.nsapi; struct gprs_sndcp_mgmt_entity *snme; struct gprs_sndcp_entity *sne; + struct osmo_gprs_sm_qos_profile_decoded decoded; LOGSNDCP(LOGL_INFO, "SNSM-ACTIVATE.ind (TLLI=%08x, SAPI=%u, NSAPI=%u)\n", tlli, sapi, nsapi); @@ -661,6 +664,17 @@ if (g_sndcp_ctx->location != OSMO_GPRS_SNDCP_LOCATION_MS) return 0; + if (gprs_qos_parse_qos_profile(&decoded, + sndcp_prim->snsm.activate_ind.qos_profile, + sndcp_prim->snsm.activate_ind.qos_profile_len) < 0) { + LOGSNE(sne, LOGL_ERROR, "Failed parsing QoS Profile len=%u: %s\n", + sndcp_prim->snsm.activate_ind.qos_profile_len, + osmo_hexdump(sndcp_prim->snsm.activate_ind.qos_profile, + sndcp_prim->snsm.activate_ind.qos_profile_len)); + return -EINVAL; + } + sne->peak_throughput = decoded.qos_profile.data.peak_throughput; + sne->reliability_class = decoded.qos_profile.data.reliability_class; sne->radio_prio = sndcp_prim->snsm.activate_ind.radio_prio; /* TODO: when supporting and using LLC ABM mode, flow should go through diff --git a/tests/sndcp/sndcp_prim_test.c b/tests/sndcp/sndcp_prim_test.c index 9dd1b5e..defaeb7 100644 --- a/tests/sndcp/sndcp_prim_test.c +++ b/tests/sndcp/sndcp_prim_test.c @@ -124,6 +124,39 @@ 0x01, 0x05, 0x00, 0x06, 0x00, 0x07, 0x01, 0x07, 0x00, 0x08, 0x01, 0x08, 0x80, 0x00, 0x04, 0x12, 0x00, 0x40, 0x07 }; + +/* Quality Of Service - Negotiated QoS (taken from PDP Ctx Act msg) + 00.. .... = Spare bit(s): 0 + ..10 0... = Quality of Service Delay class: Delay class 4 (best effort) (4) + .... .011 = Reliability class: Unacknowledged GTP/LLC, Ack RLC, Protected data (3) + 0110 .... = Peak throughput: Up to 32 000 octet/s (6) + .... 0... = Spare bit(s): 0 + .... .010 = Precedence class: Normal priority (2) + 000. .... = Spare bit(s): 0 + ...1 1111 = Mean throughput: Best effort (31) + 011. .... = Traffic class: Interactive class (3) + ...1 0... = Delivery order: Without delivery order ('no') (2) + .... .010 = Delivery of erroneous SDUs: Erroneous SDUs are delivered('yes') (2) + Maximum SDU size: 1520 octets (153) + Maximum bitrate for uplink: 63 kbps (63) + Maximum bitrate for downlink: 63 kbps (63) + 0001 .... = Residual Bit Error Rate (BER): 5*10-2 (1) + .... 0001 = SDU error ratio: 1*10-2 (1) + 0100 00.. = Transfer delay: 200 ms (16) + .... ..11 = Traffic handling priority: Priority level 3 (3) + Guaranteed bitrate for uplink: 0 kbps (255) + Guaranteed bitrate for downlink: 0 kbps (255) + 000. .... = Spare bit(s): 0 + ...0 .... = Signalling indication: Not optimised for signalling traffic + .... 0000 = Source statistics description: unknown (0) + Maximum bitrate for downlink (extended): Use the value indicated by the Maximum bit rate for downlink (0) + Guaranteed bitrate for downlink (extended): Use the value indicated by the Guaranteed bit rate for downlink (0) +*/ +static const uint8_t qos_profile_ie_val[] = { + 0x23, 0x62, 0x1f, 0x72, 0x9, 0x3f, 0x3f, 0x11, + 0x43, 0xff, 0xff, 0x00, 0x00, 0x00 }; + + static void test_sndcp_prim_net(void) { struct osmo_gprs_sndcp_prim *sndcp_prim; @@ -211,6 +244,9 @@ * LL-ESTABLISH.Req in ABM mode if we supported it): */ sndcp_prim = osmo_gprs_sndcp_prim_alloc_snsm_activate_ind(tlli, nsapi, ll_sapi); OSMO_ASSERT(sndcp_prim); + sndcp_prim->snsm.activate_ind.radio_prio = 1; + sndcp_prim->snsm.activate_ind.qos_profile_len = sizeof(qos_profile_ie_val); + memcpy(sndcp_prim->snsm.activate_ind.qos_profile, qos_profile_ie_val, sizeof(qos_profile_ie_val)); rc = osmo_gprs_sndcp_prim_dispatch_snsm(sndcp_prim); OSMO_ASSERT(rc == 0); -- To view, visit https://gerrit.osmocom.org/c/libosmo-gprs/+/33971 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmo-gprs Gerrit-Branch: master Gerrit-Change-Id: I70e355ef27d24bdaf00e54f0e7126193f5bbf19f Gerrit-Change-Number: 33971 Gerrit-PatchSet: 1 Gerrit-Owner: pespin <pespin(a)sysmocom.de> Gerrit-MessageType: newchange
1 0
0 0
[L] Change in libosmo-gprs[master]: sm: Introduce APIs to enc/dec QoS Profile
by pespin 27 Jul '23

27 Jul '23
pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmo-gprs/+/33970 ) Change subject: sm: Introduce APIs to enc/dec QoS Profile ...................................................................... sm: Introduce APIs to enc/dec QoS Profile Ported from open5gs.git/lib/gtp/v1/types.{c,h} 5764f7267d16a8ea6aeedc6c227552575915def5, for which I was the author too. The ARP extra byte field at the start of the IE val which is introduced in the GTP variant is dropped when porting to SM, since it's not present there (and offsets/sizes are adjusted). The QoS code is moved is moved into a common/ directory where a new libosmo-gprs-common.la private static library is created. This is done in order to be able to resuse the QoS dec/enc code in several libraries since it's actually planned to use it in SNDCP and SM layers. The most natural place to add the APIs is SM, and that's where the public API to accees the enc/dec is provided, since the user app will have to use them in the SM SAP. However, the SNDCP will also have to decode the QoS recived by SM through the SNSM SAP, and we don't really want libosmo-gprs-sndcp depend on libosmo-gprs-sm. This way libosmo-gprs-sndcp will be able to use the private APIs directly in a follow-up commit. Change-Id: I6c0676e55bb1f0f424f41d8d04d4f5e5bf376f4f --- M configure.ac M include/osmocom/gprs/sm/Makefile.am M include/osmocom/gprs/sm/sm.h A include/osmocom/gprs/sm/sm_qos.h M src/Makefile.am A src/common/Makefile.am A src/common/qos.c A src/common/qos.h M src/sm/Makefile.am A src/sm/sm_qos.c 10 files changed, 484 insertions(+), 4 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmo-gprs refs/changes/70/33970/1 diff --git a/configure.ac b/configure.ac index 52b9d14..91fb36a 100644 --- a/configure.ac +++ b/configure.ac @@ -90,6 +90,7 @@ include/osmocom/gprs/sndcp/Makefile include/osmocom/gprs/sm/Makefile src/Makefile + src/common/Makefile src/csn1/Makefile src/gmm/Makefile src/llc/Makefile diff --git a/include/osmocom/gprs/sm/Makefile.am b/include/osmocom/gprs/sm/Makefile.am index 46a30cb..f6bede4 100644 --- a/include/osmocom/gprs/sm/Makefile.am +++ b/include/osmocom/gprs/sm/Makefile.am @@ -8,6 +8,7 @@ sm_HEADERS = \ sm.h \ sm_prim.h \ + sm_qos.h \ $(NULL) smdir = $(includedir)/osmocom/gprs/sm diff --git a/include/osmocom/gprs/sm/sm.h b/include/osmocom/gprs/sm/sm.h index 37f86bc..089faa1 100644 --- a/include/osmocom/gprs/sm/sm.h +++ b/include/osmocom/gprs/sm/sm.h @@ -5,6 +5,8 @@ #include <stdint.h> #include <stddef.h> +#include <osmocom/gprs/sm/sm_qos.h> + /* 3GPP TS 24.008 10.5.6.1 */ #define OSMO_GPRS_SM_APN_MAXLEN 100 @@ -14,9 +16,6 @@ /* 3GPP TS 24.008 10.5.6.3 Protocol configuration options */ #define OSMO_GPRS_SM_PCO_MAXLEN 253 -/* 3GPP TS 24.008 10.5.6.5 Quality of service */ -#define OSMO_GPRS_SM_QOS_MAXLEN 22 - /* 3GPP TS 24.008 10.5.6.21 NBIFOM container (T=1,L=1,V=255 => 257) */ #define OSMO_GPRS_SM_MBIFORM_MAXLEN 255 diff --git a/include/osmocom/gprs/sm/sm_qos.h b/include/osmocom/gprs/sm/sm_qos.h new file mode 100644 index 0000000..373b932 --- /dev/null +++ b/include/osmocom/gprs/sm/sm_qos.h @@ -0,0 +1,77 @@ +/* GPRS QoS definitions from 3GPP TS 24.008 sec 10.5.6.5 */ +#pragma once + +#include <stdint.h> +#include <stddef.h> +#include <stdbool.h> + +/* 3GPP TS 24.008 10.5.6.5 Quality of service */ +#define OSMO_GPRS_SM_QOS_MAXLEN 22 + +/* TS 24.008 10.5.6.5 Quality of service */ +struct osmo_gprs_sm_qos_profile_data_extended_bit_rate { + uint8_t max_bit_rate_uplink; + uint8_t guaranteed_bit_rate_uplink; + uint8_t max_bit_rate_downlink; + uint8_t guaranteed_bit_rate_downlink; +} __attribute__ ((packed)); + +struct osmo_gprs_sm_qos_profile_data { + uint8_t reliability_class:3, + delay_class:2, + spare1:3; + uint8_t precedence_class:3, + spare2:1, + peak_throughput:4; + uint8_t mean_throughput:5, + spare3:3; + uint8_t delivery_erroneous_sdu:3, + delivery_order:2, + traffic_class:3; + uint8_t max_sdu_size; + uint8_t max_bit_rate_uplink; + uint8_t max_bit_rate_downlink; + uint8_t sdu_error_ratio:4, + residual_ber:4; + uint8_t traffic_handling_priority:2, + transfer_delay:6; + uint8_t guaranteed_bit_rate_uplink; + uint8_t guaranteed_bit_rate_downlink; + uint8_t source_statistics_descriptor:4, + signalling_indication:1, + spare4:3; + struct osmo_gprs_sm_qos_profile_data_extended_bit_rate extended; + struct osmo_gprs_sm_qos_profile_data_extended_bit_rate extended2; +} __attribute__ ((packed)); + +struct osmo_gprs_sm_qos_profile { + struct osmo_gprs_sm_qos_profile_data data; +} __attribute__ ((packed)); +struct osmo_gprs_sm_qos_profile_decoded { + struct osmo_gprs_sm_qos_profile qos_profile; + /* Filled in by the decoder function: */ + bool data_octet6_to_13_present; /* from traffic_class to guaranteed_bit_rate_downlink */ + bool data_octet14_present; /* byte containing signalling_indication */ + bool bit_rate_downlink_extended_present; + bool bit_rate_uplink_extended_present; + bool bit_rate_downlink_extended2_present; + bool bit_rate_uplink_extended2_present; + uint16_t dec_transfer_delay; + uint32_t dec_mbr_kbps_dl; /* decoded MBR in kbps */ + uint32_t dec_mbr_kbps_ul; /* decoded MBR in kbps */ + uint32_t dec_gbr_kbps_dl; /* decoded GBR in kbps */ + uint32_t dec_gbr_kbps_ul; /* decoded GBR in kbps */ +} __attribute__ ((packed)); + +#define OSMO_GPRS_SM_QOS_TRAFFIC_CLASS_SUBSCRIBED 0 +#define OSMO_GPRS_SM_QOS_TRAFFIC_CLASS_CONVERSATIONAL 1 +#define OSMO_GPRS_SM_QOS_TRAFFIC_CLASS_STREAMING 2 +#define OSMO_GPRS_SM_QOS_TRAFFIC_CLASS_INTERACTIVE 3 +#define OSMO_GPRS_SM_QOS_TRAFFIC_CLASS_BACKGROUND 4 + +#define OSMO_GPRS_SM_QOS_SRC_STATS_DESC_UNKNOWN 0 +#define OSMO_GPRS_SM_QOS_SRC_STATS_DESC_SPEECH 1 + +int16_t osmo_gprs_sm_qos_parse_qos_profile( + struct osmo_gprs_sm_qos_profile_decoded *decoded, const uint8_t *data, size_t data_len); +int16_t osmo_gprs_sm_qos_build_qos_profile(const struct osmo_gprs_sm_qos_profile_decoded *decoded, void *data, int data_len); diff --git a/src/Makefile.am b/src/Makefile.am index 69ce5a0..90d901f 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -1,4 +1,5 @@ SUBDIRS = \ + common \ csn1 \ llc \ rlcmac \ diff --git a/src/common/Makefile.am b/src/common/Makefile.am new file mode 100644 index 0000000..ae7c2bd --- /dev/null +++ b/src/common/Makefile.am @@ -0,0 +1,22 @@ +AM_CPPFLAGS = \ + $(all_includes) \ + -I$(top_srcdir)/include \ + $(NULL) + +AM_CFLAGS = \ + -Wall \ + $(LIBOSMOGSM_CFLAGS) \ + $(LIBOSMOCORE_CFLAGS) \ + $(NULL) + +noinst_LTLIBRARIES = \ + libosmo-gprs-common.la \ + $(NULL) + +libosmo_gprs_common_la_SOURCES = \ + qos.c \ + $(NULL) + +noinst_HEADERS = \ + qos.h \ + $(NULL) diff --git a/src/common/qos.c b/src/common/qos.c new file mode 100644 index 0000000..3de532f --- /dev/null +++ b/src/common/qos.c @@ -0,0 +1,303 @@ +/* GPRS QoS definitions from 3GPP TS 24.008 sec 10.5.6.5 */ +/* + * (C) 2023 by sysmocom - s.f.m.c. GmbH <info(a)sysmocom.de> + * + * All Rights Reserved + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as published by + * the Free Software Foundation; either version 3 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 Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. + * + */ + +#include <osmocom/core/utils.h> +#include <osmocom/core/logging.h> +#include "qos.h" + +#define GPRS_QOS_FALLTHROUGH __attribute__ ((fallthrough)) + +static uint32_t dec_mbr_kbps(uint8_t mbr_byte, const uint8_t *extended_mbr_byte, const uint8_t *extended2_mbr_byte) +{ + uint8_t mbr, embr1, embr2; + mbr = mbr_byte; + embr1 = extended_mbr_byte ? *extended_mbr_byte : 0; + embr2 = extended2_mbr_byte ? *extended2_mbr_byte : 0; + + if (mbr == 0) + return 0; + if (mbr == 0xff) + return UINT32_MAX; + if (mbr == 0xfe) { /* Check extended field */ + if (extended_mbr_byte == NULL || embr1 == 0) + return 8640; + if (embr1 == 0xfa) { /* Check extended2 field */ + if (extended2_mbr_byte == NULL || embr2 == 0) + return 256 * 1000; + if (embr2 == 0xf6) + return 10 * 1000 * 1000; /* TODO: check "extended quality of service" IE */ + if (embr2 >= 0xa2 && embr2 <= 0xf6) + return (1500 + (embr2 - (0xa2 - 1)) * 100) * 1000; + if (embr2 >= 0x3e && embr2 <= 0xa1) + return (500 + (embr2 - (0x3e - 1)) * 10) * 1000; + return (256 + embr2 * 4) * 1000; + } + if (embr1 >= 0xbb && embr1 <= 0xfa) + return (128 + (embr1 - (0xbb - 1)) * 2) * 1000; + if (embr1 >= 0x4b && embr1 <= 0xba) + return (16 + (embr1 - (0x4b - 1)) * 1) * 1000; + return 8600 + embr1 * 100; + } + if (mbr & 0x80) { + mbr &= ~0x80; + return 576 + mbr_byte * 64; + } + if (mbr & 0x40) { + mbr &= ~0x40; + return 64 + mbr * 8; + } + return mbr; +} + +static uint16_t dec_transfer_delay_ms(uint8_t transfer_delay_byte) +{ + transfer_delay_byte &= 0x3f; /* 6 bits */ + if (transfer_delay_byte <= 0x0f) + return transfer_delay_byte; + if (transfer_delay_byte <= 0x1f) + return 200 + (transfer_delay_byte - 0x10) * 50; + return 1000 + (transfer_delay_byte - 0x20) * 100; +} + +/* TS 29.060 7.7.34 Quality of Service (QoS) Profile */ +/* TS 24.008 10.5.6.5 Quality of service */ +int16_t gprs_qos_parse_qos_profile( + struct osmo_gprs_sm_qos_profile_decoded *decoded, const uint8_t *data, size_t data_len) +{ + struct osmo_gprs_sm_qos_profile *source = (struct osmo_gprs_sm_qos_profile *)data; + + OSMO_ASSERT(decoded); + OSMO_ASSERT(data); + + memset(decoded, 0, sizeof(struct osmo_gprs_sm_qos_profile_decoded)); + switch (data_len) { + case 20: /* octet 3 + octet 3-22 */ + decoded->bit_rate_uplink_extended2_present = true; + GPRS_QOS_FALLTHROUGH; + case 18: /* octet 3 + octet 3-20 */ + decoded->bit_rate_downlink_extended2_present = true; + GPRS_QOS_FALLTHROUGH; + case 16: /* octet 3 + octet 3-18 */ + decoded->bit_rate_uplink_extended_present = true; + GPRS_QOS_FALLTHROUGH; + case 14: /* octet 3 + octet 3-16 */ + decoded->bit_rate_downlink_extended_present = true; + GPRS_QOS_FALLTHROUGH; + case 12: /* octet 3-14 */ + decoded->data_octet14_present = true; + GPRS_QOS_FALLTHROUGH; + case 11: /* octet 3-13 */ + decoded->data_octet6_to_13_present = true; + GPRS_QOS_FALLTHROUGH; + case 3: /* octet 3 + octet 4 + octet 5 */ + break; + default: + LOGP(DLGLOBAL, LOGL_ERROR, "Qos Profile wrong length %zu\n", data_len); + return -1; + } + memcpy(&decoded->qos_profile, source, data_len); + + /* Calculate resulting MBRs in kbps: */ + if (decoded->data_octet6_to_13_present) { + decoded->dec_transfer_delay = dec_transfer_delay_ms(source->data.transfer_delay); + decoded->dec_mbr_kbps_dl = dec_mbr_kbps(source->data.max_bit_rate_downlink, + decoded->bit_rate_downlink_extended_present ? + &source->data.extended.max_bit_rate_downlink : NULL, + decoded->bit_rate_downlink_extended2_present ? + &source->data.extended2.max_bit_rate_downlink : NULL); + decoded->dec_mbr_kbps_ul = dec_mbr_kbps(source->data.max_bit_rate_uplink, + decoded->bit_rate_uplink_extended_present ? + &source->data.extended.max_bit_rate_uplink : NULL, + decoded->bit_rate_uplink_extended2_present ? + &source->data.extended2.max_bit_rate_uplink : NULL); + /* GBR is encoded the same way as MBR: */ + decoded->dec_gbr_kbps_dl = dec_mbr_kbps(source->data.guaranteed_bit_rate_downlink, + decoded->bit_rate_downlink_extended_present ? + &source->data.extended.guaranteed_bit_rate_downlink : NULL, + decoded->bit_rate_downlink_extended2_present ? + &source->data.extended2.guaranteed_bit_rate_downlink : NULL); + decoded->dec_gbr_kbps_ul = dec_mbr_kbps(source->data.guaranteed_bit_rate_uplink, + decoded->bit_rate_uplink_extended_present ? + &source->data.extended.guaranteed_bit_rate_uplink : NULL, + decoded->bit_rate_uplink_extended2_present ? + &source->data.extended2.guaranteed_bit_rate_uplink : NULL); + } + + return data_len; +} + +static uint8_t enc_transfer_delay_ms(uint16_t transfer_delay_ms) +{ + if (transfer_delay_ms >= 4000) + return 0x3e; + if (transfer_delay_ms >= 1000) { + transfer_delay_ms -= 1000; + return 0x20 + (transfer_delay_ms / 100); + } + if (transfer_delay_ms >= 200) { + transfer_delay_ms -= 200; + return 0x10 + (transfer_delay_ms / 50); + } + if (transfer_delay_ms > 150) + transfer_delay_ms = 150; + if (transfer_delay_ms >= 10) + return transfer_delay_ms / 10; + return 1; /* 0 is "Reserved" Network->MS */ +} + +#define CHECK_EXT1 0xfe +#define CHECK_EXT2 0xfa +static uint32_t enc_mbr_kbps(uint32_t mbr_kbps, uint8_t *mbr_byte, uint8_t *extended_mbr_byte, uint8_t *extended2_mbr_byte) +{ + /* up to EXT2 byte: */ + if (mbr_kbps > 10*1000*1000) { + *extended2_mbr_byte = 0xf6; /* TODO: need to set the real value somewhere else */ + goto ret_check_ext2; + } + if (mbr_kbps >= 1600*1000) { + mbr_kbps -= 1500*1000; + *extended2_mbr_byte = 0xa1 + mbr_kbps/(100*1000); + goto ret_check_ext2; + } + if (mbr_kbps >= 510*1000) { + mbr_kbps -= 500*1000; + *extended2_mbr_byte = 0x2d + mbr_kbps/(10*1000); + goto ret_check_ext2; + } + if (mbr_kbps >= 260*1000) { + mbr_kbps -= 256*1000; + *extended2_mbr_byte = 0x00 + mbr_kbps/(4*1000); + goto ret_check_ext2; + } + + /* up to EXT1 byte: */ + if (mbr_kbps >= 130*1000) { + mbr_kbps -= 128*1000; + *extended_mbr_byte = 0xba + mbr_kbps/(2*1000); + goto ret_check_ext1; + } + if (mbr_kbps >= 17*1000) { + mbr_kbps -= 16*1000; + *extended_mbr_byte = 0x4a + mbr_kbps/(1*1000); + goto ret_check_ext1; + } + if (mbr_kbps >= 8700) { + mbr_kbps -= 8600; + *extended_mbr_byte = 0x00 + mbr_kbps/(100); + goto ret_check_ext1; + } + + /* Only MBR byte: */ + if (mbr_kbps >= 576) { + mbr_kbps -= 576; + *mbr_byte = 0x80 + mbr_kbps/(64); + goto ret_mbr; + } + if (mbr_kbps >= 64) { + mbr_kbps -= 64; + *mbr_byte = 0x40 + mbr_kbps/(8); + goto ret_mbr; + } + if (mbr_kbps > 0) { + *mbr_byte = mbr_kbps; + goto ret_mbr; + } + /* if (mbr_kpbs == 0) */ + *mbr_byte = 0xff; + goto ret_mbr; + +ret_check_ext2: + *extended_mbr_byte = CHECK_EXT2; + *mbr_byte = CHECK_EXT1; + return 2; +ret_check_ext1: + *extended2_mbr_byte = 0; + *mbr_byte = CHECK_EXT1; + return 1; +ret_mbr: + *extended2_mbr_byte = 0; + *extended_mbr_byte = 0; + return 0; +} + +int16_t gprs_qos_build_qos_profile(const struct osmo_gprs_sm_qos_profile_decoded *decoded, void *data, int data_len) +{ + struct osmo_gprs_sm_qos_profile *target; + int mbr_extended_dl, mbr_extended_ul; + int gbr_extended_dl, gbr_extended_ul; + int extended_dl, extended_ul; + unsigned int enc_len = 0; + + OSMO_ASSERT(decoded); + OSMO_ASSERT(data); + OSMO_ASSERT((size_t)data_len >= sizeof(struct osmo_gprs_sm_qos_profile)); + + target = (struct osmo_gprs_sm_qos_profile *)data; + + /* First, copy the encoded buffer as it is: */ + memcpy(target, &decoded->qos_profile, sizeof(struct osmo_gprs_sm_qos_profile)); + + /* Avoid setting Traffic Handling to 0=Reserved even if ignored based on + * Interactive/Background Traffic Class: */ + if (target->data.traffic_handling_priority == 0) + target->data.traffic_handling_priority = 1; + + /* Then, encode in the target position the decoded-provided fields: */ + if (decoded->data_octet6_to_13_present) + target->data.transfer_delay = enc_transfer_delay_ms(decoded->dec_transfer_delay); + + mbr_extended_dl = enc_mbr_kbps(decoded->dec_mbr_kbps_dl, + &target->data.max_bit_rate_downlink, + &target->data.extended.max_bit_rate_downlink, + &target->data.extended2.max_bit_rate_downlink); + mbr_extended_ul = enc_mbr_kbps(decoded->dec_mbr_kbps_ul, + &target->data.max_bit_rate_uplink, + &target->data.extended.max_bit_rate_uplink, + &target->data.extended2.max_bit_rate_uplink); + /* GBR is encoded the same way as MBR: */ + gbr_extended_dl = enc_mbr_kbps(decoded->dec_gbr_kbps_dl, + &target->data.guaranteed_bit_rate_downlink, + &target->data.extended.guaranteed_bit_rate_downlink, + &target->data.extended2.guaranteed_bit_rate_downlink); + gbr_extended_ul = enc_mbr_kbps(decoded->dec_gbr_kbps_ul, + &target->data.guaranteed_bit_rate_uplink, + &target->data.extended.guaranteed_bit_rate_uplink, + &target->data.extended2.guaranteed_bit_rate_uplink); + extended_dl = OSMO_MAX(mbr_extended_dl, gbr_extended_dl); + extended_ul = OSMO_MAX(mbr_extended_ul, gbr_extended_ul); + + /* Finally, set len based on the required octets to encode the fields: */ + if (extended_ul == 2) + enc_len = 20; + else if (extended_dl == 2) + enc_len = 18; + else if (extended_ul == 1) + enc_len = 16; + else if (extended_dl == 1) + enc_len = 14; + else if (decoded->data_octet14_present) + enc_len = 12; + else if (decoded->data_octet6_to_13_present) + enc_len = 11; + else + enc_len = 5; + return enc_len; +} diff --git a/src/common/qos.h b/src/common/qos.h new file mode 100644 index 0000000..3ddbacc --- /dev/null +++ b/src/common/qos.h @@ -0,0 +1,12 @@ +/* GPRS QoS definitions from 3GPP TS 24.008 sec 10.5.6.5 */ +#pragma once + +#include <stdint.h> +#include <stddef.h> +#include <stdbool.h> + +#include <osmocom/gprs/sm/sm_qos.h> + +int16_t gprs_qos_parse_qos_profile( + struct osmo_gprs_sm_qos_profile_decoded *decoded, const uint8_t *data, size_t data_len); +int16_t gprs_qos_build_qos_profile(const struct osmo_gprs_sm_qos_profile_decoded *decoded, void *data, int data_len); diff --git a/src/sm/Makefile.am b/src/sm/Makefile.am index ecd8ba3..83b19de 100644 --- a/src/sm/Makefile.am +++ b/src/sm/Makefile.am @@ -23,6 +23,7 @@ sm_ms_fsm.c \ sm_pdu.c \ sm_prim.c \ + sm_qos.c \ misc.c \ $(NULL) @@ -35,7 +36,8 @@ libosmo_gprs_sm_la_LIBADD = \ $(top_builddir)/src/gmm/libosmo-gprs-gmm.la \ $(top_builddir)/src/sndcp/libosmo-gprs-sndcp.la \ - $(LIBOSMOCORE_LIBS) \ + $(top_builddir)/src/common/libosmo-gprs-common.la \ $(LIBOSMOGSM_LIBS) \ + $(LIBOSMOCORE_LIBS) \ -lm \ $(NULL) diff --git a/src/sm/sm_qos.c b/src/sm/sm_qos.c new file mode 100644 index 0000000..504c2a2 --- /dev/null +++ b/src/sm/sm_qos.c @@ -0,0 +1,34 @@ +/* GPRS QoS definitions from 3GPP TS 24.008 sec 10.5.6.5 */ +/* + * (C) 2023 by sysmocom - s.f.m.c. GmbH <info(a)sysmocom.de> + * + * All Rights Reserved + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as published by + * the Free Software Foundation; either version 3 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 Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. + * + */ + +#include <osmocom/gprs/sm/sm_qos.h> +#include "../common/qos.h" + +int16_t osmo_gprs_sm_qos_parse_qos_profile( + struct osmo_gprs_sm_qos_profile_decoded *decoded, const uint8_t *data, size_t data_len) +{ + return gprs_qos_parse_qos_profile(decoded, data, data_len); +} + +int16_t osmo_gprs_sm_qos_build_qos_profile(const struct osmo_gprs_sm_qos_profile_decoded *decoded, void *data, int data_len) +{ + return gprs_qos_build_qos_profile(decoded, data, data_len); +} -- To view, visit https://gerrit.osmocom.org/c/libosmo-gprs/+/33970 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmo-gprs Gerrit-Branch: master Gerrit-Change-Id: I6c0676e55bb1f0f424f41d8d04d4f5e5bf376f4f Gerrit-Change-Number: 33970 Gerrit-PatchSet: 1 Gerrit-Owner: pespin <pespin(a)sysmocom.de> Gerrit-MessageType: newchange
1 0
0 0
[M] Change in osmo-trx[master]: ms: restructure the va code to add rach support
by Hoernchen 27 Jul '23

27 Jul '23
Attention is currently required from: Hoernchen, pespin. Hello Jenkins Builder, laforge, pespin, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-trx/+/33944 to look at the new patch set (#6). Change subject: ms: restructure the va code to add rach support ...................................................................... ms: restructure the va code to add rach support This commit adds support for rach bursts to the viterbi equalizer, which is currently only being used by the ms side, so the equalizer can be used by the osmo-trx network side, too. The difference is that rach bursts are shorter than any other burst type (due to unknown TA) and start with diffrent tail bits. Change-Id: I4a5cedc8c9a3289c75ce7b914eac286e601ebed0 --- M Transceiver52M/grgsm_vitac/constants.h M Transceiver52M/grgsm_vitac/grgsm_vitac.cpp M Transceiver52M/grgsm_vitac/grgsm_vitac.h M Transceiver52M/ms/ms_rx_lower.cpp M Transceiver52M/ms/ms_upper.cpp 5 files changed, 131 insertions(+), 96 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-trx refs/changes/44/33944/6 -- To view, visit https://gerrit.osmocom.org/c/osmo-trx/+/33944 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-trx Gerrit-Branch: master Gerrit-Change-Id: I4a5cedc8c9a3289c75ce7b914eac286e601ebed0 Gerrit-Change-Number: 33944 Gerrit-PatchSet: 6 Gerrit-Owner: Hoernchen <ewild(a)sysmocom.de> Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge <laforge(a)osmocom.org> Gerrit-Reviewer: pespin <pespin(a)sysmocom.de> Gerrit-Attention: Hoernchen <ewild(a)sysmocom.de> Gerrit-Attention: pespin <pespin(a)sysmocom.de> Gerrit-MessageType: newpatchset
1 0
0 0
[M] Change in osmo-trx[master]: ms: restructure the va code to add rach support
by Hoernchen 27 Jul '23

27 Jul '23
Attention is currently required from: Hoernchen, pespin. Hello Jenkins Builder, laforge, pespin, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-trx/+/33944 to look at the new patch set (#5). Change subject: ms: restructure the va code to add rach support ...................................................................... ms: restructure the va code to add rach support This commit adds support for rach bursts to the viterbi equalizer, which is currently only being used by the ms side, so the equalizer can be used by the osmo-trx network side, too. The difference is that rach bursts are shorter than any other burst type (due to unknown TA) and start with diffrent tail bits. Change-Id: I4a5cedc8c9a3289c75ce7b914eac286e601ebed0 --- M Transceiver52M/grgsm_vitac/constants.h M Transceiver52M/grgsm_vitac/grgsm_vitac.cpp M Transceiver52M/grgsm_vitac/grgsm_vitac.h M Transceiver52M/ms/ms_rx_lower.cpp M Transceiver52M/ms/ms_upper.cpp 5 files changed, 127 insertions(+), 96 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-trx refs/changes/44/33944/5 -- To view, visit https://gerrit.osmocom.org/c/osmo-trx/+/33944 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-trx Gerrit-Branch: master Gerrit-Change-Id: I4a5cedc8c9a3289c75ce7b914eac286e601ebed0 Gerrit-Change-Number: 33944 Gerrit-PatchSet: 5 Gerrit-Owner: Hoernchen <ewild(a)sysmocom.de> Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge <laforge(a)osmocom.org> Gerrit-Reviewer: pespin <pespin(a)sysmocom.de> Gerrit-Attention: Hoernchen <ewild(a)sysmocom.de> Gerrit-Attention: pespin <pespin(a)sysmocom.de> Gerrit-MessageType: newpatchset
1 0
0 0
[S] Change in osmo-trx[master]: ms: drop the tx burst padding
by Hoernchen 27 Jul '23

27 Jul '23
Attention is currently required from: laforge, fixeria. Hoernchen has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-trx/+/33926 ) Change subject: ms: drop the tx burst padding ...................................................................... Patch Set 3: (1 comment) Patchset: PS3: > not really the nicest way of a commit log message, but well. […] well it has been useless for quite some time but there was no reason to change it because everything was working and the proper time to touch it is while working on burst related code, but I don't feel like writing a long story for a one character change (and a two line fix thanks to werror for unused vars which was already annoying enough). -- To view, visit https://gerrit.osmocom.org/c/osmo-trx/+/33926 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-trx Gerrit-Branch: master Gerrit-Change-Id: Ied5c3ab5dde975e11b0ef6d9cbc86be19173c4e8 Gerrit-Change-Number: 33926 Gerrit-PatchSet: 3 Gerrit-Owner: Hoernchen <ewild(a)sysmocom.de> Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria <vyanitskiy(a)sysmocom.de> Gerrit-Reviewer: laforge <laforge(a)osmocom.org> Gerrit-CC: pespin <pespin(a)sysmocom.de> Gerrit-Attention: laforge <laforge(a)osmocom.org> Gerrit-Attention: fixeria <vyanitskiy(a)sysmocom.de> Gerrit-Comment-Date: Thu, 27 Jul 2023 14:50:24 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Comment-In-Reply-To: laforge <laforge(a)osmocom.org> Gerrit-MessageType: comment
1 0
0 0
[S] Change in libosmo-gprs[master]: sm: Forward RadioPrio & QoS in SNSM-Activate.ind
by laforge 27 Jul '23

27 Jul '23
Attention is currently required from: pespin. laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmo-gprs/+/33956 ) Change subject: sm: Forward RadioPrio & QoS in SNSM-Activate.ind ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/libosmo-gprs/+/33956 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmo-gprs Gerrit-Branch: master Gerrit-Change-Id: Ia8226f6e687f86b2502b27f9979dce13cf751c01 Gerrit-Change-Number: 33956 Gerrit-PatchSet: 1 Gerrit-Owner: pespin <pespin(a)sysmocom.de> Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge <laforge(a)osmocom.org> Gerrit-Attention: pespin <pespin(a)sysmocom.de> Gerrit-Comment-Date: Thu, 27 Jul 2023 14:35:24 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment
1 0
0 0
[S] Change in libosmo-gprs[master]: cosmetic: sm: Fix wrong reference in comment
by laforge 27 Jul '23

27 Jul '23
Attention is currently required from: pespin. laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmo-gprs/+/33955 ) Change subject: cosmetic: sm: Fix wrong reference in comment ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/libosmo-gprs/+/33955 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmo-gprs Gerrit-Branch: master Gerrit-Change-Id: I8828e0019f6446c3a17d09e8483573bf752c159f Gerrit-Change-Number: 33955 Gerrit-PatchSet: 1 Gerrit-Owner: pespin <pespin(a)sysmocom.de> Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge <laforge(a)osmocom.org> Gerrit-Attention: pespin <pespin(a)sysmocom.de> Gerrit-Comment-Date: Thu, 27 Jul 2023 14:35:06 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment
1 0
0 0
  • ← Newer
  • 1
  • ...
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • ...
  • 306
  • Older →

HyperKitty Powered by HyperKitty version 1.3.12.