legacy-mgcp: Add jitter buffer on the uplink receiver
Default usage values are defined in mgcp node, and can be per-BSC
overriden on each bsc node
This commit is a forward-port of openbsc.git Change-Id
Ibf3932adc07442fb5e9c7a06404853f9d0a20959.
Change-Id: Ie19a64ac09f9d51f2434ad0d7925610fc919a90e
diff --git a/include/osmocom/legacy_mgcp/mgcp.h b/include/osmocom/legacy_mgcp/mgcp.h
index 147a0d5..7490e37 100644
--- a/include/osmocom/legacy_mgcp/mgcp.h
+++ b/include/osmocom/legacy_mgcp/mgcp.h
@@ -243,6 +243,12 @@
* message.
*/
uint16_t osmux_dummy;
+
+ /* Use a jitterbuffer on the bts-side receiver */
+ bool bts_use_jibuf;
+ /* Minimum and maximum buffer size for the jitter buffer, in ms */
+ uint32_t bts_jitter_delay_min;
+ uint32_t bts_jitter_delay_max;
};
/* config management */
diff --git a/include/osmocom/legacy_mgcp/mgcp_internal.h b/include/osmocom/legacy_mgcp/mgcp_internal.h
index dcc75f1..956bee0 100644
--- a/include/osmocom/legacy_mgcp/mgcp_internal.h
+++ b/include/osmocom/legacy_mgcp/mgcp_internal.h
@@ -25,6 +25,7 @@
#include <string.h>
#include <osmocom/core/select.h>
+#include <osmocom/netif/jibuf.h>
#define CI_UNUSED 0
@@ -198,6 +199,14 @@
uint32_t octets;
} stats;
} osmux;
+
+ /* Jitter buffer */
+ struct osmo_jibuf* bts_jb;
+ /* Use a jitterbuffer on the bts-side receiver */
+ bool bts_use_jibuf;
+ /* Minimum and maximum buffer size for the jitter buffer, in ms */
+ uint32_t bts_jitter_delay_min;
+ uint32_t bts_jitter_delay_max;
};
#define for_each_line(line, save) \
@@ -335,3 +344,8 @@
}
int mgcp_msg_terminate_nul(struct msgb *msg);
+
+/**
+ * Internal jitter buffer related
+ */
+void mgcp_dejitter_udp_send(struct msgb *msg, void *data);