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

March 2023

  • 1 participants
  • 3642 discussions
[S] Change in osmo-bts[master]: Include constants for cross component defaults (NSE timing)
by arehbein 13 Mar '23

13 Mar '23
arehbein has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bts/+/31884 ) Change subject: Include constants for cross component defaults (NSE timing) ...................................................................... Include constants for cross component defaults (NSE timing) Required change (libosmocore): I51d1fd8b596523ae2ac8fb6a186ce7a702334c27 Related: OS#5335 Change-Id: I7728df6e2ed10aa27cc06edff42aefc42ea25f6f --- M src/common/bts.c 1 file changed, 22 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/84/31884/1 diff --git a/src/common/bts.c b/src/common/bts.c index f1ece5a..e05f756 100644 --- a/src/common/bts.c +++ b/src/common/bts.c @@ -149,7 +149,16 @@ {} }; -static const uint8_t bts_nse_timer_default[] = { 3, 3, 3, 3, 30, 3, 10 }; +static const uint8_t bts_nse_timer_default[] = { + NM_PAR_TNS_BLOCK_DEFAULT, + NM_PAR_TNS_BLOCK_RETRIES_DEFAULT, + NM_PAR_TNS_RESET_DEFAULT, + NM_PAR_TNS_RESET_RETRIES_DEFAULT, + NM_PAR_TNS_TEST_DEFAULT, + NM_PAR_TNS_ALIVE_RETRIES_DEFAULT, + NM_PAR_TSNS_PROV_DEFAULT +}; + static const uint8_t bts_cell_timer_default[] = { 3, 3, 3, 3, 3, 10, 3, 10, 3, 10, 3 }; static const struct gprs_rlc_cfg rlc_cfg_default = { -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/31884 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I7728df6e2ed10aa27cc06edff42aefc42ea25f6f Gerrit-Change-Number: 31884 Gerrit-PatchSet: 1 Gerrit-Owner: arehbein <arehbein(a)sysmocom.de> Gerrit-MessageType: newchange
1 0
0 0
[S] Change in osmo-bsc[master]: Include constants for cross component defaults (NSE timing)
by arehbein 13 Mar '23

13 Mar '23
arehbein has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bsc/+/31881 ) Change subject: Include constants for cross component defaults (NSE timing) ...................................................................... Include constants for cross component defaults (NSE timing) Required change (libosmocore): I51d1fd8b596523ae2ac8fb6a186ce7a702334c27 Related: OS#5335 Change-Id: I2c384995d1b879254826d24513ab73d74dc8c2cc --- M src/osmo-bsc/bts_sm.c M src/osmo-bsc/net_init.c 2 files changed, 24 insertions(+), 11 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/81/31881/1 diff --git a/src/osmo-bsc/bts_sm.c b/src/osmo-bsc/bts_sm.c index d6cbac6..269d7c5 100644 --- a/src/osmo-bsc/bts_sm.c +++ b/src/osmo-bsc/bts_sm.c @@ -19,6 +19,7 @@ */ #include <osmocom/gsm/abis_nm.h> +#include <osmocom/gsm/protocol/gsm_12_21.h> #include <osmocom/bsc/gsm_data.h> #include <osmocom/bsc/bts.h> @@ -113,7 +114,7 @@ GSM_BTS_TDEF_ID_TNS_TEST_NEG33); /* Communicating TNS Alive/having it configurable for backwards compatibility * (3GPP TS 48.016 fixes its value at 3, see sect. 11, Table 11.1) */ - nse_timers[PCU_IF_TNS_ALIVE_OFFSET] = 3; + nse_timers[PCU_IF_TNS_ALIVE_OFFSET] = NM_PAR_TNS_ALIVE; SET_TIMER_DEFAULT_SAFE(nse_timers[PCU_IF_TNS_ALIVE_RETRIES_OFFSET], tdefs, GSM_BTS_TDEF_ID_TNS_ALIVE_RETRIES_NEG34); SET_TIMER_DEFAULT_SAFE(nse_timers[PCU_IF_TSNS_PROV_OFFSET], tdefs, diff --git a/src/osmo-bsc/net_init.c b/src/osmo-bsc/net_init.c index ef6e029..2e69a8e 100644 --- a/src/osmo-bsc/net_init.c +++ b/src/osmo-bsc/net_init.c @@ -94,19 +94,19 @@ .unit = OSMO_TDEF_MS, .max_val = 500 * 10 }, { .T = GSM_BTS_TDEF_ID_DL_TBF_EXT_NEG28, .default_val = NM_PAR_DL_TBF_EXT_DEFAULT_MSEC, .desc = "Extended downlink TBF", .unit = OSMO_TDEF_MS, .max_val = 500 * 10 }, - { .T = GSM_BTS_TDEF_ID_TNS_BLOCK_NEG29, .default_val = 3, .min_val = 1, .max_val = 120, + { .T = GSM_BTS_TDEF_ID_TNS_BLOCK_NEG29, .default_val = NM_PAR_TNS_BLOCK_DEFAULT, .min_val = 1, .max_val = 120, .desc = "Tns-block: Guards the blocking and unblocking procedures" }, - { .T = GSM_BTS_TDEF_ID_TNS_BLOCK_RETRIES_NEG30, .default_val = 3, .min_val = 0, .max_val = UINT8_MAX, - .desc = "NS-BLOCK-RETRIES: Blocking procedure retries", .unit = OSMO_TDEF_CUSTOM }, - { .T = GSM_BTS_TDEF_ID_TNS_RESET_NEG31, .default_val = 3, .min_val = 1, .max_val = 120, + { .T = GSM_BTS_TDEF_ID_TNS_BLOCK_RETRIES_NEG30, .default_val = NM_PAR_TNS_BLOCK_RETRIES_DEFAULT, .min_val = 0, + .max_val = UINT8_MAX, .desc = "NS-BLOCK-RETRIES: Blocking procedure retries", .unit = OSMO_TDEF_CUSTOM }, + { .T = GSM_BTS_TDEF_ID_TNS_RESET_NEG31, .default_val = NM_PAR_TNS_RESET_DEFAULT, .min_val = 1, .max_val = 120, .desc = "Tns-reset: Guards the reset procedure" }, - { .T = GSM_BTS_TDEF_ID_TNS_RESET_RETRIES_NEG32, .default_val = 3, .min_val = 0, .max_val = UINT8_MAX, - .desc = "Reset procedure retries", .unit = OSMO_TDEF_CUSTOM }, - { .T = GSM_BTS_TDEF_ID_TNS_TEST_NEG33, .default_val = 30, .min_val = 1, .max_val = 60, + { .T = GSM_BTS_TDEF_ID_TNS_RESET_RETRIES_NEG32, .default_val = NM_PAR_TNS_RESET_RETRIES_DEFAULT, .min_val = 0, + .max_val = UINT8_MAX, .desc = "Reset procedure retries", .unit = OSMO_TDEF_CUSTOM }, + { .T = GSM_BTS_TDEF_ID_TNS_TEST_NEG33, .default_val = NM_PAR_TNS_TEST_DEFAULT, .min_val = 1, .max_val = 60, .desc = "Tns-test: Periodicity of the NS-VC test procedure" }, - { .T = GSM_BTS_TDEF_ID_TNS_ALIVE_RETRIES_NEG34, .default_val = 10, .min_val = 0, .max_val = UINT8_MAX, - .desc = "NS-ALIVE-RETRIES: Retries for the the NS-VC test procedure", .unit = OSMO_TDEF_CUSTOM }, - { .T = GSM_BTS_TDEF_ID_TSNS_PROV_NEG_35, .default_val = 3, .min_val = 1, .max_val = 10, + { .T = GSM_BTS_TDEF_ID_TNS_ALIVE_RETRIES_NEG34, .default_val = NM_PAR_TNS_ALIVE_RETRIES_DEFAULT, .min_val = 0, + .max_val = UINT8_MAX, .desc = "NS-ALIVE-RETRIES: Retries for the the NS-VC test procedure", .unit = OSMO_TDEF_CUSTOM }, + { .T = GSM_BTS_TDEF_ID_TSNS_PROV_NEG_35, .default_val = NM_PAR_TSNS_PROV_DEFAULT, .min_val = 1, .max_val = 10, .desc = "Tsns-prov: Guards the SNS procedures" }, { .T = -3105, .default_val = GSM_NY1_DEFAULT, .unit = OSMO_TDEF_CUSTOM, .desc = "Ny1: Maximum number of Physical Information (re)transmissions" }, -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/31881 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I2c384995d1b879254826d24513ab73d74dc8c2cc Gerrit-Change-Number: 31881 Gerrit-PatchSet: 1 Gerrit-Owner: arehbein <arehbein(a)sysmocom.de> Gerrit-MessageType: newchange
1 0
0 0
[M] Change in osmo-bsc[master]: Make BSSGP timers configurable
by arehbein 13 Mar '23

13 Mar '23
arehbein has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bsc/+/31882 ) Change subject: Make BSSGP timers configurable ...................................................................... Make BSSGP timers configurable Required change (libosmocore): I1ec2e52ad7fa625c08fe9df04d4a4f5323bf609c Related: OS#5335 Change-Id: Id4779f033b5eb1742462d4efc28a0398645acfe6 --- M include/osmocom/bsc/bts.h M src/osmo-bsc/bts_ipaccess_nanobts_omlattr.c M src/osmo-bsc/net_init.c M tests/nanobts_omlattr/nanobts_omlattr_test.c M tests/timer.vty 5 files changed, 65 insertions(+), 12 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/82/31882/1 diff --git a/include/osmocom/bsc/bts.h b/include/osmocom/bsc/bts.h index 94fb5fc..2c54f29 100644 --- a/include/osmocom/bsc/bts.h +++ b/include/osmocom/bsc/bts.h @@ -331,6 +331,12 @@ #define GSM_BTS_TDEF_ID_TNS_ALIVE_RETRIES_NEG34 (-34) #define GSM_BTS_TDEF_ID_TSNS_PROV_NEG_35 (-35) +#define GSM_BTS_TDEF_ID_BSSGP_T1_1001 1001 +#define GSM_BTS_TDEF_ID_BSSGP_T2_1002 1002 +#define GSM_BTS_TDEF_ID_BSSGP_T3_1003 1003 +#define GSM_BTS_TDEF_ID_BSSGP_T4_1004 1004 +#define GSM_BTS_TDEF_ID_BSSGP_T5_1005 1005 + #define GSM_BTS_TDEF_ID_N3101_NEG3169 (-3169) #define GSM_BTS_TDEF_ID_N3103_NEG3170 (-3170) #define GSM_BTS_TDEF_ID_N3105_NEG3171 (-3171) diff --git a/src/osmo-bsc/bts_ipaccess_nanobts_omlattr.c b/src/osmo-bsc/bts_ipaccess_nanobts_omlattr.c index d7f459d..a61748d 100644 --- a/src/osmo-bsc/bts_ipaccess_nanobts_omlattr.c +++ b/src/osmo-bsc/bts_ipaccess_nanobts_omlattr.c @@ -25,6 +25,7 @@ #include <osmocom/bsc/abis_nm.h> #include <osmocom/bsc/bts.h> #include <osmocom/gsm/bts_features.h> +#include <osmocom/gsm/protocol/gsm_12_21.h> /* 3GPP TS 52.021 section 8.6.1 Set BTS Attributes */ struct msgb *nanobts_gen_set_bts_attr(struct gsm_bts *bts) @@ -145,18 +146,22 @@ osmo_tdef_get(tdefs, GSM_BTS_TDEF_ID_TSNS_PROV_NEG_35, OSMO_TDEF_S, -1); msgb_tl16v_put(msgb, NM_ATT_IPACC_NS_CFG, _NUM_PCU_IF_NSE_TIMER_OFFSETS, buf); - /* all timers in seconds */ - buf[0] = 3; /* blockimg timer (T1) */ - buf[1] = 3; /* blocking retries */ - buf[2] = 3; /* unblocking retries */ - buf[3] = 3; /* reset timer (T2) */ - buf[4] = 3; /* reset retries */ - buf[5] = 10; /* suspend timer (T3) in 100ms */ - buf[6] = 3; /* suspend retries */ - buf[7] = 10; /* resume timer (T4) in 100ms */ - buf[8] = 3; /* resume retries */ - buf[9] = 10; /* capability update timer (T5) */ - buf[10] = 3; /* capability update retries */ + buf[NM_BSSGP_T1_OFFSET] = + osmo_tdef_get(tdefs, GSM_BTS_TDEF_ID_BSSGP_T1_1001, OSMO_TDEF_S, -1); + buf[NM_BSSGP_BLOCK_RETRIES_OFFSET] = NM_PAR_BLOCK_RETRIES; + buf[NM_BSSGP_UNBLOCK_RETRIES_OFFSET] = NM_PAR_UNBLOCK_RETRIES; + buf[NM_BSSGP_T2_OFFSET] = + osmo_tdef_get(tdefs, GSM_BTS_TDEF_ID_BSSGP_T2_1002, OSMO_TDEF_S, -1); + buf[NM_BSSGP_RESET_RETRIES_OFFSET] = NM_PAR_RESET_RETRIES; + buf[NM_BSSGP_T3_OFFSET] = + osmo_tdef_get(tdefs, GSM_BTS_TDEF_ID_BSSGP_T3_1003, OSMO_TDEF_MS, -1)/100; + buf[NM_BSSGP_SUSPEND_RETRIES_OFFSET] = NM_PAR_SUSPEND_RETRIES; + buf[NM_BSSGP_T4_OFFSET] = + osmo_tdef_get(tdefs, GSM_BTS_TDEF_ID_BSSGP_T4_1004, OSMO_TDEF_MS, -1)/100; + buf[NM_BSSGP_RESUME_RETRIES_OFFSET] = NM_PAR_RESUME_RETRIES; + buf[NM_BSSGP_T5_OFFSET] = + osmo_tdef_get(tdefs, GSM_BTS_TDEF_ID_BSSGP_T5_1005, OSMO_TDEF_S, -1); + buf[NM_BSSGP_RA_CAPABILITY_UPDATE_RETRIES_OFFSET] = NM_PAR_RA_CAP_UPDATE_RETRIES; OSMO_ASSERT(ARRAY_SIZE(bts->gprs.cell.timer) < sizeof(buf)); memcpy(buf, bts->gprs.cell.timer, ARRAY_SIZE(bts->gprs.cell.timer)); diff --git a/src/osmo-bsc/net_init.c b/src/osmo-bsc/net_init.c index 2e69a8e..9fa8ac4 100644 --- a/src/osmo-bsc/net_init.c +++ b/src/osmo-bsc/net_init.c @@ -36,6 +36,16 @@ { .T = 8, .default_val = 10, .desc = "inter-BSC/MSC Handover outgoing, BSSMAP HO Command to final Clear timeout" }, { .T = 10, .default_val = 6, .desc = "RR Assignment" }, { .T = 101, .default_val = 10, .desc = "inter-BSC/MSC Handover incoming, BSSMAP HO Request to HO Accept" }, + { .T = GSM_BTS_TDEF_ID_BSSGP_T1_1001, .default_val = 3, .min_val = 2, + .max_val = 29, .desc = "T1 (3GPP TS 48.018): Guards the (un)blocking procedures" }, + { .T = GSM_BTS_TDEF_ID_BSSGP_T2_1002, .default_val = 3, .min_val = 2, + .max_val = 119, .desc = "T2 (3GPP TS 48.018): Guards the reset procedure"}, + { .T = GSM_BTS_TDEF_ID_BSSGP_T3_1003, .default_val = 1000, .min_val = 101, + .max_val = 9999, .desc = "T3 (3GPP TS 48.018): Guards the suspend procedure", .unit = OSMO_TDEF_MS }, + { .T = GSM_BTS_TDEF_ID_BSSGP_T4_1004, .default_val = 1000, .min_val = 101, + .max_val = 9999, .desc = "T4 (3GPP TS 48.018): Guards the resume procedure", .unit = OSMO_TDEF_MS }, + { .T = GSM_BTS_TDEF_ID_BSSGP_T5_1005, .default_val = 10, .min_val = 2, .max_val = 29, + .desc = "T5 (3GPP TS 48.018): Guards the Radio Access Capability Update procedure", .unit = OSMO_TDEF_CUSTOM }, { .T = 3101, .default_val = 3, .desc = "RR Immediate Assignment" }, { .T = 3103, .default_val = 5, .desc = "Handover" }, { .T = 3105, .default_val = GSM_T3105_DEFAULT, .unit = OSMO_TDEF_MS, .desc = "Physical Information" }, diff --git a/tests/nanobts_omlattr/nanobts_omlattr_test.c b/tests/nanobts_omlattr/nanobts_omlattr_test.c index 658705e..e751eca 100644 --- a/tests/nanobts_omlattr/nanobts_omlattr_test.c +++ b/tests/nanobts_omlattr/nanobts_omlattr_test.c @@ -126,6 +126,16 @@ }; static struct osmo_tdef gsm_network_T_defs[] = { + { .T = GSM_BTS_TDEF_ID_BSSGP_T1_1001, .default_val = 3, .min_val = 2, + .max_val = 29, .desc = "T1 (3GPP TS 48.018): Guards the (un)blocking procedures" }, + { .T = GSM_BTS_TDEF_ID_BSSGP_T2_1002, .default_val = 3, .min_val = 2, + .max_val = 119, .desc = "T2 (3GPP TS 48.018): Guards the reset procedure"}, + { .T = GSM_BTS_TDEF_ID_BSSGP_T3_1003, .default_val = 1000, .min_val = 101, + .max_val = 9999, .desc = "T3 (3GPP TS 48.018): Guards the suspend procedure", .unit = OSMO_TDEF_MS }, + { .T = GSM_BTS_TDEF_ID_BSSGP_T4_1004, .default_val = 1000, .min_val = 101, + .max_val = 9999, .desc = "T4 (3GPP TS 48.018): Guards the resume procedure", .unit = OSMO_TDEF_MS }, + { .T = GSM_BTS_TDEF_ID_BSSGP_T5_1005, .default_val = 10, .min_val = 2, .max_val = 29, + .desc = "T5 (3GPP TS 48.018): Guards the Radio Access Capability Update procedure", .unit = OSMO_TDEF_CUSTOM }, { .T = 3105, .default_val = GSM_T3105_DEFAULT, .val = GSM_T3105_DEFAULT, .min_val = 0, .max_val = UINT8_MAX, .unit = OSMO_TDEF_MS, .desc = "Physical Information" }, { .T = 3212, .default_val = 5, .unit = OSMO_TDEF_CUSTOM, .min_val = 0, .max_val = UINT8_MAX, .desc = "Periodic Location Update timer, sent to MS (1 = 6 minutes)" }, diff --git a/tests/timer.vty b/tests/timer.vty index 774404b..aa36463 100644 --- a/tests/timer.vty +++ b/tests/timer.vty @@ -6,6 +6,11 @@ net: T8 = 10 s inter-BSC/MSC Handover outgoing, BSSMAP HO Command to final Clear timeout (default: 10 s) net: T10 = 6 s RR Assignment (default: 6 s) net: T101 = 10 s inter-BSC/MSC Handover incoming, BSSMAP HO Request to HO Accept (default: 10 s) +net: T1001 = 3 s T1 (3GPP TS 48.018): Guards the (un)blocking procedures (default: 3 s, range: [2 .. 29]) +net: T1002 = 3 s T2 (3GPP TS 48.018): Guards the reset procedure (default: 3 s, range: [2 .. 119]) +net: T1003 = 1000 ms T3 (3GPP TS 48.018): Guards the suspend procedure (default: 1000 ms, range: [101 .. 9999]) +net: T1004 = 1000 ms T4 (3GPP TS 48.018): Guards the resume procedure (default: 1000 ms, range: [101 .. 9999]) +net: T1005 = 10 T5 (3GPP TS 48.018): Guards the Radio Access Capability Update procedure (default: 10, range: [2 .. 29]) net: T3101 = 3 s RR Immediate Assignment (default: 3 s) net: T3103 = 5 s Handover (default: 5 s) net: T3105 = 100 ms Physical Information (default: 100 ms) @@ -80,6 +85,11 @@ net: T8 = 10 s inter-BSC/MSC Handover outgoing, BSSMAP HO Command to final Clear timeout (default: 10 s) net: T10 = 6 s RR Assignment (default: 6 s) net: T101 = 10 s inter-BSC/MSC Handover incoming, BSSMAP HO Request to HO Accept (default: 10 s) +net: T1001 = 3 s T1 (3GPP TS 48.018): Guards the (un)blocking procedures (default: 3 s, range: [2 .. 29]) +net: T1002 = 3 s T2 (3GPP TS 48.018): Guards the reset procedure (default: 3 s, range: [2 .. 119]) +net: T1003 = 1000 ms T3 (3GPP TS 48.018): Guards the suspend procedure (default: 1000 ms, range: [101 .. 9999]) +net: T1004 = 1000 ms T4 (3GPP TS 48.018): Guards the resume procedure (default: 1000 ms, range: [101 .. 9999]) +net: T1005 = 10 T5 (3GPP TS 48.018): Guards the Radio Access Capability Update procedure (default: 10, range: [2 .. 29]) net: T3101 = 3 s RR Immediate Assignment (default: 3 s) net: T3103 = 5 s Handover (default: 5 s) net: T3105 = 100 ms Physical Information (default: 100 ms) -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/31882 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: Id4779f033b5eb1742462d4efc28a0398645acfe6 Gerrit-Change-Number: 31882 Gerrit-PatchSet: 1 Gerrit-Owner: arehbein <arehbein(a)sysmocom.de> Gerrit-MessageType: newchange
1 0
0 0
[M] Change in osmo-bsc[master]: Includes: Remove enum/include from libosmocore instead
by arehbein 13 Mar '23

13 Mar '23
Attention is currently required from: arehbein. Hello Jenkins Builder, pespin, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-bsc/+/31304 to look at the new patch set (#7). Change subject: Includes: Remove enum/include from libosmocore instead ...................................................................... Includes: Remove enum/include from libosmocore instead Move gprs/rlc related enum defs for O&M to libosmocore (gsm_12_21.h). Required change (libosmocore): I1ec2e52ad7fa625c08fe9df04d4a4f5323bf609c Related: OS#5335 Change-Id: I2883aee12b501a717d5acecd5638882724336e72 --- M include/osmocom/bsc/gsm_data.h M src/osmo-bsc/bts.c M src/osmo-bsc/bts_ipaccess_nanobts_omlattr.c M src/osmo-bsc/bts_sm.c M src/osmo-bsc/pcu_sock.c 5 files changed, 52 insertions(+), 49 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/04/31304/7 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/31304 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I2883aee12b501a717d5acecd5638882724336e72 Gerrit-Change-Number: 31304 Gerrit-PatchSet: 7 Gerrit-Owner: arehbein <arehbein(a)sysmocom.de> Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin <pespin(a)sysmocom.de> Gerrit-Attention: arehbein <arehbein(a)sysmocom.de> Gerrit-MessageType: newpatchset
1 0
0 0
[S] Change in osmo-bsc[master]: Include constants for cross component defaults (RLC)
by arehbein 13 Mar '23

13 Mar '23
arehbein has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bsc/+/31879 ) Change subject: Include constants for cross component defaults (RLC) ...................................................................... Include constants for cross component defaults (RLC) Required change: Ie83a0160aed303e2a6d1a90e581770d1087b22ed Change-Id: I08322563aa508e2fc6c8af9d1997b68a998aaaca --- M src/osmo-bsc/net_init.c 1 file changed, 22 insertions(+), 11 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/79/31879/1 diff --git a/src/osmo-bsc/net_init.c b/src/osmo-bsc/net_init.c index 446a5d5..5116199 100644 --- a/src/osmo-bsc/net_init.c +++ b/src/osmo-bsc/net_init.c @@ -48,17 +48,17 @@ { .T = 3119, .default_val = 10, .desc = "(unused)" }, { .T = 3122, .default_val = GSM_T3122_DEFAULT, .desc = "Wait time after RR Immediate Assignment Reject" }, { .T = 3141, .default_val = 10, .desc = "(unused)" }, - { .T = 3142, .default_val = 20, + { .T = 3142, .default_val = NM_PAR_T3142_DEFAULT, .desc = "Used during packet access on CCCH/while in dedicated mode. Started after the receipt of " "IMMEDIATE ASSIGNMENT REJECT or DTM REJECT or EC IMMEDIATE ASSIGNMENT REJECT", .max_val = UINT8_MAX }, - { .T = 3169, .default_val = 5, + { .T = 3169, .default_val = NM_PAR_T3169_DEFAULT, .desc = "Release radio resource (TFI, USF) timer (linked to N3103, N3103)", .max_val = UINT8_MAX }, - { .T = 3191, .default_val = 5, + { .T = 3191, .default_val = NM_PAR_T3191_DEFAULT, .desc = "Downlink TBF Release downlink RLC data block retransmission timer", .max_val = UINT8_MAX }, - { .T = 3193, .default_val = 1600, .desc = "Downlink TBF Release timer", .unit = OSMO_TDEF_MS, + { .T = 3193, .default_val = NM_PAR_T3193_DEFAULT_MSEC, .desc = "Downlink TBF Release timer", .unit = OSMO_TDEF_MS, .max_val = UINT8_MAX * 10 }, - { .T = 3195, .default_val = 5, + { .T = 3195, .default_val = NM_PAR_T3195_DEFAULT, .desc = "Timer for TFI release on N3105 overflow (unresponsive MS)", .max_val = UINT8_MAX }, { .T = 3212, .default_val = 5, .unit = OSMO_TDEF_CUSTOM, .desc = "Periodic Location Update timer, sent to MS (1 = 6 minutes)" }, @@ -88,11 +88,11 @@ " after this amount of idle time, forget internally cumulated time remainders. Zero to always" " keep remainders. See also X16, X17." }, { .T = -25, .default_val = 5, .desc = "Timeout for initial user data after an MSC initiated an SCCP connection to the BSS" }, - { .T = GSM_BTS_TDEF_ID_COUNTDOWN_VALUE_NEG26, .default_val = 15, + { .T = GSM_BTS_TDEF_ID_COUNTDOWN_VALUE_NEG26, .default_val = NM_PAR_COUNTDOWN_VALUE_DEFAULT, .desc = "CV: Countdown value/remaining blocks to transmit", .unit = OSMO_TDEF_CUSTOM, .max_val = UINT8_MAX }, - { .T = GSM_BTS_TDEF_ID_UL_TBF_EXT_NEG27, .default_val = 2500, .desc = "Extended uplink TBF", + { .T = GSM_BTS_TDEF_ID_UL_TBF_EXT_NEG27, .default_val = NM_PAR_UL_TBF_EXT_DEFAULT_MSEC, .desc = "Extended uplink TBF", .unit = OSMO_TDEF_MS, .max_val = 500 * 10 }, - { .T = GSM_BTS_TDEF_ID_DL_TBF_EXT_NEG28, .default_val = 2500, .desc = "Extended downlink TBF", + { .T = GSM_BTS_TDEF_ID_DL_TBF_EXT_NEG28, .default_val = NM_PAR_DL_TBF_EXT_DEFAULT_MSEC, .desc = "Extended downlink TBF", .unit = OSMO_TDEF_MS, .max_val = 500 * 10 }, { .T = -3105, .default_val = GSM_NY1_DEFAULT, .unit = OSMO_TDEF_CUSTOM, .desc = "Ny1: Maximum number of Physical Information (re)transmissions" }, @@ -103,13 +103,13 @@ "paging requests will if possible replace a request in retransmission state from the queue or otherwise be discarded, " "hence limiting the size of the queue and maximum delay of its scheduled requests. " "X3113 also serves as the upper boundary for dynamic T3113 when estimating the expected maximum delay to get a response" }, - { .T = GSM_BTS_TDEF_ID_N3101_NEG3169, .default_val = 10, + { .T = GSM_BTS_TDEF_ID_N3101_NEG3169, .default_val = NM_PAR_N3101_DEFAULT, .desc = "N3101: Maximum USFs without response from the MS", .unit = OSMO_TDEF_CUSTOM, .min_val = GSM_N3101_STRICT_LOWER_BOUND + 1, .max_val = UINT8_MAX }, - { .T = GSM_BTS_TDEF_ID_N3103_NEG3170, .default_val = 4, + { .T = GSM_BTS_TDEF_ID_N3103_NEG3170, .default_val = NM_PAR_N3103_DEFAULT, .desc = "N3103: Maximum PACKETĀ UPLINKĀ ACK/NACK messages within a TBF unacknowledged by MS", .unit = OSMO_TDEF_CUSTOM, .max_val = UINT8_MAX }, - { .T = GSM_BTS_TDEF_ID_N3105_NEG3171, .default_val = 8, + { .T = GSM_BTS_TDEF_ID_N3105_NEG3171, .default_val = NM_PAR_N3105_DEFAULT, .desc = "N3105: Maximum allocated data blocks without RLC/MAC control reply from MS", .unit = OSMO_TDEF_CUSTOM, .max_val = UINT8_MAX }, { .T = -3210, .default_val = 20, .desc = "After L3 Complete, wait for MSC to confirm" }, {} -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/31879 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I08322563aa508e2fc6c8af9d1997b68a998aaaca Gerrit-Change-Number: 31879 Gerrit-PatchSet: 1 Gerrit-Owner: arehbein <arehbein(a)sysmocom.de> Gerrit-MessageType: newchange
1 0
0 0
[M] Change in osmo-bsc[master]: Make NSE timing data configurable
by arehbein 13 Mar '23

13 Mar '23
arehbein has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bsc/+/31880 ) Change subject: Make NSE timing data configurable ...................................................................... Make NSE timing data configurable Also: Deprecate/hide old respective VTY command while preserving backwards compatibility for NSE timing data configuration. Related: OS#5335 Change-Id: Ie46ec5cb7095bc1dfe3effd0e76d6ccfd6bd2f3f --- M include/osmocom/bsc/bts.h M include/osmocom/bsc/bts_sm.h M include/osmocom/bsc/pcuif_proto.h M src/osmo-bsc/bts_ipaccess_nanobts_omlattr.c M src/osmo-bsc/bts_sm.c M src/osmo-bsc/bts_vty.c M src/osmo-bsc/net_init.c M src/osmo-bsc/pcu_sock.c M tests/nanobts_omlattr/nanobts_omlattr_test.c M tests/nanobts_omlattr/nanobts_omlattr_test.ok M tests/timer.vty 11 files changed, 203 insertions(+), 29 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/80/31880/1 diff --git a/include/osmocom/bsc/bts.h b/include/osmocom/bsc/bts.h index ed69bd4..94fb5fc 100644 --- a/include/osmocom/bsc/bts.h +++ b/include/osmocom/bsc/bts.h @@ -322,6 +322,15 @@ #define GSM_BTS_TDEF_ID_COUNTDOWN_VALUE_NEG26 (-26) #define GSM_BTS_TDEF_ID_UL_TBF_EXT_NEG27 (-27) #define GSM_BTS_TDEF_ID_DL_TBF_EXT_NEG28 (-28) + +#define GSM_BTS_TDEF_ID_TNS_BLOCK_NEG29 (-29) +#define GSM_BTS_TDEF_ID_TNS_BLOCK_RETRIES_NEG30 (-30) +#define GSM_BTS_TDEF_ID_TNS_RESET_NEG31 (-31) +#define GSM_BTS_TDEF_ID_TNS_RESET_RETRIES_NEG32 (-32) +#define GSM_BTS_TDEF_ID_TNS_TEST_NEG33 (-33) +#define GSM_BTS_TDEF_ID_TNS_ALIVE_RETRIES_NEG34 (-34) +#define GSM_BTS_TDEF_ID_TSNS_PROV_NEG_35 (-35) + #define GSM_BTS_TDEF_ID_N3101_NEG3169 (-3169) #define GSM_BTS_TDEF_ID_N3103_NEG3170 (-3170) #define GSM_BTS_TDEF_ID_N3105_NEG3171 (-3171) diff --git a/include/osmocom/bsc/bts_sm.h b/include/osmocom/bsc/bts_sm.h index 7ed7aba..9814544 100644 --- a/include/osmocom/bsc/bts_sm.h +++ b/include/osmocom/bsc/bts_sm.h @@ -25,6 +25,7 @@ #include <unistd.h> #include <stdint.h> +#include <osmocom/bsc/pcuif_proto.h> #include "osmocom/bsc/gsm_data.h" struct gsm_bts; @@ -32,7 +33,7 @@ struct gsm_gprs_nse { struct gsm_abis_mo mo; uint16_t nsei; - uint8_t timer[7]; + uint8_t timer[_NUM_PCU_IF_NSE_TIMER_OFFSETS]; }; struct gsm_gprs_nsvc { diff --git a/include/osmocom/bsc/pcuif_proto.h b/include/osmocom/bsc/pcuif_proto.h index bf05b01..8a41fc6 100644 --- a/include/osmocom/bsc/pcuif_proto.h +++ b/include/osmocom/bsc/pcuif_proto.h @@ -145,6 +145,18 @@ struct gsm_pcu_if_info_trx_ts ts[8]; } __attribute__ ((packed)); +enum gsm_pcu_if_info_ind_nse_timer_offsets { + PCU_IF_TNS_BLOCK_OFFSET = 0, + PCU_IF_TNS_BLOCK_RETRIES_OFFSET, + PCU_IF_TNS_RESET_OFFSET, + PCU_IF_TNS_RESET_RETRIES_OFFSET, + PCU_IF_TNS_TEST_OFFSET, + PCU_IF_TNS_ALIVE_OFFSET, + PCU_IF_TNS_ALIVE_RETRIES_OFFSET, + PCU_IF_TSNS_PROV_OFFSET, + _NUM_PCU_IF_NSE_TIMER_OFFSETS +}; + struct gsm_pcu_if_info_ind { uint32_t version; uint32_t flags; @@ -156,7 +168,7 @@ uint16_t lac, rac; /* NSE */ uint16_t nsei; - uint8_t nse_timer[7]; + uint8_t nse_timer[_NUM_PCU_IF_NSE_TIMER_OFFSETS]; uint8_t cell_timer[11]; /* cell */ uint16_t cell_id; diff --git a/src/osmo-bsc/bts_ipaccess_nanobts_omlattr.c b/src/osmo-bsc/bts_ipaccess_nanobts_omlattr.c index a5252d7..d7f459d 100644 --- a/src/osmo-bsc/bts_ipaccess_nanobts_omlattr.c +++ b/src/osmo-bsc/bts_ipaccess_nanobts_omlattr.c @@ -114,6 +114,7 @@ struct msgb *msgb; uint8_t buf[256]; struct gsm_bts *bts = gsm_bts_sm_get_bts(bts_sm); + struct osmo_tdef *tdefs = bts->network->T_defs; msgb = msgb_alloc(1024, "nanobts_attr_bts"); if (!msgb) return NULL; @@ -124,9 +125,25 @@ msgb_tl16v_put(msgb, NM_ATT_IPACC_NSEI, 2, buf); /* all timers in seconds */ - OSMO_ASSERT(ARRAY_SIZE(bts_sm->gprs.nse.timer) < sizeof(buf)); - memcpy(buf, bts_sm->gprs.nse.timer, ARRAY_SIZE(bts_sm->gprs.nse.timer)); - msgb_tl16v_put(msgb, NM_ATT_IPACC_NS_CFG, 7, buf); + OSMO_ASSERT(_NUM_PCU_IF_NSE_TIMER_OFFSETS < sizeof(buf)); + buf[PCU_IF_TNS_BLOCK_OFFSET] = + osmo_tdef_get(tdefs, GSM_BTS_TDEF_ID_TNS_BLOCK_NEG29, OSMO_TDEF_S, -1); + buf[PCU_IF_TNS_BLOCK_RETRIES_OFFSET] = + osmo_tdef_get(tdefs, GSM_BTS_TDEF_ID_TNS_BLOCK_RETRIES_NEG30, OSMO_TDEF_CUSTOM, -1); + buf[PCU_IF_TNS_RESET_OFFSET] = + osmo_tdef_get(tdefs, GSM_BTS_TDEF_ID_TNS_RESET_NEG31, OSMO_TDEF_S, -1); + buf[PCU_IF_TNS_RESET_RETRIES_OFFSET] = + osmo_tdef_get(tdefs, GSM_BTS_TDEF_ID_TNS_RESET_RETRIES_NEG32, OSMO_TDEF_CUSTOM, -1); + buf[PCU_IF_TNS_TEST_OFFSET] = + osmo_tdef_get(tdefs, GSM_BTS_TDEF_ID_TNS_TEST_NEG33, OSMO_TDEF_S, -1); + /* Communicating TNS Alive/having it configurable for backwards compatibility + * (3GPP TS 48.016 fixes its value at 3, see sect. 11, Table 11.1) */ + buf[PCU_IF_TNS_ALIVE_OFFSET] = bts_sm->gprs.nse.timer[PCU_IF_TNS_ALIVE_OFFSET]; + buf[PCU_IF_TNS_ALIVE_RETRIES_OFFSET] = + osmo_tdef_get(tdefs, GSM_BTS_TDEF_ID_TNS_ALIVE_RETRIES_NEG34, OSMO_TDEF_CUSTOM, -1); + buf[PCU_IF_TSNS_PROV_OFFSET] = + osmo_tdef_get(tdefs, GSM_BTS_TDEF_ID_TSNS_PROV_NEG_35, OSMO_TDEF_S, -1); + msgb_tl16v_put(msgb, NM_ATT_IPACC_NS_CFG, _NUM_PCU_IF_NSE_TIMER_OFFSETS, buf); /* all timers in seconds */ buf[0] = 3; /* blockimg timer (T1) */ diff --git a/src/osmo-bsc/bts_sm.c b/src/osmo-bsc/bts_sm.c index f82b851..d6cbac6 100644 --- a/src/osmo-bsc/bts_sm.c +++ b/src/osmo-bsc/bts_sm.c @@ -27,8 +27,6 @@ #include <osmocom/bsc/nm_common_fsm.h> #include <osmocom/bsc/pcuif_proto.h> -static const uint8_t bts_nse_timer_default[] = { 3, 3, 3, 3, 30, 3, 10 }; - static int gsm_bts_sm_talloc_destructor(struct gsm_bts_sm *bts_sm) { int i; @@ -50,9 +48,21 @@ return 0; } +/* Set the timer default value for target INT_VAR, log an error and return NULL if timer is not found */ +#define SET_TIMER_DEFAULT_SAFE(INT_VAR, STRUCT_OSMO_TDEF_PTR, TDEF_ID) do {\ + if (osmo_tdef_get_entry(STRUCT_OSMO_TDEF_PTR, TDEF_ID)) {\ + INT_VAR = osmo_tdef_get_entry(STRUCT_OSMO_TDEF_PTR, TDEF_ID)->default_val;\ + } else {\ + LOGP(DPCU, LOGL_ERROR, "Timer not found (id: %d)\n", TDEF_ID);\ + return NULL;\ + };\ +} while (0) + struct gsm_bts_sm *gsm_bts_sm_alloc(struct gsm_network *net, uint8_t bts_num) { struct gsm_bts_sm *bts_sm = talloc_zero(net, struct gsm_bts_sm); + uint8_t * const nse_timers = bts_sm->gprs.nse.timer; + struct osmo_tdef *tdefs = net->T_defs; struct gsm_bts *bts; int i; if (!bts_sm) @@ -77,8 +87,6 @@ LOGL_INFO, NULL); osmo_fsm_inst_update_id_f(bts_sm->gprs.nse.mo.fi, "nse%d", bts_num); gsm_mo_init(&bts_sm->gprs.nse.mo, bts, NM_OC_GPRS_NSE, bts->nr, 0xff, 0xff); - memcpy(&bts_sm->gprs.nse.timer, bts_nse_timer_default, - sizeof(bts_sm->gprs.nse.timer)); for (i = 0; i < ARRAY_SIZE(bts_sm->gprs.nsvc); i++) { bts_sm->gprs.nsvc[i].bts = bts; @@ -92,8 +100,25 @@ gsm_mo_init(&bts_sm->gprs.nsvc[i].mo, bts, NM_OC_GPRS_NSVC, bts->nr, i, 0xff); } - memcpy(&bts_sm->gprs.nse.timer, bts_nse_timer_default, - sizeof(bts_sm->gprs.nse.timer)); + + SET_TIMER_DEFAULT_SAFE(nse_timers[PCU_IF_TNS_BLOCK_OFFSET], tdefs, + GSM_BTS_TDEF_ID_TNS_BLOCK_NEG29); + SET_TIMER_DEFAULT_SAFE(nse_timers[PCU_IF_TNS_BLOCK_RETRIES_OFFSET], tdefs, + GSM_BTS_TDEF_ID_TNS_BLOCK_RETRIES_NEG30); + SET_TIMER_DEFAULT_SAFE(nse_timers[PCU_IF_TNS_RESET_OFFSET], tdefs, + GSM_BTS_TDEF_ID_TNS_RESET_NEG31); + SET_TIMER_DEFAULT_SAFE(nse_timers[PCU_IF_TNS_RESET_RETRIES_OFFSET], tdefs, + GSM_BTS_TDEF_ID_TNS_RESET_RETRIES_NEG32); + SET_TIMER_DEFAULT_SAFE(nse_timers[PCU_IF_TNS_TEST_OFFSET], tdefs, + GSM_BTS_TDEF_ID_TNS_TEST_NEG33); + /* Communicating TNS Alive/having it configurable for backwards compatibility + * (3GPP TS 48.016 fixes its value at 3, see sect. 11, Table 11.1) */ + nse_timers[PCU_IF_TNS_ALIVE_OFFSET] = 3; + SET_TIMER_DEFAULT_SAFE(nse_timers[PCU_IF_TNS_ALIVE_RETRIES_OFFSET], tdefs, + GSM_BTS_TDEF_ID_TNS_ALIVE_RETRIES_NEG34); + SET_TIMER_DEFAULT_SAFE(nse_timers[PCU_IF_TSNS_PROV_OFFSET], tdefs, + GSM_BTS_TDEF_ID_TSNS_PROV_NEG_35); + gsm_mo_init(&bts_sm->gprs.nse.mo, bts, NM_OC_GPRS_NSE, bts->nr, 0xff, 0xff); diff --git a/src/osmo-bsc/bts_vty.c b/src/osmo-bsc/bts_vty.c index 08166ca..8c58ccb 100644 --- a/src/osmo-bsc/bts_vty.c +++ b/src/osmo-bsc/bts_vty.c @@ -44,6 +44,7 @@ #include <osmocom/bsc/debug.h> #include <osmocom/bsc/paging.h> #include <osmocom/bsc/pcu_if.h> +#include <osmocom/bsc/pcuif_proto.h> #include <osmocom/bsc/handover_vty.h> #include <osmocom/bsc/gsm_04_08_rr.h> #include <osmocom/bsc/neighbor_ident.h> @@ -57,18 +58,36 @@ #define X(x) (1 << x) +extern struct osmo_tdef gsm_network_T_defs[]; + /* FIXME: this should go to some common file */ static const struct value_string gprs_ns_timer_strs[] = { - { 0, "tns-block" }, - { 1, "tns-block-retries" }, - { 2, "tns-reset" }, - { 3, "tns-reset-retries" }, - { 4, "tns-test" }, - { 5, "tns-alive" }, - { 6, "tns-alive-retries" }, + { PCU_IF_TNS_BLOCK_OFFSET, "tns-block" }, + { PCU_IF_TNS_BLOCK_RETRIES_OFFSET, "tns-block-retries" }, + { PCU_IF_TNS_RESET_OFFSET, "tns-reset" }, + { PCU_IF_TNS_RESET_RETRIES_OFFSET, "tns-reset-retries" }, + { PCU_IF_TNS_TEST_OFFSET, "tns-test" }, + { PCU_IF_TNS_ALIVE_OFFSET, "tns-alive" }, + { PCU_IF_TNS_ALIVE_RETRIES_OFFSET, "tns-alive-retries" }, { 0, NULL } }; +#define TDEF_DATA_ID_IDX 1 +#define TDEF_DATA_UNIT_IDX 2 +static const int gprs_ns_timer_tdef_data[][3] = { + { PCU_IF_TNS_BLOCK_OFFSET, GSM_BTS_TDEF_ID_TNS_BLOCK_NEG29 }, + { PCU_IF_TNS_BLOCK_RETRIES_OFFSET, GSM_BTS_TDEF_ID_TNS_BLOCK_RETRIES_NEG30, + OSMO_TDEF_CUSTOM }, + { PCU_IF_TNS_RESET_OFFSET, GSM_BTS_TDEF_ID_TNS_RESET_NEG31 }, + { PCU_IF_TNS_RESET_RETRIES_OFFSET, GSM_BTS_TDEF_ID_TNS_RESET_RETRIES_NEG32, + OSMO_TDEF_CUSTOM }, + { PCU_IF_TNS_TEST_OFFSET, GSM_BTS_TDEF_ID_TNS_TEST_NEG33 }, + /* PCU_IF_TNS_ALIVE_OFFSET will never be used */ + { PCU_IF_TNS_ALIVE_OFFSET, 0xdeadbeef, 0xdeadbeef }, + { PCU_IF_TNS_ALIVE_RETRIES_OFFSET, GSM_BTS_TDEF_ID_TNS_ALIVE_RETRIES_NEG34, + OSMO_TDEF_CUSTOM }, +}; + static const struct value_string gprs_bssgp_cfg_strs[] = { { 0, "blocking-timer" }, { 1, "blocking-retries" }, @@ -1554,10 +1573,13 @@ return CMD_SUCCESS; } -DEFUN_USRATTR(cfg_bts_gprs_ns_timer, +DEFUN_ATTR_USRATTR(cfg_bts_gprs_ns_timer, cfg_bts_gprs_ns_timer_cmd, + CMD_ATTR_HIDDEN & CMD_ATTR_DEPRECATED, X(BSC_VTY_ATTR_RESTART_ABIS_OML_LINK), "gprs ns timer " NS_TIMERS " <0-255>", + "Deprecated command; timing parameters are now\n" + "configurable like regular timers (for more, run 'show timers')\n" GPRS_TEXT "Network Service\n" "Network Service Timer\n" NS_TIMERS_HELP "Timer Value\n") @@ -1565,14 +1587,24 @@ struct gsm_bts *bts = vty->index; int idx = get_string_value(gprs_ns_timer_strs, argv[0]); int val = atoi(argv[1]); + const int *tdef_data_row; + int tdef_id; GPRS_CHECK_ENABLED(bts); - if (idx < 0 || idx >= ARRAY_SIZE(bts->site_mgr->gprs.nse.timer)) + if (idx < 0 || idx > sizeof(gprs_ns_timer_tdef_data)/ + sizeof(gprs_ns_timer_tdef_data[0])) return CMD_WARNING; - bts->site_mgr->gprs.nse.timer[idx] = val; - + if (idx == PCU_IF_TNS_ALIVE_OFFSET) { + bts->site_mgr->gprs.nse.timer[idx] = val; + } else { + tdef_data_row = gprs_ns_timer_tdef_data[idx]; + tdef_id = tdef_data_row[TDEF_DATA_ID_IDX]; + if (osmo_tdef_set(gsm_network_T_defs, tdef_id, val, + tdef_data_row[TDEF_DATA_UNIT_IDX]) < 0) + return CMD_WARNING; + } return CMD_SUCCESS; } diff --git a/src/osmo-bsc/net_init.c b/src/osmo-bsc/net_init.c index 5116199..ef6e029 100644 --- a/src/osmo-bsc/net_init.c +++ b/src/osmo-bsc/net_init.c @@ -30,7 +30,7 @@ #include <osmocom/bsc/bts.h> #include <osmocom/bsc/paging.h> -static struct osmo_tdef gsm_network_T_defs[] = { +struct osmo_tdef gsm_network_T_defs[] = { { .T = 4, .default_val = 5, .desc = "Timeout to receive BSSMAP RESET ACKNOWLEDGE from the MSC" }, { .T = 7, .default_val = 10, .desc = "inter-BSC/MSC Handover outgoing, BSSMAP HO Required to HO Command timeout" }, { .T = 8, .default_val = 10, .desc = "inter-BSC/MSC Handover outgoing, BSSMAP HO Command to final Clear timeout" }, @@ -94,6 +94,20 @@ .unit = OSMO_TDEF_MS, .max_val = 500 * 10 }, { .T = GSM_BTS_TDEF_ID_DL_TBF_EXT_NEG28, .default_val = NM_PAR_DL_TBF_EXT_DEFAULT_MSEC, .desc = "Extended downlink TBF", .unit = OSMO_TDEF_MS, .max_val = 500 * 10 }, + { .T = GSM_BTS_TDEF_ID_TNS_BLOCK_NEG29, .default_val = 3, .min_val = 1, .max_val = 120, + .desc = "Tns-block: Guards the blocking and unblocking procedures" }, + { .T = GSM_BTS_TDEF_ID_TNS_BLOCK_RETRIES_NEG30, .default_val = 3, .min_val = 0, .max_val = UINT8_MAX, + .desc = "NS-BLOCK-RETRIES: Blocking procedure retries", .unit = OSMO_TDEF_CUSTOM }, + { .T = GSM_BTS_TDEF_ID_TNS_RESET_NEG31, .default_val = 3, .min_val = 1, .max_val = 120, + .desc = "Tns-reset: Guards the reset procedure" }, + { .T = GSM_BTS_TDEF_ID_TNS_RESET_RETRIES_NEG32, .default_val = 3, .min_val = 0, .max_val = UINT8_MAX, + .desc = "Reset procedure retries", .unit = OSMO_TDEF_CUSTOM }, + { .T = GSM_BTS_TDEF_ID_TNS_TEST_NEG33, .default_val = 30, .min_val = 1, .max_val = 60, + .desc = "Tns-test: Periodicity of the NS-VC test procedure" }, + { .T = GSM_BTS_TDEF_ID_TNS_ALIVE_RETRIES_NEG34, .default_val = 10, .min_val = 0, .max_val = UINT8_MAX, + .desc = "NS-ALIVE-RETRIES: Retries for the the NS-VC test procedure", .unit = OSMO_TDEF_CUSTOM }, + { .T = GSM_BTS_TDEF_ID_TSNS_PROV_NEG_35, .default_val = 3, .min_val = 1, .max_val = 10, + .desc = "Tsns-prov: Guards the SNS procedures" }, { .T = -3105, .default_val = GSM_NY1_DEFAULT, .unit = OSMO_TDEF_CUSTOM, .desc = "Ny1: Maximum number of Physical Information (re)transmissions" }, { .T = -3111, .default_val = 4, .desc = "Wait time after lchan was released in error (should be T3111 + 2s)" }, diff --git a/src/osmo-bsc/pcu_sock.c b/src/osmo-bsc/pcu_sock.c index c54123e..98e1ffc 100644 --- a/src/osmo-bsc/pcu_sock.c +++ b/src/osmo-bsc/pcu_sock.c @@ -198,7 +198,23 @@ /* NSE */ info_ind->nsei = bts_sm->gprs.nse.nsei; - memcpy(info_ind->nse_timer, bts_sm->gprs.nse.timer, 7); + // memcpy(info_ind->nse_timer, bts_sm->gprs.nse.timer, _NUM_PCU_IF_NSE_TIMER_OFFSETS); + info_ind->nse_timer[PCU_IF_TNS_BLOCK_OFFSET] = + osmo_tdef_get(tdefs, GSM_BTS_TDEF_ID_TNS_BLOCK_NEG29, OSMO_TDEF_S, -1); + info_ind->nse_timer[PCU_IF_TNS_BLOCK_RETRIES_OFFSET] = + osmo_tdef_get(tdefs, GSM_BTS_TDEF_ID_TNS_BLOCK_RETRIES_NEG30, OSMO_TDEF_CUSTOM, -1); + info_ind->nse_timer[PCU_IF_TNS_RESET_OFFSET] = + osmo_tdef_get(tdefs, GSM_BTS_TDEF_ID_TNS_RESET_NEG31, OSMO_TDEF_S, -1); + info_ind->nse_timer[PCU_IF_TNS_RESET_RETRIES_OFFSET] = + osmo_tdef_get(tdefs, GSM_BTS_TDEF_ID_TNS_RESET_RETRIES_NEG32, OSMO_TDEF_CUSTOM, -1); + info_ind->nse_timer[PCU_IF_TNS_TEST_OFFSET] = + osmo_tdef_get(tdefs, GSM_BTS_TDEF_ID_TNS_TEST_NEG33, OSMO_TDEF_S, -1); + /* Communicating TNS Alive/having it configurable for backwards compatibility */ + info_ind->nse_timer[PCU_IF_TNS_ALIVE_OFFSET] = bts_sm->gprs.nse.timer[PCU_IF_TNS_ALIVE_OFFSET]; + info_ind->nse_timer[PCU_IF_TNS_ALIVE_RETRIES_OFFSET] = + osmo_tdef_get(tdefs, GSM_BTS_TDEF_ID_TNS_ALIVE_RETRIES_NEG34, OSMO_TDEF_CUSTOM, -1); + info_ind->nse_timer[PCU_IF_TSNS_PROV_OFFSET] = + osmo_tdef_get(tdefs, GSM_BTS_TDEF_ID_TSNS_PROV_NEG_35, OSMO_TDEF_S, -1); memcpy(info_ind->cell_timer, bts->gprs.cell.timer, 11); /* cell attributes */ diff --git a/tests/nanobts_omlattr/nanobts_omlattr_test.c b/tests/nanobts_omlattr/nanobts_omlattr_test.c index 463b364..658705e 100644 --- a/tests/nanobts_omlattr/nanobts_omlattr_test.c +++ b/tests/nanobts_omlattr/nanobts_omlattr_test.c @@ -148,6 +148,20 @@ .unit = OSMO_TDEF_CUSTOM}, { .T = GSM_BTS_TDEF_ID_N3105_NEG3171, .default_val = 8, .desc = "N3105: Maximum allocated data blocks without RLC/MAC control reply from MS", .unit = OSMO_TDEF_CUSTOM }, + { .T = GSM_BTS_TDEF_ID_TNS_BLOCK_NEG29, .default_val = 3, .min_val = 1, .max_val = 120, + .desc = "Tns-block: Guards the blocking and unblocking procedures" }, + { .T = GSM_BTS_TDEF_ID_TNS_BLOCK_RETRIES_NEG30, .default_val = 3, .min_val = 0, .max_val = UINT8_MAX, + .desc = "NS-BLOCK-RETRIES: Blocking procedure retries", .unit = OSMO_TDEF_CUSTOM }, + { .T = GSM_BTS_TDEF_ID_TNS_RESET_NEG31, .default_val = 3, .min_val = 1, .max_val = 120, + .desc = "Tns-reset: Guards the reset procedure" }, + { .T = GSM_BTS_TDEF_ID_TNS_RESET_RETRIES_NEG32, .default_val = 3, .min_val = 0, .max_val = UINT8_MAX, + .desc = "Reset procedure retries", .unit = OSMO_TDEF_CUSTOM }, + { .T = GSM_BTS_TDEF_ID_TNS_TEST_NEG33, .default_val = 30, .min_val = 1, .max_val = 60, + .desc = "Tns-test: Periodicity of the NS-VC test procedure" }, + { .T = GSM_BTS_TDEF_ID_TNS_ALIVE_RETRIES_NEG34, .default_val = 10, .min_val = 0, .max_val = UINT8_MAX, + .desc = "NS-ALIVE-RETRIES: Retries for the the NS-VC test procedure", .unit = OSMO_TDEF_CUSTOM }, + { .T = GSM_BTS_TDEF_ID_TSNS_PROV_NEG_35, .default_val = 3, .min_val = 1, .max_val = 10, + .desc = "Tsns-prov: Guards the SNS procedures" }, {} }; @@ -212,9 +226,16 @@ /* Parameters needed to test nanobts_gen_set_nse_attr() */ bts->site_mgr->gprs.nse.nsei = 101; - uint8_t attr_nse_expected[] = - { 0x9d, 0x00, 0x02, 0x00, 0x65, 0xa0, 0x00, 0x07, 0x03, 0x03, 0x03, - 0x03, 0x1e, 0x03, 0x0a, 0xa1, 0x00, 0x0b, 0x03, 0x03, 0x03, + uint8_t attr_nse_expected[] = { + /* NM_ATT_IPACC_NS_CFG */ + 0x9d, 0x00, 0x02, 0x00, 0x65, 0xa0, + /* LEN1, LEN2 */ + 0x00, 0x08, + /* TNS BLK, TNS BLK RE, TNS_RST, TNS_RST_RE, TNS_TEST */ + 0x03, 0x03, 0x03, 0x03, 0x1e, + /* TNS ALIVE, TNS ALIVE_RE, TSNS PROV */ + 0x03, 0x0a, 0x03, + 0xa1, 0x00, 0x0b, 0x03, 0x03, 0x03, 0x03, 0x03, 0x0a, 0x03, 0x0a, 0x03, 0x0a, 0x03 }; diff --git a/tests/nanobts_omlattr/nanobts_omlattr_test.ok b/tests/nanobts_omlattr/nanobts_omlattr_test.ok index 5f90769..4a5e67d 100644 --- a/tests/nanobts_omlattr/nanobts_omlattr_test.ok +++ b/tests/nanobts_omlattr/nanobts_omlattr_test.ok @@ -4,8 +4,8 @@ ok. Testing nanobts_gen_set_nse_attr()... -result= 9d00020065a00007030303031e030aa1000b03030303030a030a030a03 -expected=9d00020065a00007030303031e030aa1000b03030303030a030a030a03 +result= 9d00020065a00008030303031e030a03a1000b03030303030a030a030a03 +expected=9d00020065a00008030303031e030a03a1000b03030303030a030a030a03 ok. Testing nanobts_gen_set_cell_attr()... diff --git a/tests/timer.vty b/tests/timer.vty index 8772d5a..774404b 100644 --- a/tests/timer.vty +++ b/tests/timer.vty @@ -42,6 +42,13 @@ net: X26 = 15 CV: Countdown value/remaining blocks to transmit (default: 15, range: [0 .. 255]) net: X27 = 2500 ms Extended uplink TBF (default: 2500 ms, range: [0 .. 5000]) net: X28 = 2500 ms Extended downlink TBF (default: 2500 ms, range: [0 .. 5000]) +net: X29 = 3 s Tns-block: Guards the blocking and unblocking procedures (default: 3 s, range: [1 .. 120]) +net: X30 = 3 NS-BLOCK-RETRIES: Blocking procedure retries (default: 3, range: [0 .. 255]) +net: X31 = 3 s Tns-reset: Guards the reset procedure (default: 3 s, range: [1 .. 120]) +net: X32 = 3 Reset procedure retries (default: 3, range: [0 .. 255]) +net: X33 = 30 s Tns-test: Periodicity of the NS-VC test procedure (default: 30 s, range: [1 .. 60]) +net: X34 = 10 NS-ALIVE-RETRIES: Retries for the the NS-VC test procedure (default: 10, range: [0 .. 255]) +net: X35 = 3 s Tsns-prov: Guards the SNS procedures (default: 3 s, range: [1 .. 10]) net: X3105 = 17 Ny1: Maximum number of Physical Information (re)transmissions (default: 17) net: X3111 = 4 s Wait time after lchan was released in error (should be T3111 + 2s) (default: 4 s) net: X3113 = 60 s Maximum Paging Request Transmit Delay Threshold: If the estimated transmit delay of the messages in the paging queue surpasses this threshold, then new incoming paging requests will if possible replace a request in retransmission state from the queue or otherwise be discarded, hence limiting the size of the queue and maximum delay of its scheduled requests. X3113 also serves as the upper boundary for dynamic T3113 when estimating the expected maximum delay to get a response (default: 60 s) @@ -109,6 +116,13 @@ net: X26 = 15 CV: Countdown value/remaining blocks to transmit (default: 15, range: [0 .. 255]) net: X27 = 2500 ms Extended uplink TBF (default: 2500 ms, range: [0 .. 5000]) net: X28 = 2500 ms Extended downlink TBF (default: 2500 ms, range: [0 .. 5000]) +net: X29 = 3 s Tns-block: Guards the blocking and unblocking procedures (default: 3 s, range: [1 .. 120]) +net: X30 = 3 NS-BLOCK-RETRIES: Blocking procedure retries (default: 3, range: [0 .. 255]) +net: X31 = 3 s Tns-reset: Guards the reset procedure (default: 3 s, range: [1 .. 120]) +net: X32 = 3 Reset procedure retries (default: 3, range: [0 .. 255]) +net: X33 = 30 s Tns-test: Periodicity of the NS-VC test procedure (default: 30 s, range: [1 .. 60]) +net: X34 = 10 NS-ALIVE-RETRIES: Retries for the the NS-VC test procedure (default: 10, range: [0 .. 255]) +net: X35 = 3 s Tsns-prov: Guards the SNS procedures (default: 3 s, range: [1 .. 10]) net: X3105 = 17 Ny1: Maximum number of Physical Information (re)transmissions (default: 17) net: X3111 = 4 s Wait time after lchan was released in error (should be T3111 + 2s) (default: 4 s) net: X3113 = 60 s Maximum Paging Request Transmit Delay Threshold: If the estimated transmit delay of the messages in the paging queue surpasses this threshold, then new incoming paging requests will if possible replace a request in retransmission state from the queue or otherwise be discarded, hence limiting the size of the queue and maximum delay of its scheduled requests. X3113 also serves as the upper boundary for dynamic T3113 when estimating the expected maximum delay to get a response (default: 60 s) -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/31880 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: Ie46ec5cb7095bc1dfe3effd0e76d6ccfd6bd2f3f Gerrit-Change-Number: 31880 Gerrit-PatchSet: 1 Gerrit-Owner: arehbein <arehbein(a)sysmocom.de> Gerrit-MessageType: newchange
1 0
0 0
[M] Change in osmo-bsc[master]: Make RLC timing data configurable
by arehbein 13 Mar '23

13 Mar '23
arehbein has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bsc/+/31878 ) Change subject: Make RLC timing data configurable ...................................................................... Make RLC timing data configurable Required change (libosmocore): I1ec2e52ad7fa625c08fe9df04d4a4f5323bf609c Related: OS#5335 Change-Id: I2c24110d8c977d6cc74c3c8e77bcc709ad9d2675 --- M include/osmocom/bsc/bts.h M include/osmocom/bsc/gsm_data.h M src/osmo-bsc/bts.c M src/osmo-bsc/bts_ipaccess_nanobts_omlattr.c M src/osmo-bsc/net_init.c M src/osmo-bsc/pcu_sock.c M tests/nanobts_omlattr/nanobts_omlattr_test.c M tests/timer.vty 8 files changed, 129 insertions(+), 45 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/78/31878/1 diff --git a/include/osmocom/bsc/bts.h b/include/osmocom/bsc/bts.h index 4faf5f2..ed69bd4 100644 --- a/include/osmocom/bsc/bts.h +++ b/include/osmocom/bsc/bts.h @@ -319,6 +319,13 @@ bool features_get_reported; }; +#define GSM_BTS_TDEF_ID_COUNTDOWN_VALUE_NEG26 (-26) +#define GSM_BTS_TDEF_ID_UL_TBF_EXT_NEG27 (-27) +#define GSM_BTS_TDEF_ID_DL_TBF_EXT_NEG28 (-28) +#define GSM_BTS_TDEF_ID_N3101_NEG3169 (-3169) +#define GSM_BTS_TDEF_ID_N3103_NEG3170 (-3170) +#define GSM_BTS_TDEF_ID_N3105_NEG3171 (-3171) + struct gsm_gprs_cell { struct gsm_abis_mo mo; uint16_t bvci; diff --git a/include/osmocom/bsc/gsm_data.h b/include/osmocom/bsc/gsm_data.h index 709a9bf..2bb66c4 100644 --- a/include/osmocom/bsc/gsm_data.h +++ b/include/osmocom/bsc/gsm_data.h @@ -44,6 +44,8 @@ #define GSM_T3124_SDCCH 675UL #define GSM_T3124_OTHER_CH 320UL #define GSM_T3124_MAX GSM_T3124_SDCCH +/* 3GPP TS 04.60 V8.27.0 (2005-09) */ +#define GSM_N3101_STRICT_LOWER_BOUND 8UL /* Some guess for delta (see comment below) */ #define GSM_NY1_REQ_DELTA 1000UL @@ -654,7 +656,6 @@ }; struct gprs_rlc_cfg { - uint16_t parameter[_NUM_NM_RLC_PAR_OFFSET]; struct { uint16_t repeat_time; /* ms */ uint8_t repeat_count; diff --git a/src/osmo-bsc/bts.c b/src/osmo-bsc/bts.c index ce615e6..f78527a 100644 --- a/src/osmo-bsc/bts.c +++ b/src/osmo-bsc/bts.c @@ -121,19 +121,6 @@ static const uint8_t bts_cell_timer_default[] = { 3, 3, 3, 3, 3, 10, 3, 10, 3, 10, 3 }; static const struct gprs_rlc_cfg rlc_cfg_default = { - .parameter = { - [NM_RLC_T3142_OFFSET] = 20, - [NM_RLC_T3169_OFFSET] = 5, - [NM_RLC_T3191_OFFSET] = 5, - [NM_RLC_T3193_OFFSET] = 160, /* 10ms */ - [NM_RLC_T3195_OFFSET] = 5, - [NM_RLC_N3101_OFFSET] = 10, - [NM_RLC_N3103_OFFSET] = 4, - [NM_RLC_N3105_OFFSET] = 8, - [NM_CV_COUNTDOWN_OFFSET] = 15, - [NM_T_DL_TBF_EXT_OFFSET] = 250 * 10, /* ms */ - [NM_T_UL_TBF_EXT_OFFSET] = 250 * 10, /* ms */ - }, .paging = { .repeat_time = 5 * 50, /* ms */ .repeat_count = 3, diff --git a/src/osmo-bsc/bts_ipaccess_nanobts_omlattr.c b/src/osmo-bsc/bts_ipaccess_nanobts_omlattr.c index 1338118..a5252d7 100644 --- a/src/osmo-bsc/bts_ipaccess_nanobts_omlattr.c +++ b/src/osmo-bsc/bts_ipaccess_nanobts_omlattr.c @@ -152,7 +152,7 @@ { struct msgb *msgb; uint8_t buf[256]; - const uint16_t *rlc_cfg_params; + struct osmo_tdef *tdefs = bts->network->T_defs; msgb = msgb_alloc(1024, "nanobts_attr_bts"); if (!msgb) return NULL; @@ -170,17 +170,19 @@ buf[1] = bts->gprs.cell.bvci & 0xff; msgb_tl16v_put(msgb, NM_ATT_IPACC_BVCI, 2, buf); - /* See definition of enum gprs_rlc_par for information on timers/units */ - rlc_cfg_params = bts->gprs.cell.rlc_cfg.parameter; - buf[NM_RLC_T3142_OFFSET] = rlc_cfg_params[NM_RLC_T3142_OFFSET]; - buf[NM_RLC_T3169_OFFSET] = rlc_cfg_params[NM_RLC_T3169_OFFSET]; - buf[NM_RLC_T3191_OFFSET] = rlc_cfg_params[NM_RLC_T3191_OFFSET]; - buf[NM_RLC_T3193_OFFSET] = rlc_cfg_params[NM_RLC_T3193_OFFSET]; - buf[NM_RLC_T3195_OFFSET] = rlc_cfg_params[NM_RLC_T3195_OFFSET]; - buf[NM_RLC_N3101_OFFSET] = rlc_cfg_params[NM_RLC_N3101_OFFSET]; - buf[NM_RLC_N3103_OFFSET] = rlc_cfg_params[NM_RLC_N3103_OFFSET]; - buf[NM_RLC_N3105_OFFSET] = rlc_cfg_params[NM_RLC_N3105_OFFSET]; - buf[NM_CV_COUNTDOWN_OFFSET] = rlc_cfg_params[NM_CV_COUNTDOWN_OFFSET]; + buf[NM_RLC_T3142_OFFSET] = osmo_tdef_get(tdefs, 3142, OSMO_TDEF_S, -1); + buf[NM_RLC_T3169_OFFSET] = osmo_tdef_get(tdefs, 3169, OSMO_TDEF_S, -1); + buf[NM_RLC_T3191_OFFSET] = osmo_tdef_get(tdefs, 3191, OSMO_TDEF_S, -1); + buf[NM_RLC_T3193_OFFSET] = osmo_tdef_get(tdefs, 3193, OSMO_TDEF_MS, -1)/10; + buf[NM_RLC_T3195_OFFSET] = osmo_tdef_get(tdefs, 3195, OSMO_TDEF_S, -1); + buf[NM_RLC_N3101_OFFSET] = + osmo_tdef_get(tdefs, GSM_BTS_TDEF_ID_N3101_NEG3169, OSMO_TDEF_CUSTOM, -1); + buf[NM_RLC_N3103_OFFSET] = + osmo_tdef_get(tdefs, GSM_BTS_TDEF_ID_N3103_NEG3170, OSMO_TDEF_CUSTOM, -1); + buf[NM_RLC_N3105_OFFSET] = + osmo_tdef_get(tdefs, GSM_BTS_TDEF_ID_N3105_NEG3171, OSMO_TDEF_CUSTOM, -1); + buf[NM_CV_COUNTDOWN_OFFSET] = + osmo_tdef_get(tdefs, GSM_BTS_TDEF_ID_COUNTDOWN_VALUE_NEG26, OSMO_TDEF_CUSTOM, -1); msgb_tl16v_put(msgb, NM_ATT_IPACC_RLC_CFG, NM_CV_COUNTDOWN_OFFSET + 1, buf); if (bts->gprs.mode == BTS_GPRS_EGPRS) { @@ -192,10 +194,10 @@ } msgb_tl16v_put(msgb, NM_ATT_IPACC_CODING_SCHEMES, 2, buf); - buf[0] = 0; /* T downlink TBF extension (0..500, high byte) */ - buf[1] = 250; /* T downlink TBF extension (0..500, low byte) */ - buf[2] = 0; /* T uplink TBF extension (0..500, high byte) */ - buf[3] = 250; /* T uplink TBF extension (0..500, low byte) */ + buf[0] = (uint16_t)(osmo_tdef_get(tdefs, GSM_BTS_TDEF_ID_DL_TBF_EXT_NEG28, OSMO_TDEF_MS, -1)/10) >> 8; + buf[1] = (uint16_t)(osmo_tdef_get(tdefs, GSM_BTS_TDEF_ID_DL_TBF_EXT_NEG28, OSMO_TDEF_MS, -1)/10) & 0xff; + buf[2] = (uint16_t)(osmo_tdef_get(tdefs, GSM_BTS_TDEF_ID_UL_TBF_EXT_NEG27, OSMO_TDEF_MS, -1)/10) >> 8; + buf[3] = (uint16_t)(osmo_tdef_get(tdefs, GSM_BTS_TDEF_ID_UL_TBF_EXT_NEG27, OSMO_TDEF_MS, -1)/10) & 0xff; buf[4] = 2; /* CS2 */ msgb_tl16v_put(msgb, NM_ATT_IPACC_RLC_CFG_2, 5, buf); diff --git a/src/osmo-bsc/net_init.c b/src/osmo-bsc/net_init.c index 8a508dd..446a5d5 100644 --- a/src/osmo-bsc/net_init.c +++ b/src/osmo-bsc/net_init.c @@ -19,6 +19,7 @@ #include <osmocom/core/tdef.h> #include <osmocom/gsm/gsm23236.h> +#include <osmocom/gsm/protocol/gsm_12_21.h> #include <osmocom/bsc/osmo_bsc.h> #include <osmocom/bsc/gsm_04_08_rr.h> @@ -26,6 +27,7 @@ #include <osmocom/bsc/chan_alloc.h> #include <osmocom/bsc/neighbor_ident.h> #include <osmocom/bsc/bts_setup_ramp.h> +#include <osmocom/bsc/bts.h> #include <osmocom/bsc/paging.h> static struct osmo_tdef gsm_network_T_defs[] = { @@ -46,6 +48,18 @@ { .T = 3119, .default_val = 10, .desc = "(unused)" }, { .T = 3122, .default_val = GSM_T3122_DEFAULT, .desc = "Wait time after RR Immediate Assignment Reject" }, { .T = 3141, .default_val = 10, .desc = "(unused)" }, + { .T = 3142, .default_val = 20, + .desc = "Used during packet access on CCCH/while in dedicated mode. Started after the receipt of " + "IMMEDIATE ASSIGNMENT REJECT or DTM REJECT or EC IMMEDIATE ASSIGNMENT REJECT", + .max_val = UINT8_MAX }, + { .T = 3169, .default_val = 5, + .desc = "Release radio resource (TFI, USF) timer (linked to N3103, N3103)", .max_val = UINT8_MAX }, + { .T = 3191, .default_val = 5, + .desc = "Downlink TBF Release downlink RLC data block retransmission timer", .max_val = UINT8_MAX }, + { .T = 3193, .default_val = 1600, .desc = "Downlink TBF Release timer", .unit = OSMO_TDEF_MS, + .max_val = UINT8_MAX * 10 }, + { .T = 3195, .default_val = 5, + .desc = "Timer for TFI release on N3105 overflow (unresponsive MS)", .max_val = UINT8_MAX }, { .T = 3212, .default_val = 5, .unit = OSMO_TDEF_CUSTOM, .desc = "Periodic Location Update timer, sent to MS (1 = 6 minutes)" }, { .T = -4, .default_val = 60, .desc = "After Clear Request, wait for MSC to Clear Command (sanity)" }, @@ -74,6 +88,12 @@ " after this amount of idle time, forget internally cumulated time remainders. Zero to always" " keep remainders. See also X16, X17." }, { .T = -25, .default_val = 5, .desc = "Timeout for initial user data after an MSC initiated an SCCP connection to the BSS" }, + { .T = GSM_BTS_TDEF_ID_COUNTDOWN_VALUE_NEG26, .default_val = 15, + .desc = "CV: Countdown value/remaining blocks to transmit", .unit = OSMO_TDEF_CUSTOM, .max_val = UINT8_MAX }, + { .T = GSM_BTS_TDEF_ID_UL_TBF_EXT_NEG27, .default_val = 2500, .desc = "Extended uplink TBF", + .unit = OSMO_TDEF_MS, .max_val = 500 * 10 }, + { .T = GSM_BTS_TDEF_ID_DL_TBF_EXT_NEG28, .default_val = 2500, .desc = "Extended downlink TBF", + .unit = OSMO_TDEF_MS, .max_val = 500 * 10 }, { .T = -3105, .default_val = GSM_NY1_DEFAULT, .unit = OSMO_TDEF_CUSTOM, .desc = "Ny1: Maximum number of Physical Information (re)transmissions" }, { .T = -3111, .default_val = 4, .desc = "Wait time after lchan was released in error (should be T3111 + 2s)" }, @@ -83,6 +103,14 @@ "paging requests will if possible replace a request in retransmission state from the queue or otherwise be discarded, " "hence limiting the size of the queue and maximum delay of its scheduled requests. " "X3113 also serves as the upper boundary for dynamic T3113 when estimating the expected maximum delay to get a response" }, + { .T = GSM_BTS_TDEF_ID_N3101_NEG3169, .default_val = 10, + .desc = "N3101: Maximum USFs without response from the MS", .unit = OSMO_TDEF_CUSTOM, .min_val = GSM_N3101_STRICT_LOWER_BOUND + 1, + .max_val = UINT8_MAX }, + { .T = GSM_BTS_TDEF_ID_N3103_NEG3170, .default_val = 4, + .desc = "N3103: Maximum PACKETĀ UPLINKĀ ACK/NACK messages within a TBF unacknowledged by MS", + .unit = OSMO_TDEF_CUSTOM, .max_val = UINT8_MAX }, + { .T = GSM_BTS_TDEF_ID_N3105_NEG3171, .default_val = 8, + .desc = "N3105: Maximum allocated data blocks without RLC/MAC control reply from MS", .unit = OSMO_TDEF_CUSTOM, .max_val = UINT8_MAX }, { .T = -3210, .default_val = 20, .desc = "After L3 Complete, wait for MSC to confirm" }, {} }; diff --git a/src/osmo-bsc/pcu_sock.c b/src/osmo-bsc/pcu_sock.c index d50c908..c54123e 100644 --- a/src/osmo-bsc/pcu_sock.c +++ b/src/osmo-bsc/pcu_sock.c @@ -170,6 +170,7 @@ struct gsm_bts_sm *bts_sm; struct gsm_gprs_nsvc *nsvc; struct gsm_bts_trx *trx; + struct osmo_tdef *tdefs = bts->network->T_defs; int i; bts_sm = bts->site_mgr; @@ -206,15 +207,19 @@ info_ind->repeat_time = rlcc->paging.repeat_time; info_ind->repeat_count = rlcc->paging.repeat_count; info_ind->bvci = bts->gprs.cell.bvci; - info_ind->t3142 = rlcc->parameter[NM_RLC_T3142_OFFSET]; - info_ind->t3169 = rlcc->parameter[NM_RLC_T3169_OFFSET]; - info_ind->t3191 = rlcc->parameter[NM_RLC_T3191_OFFSET]; - info_ind->t3193_10ms = rlcc->parameter[NM_RLC_T3193_OFFSET]; - info_ind->t3195 = rlcc->parameter[NM_RLC_T3195_OFFSET]; - info_ind->n3101 = rlcc->parameter[NM_RLC_N3101_OFFSET]; - info_ind->n3103 = rlcc->parameter[NM_RLC_N3103_OFFSET]; - info_ind->n3105 = rlcc->parameter[NM_RLC_N3105_OFFSET]; - info_ind->cv_countdown = rlcc->parameter[NM_CV_COUNTDOWN_OFFSET]; + info_ind->t3142 = osmo_tdef_get(tdefs, 3142, OSMO_TDEF_S, -1); + info_ind->t3169 = osmo_tdef_get(tdefs, 3169, OSMO_TDEF_S, -1); + info_ind->t3191 = osmo_tdef_get(tdefs, 3191, OSMO_TDEF_S, -1); + info_ind->t3193_10ms = osmo_tdef_get(tdefs, 3193, OSMO_TDEF_MS, -1)/10; + info_ind->t3195 = osmo_tdef_get(tdefs, 3195, OSMO_TDEF_S, -1); + info_ind->n3101 = + osmo_tdef_get(tdefs, GSM_BTS_TDEF_ID_N3101_NEG3169, OSMO_TDEF_CUSTOM, -1); + info_ind->n3103 = + osmo_tdef_get(tdefs, GSM_BTS_TDEF_ID_N3103_NEG3170, OSMO_TDEF_CUSTOM, -1); + info_ind->n3105 = + osmo_tdef_get(tdefs, GSM_BTS_TDEF_ID_N3105_NEG3171, OSMO_TDEF_CUSTOM, -1); + info_ind->cv_countdown = + osmo_tdef_get(tdefs, GSM_BTS_TDEF_ID_COUNTDOWN_VALUE_NEG26, OSMO_TDEF_CUSTOM, -1); if (rlcc->cs_mask & (1 << GPRS_CS1)) info_ind->flags |= PCU_IF_FLAG_CS1; if (rlcc->cs_mask & (1 << GPRS_CS2)) @@ -244,9 +249,11 @@ info_ind->flags |= PCU_IF_FLAG_MCS9; } /* TODO: isn't dl_tbf_ext wrong?: * 10 and no ntohs */ - info_ind->dl_tbf_ext = rlcc->parameter[NM_T_DL_TBF_EXT_OFFSET]; + info_ind->dl_tbf_ext = + osmo_tdef_get(tdefs, GSM_BTS_TDEF_ID_DL_TBF_EXT_NEG28, OSMO_TDEF_MS, -1); /* TODO: isn't ul_tbf_ext wrong?: * 10 and no ntohs */ - info_ind->ul_tbf_ext = rlcc->parameter[NM_T_UL_TBF_EXT_OFFSET]; + info_ind->ul_tbf_ext = + osmo_tdef_get(tdefs, GSM_BTS_TDEF_ID_UL_TBF_EXT_NEG27, OSMO_TDEF_MS, -1); info_ind->initial_cs = rlcc->initial_cs; info_ind->initial_mcs = rlcc->initial_mcs; diff --git a/tests/nanobts_omlattr/nanobts_omlattr_test.c b/tests/nanobts_omlattr/nanobts_omlattr_test.c index ba58e45..463b364 100644 --- a/tests/nanobts_omlattr/nanobts_omlattr_test.c +++ b/tests/nanobts_omlattr/nanobts_omlattr_test.c @@ -131,6 +131,23 @@ .desc = "Periodic Location Update timer, sent to MS (1 = 6 minutes)" }, { .T = -3105, .default_val = GSM_NY1_DEFAULT, .val = GSM_NY1_DEFAULT, .min_val = 0, .max_val = UINT8_MAX, .unit = OSMO_TDEF_CUSTOM, .desc = "Ny1: Maximum number of Physical Information (re)transmissions" }, + { .T = 3142, .default_val = 20, .desc = "Used during packet access on CCCH/while in dedicated mode. " + "Started after the receipt of IMMEDIATE ASSIGNMENT REJECT or DTM " + "REJECT or EC IMMEDIATE ASSIGNMENT REJECT" }, + { .T = 3169, .default_val = 5, .desc = "Release radio resource (TFI, USF) timer (linked to N3103, N3103)" }, + { .T = 3191, .default_val = 5, .desc = "Downlink TBF Release downlink RLC data block retransmission timer" }, + { .T = 3193, .default_val = 1600, .desc = "Downlink TBF Release timer", .unit = OSMO_TDEF_MS }, + { .T = 3195, .default_val = 5, .desc = "Timer for TFI release on N3105 overflow (unresponsive MS)" }, + { .T = GSM_BTS_TDEF_ID_COUNTDOWN_VALUE_NEG26, .default_val = 15, .desc = "CV: Countdown value/remaining blocks to transmit", + .unit = OSMO_TDEF_CUSTOM, .max_val = UINT8_MAX }, + { .T = GSM_BTS_TDEF_ID_UL_TBF_EXT_NEG27, .default_val = 2500, .desc = "Extended uplink TBF", .unit = OSMO_TDEF_MS }, + { .T = GSM_BTS_TDEF_ID_DL_TBF_EXT_NEG28, .default_val = 2500, .desc = "Extended downlink TBF", .unit = OSMO_TDEF_MS }, + { .T = GSM_BTS_TDEF_ID_N3101_NEG3169, .default_val = 10, .desc = "N3101: Maximum USFs without response from the MS", .unit = OSMO_TDEF_CUSTOM, + .min_val = GSM_N3101_STRICT_LOWER_BOUND + 1 }, + { .T = GSM_BTS_TDEF_ID_N3103_NEG3170, .default_val = 4, .desc = "N3103: Maximum PACKETĀ UPLINKĀ ACK/NACK messages within a TBF unacknowledged by MS", + .unit = OSMO_TDEF_CUSTOM}, + { .T = GSM_BTS_TDEF_ID_N3105_NEG3171, .default_val = 8, .desc = "N3105: Maximum allocated data blocks without RLC/MAC control reply from MS", + .unit = OSMO_TDEF_CUSTOM }, {} }; @@ -150,7 +167,7 @@ /* Allocate environmental structs (bts, net, trx) */ net = talloc_zero(ctx, struct gsm_network); INIT_LLIST_HEAD(&net->bts_list); - net->T_defs = gsm_network_T_defs; + osmo_tdefs_reset(net->T_defs = gsm_network_T_defs); gsm_bts_model_register(&bts_model_nanobts); bts = gsm_bts_alloc_register(net, GSM_BTS_TYPE_NANOBTS, 63); OSMO_ASSERT(bts); @@ -208,9 +225,10 @@ bts->gprs.mode = BTS_GPRS_GPRS; uint8_t attr_cell_expected[] = { 0x9a, 0x00, 0x01, 0x00, 0x9c, 0x00, 0x02, 0x05, 0x03, 0x9e, 0x00, - 0x02, 0x00, 0x02, 0xa3, 0x00, 0x09, 0x14, 0x05, 0x05, 0xa0, - 0x05, 0x0a, 0x04, 0x08, - 0x0f, 0xa8, 0x00, 0x02, 0x0f, 0x00, 0xa9, 0x00, 0x05, 0x00, + 0x02, 0x00, 0x02, 0xa3, 0x00, 0x09, + /* T3142, T3169, T3191, T3193/10, T3195, N3101, N3103, N3105, CV */ + 0x14, 0x05, 0x05, 0xa0, 0x05, 0x0a, 0x04, 0x08, 0x0f, + 0xa8, 0x00, 0x02, 0x0f, 0x00, 0xa9, 0x00, 0x05, 0x00, 0xfa, 0x00, 0xfa, 0x02 }; diff --git a/tests/timer.vty b/tests/timer.vty index 6d6efe8..8772d5a 100644 --- a/tests/timer.vty +++ b/tests/timer.vty @@ -18,6 +18,11 @@ net: T3119 = 10 s (unused) (default: 10 s) net: T3122 = 10 s Wait time after RR Immediate Assignment Reject (default: 10 s) net: T3141 = 10 s (unused) (default: 10 s) +net: T3142 = 20 s Used during packet access on CCCH/while in dedicated mode. Started after the receipt of IMMEDIATE ASSIGNMENT REJECT or DTM REJECT or EC IMMEDIATE ASSIGNMENT REJECT (default: 20 s, range: [0 .. 255]) +net: T3169 = 5 s Release radio resource (TFI, USF) timer (linked to N3103, N3103) (default: 5 s, range: [0 .. 255]) +net: T3191 = 5 s Downlink TBF Release downlink RLC data block retransmission timer (default: 5 s, range: [0 .. 255]) +net: T3193 = 1600 ms Downlink TBF Release timer (default: 1600 ms, range: [0 .. 2550]) +net: T3195 = 5 s Timer for TFI release on N3105 overflow (unresponsive MS) (default: 5 s, range: [0 .. 255]) net: T3212 = 5 Periodic Location Update timer, sent to MS (1 = 6 minutes) (default: 5) net: X4 = 60 s After Clear Request, wait for MSC to Clear Command (sanity) (default: 60 s) net: X5 = 5 s Timeout to switch dynamic timeslot PCHAN modes (default: 5 s) @@ -34,9 +39,15 @@ net: X17 = 0 ms Rounding threshold for all_allocated:* rate counters: round up to the next counter increment after this many milliseconds. If set to half of X16 (or 0), employ the usual round() behavior: round up after half of a granularity period. If set to 1, behave like ceil(): already increment the counter immediately when all channels are allocated. If set >= X16, behave like floor(): only increment after a full X16 period of all channels being occupied. See also X16, X18 (default: 0 ms) net: X18 = 60000 ms Forget-sum period for all_allocated:* rate counters: after this amount of idle time, forget internally cumulated time remainders. Zero to always keep remainders. See also X16, X17. (default: 60000 ms) net: X25 = 5 s Timeout for initial user data after an MSC initiated an SCCP connection to the BSS (default: 5 s) +net: X26 = 15 CV: Countdown value/remaining blocks to transmit (default: 15, range: [0 .. 255]) +net: X27 = 2500 ms Extended uplink TBF (default: 2500 ms, range: [0 .. 5000]) +net: X28 = 2500 ms Extended downlink TBF (default: 2500 ms, range: [0 .. 5000]) net: X3105 = 17 Ny1: Maximum number of Physical Information (re)transmissions (default: 17) net: X3111 = 4 s Wait time after lchan was released in error (should be T3111 + 2s) (default: 4 s) net: X3113 = 60 s Maximum Paging Request Transmit Delay Threshold: If the estimated transmit delay of the messages in the paging queue surpasses this threshold, then new incoming paging requests will if possible replace a request in retransmission state from the queue or otherwise be discarded, hence limiting the size of the queue and maximum delay of its scheduled requests. X3113 also serves as the upper boundary for dynamic T3113 when estimating the expected maximum delay to get a response (default: 60 s) +net: X3169 = 10 N3101: Maximum USFs without response from the MS (default: 10, range: [9 .. 255]) +net: X3170 = 4 N3103: Maximum PACKETĀ UPLINKĀ ACK/NACK messages within a TBF unacknowledged by MS (default: 4, range: [0 .. 255]) +net: X3171 = 8 N3105: Maximum allocated data blocks without RLC/MAC control reply from MS (default: 8, range: [0 .. 255]) net: X3210 = 20 s After L3 Complete, wait for MSC to confirm (default: 20 s) mgw: X2427 = 5 s timeout for MGCP response from MGW (default: 5 s) @@ -74,6 +85,11 @@ net: T3119 = 10 s (unused) (default: 10 s) net: T3122 = 10 s Wait time after RR Immediate Assignment Reject (default: 10 s) net: T3141 = 10 s (unused) (default: 10 s) +net: T3142 = 20 s Used during packet access on CCCH/while in dedicated mode. Started after the receipt of IMMEDIATE ASSIGNMENT REJECT or DTM REJECT or EC IMMEDIATE ASSIGNMENT REJECT (default: 20 s, range: [0 .. 255]) +net: T3169 = 5 s Release radio resource (TFI, USF) timer (linked to N3103, N3103) (default: 5 s, range: [0 .. 255]) +net: T3191 = 5 s Downlink TBF Release downlink RLC data block retransmission timer (default: 5 s, range: [0 .. 255]) +net: T3193 = 1600 ms Downlink TBF Release timer (default: 1600 ms, range: [0 .. 2550]) +net: T3195 = 5 s Timer for TFI release on N3105 overflow (unresponsive MS) (default: 5 s, range: [0 .. 255]) net: T3212 = 5 Periodic Location Update timer, sent to MS (1 = 6 minutes) (default: 5) net: X4 = 60 s After Clear Request, wait for MSC to Clear Command (sanity) (default: 60 s) net: X5 = 5 s Timeout to switch dynamic timeslot PCHAN modes (default: 5 s) @@ -90,9 +106,15 @@ net: X17 = 0 ms Rounding threshold for all_allocated:* rate counters: round up to the next counter increment after this many milliseconds. If set to half of X16 (or 0), employ the usual round() behavior: round up after half of a granularity period. If set to 1, behave like ceil(): already increment the counter immediately when all channels are allocated. If set >= X16, behave like floor(): only increment after a full X16 period of all channels being occupied. See also X16, X18 (default: 0 ms) net: X18 = 60000 ms Forget-sum period for all_allocated:* rate counters: after this amount of idle time, forget internally cumulated time remainders. Zero to always keep remainders. See also X16, X17. (default: 60000 ms) net: X25 = 5 s Timeout for initial user data after an MSC initiated an SCCP connection to the BSS (default: 5 s) +net: X26 = 15 CV: Countdown value/remaining blocks to transmit (default: 15, range: [0 .. 255]) +net: X27 = 2500 ms Extended uplink TBF (default: 2500 ms, range: [0 .. 5000]) +net: X28 = 2500 ms Extended downlink TBF (default: 2500 ms, range: [0 .. 5000]) net: X3105 = 17 Ny1: Maximum number of Physical Information (re)transmissions (default: 17) net: X3111 = 4 s Wait time after lchan was released in error (should be T3111 + 2s) (default: 4 s) net: X3113 = 60 s Maximum Paging Request Transmit Delay Threshold: If the estimated transmit delay of the messages in the paging queue surpasses this threshold, then new incoming paging requests will if possible replace a request in retransmission state from the queue or otherwise be discarded, hence limiting the size of the queue and maximum delay of its scheduled requests. X3113 also serves as the upper boundary for dynamic T3113 when estimating the expected maximum delay to get a response (default: 60 s) +net: X3169 = 10 N3101: Maximum USFs without response from the MS (default: 10, range: [9 .. 255]) +net: X3170 = 4 N3103: Maximum PACKETĀ UPLINKĀ ACK/NACK messages within a TBF unacknowledged by MS (default: 4, range: [0 .. 255]) +net: X3171 = 8 N3105: Maximum allocated data blocks without RLC/MAC control reply from MS (default: 8, range: [0 .. 255]) net: X3210 = 20 s After L3 Complete, wait for MSC to confirm (default: 20 s) mgw: X2427 = 5 s timeout for MGCP response from MGW (default: 5 s) -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/31878 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I2c24110d8c977d6cc74c3c8e77bcc709ad9d2675 Gerrit-Change-Number: 31878 Gerrit-PatchSet: 1 Gerrit-Owner: arehbein <arehbein(a)sysmocom.de> Gerrit-MessageType: newchange
1 0
0 0
[S] Change in libosmocore[master]: gm_12_21.h: Add cross-component parameter defaults (RLC)
by arehbein 13 Mar '23

13 Mar '23
arehbein has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmocore/+/31876 ) Change subject: gm_12_21.h: Add cross-component parameter defaults (RLC) ...................................................................... gm_12_21.h: Add cross-component parameter defaults (RLC) These defaults are communicated via OML, but are also set as defaults in osmo-bsc and osmo-bts Related: OS#5335 Change-Id: Ie83a0160aed303e2a6d1a90e581770d1087b22ed --- M include/osmocom/gsm/protocol/gsm_12_21.h 1 file changed, 31 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/76/31876/1 diff --git a/include/osmocom/gsm/protocol/gsm_12_21.h b/include/osmocom/gsm/protocol/gsm_12_21.h index 8373d27..4fe90bd 100644 --- a/include/osmocom/gsm/protocol/gsm_12_21.h +++ b/include/osmocom/gsm/protocol/gsm_12_21.h @@ -288,6 +288,24 @@ _NUM_NM_RLC_PAR_OFFSET }; +/* ! Network parameter defaults that should be known by multiple network components. + * These are communicated via OML, but defaults are set regardless of that in each + * component. Units in seconds/OSMO_TDEF_CUSTOM unless suffixed otherwise. */ +enum abis_nm_par_defaults { + NM_PAR_T3142_DEFAULT = 20, + NM_PAR_T3169_DEFAULT = 5, + NM_PAR_T3191_DEFAULT = 5, + NM_PAR_T3193_DEFAULT_MSEC = 1600, + NM_PAR_T3195_DEFAULT = 5, + NM_PAR_COUNTDOWN_VALUE_DEFAULT = 15, + NM_PAR_UL_TBF_EXT_DEFAULT_MSEC = 2500, + NM_PAR_DL_TBF_EXT_DEFAULT_MSEC = 2500, + NM_PAR_N3101_DEFAULT = 10, + NM_PAR_N3103_DEFAULT = 4, + NM_PAR_N3105_DEFAULT = 8, + /* TODO: Add more default values to unify defaults across components (e.g. Ny1) */ +}; + /*! OML Probable Cause (Section 9.4.43) Manufacturer specific values */ enum abis_mm_event_causes { /* Critical causes */ -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/31876 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ie83a0160aed303e2a6d1a90e581770d1087b22ed Gerrit-Change-Number: 31876 Gerrit-PatchSet: 1 Gerrit-Owner: arehbein <arehbein(a)sysmocom.de> Gerrit-MessageType: newchange
1 0
0 0
[S] Change in libosmocore[master]: gm_12_21.h: Add cross-component parameter defaults (NSE timing)
by arehbein 13 Mar '23

13 Mar '23
arehbein has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmocore/+/31877 ) Change subject: gm_12_21.h: Add cross-component parameter defaults (NSE timing) ...................................................................... gm_12_21.h: Add cross-component parameter defaults (NSE timing) These defaults are communicated via OML, but are also set as defaults in osmo-bsc and osmo-bts Related: OS#5335 Change-Id: I51d1fd8b596523ae2ac8fb6a186ce7a702334c27 --- M include/osmocom/gsm/protocol/gsm_12_21.h 1 file changed, 22 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/77/31877/1 diff --git a/include/osmocom/gsm/protocol/gsm_12_21.h b/include/osmocom/gsm/protocol/gsm_12_21.h index 4fe90bd..af5df35 100644 --- a/include/osmocom/gsm/protocol/gsm_12_21.h +++ b/include/osmocom/gsm/protocol/gsm_12_21.h @@ -303,9 +303,19 @@ NM_PAR_N3101_DEFAULT = 10, NM_PAR_N3103_DEFAULT = 4, NM_PAR_N3105_DEFAULT = 8, + NM_PAR_TNS_BLOCK_DEFAULT = 3, + NM_PAR_TNS_BLOCK_RETRIES_DEFAULT = 3, + NM_PAR_TNS_RESET_DEFAULT = 3, + NM_PAR_TNS_RESET_RETRIES_DEFAULT = 3, + NM_PAR_TNS_TEST_DEFAULT = 30, + NM_PAR_TNS_ALIVE_RETRIES_DEFAULT = 10, + NM_PAR_TSNS_PROV_DEFAULT = 3, /* TODO: Add more default values to unify defaults across components (e.g. Ny1) */ }; +/* Constant per 3GPP TS 48.016 v16, Table 11.1 */ +#define NM_PAR_TNS_ALIVE 3 + /*! OML Probable Cause (Section 9.4.43) Manufacturer specific values */ enum abis_mm_event_causes { /* Critical causes */ -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/31877 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I51d1fd8b596523ae2ac8fb6a186ce7a702334c27 Gerrit-Change-Number: 31877 Gerrit-PatchSet: 1 Gerrit-Owner: arehbein <arehbein(a)sysmocom.de> Gerrit-MessageType: newchange
1 0
0 0
[S] Change in osmocom-bb[master]: virt_phy: avoid confusion between RSSI (dBm) and RxLev (0..63)
by fixeria 13 Mar '23

13 Mar '23
fixeria has submitted this change. ( https://gerrit.osmocom.org/c/osmocom-bb/+/31850 ) Change subject: virt_phy: avoid confusion between RSSI (dBm) and RxLev (0..63) ...................................................................... virt_phy: avoid confusion between RSSI (dBm) and RxLev (0..63) Change-Id: I4f2982cd8fa1b7a47f983c9cd11bf0180f7878ec Related: OS#5500 --- M src/host/virt_phy/include/osmocom/bb/virtphy/l1ctl_sap.h M src/host/virt_phy/src/gsmtapl1_if.c M src/host/virt_phy/src/virt_prim_data.c M src/host/virt_phy/src/virt_prim_traffic.c 4 files changed, 22 insertions(+), 12 deletions(-) Approvals: laforge: Looks good to me, approved pespin: Looks good to me, approved msuraev: Looks good to me, but someone else must approve Jenkins Builder: Verified diff --git a/src/host/virt_phy/include/osmocom/bb/virtphy/l1ctl_sap.h b/src/host/virt_phy/include/osmocom/bb/virtphy/l1ctl_sap.h index e77de84..724d238 100644 --- a/src/host/virt_phy/include/osmocom/bb/virtphy/l1ctl_sap.h +++ b/src/host/virt_phy/include/osmocom/bb/virtphy/l1ctl_sap.h @@ -64,12 +64,12 @@ void l1ctl_tx_data_conf(struct l1_model_ms *ms, uint32_t fn, uint16_t snr, uint16_t arfcn); void l1ctl_tx_data_ind(struct l1_model_ms *ms, struct msgb *msg, uint16_t arfcn, uint8_t link_id, uint8_t chan_nr, uint32_t fn, uint8_t snr, - uint8_t signal_dbm, uint8_t num_biterr, + uint8_t rxlev, uint8_t num_biterr, uint8_t fire_crc); void l1ctl_tx_traffic_conf(struct l1_model_ms *ms, uint32_t fn, uint16_t snr, uint16_t arfcn); void l1ctl_tx_traffic_ind(struct l1_model_ms *ms, struct msgb *msg, uint16_t arfcn, uint8_t link_id, uint8_t chan_nr, uint32_t fn, uint8_t snr, - uint8_t signal_dbm, uint8_t num_biterr, + uint8_t rxlev, uint8_t num_biterr, uint8_t fire_crc); void l1ctl_tx_pm_conf(struct l1_model_ms *ms, struct l1ctl_pm_req *pm_req); void l1ctl_tx_fbsb_conf(struct l1_model_ms *ms, uint8_t res, uint16_t arfcn); diff --git a/src/host/virt_phy/src/gsmtapl1_if.c b/src/host/virt_phy/src/gsmtapl1_if.c index 719d370..f5c49af 100644 --- a/src/host/virt_phy/src/gsmtapl1_if.c +++ b/src/host/virt_phy/src/gsmtapl1_if.c @@ -84,7 +84,7 @@ struct gsmtap_hdr *gh; struct msgb *outmsg; /* msg to send with gsmtap header prepended */ uint16_t arfcn; - uint8_t signal_dbm = 63; /* signal strength */ + uint8_t signal_dbm = rxlev2dbm(63); /* signal strength */ uint8_t snr = 63; /* signal noise ratio, 63 is best */ uint8_t *data = msgb_l2(msg); /* data to transmit (whole message without l1 header) */ uint8_t data_len = msgb_l2len(msg); /* length of data */ @@ -242,7 +242,7 @@ uint8_t snr_db) { struct l1_model_ms *ms = lsc->priv; - uint8_t signal_dbm = dbm2rxlev(prim_pm_set_sig_strength(ms, arfcn & GSMTAP_ARFCN_MASK, MAX_SIG_LEV_DBM)); /* Power measurement with each received massage */ + uint8_t rxlev = dbm2rxlev(prim_pm_set_sig_strength(ms, arfcn & GSMTAP_ARFCN_MASK, MAX_SIG_LEV_DBM)); uint8_t usf; gsm_fn2gsmtime(&ms->state.downlink_time, fn); @@ -281,7 +281,7 @@ * the timeslot and subslot is fitting */ if (ms->state.dedicated.tn == timeslot && ms->state.dedicated.subslot == subslot) { - l1ctl_tx_data_ind(ms, msg, arfcn, link_id, chan_nr, fn, snr_db, signal_dbm, 0, 0); + l1ctl_tx_data_ind(ms, msg, arfcn, link_id, chan_nr, fn, snr_db, rxlev, 0, 0); } break; case GSMTAP_CHANNEL_VOICE_F: @@ -291,7 +291,7 @@ if (ms->state.dedicated.tn == timeslot && ms->state.dedicated.subslot == subslot) { l1ctl_tx_traffic_ind(ms, msg, arfcn, link_id, chan_nr, fn, - snr_db, signal_dbm, 0, 0); + snr_db, rxlev, 0, 0); } break; case GSMTAP_CHANNEL_CBCH51: @@ -305,7 +305,7 @@ case GSMTAP_CHANNEL_CBCH52: /* save to just forward here, as upper layer ignores messages that * do not fit the current state (e.g. gsm48_rr.c:2159) */ - l1ctl_tx_data_ind(ms, msg, arfcn, link_id, chan_nr, fn, snr_db, signal_dbm, 0, 0); + l1ctl_tx_data_ind(ms, msg, arfcn, link_id, chan_nr, fn, snr_db, rxlev, 0, 0); break; case GSMTAP_CHANNEL_RACH: LOGPMS(DVIRPHY, LOGL_NOTICE, ms, "Ignoring unexpected RACH in downlink ?!?\n"); @@ -313,7 +313,7 @@ case GSMTAP_CHANNEL_PACCH: case GSMTAP_CHANNEL_PDCH: if (gprs_dl_block_matches_ms(ms, msg, timeslot)) - l1ctl_tx_data_ind(ms, msg, arfcn, link_id, chan_nr, fn, snr_db, signal_dbm, 0, 0); + l1ctl_tx_data_ind(ms, msg, arfcn, link_id, chan_nr, fn, snr_db, rxlev, 0, 0); usf = get_usf_from_block(msg); ms_ul_tbf_may_transmit(ms, arfcn, timeslot, fn, usf); break; diff --git a/src/host/virt_phy/src/virt_prim_data.c b/src/host/virt_phy/src/virt_prim_data.c index d63a532..d889791 100644 --- a/src/host/virt_phy/src/virt_prim_data.c +++ b/src/host/virt_phy/src/virt_prim_data.c @@ -78,7 +78,7 @@ void l1ctl_tx_data_ind(struct l1_model_ms *ms, struct msgb *msg, uint16_t arfcn, uint8_t link_id, uint8_t chan_nr, uint32_t fn, uint8_t snr, - uint8_t signal_dbm, uint8_t num_biterr, uint8_t fire_crc) + uint8_t rxlev, uint8_t num_biterr, uint8_t fire_crc) { struct msgb *l1ctl_msg = NULL; struct l1ctl_data_ind * l1di; @@ -94,7 +94,7 @@ l1dl->chan_nr = chan_nr; l1dl->frame_nr = htonl(fn); l1dl->snr = snr; - l1dl->rx_level = signal_dbm; + l1dl->rx_level = rxlev; l1dl->num_biterr = 0; /* no biterrors */ l1dl->fire_crc = 0; diff --git a/src/host/virt_phy/src/virt_prim_traffic.c b/src/host/virt_phy/src/virt_prim_traffic.c index 3468931..778d67a 100644 --- a/src/host/virt_phy/src/virt_prim_traffic.c +++ b/src/host/virt_phy/src/virt_prim_traffic.c @@ -75,7 +75,7 @@ } void l1ctl_tx_traffic_ind(struct l1_model_ms *ms, struct msgb *msg, uint16_t arfcn, uint8_t link_id, - uint8_t chan_nr, uint32_t fn, uint8_t snr, uint8_t signal_dbm, + uint8_t chan_nr, uint32_t fn, uint8_t snr, uint8_t rxlev, uint8_t num_biterr, uint8_t fire_crc) { struct msgb *l1ctl_msg = NULL; @@ -95,7 +95,7 @@ l1dl->chan_nr = chan_nr; l1dl->frame_nr = htonl(fn); l1dl->snr = snr; - l1dl->rx_level = signal_dbm; + l1dl->rx_level = rxlev; l1dl->num_biterr = 0; /* no biterrors */ l1dl->fire_crc = 0; -- To view, visit https://gerrit.osmocom.org/c/osmocom-bb/+/31850 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmocom-bb Gerrit-Branch: master Gerrit-Change-Id: I4f2982cd8fa1b7a47f983c9cd11bf0180f7878ec Gerrit-Change-Number: 31850 Gerrit-PatchSet: 4 Gerrit-Owner: fixeria <vyanitskiy(a)sysmocom.de> Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria <vyanitskiy(a)sysmocom.de> Gerrit-Reviewer: laforge <laforge(a)osmocom.org> Gerrit-Reviewer: msuraev <msuraev(a)sysmocom.de> Gerrit-Reviewer: pespin <pespin(a)sysmocom.de> Gerrit-MessageType: merged
1 0
0 0
  • ← Newer
  • 1
  • ...
  • 182
  • 183
  • 184
  • 185
  • 186
  • 187
  • 188
  • ...
  • 365
  • Older →

HyperKitty Powered by HyperKitty version 1.3.12.