Change in osmo-sgsn[master]: Add optional TearDownInd IE in PDP DEACT REQ towards PCU

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/.

Pau Espin Pedrol gerrit-no-reply at lists.osmocom.org
Fri Jul 13 17:17:14 UTC 2018


Pau Espin Pedrol has uploaded this change for review. ( https://gerrit.osmocom.org/9992


Change subject: Add optional TearDownInd IE in PDP DEACT REQ towards PCU
......................................................................

Add optional TearDownInd IE in PDP DEACT REQ towards PCU

Change-Id: Ia9bc2d0e93362a8473eac5cf4c7e8ffa41c79e5b
---
M include/osmocom/sgsn/gprs_gmm.h
M src/gprs/gprs_gmm.c
M src/gprs/gprs_sgsn.c
3 files changed, 8 insertions(+), 7 deletions(-)



  git pull ssh://gerrit.osmocom.org:29418/osmo-sgsn refs/changes/92/9992/1

diff --git a/include/osmocom/sgsn/gprs_gmm.h b/include/osmocom/sgsn/gprs_gmm.h
index 28c96ce..d12eaf9 100644
--- a/include/osmocom/sgsn/gprs_gmm.h
+++ b/include/osmocom/sgsn/gprs_gmm.h
@@ -6,7 +6,7 @@
 
 #include <stdbool.h>
 
-int gsm48_tx_gsm_deact_pdp_req(struct sgsn_pdp_ctx *pdp, uint8_t sm_cause);
+int gsm48_tx_gsm_deact_pdp_req(struct sgsn_pdp_ctx *pdp, uint8_t sm_cause, bool teardown);
 int gsm48_tx_gsm_act_pdp_rej(struct sgsn_mm_ctx *mm, uint8_t tid,
 			     uint8_t cause, uint8_t pco_len, uint8_t *pco_v);
 int gsm48_tx_gsm_act_pdp_acc(struct sgsn_pdp_ctx *pdp);
diff --git a/src/gprs/gprs_gmm.c b/src/gprs/gprs_gmm.c
index 9d8a869..d06fa6c 100644
--- a/src/gprs/gprs_gmm.c
+++ b/src/gprs/gprs_gmm.c
@@ -2295,11 +2295,12 @@
 
 /* Section 9.5.8: Deactivate PDP Context Request */
 static int _gsm48_tx_gsm_deact_pdp_req(struct sgsn_mm_ctx *mm, uint8_t tid,
-					uint8_t sm_cause)
+					uint8_t sm_cause, bool teardown)
 {
 	struct msgb *msg = gsm48_msgb_alloc_name("GSM 04.08 PDP DET REQ");
 	struct gsm48_hdr *gh;
 	uint8_t transaction_id = tid ^ 0x8; /* flip */
+	uint8_t tear_down_ind = (0x9 << 4) | (!!teardown);
 
 	LOGMMCTXP(LOGL_INFO, mm, "<- DEACTIVATE PDP CONTEXT REQ\n");
 	rate_ctr_inc(&sgsn->rate_ctrs->ctr[CTR_PDP_DL_DEACTIVATE_REQUEST]);
@@ -2311,14 +2312,15 @@
 	gh->msg_type = GSM48_MT_GSM_DEACT_PDP_REQ;
 
 	msgb_v_put(msg, sm_cause);
+	msgb_v_put(msg, tear_down_ind);
 
 	return gsm48_gmm_sendmsg(msg, 0, mm, true);
 }
-int gsm48_tx_gsm_deact_pdp_req(struct sgsn_pdp_ctx *pdp, uint8_t sm_cause)
+int gsm48_tx_gsm_deact_pdp_req(struct sgsn_pdp_ctx *pdp, uint8_t sm_cause, bool teardown)
 {
 	pdpctx_timer_start(pdp, 3395, sgsn->cfg.timers.T3395);
 
-	return _gsm48_tx_gsm_deact_pdp_req(pdp->mm, pdp->ti, sm_cause);
+	return _gsm48_tx_gsm_deact_pdp_req(pdp->mm, pdp->ti, sm_cause, teardown);
 }
 
 /* Section 9.5.9: Deactivate PDP Context Accept */
@@ -2724,7 +2726,7 @@
 			sgsn_delete_pdp_ctx(pdp);
 			break;
 		}
-		gsm48_tx_gsm_deact_pdp_req(pdp, GSM_CAUSE_NET_FAIL);
+		gsm48_tx_gsm_deact_pdp_req(pdp, GSM_CAUSE_NET_FAIL, true);
 		break;
 	default:
 		LOGPDPCTXP(LOGL_ERROR, pdp, "timer expired in unknown mode %u\n",
diff --git a/src/gprs/gprs_sgsn.c b/src/gprs/gprs_sgsn.c
index ab5e79a..35479fb 100644
--- a/src/gprs/gprs_sgsn.c
+++ b/src/gprs/gprs_sgsn.c
@@ -703,7 +703,7 @@
 static void drop_one_pdp(struct sgsn_pdp_ctx *pdp)
 {
 	if (pdp->mm->gmm_state == GMM_REGISTERED_NORMAL)
-		gsm48_tx_gsm_deact_pdp_req(pdp, GSM_CAUSE_NET_FAIL);
+		gsm48_tx_gsm_deact_pdp_req(pdp, GSM_CAUSE_NET_FAIL, true);
 	else  {
 		/* FIXME: GPRS paging in case MS is SUSPENDED */
 		LOGPDPCTXP(LOGL_NOTICE, pdp, "Hard-dropping PDP ctx due to GGSN "
@@ -954,4 +954,3 @@
 	osmo_timer_setup(&sgsn->llme_timer, sgsn_llme_check_cb, NULL);
 	osmo_timer_schedule(&sgsn->llme_timer, GPRS_LLME_CHECK_TICK, 0);
 }
-

-- 
To view, visit https://gerrit.osmocom.org/9992
To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings

Gerrit-Project: osmo-sgsn
Gerrit-Branch: master
Gerrit-MessageType: newchange
Gerrit-Change-Id: Ia9bc2d0e93362a8473eac5cf4c7e8ffa41c79e5b
Gerrit-Change-Number: 9992
Gerrit-PatchSet: 1
Gerrit-Owner: Pau Espin Pedrol <pespin at sysmocom.de>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osmocom.org/pipermail/gerrit-log/attachments/20180713/d74160ac/attachment.htm>


More information about the gerrit-log mailing list