<p>laforge has uploaded this change for <strong>review</strong>.</p><p><a href="https://gerrit.osmocom.org/c/osmo-bts/+/23923">View Change</a></p><pre style="font-family: monospace,monospace; white-space: pre-wrap;">Allow user to specify IP DSCP for OML and RSL, too<br><br>so far we only assumed that users want to assign as specific non-default<br>DSCP to RTP (voice) traffic.   However, there are use cases where even<br>RSL and OML signaling should be covered by specifc, non-default DSCP<br>values, too.<br><br>Depends: libosmocore.git Ia4ba389a5b7e3e9d5f17a742a900d6fd68c08e40<br>Change-Id: Ic302a695453514459fa27400027154e7e8b74e0e<br>Related: SYS#5427<br>---<br>M TODO-RELEASE<br>M include/osmo-bts/bts.h<br>M src/common/bts.c<br>M src/common/bts_trx.c<br>M src/common/vty.c<br>5 files changed, 54 insertions(+), 1 deletion(-)<br><br></pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;">git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/23/23923/1</pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;"><span>diff --git a/TODO-RELEASE b/TODO-RELEASE</span><br><span>index e69de29..0129a7f 100644</span><br><span>--- a/TODO-RELEASE</span><br><span>+++ b/TODO-RELEASE</span><br><span>@@ -0,0 +1 @@</span><br><span style="color: hsl(120, 100%, 40%);">+bump requirement to libosmocore for use of osmo_sock_set_dscp()</span><br><span>diff --git a/include/osmo-bts/bts.h b/include/osmo-bts/bts.h</span><br><span>index be0222d..67c2b82 100644</span><br><span>--- a/include/osmo-bts/bts.h</span><br><span>+++ b/include/osmo-bts/bts.h</span><br><span>@@ -297,6 +297,8 @@</span><br><span>       uint16_t rtp_port_range_end;</span><br><span>         uint16_t rtp_port_range_next;</span><br><span>        int rtp_ip_dscp;</span><br><span style="color: hsl(120, 100%, 40%);">+      int oml_ip_dscp;</span><br><span style="color: hsl(120, 100%, 40%);">+      int rsl_ip_dscp;</span><br><span> </span><br><span>         struct {</span><br><span>             uint8_t ciphers;        /* flags A5/1==0x1, A5/2==0x2, A5/3==0x4 */</span><br><span>diff --git a/src/common/bts.c b/src/common/bts.c</span><br><span>index 06a5ccb..29033ef 100644</span><br><span>--- a/src/common/bts.c</span><br><span>+++ b/src/common/bts.c</span><br><span>@@ -329,6 +329,8 @@</span><br><span>       bts->rtp_port_range_end = 17407;</span><br><span>  bts->rtp_port_range_next = bts->rtp_port_range_start;</span><br><span>  bts->rtp_ip_dscp = -1;</span><br><span style="color: hsl(120, 100%, 40%);">+     bts->oml_ip_dscp = -1;</span><br><span style="color: hsl(120, 100%, 40%);">+     bts->rsl_ip_dscp = -1;</span><br><span> </span><br><span>        /* Default (fall-back) MS/BS Power control parameters */</span><br><span>     bts->bs_dpc_params = power_ctrl_params_def;</span><br><span>@@ -413,10 +415,16 @@</span><br><span> /* main link is established, send status report */</span><br><span> int bts_link_estab(struct gsm_bts *bts)</span><br><span> {</span><br><span style="color: hsl(0, 100%, 40%);">-    int i, j;</span><br><span style="color: hsl(120, 100%, 40%);">+     int i, j, rc;</span><br><span> </span><br><span>    LOGP(DSUM, LOGL_INFO, "Main link established, sending NM Status.\n");</span><br><span> </span><br><span style="color: hsl(120, 100%, 40%);">+   rc = osmo_sock_set_dscp(bts->oml_link->ts->driver.ipaccess.fd.fd, bts->oml_ip_dscp);</span><br><span style="color: hsl(120, 100%, 40%);">+      if (rc < 0) {</span><br><span style="color: hsl(120, 100%, 40%);">+              LOGP(DSUM, LOGL_ERROR, "Unable to set OML IP DSCP to %u: %d (%s)\n",</span><br><span style="color: hsl(120, 100%, 40%);">+                     bts->oml_ip_dscp, rc, strerror(errno));</span><br><span style="color: hsl(120, 100%, 40%);">+       }</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span>  /* BTS SITE MGR becomes Offline (tx SW ACT Report), BTS is DEPENDENCY */</span><br><span>     osmo_fsm_inst_dispatch(bts->site_mgr.mo.fi, NM_EV_SW_ACT, NULL);</span><br><span>  osmo_fsm_inst_dispatch(bts->mo.fi, NM_EV_SW_ACT, NULL);</span><br><span>diff --git a/src/common/bts_trx.c b/src/common/bts_trx.c</span><br><span>index 9fc18e4..b297876 100644</span><br><span>--- a/src/common/bts_trx.c</span><br><span>+++ b/src/common/bts_trx.c</span><br><span>@@ -17,6 +17,8 @@</span><br><span>  *</span><br><span>  */</span><br><span> </span><br><span style="color: hsl(120, 100%, 40%);">+#include <errno.h></span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span> #include <osmocom/core/fsm.h></span><br><span> </span><br><span> #include <osmocom/gsm/abis_nm.h></span><br><span>@@ -202,6 +204,12 @@</span><br><span>         LOGPTRX(trx, DSUM, LOGL_INFO, "RSL link %s\n",</span><br><span>             link ? "up" : "down");</span><br><span> </span><br><span style="color: hsl(120, 100%, 40%);">+        rc = osmo_sock_set_dscp(link->ts->driver.ipaccess.fd.fd, trx->bts->rsl_ip_dscp);</span><br><span style="color: hsl(120, 100%, 40%);">+  if (rc < 0) {</span><br><span style="color: hsl(120, 100%, 40%);">+              LOGPTRX(trx, DSUM, LOGL_ERROR, "Unable to set RSL IP DSCP to %u: %d (%s)\n",</span><br><span style="color: hsl(120, 100%, 40%);">+                        trx->bts->rsl_ip_dscp, rc, strerror(errno));</span><br><span style="color: hsl(120, 100%, 40%);">+    }</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span>  osmo_fsm_inst_dispatch(trx->mo.fi, link ? NM_EV_RSL_UP : NM_EV_RSL_DOWN, NULL);</span><br><span>   osmo_fsm_inst_dispatch(trx->bb_transc.mo.fi, link ? NM_EV_RSL_UP : NM_EV_RSL_DOWN, NULL);</span><br><span> </span><br><span>diff --git a/src/common/vty.c b/src/common/vty.c</span><br><span>index 45ee32c..398b474 100644</span><br><span>--- a/src/common/vty.c</span><br><span>+++ b/src/common/vty.c</span><br><span>@@ -300,6 +300,10 @@</span><br><span>                 bts->rtp_port_range_end, VTY_NEWLINE);</span><br><span>    if (bts->rtp_ip_dscp != -1)</span><br><span>               vty_out(vty, " rtp ip-dscp %i%s", bts->rtp_ip_dscp, VTY_NEWLINE);</span><br><span style="color: hsl(120, 100%, 40%);">+        if (bts->oml_ip_dscp != -1)</span><br><span style="color: hsl(120, 100%, 40%);">+                vty_out(vty, " oml ip-dscp %i%s", bts->oml_ip_dscp, VTY_NEWLINE);</span><br><span style="color: hsl(120, 100%, 40%);">+        if (bts->rsl_ip_dscp != -1)</span><br><span style="color: hsl(120, 100%, 40%);">+                vty_out(vty, " rsl ip-dscp %i%s", bts->rsl_ip_dscp, VTY_NEWLINE);</span><br><span>       vty_out(vty, " paging queue-size %u%s", paging_get_queue_max(bts->paging_state),</span><br><span>                VTY_NEWLINE);</span><br><span>        vty_out(vty, " paging lifetime %u%s", paging_get_lifetime(bts->paging_state),</span><br><span>@@ -595,6 +599,34 @@</span><br><span>    return CMD_SUCCESS;</span><br><span> }</span><br><span> </span><br><span style="color: hsl(120, 100%, 40%);">+DEFUN_USRATTR(cfg_bts_oml_ip_dscp,</span><br><span style="color: hsl(120, 100%, 40%);">+            cfg_bts_oml_ip_dscp_cmd,</span><br><span style="color: hsl(120, 100%, 40%);">+              X(BTS_VTY_ATTR_NEW_LCHAN),</span><br><span style="color: hsl(120, 100%, 40%);">+            "oml ip-dscp <0-63>",</span><br><span style="color: hsl(120, 100%, 40%);">+         RTP_STR "Specify DSCP for OML/IP packets\n" "The DSCP value (upper 6 bits of TOS)\n")</span><br><span style="color: hsl(120, 100%, 40%);">+{</span><br><span style="color: hsl(120, 100%, 40%);">+    struct gsm_bts *bts = vty->index;</span><br><span style="color: hsl(120, 100%, 40%);">+  int dscp = atoi(argv[0]);</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+   bts->oml_ip_dscp = dscp;</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+ return CMD_SUCCESS;</span><br><span style="color: hsl(120, 100%, 40%);">+}</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+DEFUN_USRATTR(cfg_bts_rsl_ip_dscp,</span><br><span style="color: hsl(120, 100%, 40%);">+        cfg_bts_rsl_ip_dscp_cmd,</span><br><span style="color: hsl(120, 100%, 40%);">+              X(BTS_VTY_ATTR_NEW_LCHAN),</span><br><span style="color: hsl(120, 100%, 40%);">+            "rsl ip-dscp <0-63>",</span><br><span style="color: hsl(120, 100%, 40%);">+         RTP_STR "Specify DSCP for RSL/IP packets\n" "The DSCP value (upper 6 bits of TOS)\n")</span><br><span style="color: hsl(120, 100%, 40%);">+{</span><br><span style="color: hsl(120, 100%, 40%);">+    struct gsm_bts *bts = vty->index;</span><br><span style="color: hsl(120, 100%, 40%);">+  int dscp = atoi(argv[0]);</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+   bts->rsl_ip_dscp = dscp;</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+ return CMD_SUCCESS;</span><br><span style="color: hsl(120, 100%, 40%);">+}</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span> #define PAG_STR "Paging related parameters\n"</span><br><span> </span><br><span> DEFUN_ATTR(cfg_bts_paging_queue_size,</span><br><span>@@ -2312,6 +2344,8 @@</span><br><span>     install_element(BTS_NODE, &cfg_bts_rtp_jitbuf_cmd);</span><br><span>      install_element(BTS_NODE, &cfg_bts_rtp_port_range_cmd);</span><br><span>  install_element(BTS_NODE, &cfg_bts_rtp_ip_dscp_cmd);</span><br><span style="color: hsl(120, 100%, 40%);">+      install_element(BTS_NODE, &cfg_bts_oml_ip_dscp_cmd);</span><br><span style="color: hsl(120, 100%, 40%);">+      install_element(BTS_NODE, &cfg_bts_rsl_ip_dscp_cmd);</span><br><span>     install_element(BTS_NODE, &cfg_bts_band_cmd);</span><br><span>    install_element(BTS_NODE, &cfg_description_cmd);</span><br><span>         install_element(BTS_NODE, &cfg_no_description_cmd);</span><br><span></span><br></pre><p>To view, visit <a href="https://gerrit.osmocom.org/c/osmo-bts/+/23923">change 23923</a>. To unsubscribe, or for help writing mail filters, visit <a href="https://gerrit.osmocom.org/settings">settings</a>.</p><div itemscope itemtype="http://schema.org/EmailMessage"><div itemscope itemprop="action" itemtype="http://schema.org/ViewAction"><link itemprop="url" href="https://gerrit.osmocom.org/c/osmo-bts/+/23923"/><meta itemprop="name" content="View Change"/></div></div>

<div style="display:none"> Gerrit-Project: osmo-bts </div>
<div style="display:none"> Gerrit-Branch: master </div>
<div style="display:none"> Gerrit-Change-Id: Ic302a695453514459fa27400027154e7e8b74e0e </div>
<div style="display:none"> Gerrit-Change-Number: 23923 </div>
<div style="display:none"> Gerrit-PatchSet: 1 </div>
<div style="display:none"> Gerrit-Owner: laforge <laforge@osmocom.org> </div>
<div style="display:none"> Gerrit-MessageType: newchange </div>