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/.
Max gerrit-no-reply at lists.osmocom.orgReview at https://gerrit.osmocom.org/858 DTX: fix SID logic Previously receiving SID via RTP always caused it's transmission to L1 regardless of the time which might have resulted in excess traffic. Fix this by only saving SID data and transmitting it later on as necessary according to 3GPP TS 26.093 A.5.1.1. Change-Id: Ifcdc5c60d0238b704a94f6778d4e00f2b087b090 Fixes: OS#1801 --- M src/osmo-bts-litecell15/l1_if.c M src/osmo-bts-litecell15/tch.c M src/osmo-bts-sysmo/l1_if.c M src/osmo-bts-sysmo/tch.c 4 files changed, 24 insertions(+), 10 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/58/858/1 diff --git a/src/osmo-bts-litecell15/l1_if.c b/src/osmo-bts-litecell15/l1_if.c index da63e00..4c5a535 100644 --- a/src/osmo-bts-litecell15/l1_if.c +++ b/src/osmo-bts-litecell15/l1_if.c @@ -466,10 +466,13 @@ if (!nmsg) return -ENOMEM; l1p = msgb_l1prim(nmsg); - l1if_tch_encode(lchan, - l1p->u.phDataReq.msgUnitParam.u8Buffer, - &l1p->u.phDataReq.msgUnitParam.u8Size, - msg->data, msg->len, u32Fn); + if (l1if_tch_encode(lchan, + l1p->u.phDataReq.msgUnitParam.u8Buffer, + &l1p->u.phDataReq.msgUnitParam.u8Size, + msg->data, msg->len, u32Fn) < 0) { + msgb_free(nmsg); + nmsg = NULL; + } } /* no message/data, we generate an empty traffic msg */ diff --git a/src/osmo-bts-litecell15/tch.c b/src/osmo-bts-litecell15/tch.c index 4fdf6a6..0daacf9 100644 --- a/src/osmo-bts-litecell15/tch.c +++ b/src/osmo-bts-litecell15/tch.c @@ -270,8 +270,10 @@ } #endif - if (ft == AMR_SID) + if (ft == AMR_SID) { save_last_sid(lchan, l1_payload, payload_len, fn, sti); + return -EALREADY; + } return payload_len+1; } @@ -324,6 +326,8 @@ *payload_type = GsmL1_TchPlType_Amr; rc = rtppayload_to_l1_amr(l1_payload, rtp_pl, rtp_pl_len, lchan, fn); + if (-EALREADY == rc) + return rc; break; default: /* we don't support CSD modes */ diff --git a/src/osmo-bts-sysmo/l1_if.c b/src/osmo-bts-sysmo/l1_if.c index 7280c1d..cb7f9a5 100644 --- a/src/osmo-bts-sysmo/l1_if.c +++ b/src/osmo-bts-sysmo/l1_if.c @@ -459,10 +459,13 @@ if (!nmsg) return -ENOMEM; l1p = msgb_l1prim(nmsg); - l1if_tch_encode(lchan, - l1p->u.phDataReq.msgUnitParam.u8Buffer, - &l1p->u.phDataReq.msgUnitParam.u8Size, - msg->data, msg->len, u32Fn); + if (l1if_tch_encode(lchan, + l1p->u.phDataReq.msgUnitParam.u8Buffer, + &l1p->u.phDataReq.msgUnitParam.u8Size, + msg->data, msg->len, u32Fn) < 0) { + msgb_free(nmsg); + nmsg = NULL; + } } /* no message/data, we generate an empty traffic msg */ diff --git a/src/osmo-bts-sysmo/tch.c b/src/osmo-bts-sysmo/tch.c index ee72e53..4c1a3f7 100644 --- a/src/osmo-bts-sysmo/tch.c +++ b/src/osmo-bts-sysmo/tch.c @@ -367,8 +367,10 @@ } #endif - if (ft == AMR_SID) + if (ft == AMR_SID) { save_last_sid(lchan, l1_payload, payload_len, fn, sti); + return -EALREADY; + } return payload_len+1; } @@ -423,6 +425,8 @@ *payload_type = GsmL1_TchPlType_Amr; rc = rtppayload_to_l1_amr(l1_payload, rtp_pl, rtp_pl_len, lchan, fn); + if (-EALREADY == rc) + return rc; break; default: /* we don't support CSD modes */ -- To view, visit https://gerrit.osmocom.org/858 To unsubscribe, visit https://gerrit.osmocom.org/settings Gerrit-MessageType: newchange Gerrit-Change-Id: Ifcdc5c60d0238b704a94f6778d4e00f2b087b090 Gerrit-PatchSet: 1 Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Owner: Max <msuraev at sysmocom.de>