mgcp: Honor the rtp IP_TOS settings for Osmux
Honor the IP_TOS settings for Osmux as well. Re-use the RTP
setting as it makes sense to classify the audio packets the
same way.
Fixes: OW#1369
diff --git a/openbsc/src/libmgcp/mgcp_network.c b/openbsc/src/libmgcp/mgcp_network.c
index 37fc59a..c3f43dd 100644
--- a/openbsc/src/libmgcp/mgcp_network.c
+++ b/openbsc/src/libmgcp/mgcp_network.c
@@ -901,7 +901,7 @@
return 0;
}
-static int set_ip_tos(int fd, int tos)
+int mgcp_set_ip_tos(int fd, int tos)
{
int ret;
ret = setsockopt(fd, IPPROTO_IP, IP_TOS,
@@ -925,8 +925,8 @@
goto cleanup1;
}
- set_ip_tos(rtp_end->rtp.fd, cfg->endp_dscp);
- set_ip_tos(rtp_end->rtcp.fd, cfg->endp_dscp);
+ mgcp_set_ip_tos(rtp_end->rtp.fd, cfg->endp_dscp);
+ mgcp_set_ip_tos(rtp_end->rtcp.fd, cfg->endp_dscp);
rtp_end->rtp.when = BSC_FD_READ;
if (osmo_fd_register(&rtp_end->rtp) != 0) {
diff --git a/openbsc/src/libmgcp/mgcp_osmux.c b/openbsc/src/libmgcp/mgcp_osmux.c
index d5e671d..7f61173 100644
--- a/openbsc/src/libmgcp/mgcp_osmux.c
+++ b/openbsc/src/libmgcp/mgcp_osmux.c
@@ -420,6 +420,7 @@
LOGP(DMGCP, LOGL_ERROR, "cannot bind OSMUX socket\n");
return ret;
}
+ mgcp_set_ip_tos(osmux_fd.fd, cfg->endp_dscp);
osmux_fd.when |= BSC_FD_READ;
ret = osmo_fd_register(&osmux_fd);
diff --git a/openbsc/src/libmgcp/mgcp_vty.c b/openbsc/src/libmgcp/mgcp_vty.c
index 5124ca6..3d99c83 100644
--- a/openbsc/src/libmgcp/mgcp_vty.c
+++ b/openbsc/src/libmgcp/mgcp_vty.c
@@ -378,7 +378,7 @@
cfg_mgcp_rtp_ip_dscp_cmd,
"rtp ip-dscp <0-255>",
RTP_STR
- "Apply IP_TOS to the audio stream\n" "The DSCP value\n")
+ "Apply IP_TOS to the audio stream (including Osmux)\n" "The DSCP value\n")
{
int dscp = atoi(argv[0]);
g_cfg->endp_dscp = dscp;