[MERGED] osmo-bts[master]: Save RTP metadata in Control Buffer

This is merely a historical archive of years 2008-2021, before the migration to mailman3.

A maintained and still updated list archive can be found at https://lists.osmocom.org/hyperkitty/list/gerrit-log@lists.osmocom.org/.

Harald Welte gerrit-no-reply at lists.osmocom.org
Fri Dec 9 11:54:39 UTC 2016


Harald Welte has submitted this change and it was merged.

Change subject: Save RTP metadata in Control Buffer
......................................................................


Save RTP metadata in Control Buffer

Having RTP metadata is useful for debugging - save Sequence Number and
Timestamp next to Marker bit from RTP header.

Change-Id: I359b3bcb74fbfc071547fe2f9d837829374fe997
---
M include/osmo-bts/msg_utils.h
M src/common/l1sap.c
2 files changed, 18 insertions(+), 3 deletions(-)

Approvals:
  Harald Welte: Looks good to me, approved
  Jenkins Builder: Verified



diff --git a/include/osmo-bts/msg_utils.h b/include/osmo-bts/msg_utils.h
index 7321045..55e8475 100644
--- a/include/osmo-bts/msg_utils.h
+++ b/include/osmo-bts/msg_utils.h
@@ -13,9 +13,15 @@
 
 struct msgb;
 
-/* Access 1st byte of msgb control buffer */
+/* Access 1st part of msgb control buffer */
 #define rtpmsg_marker_bit(x) ((x)->cb[0])
 
+/* Access 2nd part of msgb control buffer */
+#define rtpmsg_seq(x) ((x)->cb[1])
+
+/* Access 3rd part of msgb control buffer */
+#define rtpmsg_ts(x) ((x)->cb[2])
+
 /**
  * Classification of OML message. ETSI for plain GSM 12.21
  * messages and IPA/Osmo for manufacturer messages.
diff --git a/src/common/l1sap.c b/src/common/l1sap.c
index 82aa1ac..cfa02bd 100644
--- a/src/common/l1sap.c
+++ b/src/common/l1sap.c
@@ -661,7 +661,8 @@
 	struct gsm_time g_time;
 	struct gsm_lchan *lchan;
 	uint8_t chan_nr, marker = 0;
-	uint32_t fn;
+	uint16_t seq;
+	uint32_t fn, timestamp;
 
 	chan_nr = rts_ind->chan_nr;
 	fn = rts_ind->fn;
@@ -694,6 +695,10 @@
 	} else {
 		/* Obtain RTP header Marker bit from control buffer */
 		marker = rtpmsg_marker_bit(resp_msg);
+		/* Obtain RTP header Sequence Number from control buffer */
+		seq = rtpmsg_seq(resp_msg);
+		/* Obtain RTP header Timestamp from control buffer */
+		timestamp = rtpmsg_ts(resp_msg);
 
 		resp_msg->l2h = resp_msg->data;
 		msgb_push(resp_msg, sizeof(*resp_l1sap));
@@ -1074,8 +1079,12 @@
 
 	/* Store RTP header Marker bit in control buffer */
 	rtpmsg_marker_bit(msg) = marker;
+	/* Store RTP header Sequence Number in control buffer */
+	rtpmsg_seq(msg) = seq_number;
+	/* Store RTP header Timestamp in control buffer */
+	rtpmsg_ts(msg) = timestamp;
 
-	 /* make sure the queue doesn't get too long */
+	/* make sure the queue doesn't get too long */
 	llist_for_each_entry(tmp, &lchan->dl_tch_queue, list)
 	count++;
 	while (count >= 2) {

-- 
To view, visit https://gerrit.osmocom.org/1343
To unsubscribe, visit https://gerrit.osmocom.org/settings

Gerrit-MessageType: merged
Gerrit-Change-Id: I359b3bcb74fbfc071547fe2f9d837829374fe997
Gerrit-PatchSet: 5
Gerrit-Project: osmo-bts
Gerrit-Branch: master
Gerrit-Owner: Max <msuraev at sysmocom.de>
Gerrit-Reviewer: Harald Welte <laforge at gnumonks.org>
Gerrit-Reviewer: Jenkins Builder
Gerrit-Reviewer: Max <msuraev at sysmocom.de>



More information about the gerrit-log mailing list