diff options
author | Vadim Yanitskiy <axilirator@gmail.com> | 2019-11-09 01:45:11 +0700 |
---|---|---|
committer | Vadim Yanitskiy <axilirator@gmail.com> | 2019-11-09 02:14:50 +0700 |
commit | 8eae2fcce0620d3a7a66437161050847ac666812 (patch) | |
tree | cf92782575c749216176d8217718b3366452551b | |
parent | 7a010b10f7148ce42cead66f9dd4b7901b448418 (diff) |
GPRS/BSSGP: introduce bssgp_bvc_ctx_free()
So far we had a function to allocate a new bssgp_bvc_ctx, but not
the opposite one. Let's finally introduce it, so it will be used
at least in OsmoPCU.
Please note that the new symbol has 'bssgp_' prefix, not 'btsctx_'.
Change-Id: Ia78979379dbdccd6e4628c16f00d0c06d9212172
-rw-r--r-- | TODO-RELEASE | 1 | ||||
-rw-r--r-- | include/osmocom/gprs/gprs_bssgp.h | 2 | ||||
-rw-r--r-- | src/gb/gprs_bssgp.c | 9 | ||||
-rw-r--r-- | src/gb/libosmogb.map | 1 |
4 files changed, 13 insertions, 0 deletions
diff --git a/TODO-RELEASE b/TODO-RELEASE index 9af92c17..692bdc18 100644 --- a/TODO-RELEASE +++ b/TODO-RELEASE @@ -10,3 +10,4 @@ core osmo_tdef_get() change val_if_not_present arg from unsigned long to long to allow passing -1 core struct osmo_tdef fields min_val,max_val added, ABI break (arrays of structs used in programs) gsm API added osmo_gsm48_rfpowercap2powerclass() +gb API added bssgp_bvc_ctx_free() diff --git a/include/osmocom/gprs/gprs_bssgp.h b/include/osmocom/gprs/gprs_bssgp.h index 400c3e00..0f87333a 100644 --- a/include/osmocom/gprs/gprs_bssgp.h +++ b/include/osmocom/gprs/gprs_bssgp.h @@ -112,6 +112,8 @@ extern struct llist_head bssgp_bvc_ctxts; struct bssgp_bvc_ctx *btsctx_by_raid_cid(const struct gprs_ra_id *raid, uint16_t cid); /* Find a BTS context based on BVCI+NSEI tuple */ struct bssgp_bvc_ctx *btsctx_by_bvci_nsei(uint16_t bvci, uint16_t nsei); +/* Free a given BTS context */ +void bssgp_bvc_ctx_free(struct bssgp_bvc_ctx *ctx); #define BVC_F_BLOCKED 0x0001 diff --git a/src/gb/gprs_bssgp.c b/src/gb/gprs_bssgp.c index b695c284..896f1c5a 100644 --- a/src/gb/gprs_bssgp.c +++ b/src/gb/gprs_bssgp.c @@ -141,6 +141,15 @@ struct bssgp_bvc_ctx *btsctx_alloc(uint16_t bvci, uint16_t nsei) return ctx; } +void bssgp_bvc_ctx_free(struct bssgp_bvc_ctx *ctx) +{ + if (!ctx) + return; + rate_ctr_group_free(ctx->ctrg); + llist_del(&ctx->list); + talloc_free(ctx); +} + /* Chapter 10.4.5: Flow Control BVC ACK */ static int bssgp_tx_fc_bvc_ack(uint16_t nsei, uint8_t tag, uint16_t ns_bvci) { diff --git a/src/gb/libosmogb.map b/src/gb/libosmogb.map index 5e675a66..ad139c1c 100644 --- a/src/gb/libosmogb.map +++ b/src/gb/libosmogb.map @@ -80,6 +80,7 @@ gprs_nsvc_state_append; gprs_log_filter_fn; btsctx_alloc; +bssgp_bvc_ctx_free; btsctx_by_bvci_nsei; btsctx_by_raid_cid; |