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/.
lynxis lazus gerrit-no-reply at lists.osmocom.orglynxis lazus has uploaded this change for review. ( https://gerrit.osmocom.org/10371
Change subject: bssgp: introduce flush queue functions
......................................................................
bssgp: introduce flush queue functions
To reset the state of BSSGP allow to flush the BSSGP queues.
Introduce the functions:
bssgp_fc_flush_queue()
bssgp_flush_all_queues()
Change-Id: I29b6ad6742ddf9b0b58b4af37d9a1cf18e019325
---
M include/osmocom/gprs/gprs_bssgp.h
M src/gb/gprs_bssgp.c
M src/gb/libosmogb.map
3 files changed, 25 insertions(+), 0 deletions(-)
git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/71/10371/1
diff --git a/include/osmocom/gprs/gprs_bssgp.h b/include/osmocom/gprs/gprs_bssgp.h
index 2dead69..400c3e0 100644
--- a/include/osmocom/gprs/gprs_bssgp.h
+++ b/include/osmocom/gprs/gprs_bssgp.h
@@ -207,6 +207,9 @@
int bssgp_fc_ms_init(struct bssgp_flow_control *fc_ms, uint16_t bvci,
uint16_t nsei, uint32_t max_queue_depth);
+void bssgp_flush_all_queues();
+void bssgp_fc_flush_queue(struct bssgp_flow_control *fc);
+
/* gprs_bssgp_vty.c */
int bssgp_vty_init(void);
void bssgp_set_log_ss(int ss);
diff --git a/src/gb/gprs_bssgp.c b/src/gb/gprs_bssgp.c
index 5dfce16..fb79cf8 100644
--- a/src/gb/gprs_bssgp.c
+++ b/src/gb/gprs_bssgp.c
@@ -1263,3 +1263,23 @@
{
DBSSGP = ss;
}
+
+void bssgp_fc_flush_queue(struct bssgp_flow_control *fc)
+{
+ struct bssgp_fc_queue_element *element, *tmp;
+ llist_for_each_entry_safe(element, tmp, &fc->queue, list) {
+ msgb_free(element->msg);
+ llist_del(element);
+ talloc_free(element);
+ }
+}
+
+void bssgp_flush_all_queues()
+{
+ struct bssgp_bvc_ctx *bctx;
+
+ llist_for_each_entry(bctx, &bssgp_bvc_ctxts, list) {
+ if (bctx->fc)
+ bssgp_fc_flush_queue(bctx->fc);
+ }
+}
diff --git a/src/gb/libosmogb.map b/src/gb/libosmogb.map
index d56e651..ec69670 100644
--- a/src/gb/libosmogb.map
+++ b/src/gb/libosmogb.map
@@ -6,6 +6,8 @@
bssgp_fc_in;
bssgp_fc_init;
bssgp_fc_ms_init;
+bssgp_fc_flush_queue;
+bssgp_flush_all_queues;
bssgp_msgb_alloc;
bssgp_msgb_copy;
bssgp_msgb_tlli_put;
--
To view, visit https://gerrit.osmocom.org/10371
To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings
Gerrit-Project: libosmocore
Gerrit-Branch: master
Gerrit-MessageType: newchange
Gerrit-Change-Id: I29b6ad6742ddf9b0b58b4af37d9a1cf18e019325
Gerrit-Change-Number: 10371
Gerrit-PatchSet: 1
Gerrit-Owner: lynxis lazus <lynxis at fe80.eu>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osmocom.org/pipermail/gerrit-log/attachments/20180807/ab21459e/attachment.htm>