aboutsummaryrefslogtreecommitdiffstats
path: root/gtp
diff options
context:
space:
mode:
authorPau Espin Pedrol <pespin@sysmocom.de>2018-07-13 19:05:00 +0200
committerPau Espin Pedrol <pespin@sysmocom.de>2018-07-13 19:05:03 +0200
commita32e4c4fb8d971dfa19dc9ea1a2dbc287d430f2b (patch)
tree7efdfa788541a1d72de6ad529d4f9f7f8b185acd /gtp
parent3b84e92ab3ddcc3d022108385238c36a21e5226b (diff)
gtp: Allow recv DEL CTX REQ in sgsn and DEL CTX RSP in ggsn
According to 3GPP TS 29.060 section "7.3.5 Delete PDP Context Request", both directions are valid in both GSNs. This allows osmo-sgsn receive delete ctx indication (cb_delete_context) in order to implement GGSN initiated requests. Change-Id: I6927c07be4ddf74defe338d01d947056e15cd14d
Diffstat (limited to 'gtp')
-rw-r--r--gtp/gtp.c12
1 files changed, 4 insertions, 8 deletions
diff --git a/gtp/gtp.c b/gtp/gtp.c
index ac3ec99..5b83d20 100644
--- a/gtp/gtp.c
+++ b/gtp/gtp.c
@@ -2830,8 +2830,7 @@ int gtp_decaps0(struct gsn_t *gsn)
if ((gsn->mode == GTP_MODE_GGSN) &&
((pheader->type == GTP_CREATE_PDP_RSP) ||
- (pheader->type == GTP_UPDATE_PDP_RSP) ||
- (pheader->type == GTP_DELETE_PDP_RSP))) {
+ (pheader->type == GTP_UPDATE_PDP_RSP))) {
gsn->unexpect++;
GTP_LOGPKG(LOGL_ERROR, &peer, buffer,
status,
@@ -2842,8 +2841,7 @@ int gtp_decaps0(struct gsn_t *gsn)
if ((gsn->mode == GTP_MODE_SGSN) &&
((pheader->type == GTP_CREATE_PDP_REQ) ||
- (pheader->type == GTP_UPDATE_PDP_REQ) ||
- (pheader->type == GTP_DELETE_PDP_REQ))) {
+ (pheader->type == GTP_UPDATE_PDP_REQ))) {
gsn->unexpect++;
GTP_LOGPKG(LOGL_ERROR, &peer, buffer,
status,
@@ -3009,8 +3007,7 @@ int gtp_decaps1c(struct gsn_t *gsn)
if ((gsn->mode == GTP_MODE_GGSN) &&
((pheader->type == GTP_CREATE_PDP_RSP) ||
- (pheader->type == GTP_UPDATE_PDP_RSP) ||
- (pheader->type == GTP_DELETE_PDP_RSP))) {
+ (pheader->type == GTP_UPDATE_PDP_RSP))) {
gsn->unexpect++;
GTP_LOGPKG(LOGL_ERROR, &peer, buffer,
status,
@@ -3021,8 +3018,7 @@ int gtp_decaps1c(struct gsn_t *gsn)
if ((gsn->mode == GTP_MODE_SGSN) &&
((pheader->type == GTP_CREATE_PDP_REQ) ||
- (pheader->type == GTP_UPDATE_PDP_REQ) ||
- (pheader->type == GTP_DELETE_PDP_REQ))) {
+ (pheader->type == GTP_UPDATE_PDP_REQ))) {
gsn->unexpect++;
GTP_LOGPKG(LOGL_ERROR, &peer, buffer,
status,