Change in osmo-pcu[master]: Fix configuration of initial_(m)cs
laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/21032 ) Change subject: Fix configuration of initial_(m)cs .. Fix configuration of initial_(m)cs Properly clip initial_(m)cs values to be lower-equal than maximum configured. Regarding initial_mcs, use values provided by BTS, which were not used before. Change-Id: Ifc6bc7c2734d1ae404adc2497afec5366e4f9e50 --- M src/bts.h M src/pcu_l1_if.cpp M src/pcu_vty.c 3 files changed, 43 insertions(+), 18 deletions(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved diff --git a/src/bts.h b/src/bts.h index 9f2f898..4d5d0df 100644 --- a/src/bts.h +++ b/src/bts.h @@ -115,10 +115,11 @@ uint8_t initial_cs_dl, initial_cs_ul; uint8_t initial_mcs_dl, initial_mcs_ul; struct { /* Config Values set by VTY */ + bool force_initial_cs; /* false=use from BTS true=use from VTY */ + bool force_initial_mcs; /* false=use from BTS true=use from VTY */ uint8_t max_cs_dl, max_cs_ul; uint8_t max_mcs_dl, max_mcs_ul; } vty; - uint8_t force_cs; /* 0=use from BTS 1=use from VTY */ uint16_t force_llc_lifetime; /* overrides lifetime from SGSN */ uint32_t llc_discard_csec; uint32_t llc_idle_ack_csec; diff --git a/src/pcu_l1_if.cpp b/src/pcu_l1_if.cpp index 738d0f1..a984591 100644 --- a/src/pcu_l1_if.cpp +++ b/src/pcu_l1_if.cpp @@ -633,14 +633,38 @@ } bts_set_max_mcs(bts, bts->vty.max_mcs_dl, bts->vty.max_mcs_ul); /* recalc max MCS values */ - LOGP(DL1IF, LOGL_DEBUG, " initial_cs=%d\n", info_ind->initial_cs); - LOGP(DL1IF, LOGL_DEBUG, " initial_mcs=%d\n", info_ind->initial_mcs); - if (!bts->force_cs) { - if (info_ind->initial_cs < 1 || info_ind->initial_cs > 4) - bts->initial_cs_dl = 1; - else - bts->initial_cs_dl = info_ind->initial_cs; - bts->initial_cs_ul = bts->initial_cs_dl; + LOGP(DL1IF, LOGL_DEBUG, " initial_cs=%u%s\n", info_ind->initial_cs, +bts->vty.force_initial_cs ? " (VTY forced, ignoring)" : ""); + if (!bts->vty.force_initial_cs) { + if (info_ind->initial_cs > bts->bts->max_cs_dl()) { + LOGP(DL1IF, LOGL_DEBUG, " downgrading initial_cs_dl to %d\n", bts->bts->max_cs_dl()); + bts->initial_cs_dl = bts->bts->max_cs_dl(); + } else { + bts->initial_cs_dl = info_ind->initial_cs; + } + if (info_ind->initial_cs > bts->bts->max_cs_ul()) { + LOGP(DL1IF, LOGL_DEBUG, " downgrading initial_cs_ul to %d\n", bts->bts->max_cs_ul()); + bts->initial_cs_ul = bts->bts->max_cs_ul(); + } else { + bts->initial_cs_ul = info_ind->initial_cs; + } + } + + LOGP(DL1IF, LOGL_DEBUG, " initial_mcs=%u%s\n", info_ind->initial_mcs, +bts->vty.force_initial_mcs ? " (VTY forced, ignoring)" : ""); + if (!bts->vty.force_initial_mcs) { + if (info_ind->initial_mcs > bts->bts->max_mcs_dl()) { + LOGP(DL1IF, LOGL_DEBUG, " downgrading initial_mcs_dl to %d\n", bts->bts->max_mcs_dl()); + bts->initial_mcs_dl = bts->bts->max_mcs_dl(); + } else { + bts->initial_mcs_dl = info_ind->initial_mcs; + } + if (info_ind->initial_mcs > bts->bts->max_mcs_ul()) { + LOGP(DL1IF, LOGL_DEBUG, " downgrading initial_mcs_ul to %d\n", bts->bts->max_mcs_ul()); + bts->initial_mcs_ul = bts->bts->max_mcs_ul(); + } else { + bts->initial_mcs_ul = info_ind->initial_mcs; + } } pcu = gprs_bssgp_init( diff --git a/src/pcu_vty.c b/src/pcu_vty.c index 5e5dfbe..bf45686 100644 --- a/src/pcu_vty.c +++ b/src/pcu_vty.c @@ -122,7 +122,7 @@ if (bts->fc_ms_leak_rate) vty_out(vty, " flow-control force-ms-leak-rate %d%s", bts->fc_ms_leak_rate, VTY_NEWLINE); - if (bts->force_cs) { + if (bts->vty.force_initial_cs) { if (bts->initial_cs_ul == bts->initial_cs_dl) vty_out(vty, " cs %d%s", bts->initial_cs_dl, VTY_NEWLINE); @@ -179,7 +179,7 @@ bts->mcs_lqual_ranges[8].low, VTY_NEWLINE); - if (bts->initial_mcs_dl != 1 && bts->initial_mcs_ul != 1) { + if (bts->vty.force_initial_mcs) { if (bts->initial_mcs_ul == bts->initial_mcs_dl) vty_out(vty, " mcs %d%s", bts->initial_mcs_dl, VTY_NEWLINE); @@ -449,7 +449,7 @@ struct gprs_rlcmac_bts *bts = bts_main_data();
Change in osmo-pcu[master]: Fix configuration of initial_(m)cs
laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/21032 ) Change subject: Fix configuration of initial_(m)cs .. Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/21032 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: Ifc6bc7c2734d1ae404adc2497afec5366e4f9e50 Gerrit-Change-Number: 21032 Gerrit-PatchSet: 2 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Mon, 09 Nov 2020 11:00:26 + Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment
Change in osmo-pcu[master]: Fix configuration of initial_(m)cs
laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/21032 ) Change subject: Fix configuration of initial_(m)cs .. Patch Set 2: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/21032 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: Ifc6bc7c2734d1ae404adc2497afec5366e4f9e50 Gerrit-Change-Number: 21032 Gerrit-PatchSet: 2 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Fri, 06 Nov 2020 10:33:00 + Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment
Change in osmo-pcu[master]: Fix configuration of initial_(m)cs
pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-pcu/+/21032 ) Change subject: Fix configuration of initial_(m)cs .. Fix configuration of initial_(m)cs Properly clip initial_(m)cs values to be lower-equal than maximum configured. Regarding initial_mcs, use values provided by BTS, which were not used before. Change-Id: Ifc6bc7c2734d1ae404adc2497afec5366e4f9e50 --- M src/bts.h M src/pcu_l1_if.cpp M src/pcu_vty.c 3 files changed, 43 insertions(+), 18 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-pcu refs/changes/32/21032/1 diff --git a/src/bts.h b/src/bts.h index 9f2f898..4d5d0df 100644 --- a/src/bts.h +++ b/src/bts.h @@ -115,10 +115,11 @@ uint8_t initial_cs_dl, initial_cs_ul; uint8_t initial_mcs_dl, initial_mcs_ul; struct { /* Config Values set by VTY */ + bool force_initial_cs; /* false=use from BTS true=use from VTY */ + bool force_initial_mcs; /* false=use from BTS true=use from VTY */ uint8_t max_cs_dl, max_cs_ul; uint8_t max_mcs_dl, max_mcs_ul; } vty; - uint8_t force_cs; /* 0=use from BTS 1=use from VTY */ uint16_t force_llc_lifetime; /* overrides lifetime from SGSN */ uint32_t llc_discard_csec; uint32_t llc_idle_ack_csec; diff --git a/src/pcu_l1_if.cpp b/src/pcu_l1_if.cpp index 738d0f1..a984591 100644 --- a/src/pcu_l1_if.cpp +++ b/src/pcu_l1_if.cpp @@ -633,14 +633,38 @@ } bts_set_max_mcs(bts, bts->vty.max_mcs_dl, bts->vty.max_mcs_ul); /* recalc max MCS values */ - LOGP(DL1IF, LOGL_DEBUG, " initial_cs=%d\n", info_ind->initial_cs); - LOGP(DL1IF, LOGL_DEBUG, " initial_mcs=%d\n", info_ind->initial_mcs); - if (!bts->force_cs) { - if (info_ind->initial_cs < 1 || info_ind->initial_cs > 4) - bts->initial_cs_dl = 1; - else - bts->initial_cs_dl = info_ind->initial_cs; - bts->initial_cs_ul = bts->initial_cs_dl; + LOGP(DL1IF, LOGL_DEBUG, " initial_cs=%u%s\n", info_ind->initial_cs, +bts->vty.force_initial_cs ? " (VTY forced, ignoring)" : ""); + if (!bts->vty.force_initial_cs) { + if (info_ind->initial_cs > bts->bts->max_cs_dl()) { + LOGP(DL1IF, LOGL_DEBUG, " downgrading initial_cs_dl to %d\n", bts->bts->max_cs_dl()); + bts->initial_cs_dl = bts->bts->max_cs_dl(); + } else { + bts->initial_cs_dl = info_ind->initial_cs; + } + if (info_ind->initial_cs > bts->bts->max_cs_ul()) { + LOGP(DL1IF, LOGL_DEBUG, " downgrading initial_cs_ul to %d\n", bts->bts->max_cs_ul()); + bts->initial_cs_ul = bts->bts->max_cs_ul(); + } else { + bts->initial_cs_ul = info_ind->initial_cs; + } + } + + LOGP(DL1IF, LOGL_DEBUG, " initial_mcs=%u%s\n", info_ind->initial_mcs, +bts->vty.force_initial_mcs ? " (VTY forced, ignoring)" : ""); + if (!bts->vty.force_initial_mcs) { + if (info_ind->initial_mcs > bts->bts->max_mcs_dl()) { + LOGP(DL1IF, LOGL_DEBUG, " downgrading initial_mcs_dl to %d\n", bts->bts->max_mcs_dl()); + bts->initial_mcs_dl = bts->bts->max_mcs_dl(); + } else { + bts->initial_mcs_dl = info_ind->initial_mcs; + } + if (info_ind->initial_mcs > bts->bts->max_mcs_ul()) { + LOGP(DL1IF, LOGL_DEBUG, " downgrading initial_mcs_ul to %d\n", bts->bts->max_mcs_ul()); + bts->initial_mcs_ul = bts->bts->max_mcs_ul(); + } else { + bts->initial_mcs_ul = info_ind->initial_mcs; + } } pcu = gprs_bssgp_init( diff --git a/src/pcu_vty.c b/src/pcu_vty.c index 5e5dfbe..bf45686 100644 --- a/src/pcu_vty.c +++ b/src/pcu_vty.c @@ -122,7 +122,7 @@ if (bts->fc_ms_leak_rate) vty_out(vty, " flow-control force-ms-leak-rate %d%s", bts->fc_ms_leak_rate, VTY_NEWLINE); - if (bts->force_cs) { + if (bts->vty.force_initial_cs) { if (bts->initial_cs_ul == bts->initial_cs_dl) vty_out(vty, " cs %d%s", bts->initial_cs_dl, VTY_NEWLINE); @@ -179,7 +179,7 @@ bts->mcs_lqual_ranges[8].low, VTY_NEWLINE); - if (bts->initial_mcs_dl != 1 && bts->initial_mcs_ul != 1) { + if (bts->vty.force_initial_mcs) { if (bts->initial_mcs_ul == bts->initial_mcs_dl) vty_out(vty, " mcs %d%s", bts->initial_mcs_dl, VTY_NEWLINE); @@ -449,7 +449,7 @@ struct gprs_rlcmac_bts *bts = bts_main