dexter has uploaded this change for review. ( 
https://gerrit.osmocom.org/c/osmo-bsc/+/21164 )


Change subject: bts: add repeated acch mode flags + vty config
......................................................................

bts: add repeated acch mode flags + vty config

To be able to control the FACCH/SACCH repetition behavior inside the
BTS a one byte flag is sent to the BTS together with the
RSL_IE_OSMO_REP_ACCH_CAP IE.

Related: SYS#5114, OS#4796, OS#4794, OS#4795
Change-Id: I083eaa2c30478912426e9c24a506f0b88836e190
---
M include/osmocom/bsc/bts.h
M src/osmo-bsc/bsc_vty.c
2 files changed, 121 insertions(+), 0 deletions(-)



  git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/64/21164/1

diff --git a/include/osmocom/bsc/bts.h b/include/osmocom/bsc/bts.h
index fd2ac32..de49ce1 100644
--- a/include/osmocom/bsc/bts.h
+++ b/include/osmocom/bsc/bts.h
@@ -480,6 +480,9 @@

        struct llist_head oml_fail_rep;
        struct llist_head chan_rqd_queue;
+
+       /* osmocom specific FACCH/SACCH repetition mode flags */
+       uint8_t repeated_acch_capability_bts;
 };

 #define GSM_BTS_SI2Q(bts, i)   (struct gsm48_system_information_type_2quater 
*)((bts)->si_buf[SYSINFO_TYPE_2quater][i])
diff --git a/src/osmo-bsc/bsc_vty.c b/src/osmo-bsc/bsc_vty.c
index c3d6658..17b33b4 100644
--- a/src/osmo-bsc/bsc_vty.c
+++ b/src/osmo-bsc/bsc_vty.c
@@ -1115,6 +1115,15 @@

        ho_vty_write_bts(vty, bts);

+       if ((bts->repeated_acch_capability_bts & 0x03) == 0x01)
+               vty_out(vty, "  repeat dl-facch command%s", VTY_NEWLINE);
+       else if ((bts->repeated_acch_capability_bts & 0x03) == 0x03)
+               vty_out(vty, "  repeat dl-facch all%s", VTY_NEWLINE);
+       if (bts->repeated_acch_capability_bts & 0x04)
+               vty_out(vty, "  repeat dl-sacch%s", VTY_NEWLINE);
+       if (bts->repeated_acch_capability_bts & 0x08)
+               vty_out(vty, "  repeat ul-sacch%s", VTY_NEWLINE);
+
        config_write_bts_model(vty, bts);
 }

@@ -2621,6 +2630,108 @@
        return CMD_SUCCESS;
 }

+#define REP_ACCH_STR "FACCH/SACCH repetition\n"
+
+DEFUN_ATTR(cfg_bts_rep_dl_facch,
+          cfg_bts_rep_dl_facch_cmd,
+          "repeat dl-facch (command|all)",
+          REP_ACCH_STR
+          "Enable DL-FACCH repetition for this BTS\n"
+          "command LAPDm frames only\n"
+          "all LAPDm frames\n", CMD_ATTR_IMMEDIATE)
+{
+       struct gsm_bts *bts = vty->index;
+
+       if (bts->model->type != GSM_BTS_TYPE_OSMOBTS) {
+               vty_out(vty, "%% repeated ACCH not supported by this BTS%s",
+                       VTY_NEWLINE);
+               CMD_WARNING;
+       }
+
+       if (argv[0][0] == 'c') {
+               bts->repeated_acch_capability_bts |= 0x01;
+               bts->repeated_acch_capability_bts &= ~0x02;
+       } else
+               bts->repeated_acch_capability_bts |= 0x03;
+
+       return CMD_SUCCESS;
+}
+
+DEFUN_ATTR(cfg_bts_rep_no_dl_facch,
+          cfg_bts_rep_no_dl_facch_cmd,
+          "no repeat dl-facch",
+          NO_STR REP_ACCH_STR
+          "Disable DL-FACCH repetition for this BTS\n", CMD_ATTR_IMMEDIATE)
+{
+       struct gsm_bts *bts = vty->index;
+       bts->repeated_acch_capability_bts &= ~0x03;
+       return CMD_SUCCESS;
+}
+
+DEFUN_ATTR(cfg_bts_rep_dl_sacch,
+          cfg_bts_rep_dl_sacch_cmd,
+          "repeat dl-sacch",
+          REP_ACCH_STR
+          "Enable DL-SACCH repetition for this BTS\n", CMD_ATTR_IMMEDIATE)
+{
+       struct gsm_bts *bts = vty->index;
+
+       if (bts->model->type != GSM_BTS_TYPE_OSMOBTS) {
+               vty_out(vty, "%% repeated ACCH not supported by this BTS%s",
+                       VTY_NEWLINE);
+               CMD_WARNING;
+       }
+
+       bts->repeated_acch_capability_bts |= 0x04;
+
+       return CMD_SUCCESS;
+}
+
+DEFUN_ATTR(cfg_bts_rep_no_dl_sacch,
+          cfg_bts_rep_no_dl_sacch_cmd,
+          "no repeat dl-sacch",
+          NO_STR REP_ACCH_STR
+          "Disable DL-SACCH repetition for this BTS\n", CMD_ATTR_IMMEDIATE)
+{
+       struct gsm_bts *bts = vty->index;
+
+       bts->repeated_acch_capability_bts &= ~0x04;
+
+       return CMD_SUCCESS;
+}
+
+DEFUN_ATTR(cfg_bts_rep_ul_sacch,
+          cfg_bts_rep_ul_sacch_cmd,
+          "repeat ul-sacch",
+          REP_ACCH_STR
+          "Enable UL-SACCH repetition for this BTS\n", CMD_ATTR_IMMEDIATE)
+{
+       struct gsm_bts *bts = vty->index;
+
+       if (bts->model->type != GSM_BTS_TYPE_OSMOBTS) {
+               vty_out(vty, "%% repeated ACCH not supported by this BTS%s",
+                       VTY_NEWLINE);
+               CMD_WARNING;
+       }
+
+       bts->repeated_acch_capability_bts |= 0x08;
+
+       return CMD_SUCCESS;
+}
+
+DEFUN_ATTR(cfg_bts_rep_no_ul_sacch,
+          cfg_bts_rep_no_ul_sacch_cmd,
+          "no repeat ul-sacch",
+          NO_STR REP_ACCH_STR
+          "Disable UL-SACCH repetition for this BTS\n", CMD_ATTR_IMMEDIATE)
+{
+       struct gsm_bts *bts = vty->index;
+
+       bts->repeated_acch_capability_bts &= ~0x08;
+
+       return CMD_SUCCESS;
+}
+
 #define CD_STR "Channel Description\n"

 DEFUN_USRATTR(cfg_bts_chan_desc_att,
@@ -7032,6 +7143,13 @@
        install_element(BTS_NODE, &cfg_bts_acc_ramping_chan_load_cmd);
        install_element(BTS_NODE, &cfg_bts_t3113_dynamic_cmd);
        install_element(BTS_NODE, &cfg_bts_no_t3113_dynamic_cmd);
+       install_element(BTS_NODE, &cfg_bts_rep_dl_facch_cmd);
+       install_element(BTS_NODE, &cfg_bts_rep_no_dl_facch_cmd);
+       install_element(BTS_NODE, &cfg_bts_rep_dl_sacch_cmd);
+       install_element(BTS_NODE, &cfg_bts_rep_no_dl_sacch_cmd);
+       install_element(BTS_NODE, &cfg_bts_rep_ul_sacch_cmd);
+       install_element(BTS_NODE, &cfg_bts_rep_no_ul_sacch_cmd);
+
        neighbor_ident_vty_init(network, network->neighbor_bss_cells);
        /* See also handover commands added on bts level from handover_vty.c */


--
To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21164
To unsubscribe, or for help writing mail filters, visit 
https://gerrit.osmocom.org/settings

Gerrit-Project: osmo-bsc
Gerrit-Branch: master
Gerrit-Change-Id: I083eaa2c30478912426e9c24a506f0b88836e190
Gerrit-Change-Number: 21164
Gerrit-PatchSet: 1
Gerrit-Owner: dexter <pma...@sysmocom.de>
Gerrit-MessageType: newchange

Reply via email to