<p>laforge has uploaded this change for <strong>review</strong>.</p><p><a href="https://gerrit.osmocom.org/c/osmo-mgw/+/23924">View Change</a></p><pre style="font-family: monospace,monospace; white-space: pre-wrap;">TOS bits != DSCP<br><br>We have VTY options that allow to set the DSCP value.  However, we<br>then call a function to set the TOS bits in the kernel.  This is<br>very wrong.  The DSCP is only the upper 6 bits of the 8-bit TOS<br>value, and hence we are mussing that translation.<br><br>As libosmocore now has a helper function osmo_sock_set_dscp(),<br>let's make use of it and don't care about the low-level details.<br><br>However, this means we need to finally remove the deprecated<br>alias for "rtp ip-tos <0-255>".<br><br>Closes: OS#5137<br>Change-Id: I9c18c90273be97aedd2ad212b82f650e35c32851<br>---<br>M TODO-RELEASE<br>M doc/examples/osmo-mgw/osmo-mgw-abis_e1.cfg<br>M doc/examples/osmo-mgw/osmo-mgw.cfg<br>M doc/manuals/chapters/configuration.adoc<br>M include/osmocom/mgcp/mgcp_network.h<br>M src/libosmo-mgcp/mgcp_network.c<br>M src/libosmo-mgcp/mgcp_osmux.c<br>M src/libosmo-mgcp/mgcp_vty.c<br>8 files changed, 9 insertions(+), 28 deletions(-)<br><br></pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;">git pull ssh://gerrit.osmocom.org:29418/osmo-mgw refs/changes/24/23924/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 c5a3b36..d88a851 100644</span><br><span>--- a/TODO-RELEASE</span><br><span>+++ b/TODO-RELEASE</span><br><span>@@ -24,3 +24,4 @@</span><br><span> # If any interfaces have been removed or changed since the last public release, a=0.</span><br><span> #</span><br><span> #library                what            description / commit summary line</span><br><span style="color: hsl(120, 100%, 40%);">+update dependency to libosmocore for our use of osmo_sock_set_dscp()</span><br><span>diff --git a/doc/examples/osmo-mgw/osmo-mgw-abis_e1.cfg b/doc/examples/osmo-mgw/osmo-mgw-abis_e1.cfg</span><br><span>index 6d369ef..bd948b8 100644</span><br><span>--- a/doc/examples/osmo-mgw/osmo-mgw-abis_e1.cfg</span><br><span>+++ b/doc/examples/osmo-mgw/osmo-mgw-abis_e1.cfg</span><br><span>@@ -9,7 +9,7 @@</span><br><span>   rtp port-range 4002 16000</span><br><span>   rtp bind-ip 127.0.0.1</span><br><span>   rtp ip-probing</span><br><span style="color: hsl(0, 100%, 40%);">-  rtp ip-tos 184</span><br><span style="color: hsl(120, 100%, 40%);">+  rtp ip-dscp 46</span><br><span>   bind port 2427</span><br><span>   sdp audio payload number 98</span><br><span>   sdp audio payload name GSM</span><br><span>diff --git a/doc/examples/osmo-mgw/osmo-mgw.cfg b/doc/examples/osmo-mgw/osmo-mgw.cfg</span><br><span>index ea00f6c..320feae 100644</span><br><span>--- a/doc/examples/osmo-mgw/osmo-mgw.cfg</span><br><span>+++ b/doc/examples/osmo-mgw/osmo-mgw.cfg</span><br><span>@@ -6,7 +6,7 @@</span><br><span>   rtp port-range 4002 16000</span><br><span>   rtp bind-ip 127.0.0.1</span><br><span>   rtp ip-probing</span><br><span style="color: hsl(0, 100%, 40%);">-  rtp ip-tos 184</span><br><span style="color: hsl(120, 100%, 40%);">+  rtp ip-dscp 46</span><br><span>   bind port 2427</span><br><span>   sdp audio payload number 98</span><br><span>   sdp audio payload name GSM</span><br><span>diff --git a/doc/manuals/chapters/configuration.adoc b/doc/manuals/chapters/configuration.adoc</span><br><span>index 2e2772e..177c096 100644</span><br><span>--- a/doc/manuals/chapters/configuration.adoc</span><br><span>+++ b/doc/manuals/chapters/configuration.adoc</span><br><span>@@ -101,7 +101,7 @@</span><br><span>  rtp net-range 6000 6011</span><br><span>  rtp net-bind-ip 192.168.100.130</span><br><span>  rtp ip-probing</span><br><span style="color: hsl(0, 100%, 40%);">- rtp ip-tos 184</span><br><span style="color: hsl(120, 100%, 40%);">+ rtp ip-dscp 46</span><br><span>  no rtp keep-alive</span><br><span>  bind port 2428</span><br><span>  number endpoints 30</span><br><span>diff --git a/include/osmocom/mgcp/mgcp_network.h b/include/osmocom/mgcp/mgcp_network.h</span><br><span>index 7dbf330..6e1e52c 100644</span><br><span>--- a/include/osmocom/mgcp/mgcp_network.h</span><br><span>+++ b/include/osmocom/mgcp/mgcp_network.h</span><br><span>@@ -148,7 +148,6 @@</span><br><span>                      struct mgcp_rtp_end *rtp_end,</span><br><span>                        struct osmo_sockaddr *addr, struct msgb *msg);</span><br><span> void mgcp_get_local_addr(char *addr, struct mgcp_conn_rtp *conn);</span><br><span style="color: hsl(0, 100%, 40%);">-int mgcp_set_ip_tos(int fd, int tos);</span><br><span> </span><br><span> /* payload processing default functions */</span><br><span> int mgcp_rtp_processing_default(struct mgcp_endpoint *endp, struct mgcp_rtp_end *dst_end,</span><br><span>diff --git a/src/libosmo-mgcp/mgcp_network.c b/src/libosmo-mgcp/mgcp_network.c</span><br><span>index 6b31f2b..675a0fc 100644</span><br><span>--- a/src/libosmo-mgcp/mgcp_network.c</span><br><span>+++ b/src/libosmo-mgcp/mgcp_network.c</span><br><span>@@ -1514,20 +1514,6 @@</span><br><span>  return conn->endp->type->dispatch_rtp_cb(msg);</span><br><span> }</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-/*! set IP Type of Service parameter.</span><br><span style="color: hsl(0, 100%, 40%);">- *  \param[in] fd associated file descriptor.</span><br><span style="color: hsl(0, 100%, 40%);">- *  \param[in] tos dscp value.</span><br><span style="color: hsl(0, 100%, 40%);">- *  \returns 0 on success, -1 on ERROR. */</span><br><span style="color: hsl(0, 100%, 40%);">-int mgcp_set_ip_tos(int fd, int tos)</span><br><span style="color: hsl(0, 100%, 40%);">-{</span><br><span style="color: hsl(0, 100%, 40%);">- int ret;</span><br><span style="color: hsl(0, 100%, 40%);">-        ret = setsockopt(fd, IPPROTO_IP, IP_TOS, &tos, sizeof(tos));</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-        if (ret < 0)</span><br><span style="color: hsl(0, 100%, 40%);">-         return -1;</span><br><span style="color: hsl(0, 100%, 40%);">-      return 0;</span><br><span style="color: hsl(0, 100%, 40%);">-}</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span> /*! bind RTP port to osmo_fd.</span><br><span>  *  \param[in] source_addr source (local) address to bind on.</span><br><span>  *  \param[in] fd associated file descriptor.</span><br><span>@@ -1574,8 +1560,8 @@</span><br><span>        }</span><br><span> </span><br><span>        /* Set Type of Service (DSCP-Value) as configured via VTY */</span><br><span style="color: hsl(0, 100%, 40%);">-    mgcp_set_ip_tos(rtp_end->rtp.fd, cfg->endp_dscp);</span><br><span style="color: hsl(0, 100%, 40%);">- mgcp_set_ip_tos(rtp_end->rtcp.fd, cfg->endp_dscp);</span><br><span style="color: hsl(120, 100%, 40%);">+      osmo_sock_set_dscp(rtp_end->rtp.fd, cfg->endp_dscp);</span><br><span style="color: hsl(120, 100%, 40%);">+    osmo_sock_set_dscp(rtp_end->rtcp.fd, cfg->endp_dscp);</span><br><span> </span><br><span>      if (osmo_fd_register(&rtp_end->rtp) != 0) {</span><br><span>           LOGPENDP(endp, DRTP, LOGL_ERROR,</span><br><span>diff --git a/src/libosmo-mgcp/mgcp_osmux.c b/src/libosmo-mgcp/mgcp_osmux.c</span><br><span>index a7c0eef..6c40307 100644</span><br><span>--- a/src/libosmo-mgcp/mgcp_osmux.c</span><br><span>+++ b/src/libosmo-mgcp/mgcp_osmux.c</span><br><span>@@ -424,7 +424,7 @@</span><br><span>                   cfg->osmux_addr, cfg->osmux_port);</span><br><span>                return ret;</span><br><span>  }</span><br><span style="color: hsl(0, 100%, 40%);">-       mgcp_set_ip_tos(osmux_fd.fd, cfg->endp_dscp);</span><br><span style="color: hsl(120, 100%, 40%);">+      osmo_sock_set_dscp(osmux_fd.fd, cfg->endp_dscp);</span><br><span> </span><br><span>      ret = osmo_fd_register(&osmux_fd);</span><br><span>       if (ret < 0) {</span><br><span>diff --git a/src/libosmo-mgcp/mgcp_vty.c b/src/libosmo-mgcp/mgcp_vty.c</span><br><span>index 9ad8c24..e8aeab1 100644</span><br><span>--- a/src/libosmo-mgcp/mgcp_vty.c</span><br><span>+++ b/src/libosmo-mgcp/mgcp_vty.c</span><br><span>@@ -579,19 +579,15 @@</span><br><span> DEFUN_USRATTR(cfg_mgcp_rtp_ip_dscp,</span><br><span>          cfg_mgcp_rtp_ip_dscp_cmd,</span><br><span>            X(MGW_CMD_ATTR_NEWCONN),</span><br><span style="color: hsl(0, 100%, 40%);">-        "rtp ip-dscp <0-255>",</span><br><span style="color: hsl(120, 100%, 40%);">+        "rtp ip-dscp <0-63>",</span><br><span>        RTP_STR</span><br><span style="color: hsl(0, 100%, 40%);">-         "Apply IP_TOS to the audio stream (including Osmux)\n" "The DSCP value\n")</span><br><span style="color: hsl(120, 100%, 40%);">+        "Use specified DSCP to the audio stream (including Osmux)\n" "The DSCP value\n")</span><br><span> {</span><br><span>      int dscp = atoi(argv[0]);</span><br><span>    g_cfg->endp_dscp = dscp;</span><br><span>  return CMD_SUCCESS;</span><br><span> }</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-ALIAS_DEPRECATED(cfg_mgcp_rtp_ip_dscp, cfg_mgcp_rtp_ip_tos_cmd,</span><br><span style="color: hsl(0, 100%, 40%);">-              "rtp ip-tos <0-255>",</span><br><span style="color: hsl(0, 100%, 40%);">-           RTP_STR</span><br><span style="color: hsl(0, 100%, 40%);">-                 "Apply IP_TOS to the audio stream\n" "The DSCP value\n")</span><br><span> #define FORCE_PTIME_STR "Force a fixed ptime for packets sent"</span><br><span> DEFUN_USRATTR(cfg_mgcp_rtp_force_ptime,</span><br><span>               cfg_mgcp_rtp_force_ptime_cmd,</span><br><span>@@ -1622,7 +1618,6 @@</span><br><span>  install_element(MGCP_NODE, &cfg_mgcp_rtp_net_bind_ip_probing_cmd);</span><br><span>       install_element(MGCP_NODE, &cfg_mgcp_rtp_no_net_bind_ip_probing_cmd);</span><br><span>    install_element(MGCP_NODE, &cfg_mgcp_rtp_ip_dscp_cmd);</span><br><span style="color: hsl(0, 100%, 40%);">-      install_element(MGCP_NODE, &cfg_mgcp_rtp_ip_tos_cmd);</span><br><span>    install_element(MGCP_NODE, &cfg_mgcp_rtp_force_ptime_cmd);</span><br><span>       install_element(MGCP_NODE, &cfg_mgcp_no_rtp_force_ptime_cmd);</span><br><span>    install_element(MGCP_NODE, &cfg_mgcp_rtp_keepalive_cmd);</span><br><span></span><br></pre><p>To view, visit <a href="https://gerrit.osmocom.org/c/osmo-mgw/+/23924">change 23924</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-mgw/+/23924"/><meta itemprop="name" content="View Change"/></div></div>

<div style="display:none"> Gerrit-Project: osmo-mgw </div>
<div style="display:none"> Gerrit-Branch: master </div>
<div style="display:none"> Gerrit-Change-Id: I9c18c90273be97aedd2ad212b82f650e35c32851 </div>
<div style="display:none"> Gerrit-Change-Number: 23924 </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>