laforge has submitted this change. ( 
https://gerrit.osmocom.org/c/osmo-bsc/+/21714 )

Change subject: Allow configuring SI13 CCN_ACTIVE bit from VTY, enable by 
default on osmo-bts
......................................................................

Allow configuring SI13 CCN_ACTIVE bit from VTY, enable by default on osmo-bts

This is required in order to tell MS that osmo-pcu now supports
Network Assisted Cell Change (NACC).

Other BTS are not enabled by default since NACC support is not known to
work nor tested there.

Depends: libosmocore.git Change-Id I61991266b95d0c13d51b47906cc07846e9cf1390
Related: SYS#4909
Change-Id: If91d85331d402c3ab9c32b70c2c66cd7ba6ceb28
---
M include/osmocom/bsc/bts.h
M src/osmo-bsc/bsc_vty.c
M src/osmo-bsc/bts_sysmobts.c
M src/osmo-bsc/system_information.c
4 files changed, 33 insertions(+), 0 deletions(-)

Approvals:
  laforge: Looks good to me, but someone else must approve
  fixeria: Looks good to me, approved
  Jenkins Builder: Verified



diff --git a/include/osmocom/bsc/bts.h b/include/osmocom/bsc/bts.h
index b81f45f..6797d1c 100644
--- a/include/osmocom/bsc/bts.h
+++ b/include/osmocom/bsc/bts.h
@@ -387,6 +387,10 @@
                uint8_t net_ctrl_ord;
                bool ctrl_ack_type_use_block;
                bool egprs_pkt_chan_request;
+               struct {
+                       bool active; /* CCN_ACTIVE */
+                       bool forced_vty; /* set by VTY ? */
+               } ccn; /* TS 44.060 sec 8.8.2 */
        } gprs;

        /* threshold (in percent) when BTS shall send CCCH LOAD IND */
diff --git a/src/osmo-bsc/bsc_vty.c b/src/osmo-bsc/bsc_vty.c
index 4781217..03b87b4 100644
--- a/src/osmo-bsc/bsc_vty.c
+++ b/src/osmo-bsc/bsc_vty.c
@@ -758,6 +758,9 @@
                bts->gprs.net_ctrl_ord, VTY_NEWLINE);
        if (!bts->gprs.ctrl_ack_type_use_block)
                vty_out(vty, "  gprs control-ack-type-rach%s", VTY_NEWLINE);
+       if (bts->gprs.ccn.forced_vty)
+               vty_out(vty, "  gprs ccn-active %d%s",
+                       bts->gprs.ccn.active ? 1 : 0, VTY_NEWLINE);
        vty_out(vty, "  gprs cell bvci %u%s", bts->gprs.cell.bvci,
                VTY_NEWLINE);
        for (i = 0; i < ARRAY_SIZE(bts->gprs.cell.timer); i++)
@@ -3486,6 +3489,24 @@
        return CMD_SUCCESS;
 }

+DEFUN_USRATTR(cfg_bts_gprs_ccn_active,
+             cfg_bts_gprs_ccn_active_cmd,
+             X(BSC_VTY_ATTR_RESTART_ABIS_RSL_LINK),
+             "gprs ccn-active (0|1|default)",
+             GPRS_TEXT
+             "Set CCN_ACTIVE in the GPRS Cell Options IE on the BCCH (SI13)\n"
+             "Disable\n" "Enable\n" "Default based on BTS type support\n")
+{
+       struct gsm_bts *bts = vty->index;
+
+       bts->gprs.ccn.forced_vty = strcmp(argv[0], "default") != 0;
+
+       if (bts->gprs.ccn.forced_vty)
+               bts->gprs.ccn.active = argv[0][0] == '1';
+
+       return CMD_SUCCESS;
+}
+
 DEFUN_USRATTR(cfg_no_bts_gprs_ctrl_ack,
              cfg_no_bts_gprs_ctrl_ack_cmd,
              X(BSC_VTY_ATTR_RESTART_ABIS_RSL_LINK),
@@ -7637,6 +7658,7 @@
        install_element(BTS_NODE, &cfg_bts_gprs_rac_cmd);
        install_element(BTS_NODE, &cfg_bts_gprs_net_ctrl_ord_cmd);
        install_element(BTS_NODE, &cfg_bts_gprs_ctrl_ack_cmd);
+       install_element(BTS_NODE, &cfg_bts_gprs_ccn_active_cmd);
        install_element(BTS_NODE, &cfg_no_bts_gprs_ctrl_ack_cmd);
        install_element(BTS_NODE, &cfg_bts_gprs_bvci_cmd);
        install_element(BTS_NODE, &cfg_bts_gprs_cell_timer_cmd);
diff --git a/src/osmo-bsc/bts_sysmobts.c b/src/osmo-bsc/bts_sysmobts.c
index e319f2c..f24c615 100644
--- a/src/osmo-bsc/bts_sysmobts.c
+++ b/src/osmo-bsc/bts_sysmobts.c
@@ -61,6 +61,7 @@
        osmo_bts_set_feature(&model_sysmobts.features, BTS_FEAT_EGPRS);
        osmo_bts_set_feature(&model_sysmobts.features, 
BTS_FEAT_PAGING_COORDINATION);
        osmo_bts_set_feature(&model_sysmobts.features, BTS_FEAT_IPV6_NSVC);
+       osmo_bts_set_feature(&model_sysmobts.features, BTS_FEAT_CCN);
 
        model_sysmobts.nm_att_tlvdef.def[NM_ATT_OSMO_NS_LINK_CFG].type = 
TLV_TYPE_TL16V;

diff --git a/src/osmo-bsc/system_information.c 
b/src/osmo-bsc/system_information.c
index 10b0e4d..d018ec3 100644
--- a/src/osmo-bsc/system_information.c
+++ b/src/osmo-bsc/system_information.c
@@ -1206,6 +1206,7 @@
                        .pfc_supported = 0,
                        .dtm_supported = 0,
                        .bss_paging_coordination = 0,
+                       .ccn_active = false,
                },
        },
        .pwr_ctrl_pars = {
@@ -1255,6 +1256,11 @@
        else
                si13_default.cell_opts.ext_info.bss_paging_coordination = 0;

+       si13_default.cell_opts.ext_info.ccn_active = bts->gprs.ccn.forced_vty ?
+                                                    bts->gprs.ccn.active :
+                                                    
osmo_bts_has_feature(&bts->model->features,
+                                                                         
BTS_FEAT_CCN);
+
        ret = osmo_gsm48_rest_octets_si13_encode(si13->rest_octets, 
&si13_default);
        if (ret < 0)
                return ret;

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

Gerrit-Project: osmo-bsc
Gerrit-Branch: master
Gerrit-Change-Id: If91d85331d402c3ab9c32b70c2c66cd7ba6ceb28
Gerrit-Change-Number: 21714
Gerrit-PatchSet: 6
Gerrit-Owner: pespin <[email protected]>
Gerrit-Reviewer: Jenkins Builder
Gerrit-Reviewer: fixeria <[email protected]>
Gerrit-Reviewer: laforge <[email protected]>
Gerrit-MessageType: merged

Reply via email to