[MERGED] osmo-pcu[master]: Simplify TS alloc: adjust allocator signatures
Max has submitted this change and it was merged. Change subject: Simplify TS alloc: adjust allocator signatures .. Simplify TS alloc: adjust allocator signatures * drop unused parameters (from both functions and structs) * document used parameters and return values * tighten types used for parameters * use consistent formatting Tests are adjusted accordingly but test results are left untouched to avoid regressions. Change-Id: I39d81ab64ff790b9c4c2d0312a574485cd83e755 Related: OS#2282 --- M src/bts.h M src/gprs_rlcmac.h M src/gprs_rlcmac_ts_alloc.cpp M src/tbf.cpp M src/tbf.h M src/tbf_dl.cpp M tests/alloc/AllocTest.cpp 7 files changed, 59 insertions(+), 60 deletions(-) Approvals: Harald Welte: Looks good to me, approved Jenkins Builder: Verified diff --git a/src/bts.h b/src/bts.h index b1724c9..8d3a3cc 100644 --- a/src/bts.h +++ b/src/bts.h @@ -203,11 +203,9 @@ struct gsmtap_inst *gsmtap; uint32_t gsmtap_categ_mask; struct gprs_rlcmac_trx trx[8]; - int (*alloc_algorithm)(struct gprs_rlcmac_bts *bts, - struct GprsMs *ms, - struct gprs_rlcmac_tbf *tbf, uint32_t cust, uint8_t single, - int use_tbf); - uint32_t alloc_algorithm_curst; /* options to customize algorithm */ + int (*alloc_algorithm)(struct gprs_rlcmac_bts *bts, struct GprsMs *ms, struct gprs_rlcmac_tbf *tbf, + bool single, int8_t use_tbf); + uint8_t force_two_phase; uint8_t alpha, gamma; uint8_t egprs_enabled; diff --git a/src/gprs_rlcmac.h b/src/gprs_rlcmac.h index 64b6d6c..33dd9fd 100644 --- a/src/gprs_rlcmac.h +++ b/src/gprs_rlcmac.h @@ -21,6 +21,8 @@ #ifndef GPRS_RLCMAC_H #define GPRS_RLCMAC_H +#include + #ifdef __cplusplus #include #include @@ -100,20 +102,14 @@ extern "C" { #endif -int alloc_algorithm_a(struct gprs_rlcmac_bts *bts, - struct GprsMs *ms, - struct gprs_rlcmac_tbf *tbf, uint32_t cust, uint8_t single, - int use_trx); +int alloc_algorithm_a(struct gprs_rlcmac_bts *bts, struct GprsMs *ms, struct gprs_rlcmac_tbf *tbf, bool single, + int8_t use_trx); -int alloc_algorithm_b(struct gprs_rlcmac_bts *bts, - struct GprsMs *ms, - struct gprs_rlcmac_tbf *tbf, uint32_t cust, uint8_t single, - int use_trx); +int alloc_algorithm_b(struct gprs_rlcmac_bts *bts, struct GprsMs *ms, struct gprs_rlcmac_tbf *tbf, bool single, + int8_t use_trx); -int alloc_algorithm_dynamic(struct gprs_rlcmac_bts *bts, - struct GprsMs *ms, - struct gprs_rlcmac_tbf *tbf, uint32_t cust, uint8_t single, - int use_trx); +int alloc_algorithm_dynamic(struct gprs_rlcmac_bts *bts, struct GprsMs *ms, struct gprs_rlcmac_tbf *tbf, bool single, + int8_t use_trx); #ifdef __cplusplus } #endif diff --git a/src/gprs_rlcmac_ts_alloc.cpp b/src/gprs_rlcmac_ts_alloc.cpp index b5edf05..cd82ca7 100644 --- a/src/gprs_rlcmac_ts_alloc.cpp +++ b/src/gprs_rlcmac_ts_alloc.cpp @@ -351,14 +351,19 @@ return tfi; } -/* Slot Allocation: Algorithm A +/*! Slot Allocation: Algorithm A * * Assign single slot for uplink and downlink + * + * \param[in,out] bts Pointer to BTS struct + * \param[in,out] ms_ Pointer to MS object + * \param[in,out] tbf_ Pointer to TBF struct + * \param[in] single flag indicating if we should force single-slot allocation + * \param[in] use_trx which TRX to use or -1 if it should be selected during allocation + * \returns negative error code or 0 on success */ -int alloc_algorithm_a(struct gprs_rlcmac_bts *bts, - GprsMs *ms_, - struct gprs_rlcmac_tbf *tbf_, uint32_t cust, uint8_t single, - int use_trx) +int alloc_algorithm_a(struct gprs_rlcmac_bts *bts, GprsMs *ms_, struct gprs_rlcmac_tbf *tbf_, bool single, + int8_t use_trx) { struct gprs_rlcmac_pdch *pdch; int ts = -1; @@ -725,15 +730,20 @@ return 0; } -/* Slot Allocation: Algorithm B +/*! Slot Allocation: Algorithm B * * Assign as many downlink slots as possible. * Assign one uplink slot. (With free USF) * + * \param[in,out] bts Pointer to BTS struct + * \param[in,out] ms_ Pointer to MS object + * \param[in,out] tbf_ Pointer to TBF struct + * \param[in] single flag indicating if we should force single-slot allocation + * \param[in] use_trx which TRX to use or -1 if it should be selected during allocation + * \returns negative error code or 0 on success */ -int alloc_algorithm_b(struct gprs_rlcmac_bts *bts, - GprsMs *ms_, struct gprs_rlcmac_tbf *tbf_, - uint32_t cust, uint8_t single, int use_trx) +int alloc_algorithm_b(struct gprs_rlcmac_bts *bts, GprsMs *ms_, struct gprs_rlcmac_tbf *tbf_, bool single, + int8_t use_trx) { uint8_t dl_slots; uint8_t ul_slots; @@ -954,7 +964,7 @@ return 0; } -/* Slot
osmo-pcu[master]: Simplify TS alloc: adjust allocator signatures
Patch Set 12: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/3807 To unsubscribe, visit https://gerrit.osmocom.org/settings Gerrit-MessageType: comment Gerrit-Change-Id: I39d81ab64ff790b9c4c2d0312a574485cd83e755 Gerrit-PatchSet: 12 Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Owner: MaxGerrit-Reviewer: Harald Welte Gerrit-Reviewer: Holger Freyther Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: Neels Hofmeyr Gerrit-Reviewer: Stefan Sperling Gerrit-HasComments: No
[PATCH] osmo-pcu[master]: Simplify TS alloc: adjust allocator signatures
Hello Harald Welte, Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/3807 to look at the new patch set (#12). Simplify TS alloc: adjust allocator signatures * drop unused parameters (from both functions and structs) * document used parameters and return values * tighten types used for parameters * use consistent formatting Tests are adjusted accordingly but test results are left untouched to avoid regressions. Change-Id: I39d81ab64ff790b9c4c2d0312a574485cd83e755 Related: OS#2282 --- M src/bts.h M src/gprs_rlcmac.h M src/gprs_rlcmac_ts_alloc.cpp M src/tbf.cpp M src/tbf.h M src/tbf_dl.cpp M tests/alloc/AllocTest.cpp 7 files changed, 59 insertions(+), 60 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-pcu refs/changes/07/3807/12 diff --git a/src/bts.h b/src/bts.h index b1724c9..8d3a3cc 100644 --- a/src/bts.h +++ b/src/bts.h @@ -203,11 +203,9 @@ struct gsmtap_inst *gsmtap; uint32_t gsmtap_categ_mask; struct gprs_rlcmac_trx trx[8]; - int (*alloc_algorithm)(struct gprs_rlcmac_bts *bts, - struct GprsMs *ms, - struct gprs_rlcmac_tbf *tbf, uint32_t cust, uint8_t single, - int use_tbf); - uint32_t alloc_algorithm_curst; /* options to customize algorithm */ + int (*alloc_algorithm)(struct gprs_rlcmac_bts *bts, struct GprsMs *ms, struct gprs_rlcmac_tbf *tbf, + bool single, int8_t use_tbf); + uint8_t force_two_phase; uint8_t alpha, gamma; uint8_t egprs_enabled; diff --git a/src/gprs_rlcmac.h b/src/gprs_rlcmac.h index 64b6d6c..33dd9fd 100644 --- a/src/gprs_rlcmac.h +++ b/src/gprs_rlcmac.h @@ -21,6 +21,8 @@ #ifndef GPRS_RLCMAC_H #define GPRS_RLCMAC_H +#include + #ifdef __cplusplus #include #include @@ -100,20 +102,14 @@ extern "C" { #endif -int alloc_algorithm_a(struct gprs_rlcmac_bts *bts, - struct GprsMs *ms, - struct gprs_rlcmac_tbf *tbf, uint32_t cust, uint8_t single, - int use_trx); +int alloc_algorithm_a(struct gprs_rlcmac_bts *bts, struct GprsMs *ms, struct gprs_rlcmac_tbf *tbf, bool single, + int8_t use_trx); -int alloc_algorithm_b(struct gprs_rlcmac_bts *bts, - struct GprsMs *ms, - struct gprs_rlcmac_tbf *tbf, uint32_t cust, uint8_t single, - int use_trx); +int alloc_algorithm_b(struct gprs_rlcmac_bts *bts, struct GprsMs *ms, struct gprs_rlcmac_tbf *tbf, bool single, + int8_t use_trx); -int alloc_algorithm_dynamic(struct gprs_rlcmac_bts *bts, - struct GprsMs *ms, - struct gprs_rlcmac_tbf *tbf, uint32_t cust, uint8_t single, - int use_trx); +int alloc_algorithm_dynamic(struct gprs_rlcmac_bts *bts, struct GprsMs *ms, struct gprs_rlcmac_tbf *tbf, bool single, + int8_t use_trx); #ifdef __cplusplus } #endif diff --git a/src/gprs_rlcmac_ts_alloc.cpp b/src/gprs_rlcmac_ts_alloc.cpp index b5edf05..cd82ca7 100644 --- a/src/gprs_rlcmac_ts_alloc.cpp +++ b/src/gprs_rlcmac_ts_alloc.cpp @@ -351,14 +351,19 @@ return tfi; } -/* Slot Allocation: Algorithm A +/*! Slot Allocation: Algorithm A * * Assign single slot for uplink and downlink + * + * \param[in,out] bts Pointer to BTS struct + * \param[in,out] ms_ Pointer to MS object + * \param[in,out] tbf_ Pointer to TBF struct + * \param[in] single flag indicating if we should force single-slot allocation + * \param[in] use_trx which TRX to use or -1 if it should be selected during allocation + * \returns negative error code or 0 on success */ -int alloc_algorithm_a(struct gprs_rlcmac_bts *bts, - GprsMs *ms_, - struct gprs_rlcmac_tbf *tbf_, uint32_t cust, uint8_t single, - int use_trx) +int alloc_algorithm_a(struct gprs_rlcmac_bts *bts, GprsMs *ms_, struct gprs_rlcmac_tbf *tbf_, bool single, + int8_t use_trx) { struct gprs_rlcmac_pdch *pdch; int ts = -1; @@ -725,15 +730,20 @@ return 0; } -/* Slot Allocation: Algorithm B +/*! Slot Allocation: Algorithm B * * Assign as many downlink slots as possible. * Assign one uplink slot. (With free USF) * + * \param[in,out] bts Pointer to BTS struct + * \param[in,out] ms_ Pointer to MS object + * \param[in,out] tbf_ Pointer to TBF struct + * \param[in] single flag indicating if we should force single-slot allocation + * \param[in] use_trx which TRX to use or -1 if it should be selected during allocation + * \returns negative error code or 0 on success */ -int alloc_algorithm_b(struct gprs_rlcmac_bts *bts, - GprsMs *ms_, struct gprs_rlcmac_tbf *tbf_, - uint32_t cust, uint8_t single, int use_trx) +int alloc_algorithm_b(struct gprs_rlcmac_bts *bts, GprsMs *ms_, struct gprs_rlcmac_tbf *tbf_, bool single, + int8_t use_trx) { uint8_t dl_slots; uint8_t ul_slots; @@ -954,7 +964,7 @@ return 0; } -/* Slot Allocation: Algorithm dynamic +/*!
[PATCH] osmo-pcu[master]: Simplify TS alloc: adjust allocator signatures
Hello Harald Welte, Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/3807 to look at the new patch set (#10). Simplify TS alloc: adjust allocator signatures * drop unused parameters (from both functions and structs) * document used parameters and return values * tighten types used for parameters * use consistent formatting Tests are adjusted accordingly but test results are left untouched to avoid regressions. Change-Id: I39d81ab64ff790b9c4c2d0312a574485cd83e755 Related: OS#228 --- M src/bts.h M src/gprs_rlcmac.h M src/gprs_rlcmac_ts_alloc.cpp M src/tbf.cpp M src/tbf.h M src/tbf_dl.cpp M tests/alloc/AllocTest.cpp 7 files changed, 59 insertions(+), 60 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-pcu refs/changes/07/3807/10 diff --git a/src/bts.h b/src/bts.h index 1d13a64..0ce5123 100644 --- a/src/bts.h +++ b/src/bts.h @@ -205,11 +205,9 @@ struct gsmtap_inst *gsmtap; uint32_t gsmtap_categ_mask; struct gprs_rlcmac_trx trx[8]; - int (*alloc_algorithm)(struct gprs_rlcmac_bts *bts, - struct GprsMs *ms, - struct gprs_rlcmac_tbf *tbf, uint32_t cust, uint8_t single, - int use_tbf); - uint32_t alloc_algorithm_curst; /* options to customize algorithm */ + int (*alloc_algorithm)(struct gprs_rlcmac_bts *bts, struct GprsMs *ms, struct gprs_rlcmac_tbf *tbf, + bool single, int8_t use_tbf); + uint8_t force_two_phase; uint8_t alpha, gamma; uint8_t egprs_enabled; diff --git a/src/gprs_rlcmac.h b/src/gprs_rlcmac.h index be1e686..c16a954 100644 --- a/src/gprs_rlcmac.h +++ b/src/gprs_rlcmac.h @@ -21,6 +21,8 @@ #ifndef GPRS_RLCMAC_H #define GPRS_RLCMAC_H +#include + #ifdef __cplusplus #include #include @@ -98,20 +100,14 @@ extern "C" { #endif -int alloc_algorithm_a(struct gprs_rlcmac_bts *bts, - struct GprsMs *ms, - struct gprs_rlcmac_tbf *tbf, uint32_t cust, uint8_t single, - int use_trx); +int alloc_algorithm_a(struct gprs_rlcmac_bts *bts, struct GprsMs *ms, struct gprs_rlcmac_tbf *tbf, bool single, + int8_t use_trx); -int alloc_algorithm_b(struct gprs_rlcmac_bts *bts, - struct GprsMs *ms, - struct gprs_rlcmac_tbf *tbf, uint32_t cust, uint8_t single, - int use_trx); +int alloc_algorithm_b(struct gprs_rlcmac_bts *bts, struct GprsMs *ms, struct gprs_rlcmac_tbf *tbf, bool single, + int8_t use_trx); -int alloc_algorithm_dynamic(struct gprs_rlcmac_bts *bts, - struct GprsMs *ms, - struct gprs_rlcmac_tbf *tbf, uint32_t cust, uint8_t single, - int use_trx); +int alloc_algorithm_dynamic(struct gprs_rlcmac_bts *bts, struct GprsMs *ms, struct gprs_rlcmac_tbf *tbf, bool single, + int8_t use_trx); #ifdef __cplusplus } #endif diff --git a/src/gprs_rlcmac_ts_alloc.cpp b/src/gprs_rlcmac_ts_alloc.cpp index 3b596f4..9ceceb2 100644 --- a/src/gprs_rlcmac_ts_alloc.cpp +++ b/src/gprs_rlcmac_ts_alloc.cpp @@ -396,14 +396,19 @@ return tfi; } -/* Slot Allocation: Algorithm A +/*! Slot Allocation: Algorithm A * * Assign single slot for uplink and downlink + * + * \param[in,out] bts Pointer to BTS struct + * \param[in,out] ms_ Pointer to MS object + * \param[in,out] tbf_ Pointer to TBF struct + * \param[in] single flag indicating if we should force single-slot allocation + * \param[in] use_trx which TRX to use or -1 if it should be selected during allocation + * \returns negative error code or 0 on success */ -int alloc_algorithm_a(struct gprs_rlcmac_bts *bts, - GprsMs *ms_, - struct gprs_rlcmac_tbf *tbf_, uint32_t cust, uint8_t single, - int use_trx) +int alloc_algorithm_a(struct gprs_rlcmac_bts *bts, GprsMs *ms_, struct gprs_rlcmac_tbf *tbf_, bool single, + int8_t use_trx) { struct gprs_rlcmac_pdch *pdch; int ts = -1; @@ -796,15 +801,20 @@ return 0; } -/* Slot Allocation: Algorithm B +/*! Slot Allocation: Algorithm B * * Assign as many downlink slots as possible. * Assign one uplink slot. (With free USF) * + * \param[in,out] bts Pointer to BTS struct + * \param[in,out] ms_ Pointer to MS object + * \param[in,out] tbf_ Pointer to TBF struct + * \param[in] single flag indicating if we should force single-slot allocation + * \param[in] use_trx which TRX to use or -1 if it should be selected during allocation + * \returns negative error code or 0 on success */ -int alloc_algorithm_b(struct gprs_rlcmac_bts *bts, - GprsMs *ms_, struct gprs_rlcmac_tbf *tbf_, - uint32_t cust, uint8_t single, int use_trx) +int alloc_algorithm_b(struct gprs_rlcmac_bts *bts, GprsMs *ms_, struct gprs_rlcmac_tbf *tbf_, bool single, + int8_t use_trx) { uint8_t dl_slots; uint8_t ul_slots; @@ -1025,7 +1035,7 @@ return 0; } -/* Slot Allocation: Algorithm dynamic +/*!
osmo-pcu[master]: Simplify TS alloc: adjust allocator signatures
Patch Set 8: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/3807 To unsubscribe, visit https://gerrit.osmocom.org/settings Gerrit-MessageType: comment Gerrit-Change-Id: I39d81ab64ff790b9c4c2d0312a574485cd83e755 Gerrit-PatchSet: 8 Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Owner: MaxGerrit-Reviewer: Harald Welte Gerrit-Reviewer: Holger Freyther Gerrit-Reviewer: Jenkins Builder Gerrit-HasComments: No
[PATCH] osmo-pcu[master]: Simplify TS alloc: adjust allocator signatures
Hello Harald Welte, Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/3807 to look at the new patch set (#8). Simplify TS alloc: adjust allocator signatures * drop unused parameters (from both functions and structs) * document used parameters and return values * tighten types used for parameters * use consistent formatting Tests are adjusted accordingly but test results are left untouched to avoid regressions. Change-Id: I39d81ab64ff790b9c4c2d0312a574485cd83e755 Related: OS#2282 --- M src/bts.cpp M src/bts.h M src/gprs_rlcmac.h M src/gprs_rlcmac_ts_alloc.cpp M src/tbf.cpp M src/tbf.h M src/tbf_dl.cpp M tests/alloc/AllocTest.cpp M tests/tbf/TbfTest.cpp 9 files changed, 84 insertions(+), 91 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-pcu refs/changes/07/3807/8 diff --git a/src/bts.cpp b/src/bts.cpp index b768569..1284f11 100644 --- a/src/bts.cpp +++ b/src/bts.cpp @@ -652,12 +652,11 @@ /* FIXME: Copy and paste with other routines.. */ if (is_11bit) { - tbf = tbf_alloc_ul_tbf(_bts, NULL, -1, 0, - ms_class, 1); + tbf = tbf_alloc_ul_tbf(_bts, NULL, -1, 0, ms_class, true); } else { /* set class to 0, since we don't know the multislot * class yet */ - tbf = tbf_alloc_ul_tbf(_bts, NULL, -1, 0, 0, 1); + tbf = tbf_alloc_ul_tbf(_bts, NULL, -1, 0, 0, true); } if (!tbf) { diff --git a/src/bts.h b/src/bts.h index d65cd2f..f15ca22 100644 --- a/src/bts.h +++ b/src/bts.h @@ -204,11 +204,9 @@ struct gsmtap_inst *gsmtap; uint32_t gsmtap_categ_mask; struct gprs_rlcmac_trx trx[8]; - int (*alloc_algorithm)(struct gprs_rlcmac_bts *bts, - struct GprsMs *ms, - struct gprs_rlcmac_tbf *tbf, uint32_t cust, uint8_t single, - int use_tbf); - uint32_t alloc_algorithm_curst; /* options to customize algorithm */ + int (*alloc_algorithm)(struct gprs_rlcmac_bts *bts, struct GprsMs *ms, struct gprs_rlcmac_tbf *tbf, + bool single, int8_t use_tbf); + uint8_t force_two_phase; uint8_t alpha, gamma; uint8_t egprs_enabled; diff --git a/src/gprs_rlcmac.h b/src/gprs_rlcmac.h index be1e686..c16a954 100644 --- a/src/gprs_rlcmac.h +++ b/src/gprs_rlcmac.h @@ -21,6 +21,8 @@ #ifndef GPRS_RLCMAC_H #define GPRS_RLCMAC_H +#include + #ifdef __cplusplus #include #include @@ -98,20 +100,14 @@ extern "C" { #endif -int alloc_algorithm_a(struct gprs_rlcmac_bts *bts, - struct GprsMs *ms, - struct gprs_rlcmac_tbf *tbf, uint32_t cust, uint8_t single, - int use_trx); +int alloc_algorithm_a(struct gprs_rlcmac_bts *bts, struct GprsMs *ms, struct gprs_rlcmac_tbf *tbf, bool single, + int8_t use_trx); -int alloc_algorithm_b(struct gprs_rlcmac_bts *bts, - struct GprsMs *ms, - struct gprs_rlcmac_tbf *tbf, uint32_t cust, uint8_t single, - int use_trx); +int alloc_algorithm_b(struct gprs_rlcmac_bts *bts, struct GprsMs *ms, struct gprs_rlcmac_tbf *tbf, bool single, + int8_t use_trx); -int alloc_algorithm_dynamic(struct gprs_rlcmac_bts *bts, - struct GprsMs *ms, - struct gprs_rlcmac_tbf *tbf, uint32_t cust, uint8_t single, - int use_trx); +int alloc_algorithm_dynamic(struct gprs_rlcmac_bts *bts, struct GprsMs *ms, struct gprs_rlcmac_tbf *tbf, bool single, + int8_t use_trx); #ifdef __cplusplus } #endif diff --git a/src/gprs_rlcmac_ts_alloc.cpp b/src/gprs_rlcmac_ts_alloc.cpp index 57197b2..4ce2fa6 100644 --- a/src/gprs_rlcmac_ts_alloc.cpp +++ b/src/gprs_rlcmac_ts_alloc.cpp @@ -396,14 +396,19 @@ return tfi; } -/* Slot Allocation: Algorithm A +/*! Slot Allocation: Algorithm A * * Assign single slot for uplink and downlink + * + * \param[in,out] bts Pointer to BTS struct + * \param[in,out] ms_ Pointer to MS object + * \param[in,out] tbf_ Pointer to TBF struct + * \param[in] single flag indicating if we should force single-slot allocation + * \param[in] use_trx which TRX to use or -1 if it should be selected during allocation + * \returns negative error code or 0 on success */ -int alloc_algorithm_a(struct gprs_rlcmac_bts *bts, - GprsMs *ms_, - struct gprs_rlcmac_tbf *tbf_, uint32_t cust, uint8_t single, - int use_trx) +int alloc_algorithm_a(struct gprs_rlcmac_bts *bts, GprsMs *ms_, struct gprs_rlcmac_tbf *tbf_, bool single, + int8_t use_trx) { struct gprs_rlcmac_pdch *pdch; int ts = -1; @@ -796,15 +801,20 @@ return 0; } -/* Slot Allocation: Algorithm B +/*! Slot Allocation: Algorithm B * * Assign as many downlink slots as possible. * Assign one uplink slot. (With free USF) * + *
osmo-pcu[master]: Simplify TS alloc: adjust allocator signatures
Patch Set 7: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/3807 To unsubscribe, visit https://gerrit.osmocom.org/settings Gerrit-MessageType: comment Gerrit-Change-Id: I39d81ab64ff790b9c4c2d0312a574485cd83e755 Gerrit-PatchSet: 7 Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Owner: MaxGerrit-Reviewer: Harald Welte Gerrit-Reviewer: Holger Freyther Gerrit-Reviewer: Jenkins Builder Gerrit-HasComments: No
[PATCH] osmo-pcu[master]: Simplify TS alloc: adjust allocator signatures
Hello Harald Welte, Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/3807 to look at the new patch set (#7). Simplify TS alloc: adjust allocator signatures * drop unused parameters (from both functions and structs) * document used parameters and return values * tighten types used for parameters * use consistent formatting Tests are adjusted accordingly but test results are left untouched to avoid regressions. Change-Id: I39d81ab64ff790b9c4c2d0312a574485cd83e755 Related: OS#2282 --- M src/bts.cpp M src/bts.h M src/gprs_rlcmac.h M src/gprs_rlcmac_ts_alloc.cpp M src/tbf.cpp M src/tbf.h M src/tbf_dl.cpp M tests/alloc/AllocTest.cpp M tests/tbf/TbfTest.cpp 9 files changed, 87 insertions(+), 91 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-pcu refs/changes/07/3807/7 diff --git a/src/bts.cpp b/src/bts.cpp index b768569..1284f11 100644 --- a/src/bts.cpp +++ b/src/bts.cpp @@ -652,12 +652,11 @@ /* FIXME: Copy and paste with other routines.. */ if (is_11bit) { - tbf = tbf_alloc_ul_tbf(_bts, NULL, -1, 0, - ms_class, 1); + tbf = tbf_alloc_ul_tbf(_bts, NULL, -1, 0, ms_class, true); } else { /* set class to 0, since we don't know the multislot * class yet */ - tbf = tbf_alloc_ul_tbf(_bts, NULL, -1, 0, 0, 1); + tbf = tbf_alloc_ul_tbf(_bts, NULL, -1, 0, 0, true); } if (!tbf) { diff --git a/src/bts.h b/src/bts.h index d65cd2f..e4b1c23 100644 --- a/src/bts.h +++ b/src/bts.h @@ -204,11 +204,9 @@ struct gsmtap_inst *gsmtap; uint32_t gsmtap_categ_mask; struct gprs_rlcmac_trx trx[8]; - int (*alloc_algorithm)(struct gprs_rlcmac_bts *bts, - struct GprsMs *ms, - struct gprs_rlcmac_tbf *tbf, uint32_t cust, uint8_t single, - int use_tbf); - uint32_t alloc_algorithm_curst; /* options to customize algorithm */ + int (*alloc_algorithm)(struct gprs_rlcmac_bts *bts, struct GprsMs *ms, struct gprs_rlcmac_tbf *tbf, + bool single, int8_t use_tbf, bool enable_debug); + uint8_t force_two_phase; uint8_t alpha, gamma; uint8_t egprs_enabled; diff --git a/src/gprs_rlcmac.h b/src/gprs_rlcmac.h index be1e686..0616069 100644 --- a/src/gprs_rlcmac.h +++ b/src/gprs_rlcmac.h @@ -21,6 +21,8 @@ #ifndef GPRS_RLCMAC_H #define GPRS_RLCMAC_H +#include + #ifdef __cplusplus #include #include @@ -98,20 +100,14 @@ extern "C" { #endif -int alloc_algorithm_a(struct gprs_rlcmac_bts *bts, - struct GprsMs *ms, - struct gprs_rlcmac_tbf *tbf, uint32_t cust, uint8_t single, - int use_trx); +int alloc_algorithm_a(struct gprs_rlcmac_bts *bts, struct GprsMs *ms, struct gprs_rlcmac_tbf *tbf, bool single, + int8_t use_trx, bool enable_debug); -int alloc_algorithm_b(struct gprs_rlcmac_bts *bts, - struct GprsMs *ms, - struct gprs_rlcmac_tbf *tbf, uint32_t cust, uint8_t single, - int use_trx); +int alloc_algorithm_b(struct gprs_rlcmac_bts *bts, struct GprsMs *ms, struct gprs_rlcmac_tbf *tbf, bool single, + int8_t use_trx, bool enable_debug); -int alloc_algorithm_dynamic(struct gprs_rlcmac_bts *bts, - struct GprsMs *ms, - struct gprs_rlcmac_tbf *tbf, uint32_t cust, uint8_t single, - int use_trx); +int alloc_algorithm_dynamic(struct gprs_rlcmac_bts *bts, struct GprsMs *ms, struct gprs_rlcmac_tbf *tbf, bool single, + int8_t use_trx, bool enable_debug); #ifdef __cplusplus } #endif diff --git a/src/gprs_rlcmac_ts_alloc.cpp b/src/gprs_rlcmac_ts_alloc.cpp index 57197b2..14d9e17 100644 --- a/src/gprs_rlcmac_ts_alloc.cpp +++ b/src/gprs_rlcmac_ts_alloc.cpp @@ -396,14 +396,20 @@ return tfi; } -/* Slot Allocation: Algorithm A +/*! Slot Allocation: Algorithm A * * Assign single slot for uplink and downlink + * + * \param[in,out] bts Pointer to BTS struct + * \param[in,out] ms_ Pointer to MS object + * \param[in,out] tbf_ Pointer to TBF struct + * \param[in] single flag indicating if we should force single-slot allocation + * \param[in] use_trx which TRX to use or -1 if it should be selected during allocation + * \param[in] enable_debug Flag to enable excessive logging not suitable for production run but necessary for tests + * \returns negative error code or 0 on success */ -int alloc_algorithm_a(struct gprs_rlcmac_bts *bts, - GprsMs *ms_, - struct gprs_rlcmac_tbf *tbf_, uint32_t cust, uint8_t single, - int use_trx) +int alloc_algorithm_a(struct gprs_rlcmac_bts *bts, GprsMs *ms_, struct gprs_rlcmac_tbf *tbf_, bool single, + int8_t use_trx, bool enable_debug) { struct gprs_rlcmac_pdch *pdch; int ts = -1; @@ -796,15