arehbein has uploaded this change for review.
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 change 31882. To unsubscribe, or for help writing mail filters, visit settings.