dexter has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-mgw/+/31267 )
Change subject: mgcp_endp: cosmetic move mgcp_endp_release to the end
......................................................................
mgcp_endp: cosmetic move mgcp_endp_release to the end
It is more logical to move the function mgcp_endp_release to the end
since it is used to release the endpoint when it is no longer needed for
any transmission. (Also the follow up patch requires the function to be
moved)
Change-Id: Id3166a6a817ddb9ce36ff1b375ff8ed3598a00c2
---
M include/osmocom/mgcp/mgcp_endp.h
M src/libosmo-mgcp/mgcp_endp.c
2 files changed, 32 insertions(+), 31 deletions(-)
git pull ssh://gerrit.osmocom.org:29418/osmo-mgw refs/changes/67/31267/1
diff --git a/include/osmocom/mgcp/mgcp_endp.h b/include/osmocom/mgcp/mgcp_endp.h
index b130050..08b966f 100644
--- a/include/osmocom/mgcp/mgcp_endp.h
+++ b/include/osmocom/mgcp/mgcp_endp.h
@@ -130,7 +130,6 @@
};
struct mgcp_endpoint *mgcp_endp_alloc(struct mgcp_trunk *trunk, unsigned int index);
-void mgcp_endp_release(struct mgcp_endpoint *endp);
int mgcp_endp_claim(struct mgcp_endpoint *endp, const char *callid);
void mgcp_endp_update(struct mgcp_endpoint *endp);
bool mgcp_endp_is_wildcarded(const char *epname);
@@ -145,3 +144,4 @@
const struct mgcp_trunk *trunk);
struct mgcp_endpoint *mgcp_endp_find_specific(const char *epname,
const struct mgcp_trunk *trunk);
+void mgcp_endp_release(struct mgcp_endpoint *endp);
diff --git a/src/libosmo-mgcp/mgcp_endp.c b/src/libosmo-mgcp/mgcp_endp.c
index a41e0d0..22dbeb7 100644
--- a/src/libosmo-mgcp/mgcp_endp.c
+++ b/src/libosmo-mgcp/mgcp_endp.c
@@ -110,36 +110,6 @@
return endp;
}
-/*! release endpoint, all open connections are closed.
- * \param[in] endp endpoint to release */
-void mgcp_endp_release(struct mgcp_endpoint *endp)
-{
- LOGPENDP(endp, DLMGCP, LOGL_DEBUG, "Releasing endpoint\n");
-
- /* Normally this function should only be called when
- * all connections have been removed already. In case
- * that there are still connections open (e.g. when
- * RSIP is executed), free them all at once. */
- mgcp_conn_free_all(endp);
-
- /* We must only decrement the stat item when the endpoint as actually
- * claimed. An endpoint is claimed when a call-id is set */
- if (endp->callid)
- osmo_stat_item_dec(osmo_stat_item_group_get_item(endp->trunk->stats.common,
- TRUNK_STAT_ENDPOINTS_USED), 1);
-
- /* Reset endpoint parameters and states */
- talloc_free(endp->callid);
- endp->callid = NULL;
- talloc_free(endp->local_options.string);
- endp->local_options.string = NULL;
- talloc_free(endp->local_options.codec);
- endp->local_options.codec = NULL;
-
- if (endp->trunk->trunk_type == MGCP_TRUNK_E1)
- mgcp_e1_endp_release(endp);
-}
-
/* Check if the endpoint name contains the prefix (e.g. "rtpbridge/" or
* "ds/e1-") and write the epname without the prefix back to the memory
* pointed at by epname. (per trunk the prefix is the same for all endpoints,
@@ -675,3 +645,34 @@
if (llist_empty(&endp->conns))
mgcp_endp_release(endp);
}
+
+/*! release endpoint, all open connections are closed.
+ * \param[in] endp endpoint to release */
+void mgcp_endp_release(struct mgcp_endpoint *endp)
+{
+ LOGPENDP(endp, DLMGCP, LOGL_DEBUG, "Releasing endpoint\n");
+
+ /* Normally this function should only be called when
+ * all connections have been removed already. In case
+ * that there are still connections open (e.g. when
+ * RSIP is executed), free them all at once. */
+ mgcp_conn_free_all(endp);
+
+ /* We must only decrement the stat item when the endpoint as actually
+ * claimed. An endpoint is claimed when a call-id is set */
+ if (endp->callid)
+ osmo_stat_item_dec(osmo_stat_item_group_get_item(endp->trunk->stats.common,
+ TRUNK_STAT_ENDPOINTS_USED), 1);
+
+ /* Reset endpoint parameters and states */
+ talloc_free(endp->callid);
+ endp->callid = NULL;
+ talloc_free(endp->local_options.string);
+ endp->local_options.string = NULL;
+ talloc_free(endp->local_options.codec);
+ endp->local_options.codec = NULL;
+
+ if (endp->trunk->trunk_type == MGCP_TRUNK_E1)
+ mgcp_e1_endp_release(endp);
+}
+
--
To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/31267
To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings
Gerrit-Project: osmo-mgw
Gerrit-Branch: master
Gerrit-Change-Id: Id3166a6a817ddb9ce36ff1b375ff8ed3598a00c2
Gerrit-Change-Number: 31267
Gerrit-PatchSet: 1
Gerrit-Owner: dexter <pmaier(a)sysmocom.de>
Gerrit-MessageType: newchange
dexter has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-mgw/+/31268 )
Change subject: mgcp_endp: cosmetic: remove unnecessary new line
......................................................................
mgcp_endp: cosmetic: remove unnecessary new line
Change-Id: I5892bc2e07ab16356acb4e75c6f9c31f6604d41e
---
M src/libosmo-mgcp/mgcp_endp.c
1 file changed, 0 insertions(+), 1 deletion(-)
git pull ssh://gerrit.osmocom.org:29418/osmo-mgw refs/changes/68/31268/1
diff --git a/src/libosmo-mgcp/mgcp_endp.c b/src/libosmo-mgcp/mgcp_endp.c
index 22dbeb7..03e5330 100644
--- a/src/libosmo-mgcp/mgcp_endp.c
+++ b/src/libosmo-mgcp/mgcp_endp.c
@@ -157,7 +157,6 @@
}
}
-
/*! Convert all characters in epname to lowercase and strip trunk prefix and
* endpoint name suffix (domain name) from epname. The result is written to
* to the memory pointed at by epname_stripped. The expected size of the
--
To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/31268
To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings
Gerrit-Project: osmo-mgw
Gerrit-Branch: master
Gerrit-Change-Id: I5892bc2e07ab16356acb4e75c6f9c31f6604d41e
Gerrit-Change-Number: 31268
Gerrit-PatchSet: 1
Gerrit-Owner: dexter <pmaier(a)sysmocom.de>
Gerrit-MessageType: newchange
dexter has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-mgw/+/31269 )
Change subject: mgcp_e1: be more frugal withe E1 line resources
......................................................................
mgcp_e1: be more frugal withe E1 line resources
At the moment we open an E1 timeslot when needed, but we never
close it even when it is not needed anymore. This may block other
entities from using it. Lets add some logic to detect whether the E1
timeslot is still needed and make sure that it is closed when it is no
longer needed.
Change-Id: Ie6a32abbc5cd984f6d72a384e3b47c1b82ce7058
Related: OS#5198
---
M include/osmocom/mgcp/mgcp_e1.h
M include/osmocom/mgcp/mgcp_trunk.h
M src/libosmo-mgcp/mgcp_e1.c
M src/libosmo-mgcp/mgcp_endp.c
4 files changed, 75 insertions(+), 19 deletions(-)
git pull ssh://gerrit.osmocom.org:29418/osmo-mgw refs/changes/69/31269/1
diff --git a/include/osmocom/mgcp/mgcp_e1.h b/include/osmocom/mgcp/mgcp_e1.h
index f0cf3ec..fbd594c 100644
--- a/include/osmocom/mgcp/mgcp_e1.h
+++ b/include/osmocom/mgcp/mgcp_e1.h
@@ -23,5 +23,5 @@
int mgcp_e1_endp_equip(struct mgcp_endpoint *endp, uint8_t ts, uint8_t ss, uint8_t offs);
void mgcp_e1_endp_update(struct mgcp_endpoint *endp);
-void mgcp_e1_endp_release(struct mgcp_endpoint *endp);
+void mgcp_e1_endp_release(struct mgcp_endpoint *endp, uint8_t ts);
int mgcp_e1_send_rtp(struct mgcp_endpoint *endp, struct mgcp_rtp_codec *codec, struct msgb *msg);
diff --git a/include/osmocom/mgcp/mgcp_trunk.h b/include/osmocom/mgcp/mgcp_trunk.h
index 3f14f97..a8257bb 100644
--- a/include/osmocom/mgcp/mgcp_trunk.h
+++ b/include/osmocom/mgcp/mgcp_trunk.h
@@ -66,7 +66,7 @@
/* E1 specific */
struct {
unsigned int vty_line_nr;
- bool ts_in_use[NUM_E1_TS-1];
+ uint8_t ts_in_use[NUM_E1_TS-1];
struct osmo_i460_timeslot i460_ts[NUM_E1_TS-1];
/* Note: on an E1 line TS 0 is devoted to framing and
* alignment and therefore only NUM_E1_TS-1 timeslots
diff --git a/src/libosmo-mgcp/mgcp_e1.c b/src/libosmo-mgcp/mgcp_e1.c
index 7f30c1d..51b5caf 100644
--- a/src/libosmo-mgcp/mgcp_e1.c
+++ b/src/libosmo-mgcp/mgcp_e1.c
@@ -365,13 +365,11 @@
msgb_free(msg);
}
-static int e1_init(struct mgcp_trunk *trunk, uint8_t ts_nr)
+static int e1_open(struct mgcp_trunk *trunk, uint8_t ts_nr)
{
- /*! Each timeslot needs only to be configured once. The Timeslot then
- * stays open and permanently receives data. It is then up to the
- * I.460 demultiplexer to add/remove subchannels as needed. It is
- * allowed to call this function multiple times since we check if the
- * timeslot is already configured. */
+ /*! One E1 timeslot may serve multiple I.460 subslot. The timeslot is opened as soon as an I.460 subslot is
+ * opened and will stay open until the last I.460 subslot is closed (see e1_close belos). This function must
+ * be called any time a new I.460 subslot is opened in order to maintain constancy of the ts_in_use counter. */
struct e1inp_line *e1_line;
int rc;
@@ -379,12 +377,14 @@
OSMO_ASSERT(ts_nr > 0 || ts_nr < NUM_E1_TS);
cfg = trunk->cfg;
- if (trunk->e1.ts_in_use[ts_nr - 1]) {
- LOGPTRUNK(trunk, DE1, LOGL_INFO, "E1 timeslot %u already set up, skipping...\n", ts_nr);
+ if (trunk->e1.ts_in_use[ts_nr - 1] > 0) {
+ LOGPTRUNK(trunk, DE1, LOGL_INFO, "E1 timeslot %u already set up and in use by %u subslot(s), using it as it is...\n",
+ ts_nr, trunk->e1.ts_in_use[ts_nr - 1]);
+ trunk->e1.ts_in_use[ts_nr - 1]++;
return 0;
}
- /* Get E1 line */
+ /* Find E1 line */
e1_line = e1inp_line_find(trunk->e1.vty_line_nr);
if (!e1_line) {
LOGPTRUNK(trunk, DE1, LOGL_ERROR, "no such E1 line %u - check VTY config!\n",
@@ -406,7 +406,53 @@
}
LOGPTRUNK(trunk, DE1, LOGL_INFO, "E1 timeslot %u set up successfully.\n", ts_nr);
- trunk->e1.ts_in_use[ts_nr - 1] = true;
+ trunk->e1.ts_in_use[ts_nr - 1]++;
+ OSMO_ASSERT(trunk->e1.ts_in_use[ts_nr - 1] == 1);
+
+ return 0;
+}
+
+static int e1_close(struct mgcp_trunk *trunk, uint8_t ts_nr)
+{
+ /* See also comment above (e1_open). This function must be called any time an I.460 subslot is closed */
+
+ struct e1inp_line *e1_line;
+ int rc;
+
+ OSMO_ASSERT(ts_nr > 0 || ts_nr < NUM_E1_TS);
+ cfg = trunk->cfg;
+
+ if (trunk->e1.ts_in_use[ts_nr - 1] > 1) {
+ trunk->e1.ts_in_use[ts_nr - 1]--;
+ LOGPTRUNK(trunk, DE1, LOGL_INFO, "E1 timeslot %u still in use by %u other subslot(s), leaving it open...\n",
+ ts_nr, trunk->e1.ts_in_use[ts_nr - 1]);
+ return 0;
+ } else if (trunk->e1.ts_in_use[ts_nr - 1] == 0) {
+ /* This should not be as it means we close the timeslot too often. */
+ LOGPTRUNK(trunk, DE1, LOGL_INFO, "E1 timeslot %u already closed, leaving it as it is...\n", ts_nr);
+ return 0;
+ }
+
+ /* Find E1 line */
+ e1_line = e1inp_line_find(trunk->e1.vty_line_nr);
+ if (!e1_line) {
+ LOGPTRUNK(trunk, DE1, LOGL_ERROR, "no such E1 line %u - check VTY config!\n",
+ trunk->e1.vty_line_nr);
+ return -EINVAL;
+ }
+
+ /* Release E1 timeslot */
+ e1_line->ts[ts_nr - 1].type = E1INP_TS_TYPE_NONE;
+ rc = e1inp_line_update(e1_line);
+ if (rc < 0) {
+ LOGPTRUNK(trunk, DE1, LOGL_ERROR, "failed to update E1 timeslot %u.\n", ts_nr);
+ return -EINVAL;
+ }
+
+
+ LOGPTRUNK(trunk, DE1, LOGL_INFO, "E1 timeslot %u closed.\n", ts_nr);
+ trunk->e1.ts_in_use[ts_nr - 1]--;
+ OSMO_ASSERT(trunk->e1.ts_in_use[ts_nr - 1] == 0);
return 0;
}
@@ -496,7 +542,7 @@
}
}
-/*! Equip E1 endpoint with I.460 mux resources.
+/*! Equip E1 endpoint with I.460 mux and E1 timeslot resources.
* \param[in] endp endpoint to equip
* \param[in] ts E1 timeslot number.
* \param[in] ss E1 subslot number.
@@ -517,7 +563,7 @@
endp->e1.last_amr_ft = AMR_4_75;
/* Set up E1 line / timeslot */
- rc = e1_init(endp->trunk, ts);
+ rc = e1_open(endp->trunk, ts);
if (rc != 0)
return -EINVAL;
@@ -604,9 +650,15 @@
}
/*! Remove E1 resources from endpoint
- * \param[in] endp endpoint to release. */
-void mgcp_e1_endp_release(struct mgcp_endpoint *endp)
+ * \param[in] endp endpoint to release.
+ * \param[in] ts E1 timeslot number. */
+void mgcp_e1_endp_release(struct mgcp_endpoint *endp, uint8_t ts)
{
+ /* Gurad against multiple calls. In case we do see a subchannel anymore we can safely assume that all work is
+ * done. */
+ if (!(endp->e1.schan || endp->e1.trau_rtp_st || endp->e1.trau_sync_fi))
+ return;
+
LOGPENDP(endp, DE1, LOGL_DEBUG, "removing I.460 subchannel and sync...\n");
if (endp->e1.schan)
@@ -615,8 +667,10 @@
talloc_free(endp->e1.trau_rtp_st);
if (endp->e1.trau_sync_fi)
osmo_fsm_inst_term(endp->e1.trau_sync_fi, OSMO_FSM_TERM_REGULAR, NULL);
-
memset(&endp->e1, 0, sizeof(endp->e1));
+
+ /* Close E1 timeslot */
+ e1_close(endp->trunk, ts);
}
/*! Accept RTP message buffer with RTP data and enqueue voice data for E1 transmit.
diff --git a/src/libosmo-mgcp/mgcp_endp.c b/src/libosmo-mgcp/mgcp_endp.c
index 03e5330..2bf15e0 100644
--- a/src/libosmo-mgcp/mgcp_endp.c
+++ b/src/libosmo-mgcp/mgcp_endp.c
@@ -671,7 +671,9 @@
talloc_free(endp->local_options.codec);
endp->local_options.codec = NULL;
- if (endp->trunk->trunk_type == MGCP_TRUNK_E1)
- mgcp_e1_endp_release(endp);
+ if (endp->trunk->trunk_type == MGCP_TRUNK_E1) {
+ uint8_t ts = e1_ts_nr_from_epname(endp->name);
+ mgcp_e1_endp_release(endp, ts);
+ }
}
--
To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/31269
To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings
Gerrit-Project: osmo-mgw
Gerrit-Branch: master
Gerrit-Change-Id: Ie6a32abbc5cd984f6d72a384e3b47c1b82ce7058
Gerrit-Change-Number: 31269
Gerrit-PatchSet: 1
Gerrit-Owner: dexter <pmaier(a)sysmocom.de>
Gerrit-MessageType: newchange
Attention is currently required from: pespin, fixeria.
Hello Jenkins Builder, laforge, fixeria,
I'd like you to reexamine a change. Please visit
https://gerrit.osmocom.org/c/libosmo-gprs/+/31099
to look at the new patch set (#14).
Change subject: rlcmac: Initial implementation of UL TBF assignment and scheduler
......................................................................
rlcmac: Initial implementation of UL TBF assignment and scheduler
This patch is another towards a working RLC/MAC implementation. It adds:
* An initial data model with MS (gprs_rlcmac_entity) and ul_tbf.
* A UL_TBF state FSM from initial to FLOW status
* A UL_TBF assignemnt FSM, covering both 1phase and 2phase assignments.
* Triggering of UL_TBF allocation and assignment FSM when new LLC data
is pushed from upper layers.
* A scheduler generating some ctrl messages (PktResReq and UlDummyCtrlBlk)
when indicated by the network.
This patch is pushed as a WIP state since it already contains a
considerable amount of code and lots of new files, which can be
used/extended at a later point, making parallel contribution easier.
Related: OS#5500
Change-Id: I420c57a9d0b63f9c2805a7c2ae8ce85532a48eef
---
M include/osmocom/gprs/rlcmac/Makefile.am
M include/osmocom/gprs/rlcmac/rlcmac.h
A include/osmocom/gprs/rlcmac/rlcmac_enc.h
M include/osmocom/gprs/rlcmac/rlcmac_private.h
A include/osmocom/gprs/rlcmac/sched.h
A include/osmocom/gprs/rlcmac/tbf.h
A include/osmocom/gprs/rlcmac/tbf_ul.h
A include/osmocom/gprs/rlcmac/tbf_ul_ass_fsm.h
A include/osmocom/gprs/rlcmac/tbf_ul_fsm.h
A include/osmocom/gprs/rlcmac/types_private.h
M src/rlcmac/Makefile.am
M src/rlcmac/gre.c
M src/rlcmac/misc.c
M src/rlcmac/rlcmac.c
A src/rlcmac/rlcmac_enc.c
M src/rlcmac/rlcmac_prim.c
A src/rlcmac/sched.c
A src/rlcmac/tbf.c
A src/rlcmac/tbf_ul.c
A src/rlcmac/tbf_ul_ass_fsm.c
A src/rlcmac/tbf_ul_fsm.c
M tests/rlcmac/rlcmac_prim_test.c
M tests/rlcmac/rlcmac_prim_test.err
M tests/rlcmac/rlcmac_prim_test.ok
24 files changed, 1,556 insertions(+), 10 deletions(-)
git pull ssh://gerrit.osmocom.org:29418/libosmo-gprs refs/changes/99/31099/14
--
To view, visit https://gerrit.osmocom.org/c/libosmo-gprs/+/31099
To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings
Gerrit-Project: libosmo-gprs
Gerrit-Branch: master
Gerrit-Change-Id: I420c57a9d0b63f9c2805a7c2ae8ce85532a48eef
Gerrit-Change-Number: 31099
Gerrit-PatchSet: 14
Gerrit-Owner: pespin <pespin(a)sysmocom.de>
Gerrit-Reviewer: Jenkins Builder
Gerrit-Reviewer: fixeria <vyanitskiy(a)sysmocom.de>
Gerrit-Reviewer: laforge <laforge(a)osmocom.org>
Gerrit-Attention: pespin <pespin(a)sysmocom.de>
Gerrit-Attention: fixeria <vyanitskiy(a)sysmocom.de>
Gerrit-MessageType: newpatchset
Attention is currently required from: pespin, fixeria.
Hello Jenkins Builder, laforge, fixeria,
I'd like you to reexamine a change. Please visit
https://gerrit.osmocom.org/c/libosmo-gprs/+/31170
to look at the new patch set (#6).
Change subject: rlcmac: Initial ul_tbf data support
......................................................................
rlcmac: Initial ul_tbf data support
This is basically an import of relevant code from osmo-pcu.git
08523c2286dfe27402f8e2eb4b98da5a529c7915 which allows encoding LLC
frames into RLC/MAC uplink data blocks.
A 1-to-1 import was not possible for several reasons:
* osmo-pcu uses C++ in some places
* osmo-pcu implements encoding of DL data blocks, not UL data blocks
* Some osmo-pcu code is still not really polished and stuff is still
mixed (for instance rlc_window(_ul).c/h were split into their own
files here).
Hence this was not a "copy all files and leave as they are" import, but
rather looking at the encode path starting on osmo-pcu.git scheduler and
see which code had to be pulled in to encode the RLC/MAC blocks.
Due to the slightly different requerirements for UL and DL blocks, it is
well possible that further work in needed in order to have the code
produce correct blocks. This is only a first step to pull in all code so
that stuff can be fixed in smallish incremental steps.
Related: OS#5500
Change-Id: I0a01d79d16bbfc63aa88e6bb0f432f3772645730
---
M include/osmocom/gprs/rlcmac/Makefile.am
A include/osmocom/gprs/rlcmac/coding_scheme.h
A include/osmocom/gprs/rlcmac/rlc.h
A include/osmocom/gprs/rlcmac/rlc_window.h
A include/osmocom/gprs/rlcmac/rlc_window_ul.h
M include/osmocom/gprs/rlcmac/rlcmac_enc.h
M include/osmocom/gprs/rlcmac/rlcmac_private.h
M include/osmocom/gprs/rlcmac/tbf_ul.h
M include/osmocom/gprs/rlcmac/tbf_ul_fsm.h
M src/rlcmac/Makefile.am
A src/rlcmac/coding_scheme.c
A src/rlcmac/rlc.c
A src/rlcmac/rlc_window.c
A src/rlcmac/rlc_window_ul.c
M src/rlcmac/rlcmac.c
M src/rlcmac/rlcmac_enc.c
M src/rlcmac/sched.c
M src/rlcmac/tbf_ul.c
M src/rlcmac/tbf_ul_ass_fsm.c
M src/rlcmac/tbf_ul_fsm.c
M tests/rlcmac/rlcmac_prim_test.c
M tests/rlcmac/rlcmac_prim_test.err
M tests/rlcmac/rlcmac_prim_test.ok
23 files changed, 2,559 insertions(+), 15 deletions(-)
git pull ssh://gerrit.osmocom.org:29418/libosmo-gprs refs/changes/70/31170/6
--
To view, visit https://gerrit.osmocom.org/c/libosmo-gprs/+/31170
To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings
Gerrit-Project: libosmo-gprs
Gerrit-Branch: master
Gerrit-Change-Id: I0a01d79d16bbfc63aa88e6bb0f432f3772645730
Gerrit-Change-Number: 31170
Gerrit-PatchSet: 6
Gerrit-Owner: pespin <pespin(a)sysmocom.de>
Gerrit-Reviewer: Jenkins Builder
Gerrit-Reviewer: fixeria <vyanitskiy(a)sysmocom.de>
Gerrit-Reviewer: laforge <laforge(a)osmocom.org>
Gerrit-Attention: pespin <pespin(a)sysmocom.de>
Gerrit-Attention: fixeria <vyanitskiy(a)sysmocom.de>
Gerrit-MessageType: newpatchset
Hello Jenkins Builder,
I'd like you to reexamine a change. Please visit
https://gerrit.osmocom.org/c/libosmocore/+/31266
to look at the new patch set (#2).
Change subject: add contrib/talloc_count.sh
......................................................................
add contrib/talloc_count.sh
When a user reports a memory leak with a talloc report, this script is
useful to quickly get a handle of what is being leaked. The alternative
is eyeballing the talloc report for a very long time.
Change-Id: I5b3242dd6e0649925ac6abfd1e96625c682b8934
---
A contrib/talloc_count.sh
1 file changed, 43 insertions(+), 0 deletions(-)
git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/66/31266/2
--
To view, visit https://gerrit.osmocom.org/c/libosmocore/+/31266
To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings
Gerrit-Project: libosmocore
Gerrit-Branch: master
Gerrit-Change-Id: I5b3242dd6e0649925ac6abfd1e96625c682b8934
Gerrit-Change-Number: 31266
Gerrit-PatchSet: 2
Gerrit-Owner: neels <nhofmeyr(a)sysmocom.de>
Gerrit-Reviewer: Jenkins Builder
Gerrit-MessageType: newpatchset
Attention is currently required from: osmith.
Hello Jenkins Builder, pespin,
I'd like you to reexamine a change. Please visit
https://gerrit.osmocom.org/c/libosmocore/+/31265
to look at the new patch set (#3).
Change subject: gsm0808_enc/dec_channel_type: support data
......................................................................
gsm0808_enc/dec_channel_type: support data
Related: OS#4393
Change-Id: Ib7b75c9d86aace329decf20003b68de459021c64
---
M include/osmocom/gsm/protocol/gsm_08_08.h
M src/gsm/gsm0808_utils.c
M tests/gsm0808/gsm0808_test.c
3 files changed, 245 insertions(+), 20 deletions(-)
git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/65/31265/3
--
To view, visit https://gerrit.osmocom.org/c/libosmocore/+/31265
To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings
Gerrit-Project: libosmocore
Gerrit-Branch: master
Gerrit-Change-Id: Ib7b75c9d86aace329decf20003b68de459021c64
Gerrit-Change-Number: 31265
Gerrit-PatchSet: 3
Gerrit-Owner: osmith <osmith(a)sysmocom.de>
Gerrit-Reviewer: Jenkins Builder
Gerrit-Reviewer: pespin <pespin(a)sysmocom.de>
Gerrit-Attention: osmith <osmith(a)sysmocom.de>
Gerrit-MessageType: newpatchset