From eec53f12145687a916500a9360999ffb8cecf856 Mon Sep 17 00:00:00 2001
From: Lionel Gauthier <lionel.gauthier@eurecom.fr>
Date: Tue, 4 Nov 2014 08:09:58 +0000
Subject: [PATCH] git-svn-id: http://svn.eurecom.fr/openair4G/trunk@5960
 818b1a75-f10b-46b9-bf7c-635c3b92a50f

---
 openair-cn/GTPV1-U/nw-gtpv1u/src/NwGtpv1u.c | 20 +++++++++++---------
 1 file changed, 11 insertions(+), 9 deletions(-)

diff --git a/openair-cn/GTPV1-U/nw-gtpv1u/src/NwGtpv1u.c b/openair-cn/GTPV1-U/nw-gtpv1u/src/NwGtpv1u.c
index 366a340119..59659c4256 100644
--- a/openair-cn/GTPV1-U/nw-gtpv1u/src/NwGtpv1u.c
+++ b/openair-cn/GTPV1-U/nw-gtpv1u/src/NwGtpv1u.c
@@ -510,20 +510,22 @@ nwGtpv1uProcessGpdu( NwGtpv1uStackT *thiz,
                                        gpduLen,
                                        &hMsg);
 
-        payload_len = ntohs(msgHdr->msgLength);
-        hdr_len     = NW_GTPV1U_EPC_MIN_HEADER_SIZE;
-        if (msgHdr->S || msgHdr->PN || msgHdr->E ) {
-            hdr_len     = NW_GTPV1U_EPC_SPECIFIC_HEADER_SIZE;
-            payload_len = payload_len - (NW_GTPV1U_EPC_SPECIFIC_HEADER_SIZE - NW_GTPV1U_EPC_MIN_HEADER_SIZE);
-        }
-        AssertFatal(gpduLen == (payload_len + hdr_len),
-                "Mismatch gpduLen %d / hdr_len %d / payload_len %d",
-                gpduLen, hdr_len, payload_len);
 
         if(NW_GTPV1U_OK == rc) {
             NwGtpv1uMsgT *pMsg = (NwGtpv1uMsgT *) hMsg;
             GTPU_DEBUG("Received T-PDU over tunnel end-point '%x' of size %u from "NW_IPV4_ADDR"\n",
                    ntohl(msgHdr->teid), pMsg->msgLen, NW_IPV4_ADDR_FORMAT((peerIp)));
+
+            payload_len = ntohs(msgHdr->msgLength);
+            hdr_len     = NW_GTPV1U_EPC_MIN_HEADER_SIZE;
+            if (msgHdr->S || msgHdr->PN || msgHdr->E ) {
+                hdr_len     = NW_GTPV1U_EPC_SPECIFIC_HEADER_SIZE;
+                payload_len = payload_len - (NW_GTPV1U_EPC_SPECIFIC_HEADER_SIZE - NW_GTPV1U_EPC_MIN_HEADER_SIZE);
+            }
+            AssertFatal(gpduLen == (payload_len + hdr_len),
+                    "Mismatch gpduLen %d / hdr_len %d / payload_len %d",
+                    gpduLen, hdr_len, payload_len);
+
             rc = nwGtpSessionSendMsgApiToUlpEntity(pTunnelEndPoint, pMsg);
         }
     } else {
-- 
GitLab