Skip to content

Conversation

@rsarwad
Copy link
Owner

@rsarwad rsarwad commented Feb 27, 2020

As part SGW and PGW tasks merge, removed PGW task and dependent files

Type: Refactor
Test suite: Executed s1ap tester test suite which includes dedicated bearer test cases and secondary PDN test cases

rsarwad and others added 30 commits February 27, 2020 15:11
Summary:
Almost every migration we would want to do on our database would require running on all tenants.
I would use this code later to migrate users from all databases from platform-server to user ents

Reviewed By: alexsn

Differential Revision: D20372853

fbshipit-source-id: 5509f178a0c07e72147a02c7db0bbfc7edecaf76
Summary: Some go mod lines were missing

Reviewed By: tmdzk

Differential Revision: D20423088

fbshipit-source-id: 1d46f0baf494ecdb876f4753a974158750ec073e
…agma#1307)

Summary:
Pull Request resolved: magma#1307

Modifying the interface a bit so that we delegate the construction of error messages to the client

Reviewed By: koolzz

Differential Revision: D20422965

fbshipit-source-id: 21532afaeaeb2d7aa21d8cf4b528130a7e10396a
Summary:
Pull Request resolved: magma#1308

See title, will use in the following diffs. Just trying to split up the work

Reviewed By: koolzz

Differential Revision: D20423180

fbshipit-source-id: 5ebdf808b1295f05812d8277372b9e6e31f0bb00
Summary: tries to fix issues on D20372023

Reviewed By: tmdzk

Differential Revision: D20424899

fbshipit-source-id: d606d2146c38ea119a3b0e148c2b161a56416b9c
Summary:
- Add `make log` shortcut to follow magmad logs with errors highlighted
- Add `make logs` shortcut for same but all services
- Add `make help` [self-documenting command](https://marmelab.com/blog/2016/02/29/auto-documented-makefile.html), pulling from the added per-target comments
- Fix cloc command

Reviewed By: xjtian

Differential Revision: D20413096

fbshipit-source-id: b5fda91f4c9e9b593bb74972bee687e28bf4599e
Summary:
## Migrations required
- `/var/opt/magma/bin/m005_certifier_to_blobstore -verify` certifier to blobstore D19628437
- `/var/opt/magma/bin/m008_accessd_to_blobstore -verify` accessd to blobstore D19786096

## Diff contents
- Update certifier executable to use blobstore
- Update accessd executable to use blobstore
- A few small cleanups, e.g. using glog instead of log

Reviewed By: xjtian

Differential Revision: D19874264

fbshipit-source-id: 24f9ef40568edc30e31aab28e9a0a566064bad5b
Summary:
The orc8r logger service is no longer used, instead we use log aggregation.
- Cloud
    - Remove logger service
    - Remove relevant configs and config keys
- Gateway
    - Python -- two services call directly to cloud logger (scribe)
        - redirectd -- remove usages of scribe
        - systemd_tailer -- this was already dead, remove it and related
    - C/C++ -- scribe client api, appears unused, will validate
        - Remove relevant code and build steps

Reviewed By: xjtian

Differential Revision: D19993100

fbshipit-source-id: fdea337db69d8f3d0630f5cb9abe19112a04e117
Summary: D20265096 introduced a change to how Tabs are typed which caused the `createOrganization` script to no longer work.

Reviewed By: rckclmbr

Differential Revision: D20429953

fbshipit-source-id: 162bffed04205c17e1260829bd2f0fbef8e36444
Summary:
- If ICMP status exists for a subscriber, report it in the REST response payload
- PS: also got rid of the singleton GRPC conn in the state service client API because it was breaking test case isolation

Reviewed By: andreilee

Differential Revision: D20358365

fbshipit-source-id: 4dd2d92f85617744ea84bc5deb79eea163202d3b
Summary:
Remove datastore iface and all usages. Main usages included
- `datastore.GetEnvWithDefault`, merged with blobstore version and moved to lib
- unused impls of some services' storage layers
- test services -- replace with blobstore using in-memory sqlite

Also includes some code tidiness fixes.

Reviewed By: xjtian

Differential Revision: D20426268

fbshipit-source-id: 1ee5ff7e0b991ca75baece5a64bcc2c009461ac9
…ded (magma#1310)

Summary:
Pull Request resolved: magma#1310

As you can see in the pcap screenshot, the FeG sends "IMSIIMSI999991234567810" not "999991234567810".

This was probably a typo, since sessiond sends up the imsi with the prefix.

{F231377078}

Reviewed By: uri200

Differential Revision: D20429726

fbshipit-source-id: 58ba33dc21e0168b02a9b449e0af4ac6212c5e2f
Summary:
- Added client mutation.
- Called it on click

Reviewed By: dlvhdr

Differential Revision: D20281177

fbshipit-source-id: 957e96b9e8d77eeab79c314935e58be2e7aac9d5
Summary: IntelliJ pls

Reviewed By: xjtian

Differential Revision: D20434040

fbshipit-source-id: 671578024088cc2483565f2ca1deaea2fd3dc73e
Summary: whoops - shoulda used different passwords when testing

Reviewed By: mpgermano

Differential Revision: D20434602

fbshipit-source-id: 5252e2e39d2a1314037ed8b6be2bf08a82d65027
Summary: not sure what I was smoking when I wrote that

Reviewed By: mpgermano

Differential Revision: D20434635

fbshipit-source-id: 91831a605f447841ed5a13c375ef117fc9d0ee31
Summary: dogewfh

Reviewed By: mpgermano

Differential Revision: D20435578

fbshipit-source-id: d52f193b97a40c68d67c4278161db7aa038b7629
Summary:
## Tl;dr
We desire a non-hacky way to translate session IDs to IMSIs at the controller. This diff exposes session ID and IMSI getters/setters via the directoryd service.

## Context
The FeG sends abort-session requests to the controller, which need to get translated to an IMSI. We don't have a good way of doing this right now, so the FeG sends the session ID as a concatenation of the IMSI and session ID.

Instead, we want to utilize our new StateIndexer interface and plugin element to generate this mapping asynchronously.

The StateIndexer type is intended to be run in a goroutine from the state service on new state updates (next diff).

## Changes to directoryd
To support routing all reads/writes of derived state through the directoryd service [0], we add getters/setters for the following derived-state mappings
- `{hwid -> hostname}`
- `{session ID -> IMSI}`

To logically collect location record manipulation, we move the getters for the following primary-state mappings just to the client API
- `{imsi -> session ID}`
- `{imsi -> hwid}`

## Changes to SyncRPC
This last `{imsi -> hwid}` mapping is used by SyncRPC, so we move the functionality back to directoryd.

## FeG use-case overview

{F230034335}

## Footnotes
[0] Rather than having to reconcile the indexer and servicer views of directoryd's storage

Reviewed By: xjtian

Differential Revision: D20293752

fbshipit-source-id: 7d62b5c0a6ae9d0e464639170141bdddc6f1a2fc
Summary:
- add the `Match` method for `StateSubscription`, returning true if type is equal and the `KeyMatcher` returns true
- add `Type` field to the client API's `State` struct, mirroring the `Type` field in the protobuf `State` struct

Reviewed By: xjtian

Differential Revision: D20293753

fbshipit-source-id: 86bb366a8bea1314c07a6b24cead4be772b47f81
Summary:
Pull Request resolved: https://github.com/facebookincubator/symphony/pull/402

Things found:
1. The middleware has race condition that causes first two requests of users to fail if they are sent in the same time: both of them tries to create the user ent and one fails
2. I believe it also slows down the requests. I am not sure about it. Anyway I will either add some caching before return or at least add some track time with jagger

Reviewed By: dalmendray

Differential Revision: D20428411

fbshipit-source-id: 2429e70d2b2ac41fecfcff7d9b905509c744dfd9
…D20293752.

Summary: dogewfh

Reviewed By: xjtian

Differential Revision: D20436416

fbshipit-source-id: cab45085d176bc795e23a9e240cf97ad03073589
Summary:
Pull Request resolved: https://github.com/facebookincubator/symphony/pull/403

Original commit changeset: 32a0b4af8898

Reviewed By: alexsn

Differential Revision: D20438106

fbshipit-source-id: 818cc98341e1d382d11adb49a38595ffbf657543
Summary: The underlying issue was that sudo wasn't available within the docker container(CWAG) and code attempting to invoke the linux traffic control was trying to do so with sudo. Added a check to see if we were root and avoid invoking sudo. Added a two test cases in enforcement_test to check Qos installed with static rule for  uplink/downlink.

Reviewed By: themarwhal

Differential Revision: D20375776

fbshipit-source-id: d5dbb1f81a1f5884257e741efb7a37b16c19a18e
…sts" (magma#1313)

Summary:
Pull Request resolved: magma#1313

Original commit changeset: a8df3852dd12

Reviewed By: mpgermano

Differential Revision: D20444336

fbshipit-source-id: 4c81b6e34b6ade4b0e779767c41488ef40e7aa1d
Summary:
As part SGW and PGW tasks merge, modified code for dedicated bearer activation and deactivation procedure
Refactored the code wherever required.

Type: Refactor
Test suite: Executed s1ap tester test suite, dedicated bearer test cases and secondary PDN test cases
Pull Request resolved: magma#1224

Reviewed By: ulaskozat

Differential Revision: D20141681

Pulled By: ssanadhya

fbshipit-source-id: 849408d8f3667c39385e46d6a6f6166188b88415
Summary:
Secondary APN details in the subscriberDB was hardcoded. In this PR hardcoding is removed. Secondary APN details will now be configured either through CLI or test script
Pull Request resolved: magma#1092

Test Plan:
1. Executed S1 SIM sanity
2. Executed multi PDN TCs
3. Verified APN configuration through CLI using real UE

Reviewed By: ssanadhya

Differential Revision: D19443825

Pulled By: ulaskozat

fbshipit-source-id: f05779b02d787be9d92f0e534bb671c295554180
Summary:
Pull Request resolved: facebookexternal/fbc#2028

Test failing the build. Disabling it for now

Reviewed By: themarwhal

Differential Revision: D20446888

fbshipit-source-id: c49f2778d330a87afea38d5ee85f609e5f59c528
karthiksubraveti and others added 2 commits March 13, 2020 16:19
Summary: Pull Request resolved: facebookexternal/fbc#2029

Reviewed By: tmdzk

Differential Revision: D20445895

fbshipit-source-id: 6495f666d7fb452acfc3a911f78595f283546cce
@rsarwad rsarwad force-pushed the rsarwad_spgw_merge_remove_pgw_task branch from 5856166 to 0f65e24 Compare March 15, 2020 01:49
hanle11 and others added 2 commits March 15, 2020 03:46
Summary:
Add more documentation: internal processes and release notes.
See this for more info: https://fb.workplace.com/groups/283902828949094/permalink/498584854147556/

In addition, as I am already touching this file, removing the NMS documentation (from end of last year, NMS isn't part of Symphony anymore)

Reviewed By: naor9991

Differential Revision: D20429997

fbshipit-source-id: 50c954ae44b4ece5643f8484fb4e39accd802c5f
@rsarwad rsarwad force-pushed the rsarwad_spgw_merge_remove_pgw_task branch from ca8fb0e to c1ab953 Compare March 15, 2020 11:57
rsarwad pushed a commit that referenced this pull request May 15, 2020
Summary:
Fixed everything but #3.

{F237131826}

Reviewed By: alexsn

Differential Revision: D21569631

fbshipit-source-id: b2c6340f98afb5dacc9ffe4d759ca7a05a45a3b1
rsarwad pushed a commit that referenced this pull request May 24, 2020
Summary:
Pull Request resolved: facebookexternal/magma-distribution#3

Pull Request resolved: https://github.com/facebookincubator/symphony/pull/617

Pull Request resolved: magma#1669

Pull Request resolved: facebookexternal/fbc#2419

Reviewed By: rckclmbr

Differential Revision: D21532516

fbshipit-source-id: 57372635c4363a85ea9a0b289cff420239292138
rsarwad pushed a commit that referenced this pull request Jun 18, 2020
Summary:
ASAN error:
```
Jun 16 08:56:03 magma-dev sessiond[9856]: =================================================================
Jun 16 08:56:03 magma-dev sessiond[9856]: ==9856==ERROR: AddressSanitizer: new-delete-type-mismatch on 0x61800001fc80 in thread T14:
Jun 16 08:56:03 magma-dev sessiond[9856]:   object passed to delete has wrong type:
Jun 16 08:56:03 magma-dev sessiond[9856]:   size of the allocated type:   816 bytes;
Jun 16 08:56:03 magma-dev sessiond[9856]:   size of the deallocated type: 808 bytes.
Jun 16 08:56:03 magma-dev sessiond[9856]: I0616 08:56:03.149473  9886 SessionEvents.cpp:53] Could not log session_created event {"session_id":"IMSI001010000000001-120251","imsi":"IMSI001010000000001"}, Error Message: Connect Failed
Jun 16 08:56:03 magma-dev sessiond[9856]:     #0 0x7ff448b0d7f0 in operator delete(void*, unsigned long) (/usr/lib/x86_64-linux-gnu/libasan.so.3+0xc37f0)
Jun 16 08:56:03 magma-dev sessiond[9856]:     #1 0x559f94cbc742 in magma::AsyncGRPCRequest<magma::lte::LocalSessionManager::WithAsyncMethod_ReportRuleStats<magma::lte::LocalSessionManager::WithAsyncMethod_CreateSession<magma::lte::LocalSessionManager::WithAsyncMethod_EndSession<magma::lte::LocalSessionManager::Service> > >, magma::lte::LocalCreateSessionRequest, magma::lte::LocalCreateSessionResponse>::proceed() /home/vagrant/magma/lte/gateway/c/session_manager/SessionManagerServer.cpp:98
Jun 16 08:56:03 magma-dev sessiond[9856]:     #2 0x559f94ca8f54 in magma::AsyncService::wait_for_requests() /home/vagrant/magma/lte/gateway/c/session_manager/SessionManagerServer.cpp:39
Jun 16 08:56:03 magma-dev sessiond[9856]:     #3 0x559f94c7cae9 in operator() /home/vagrant/magma/lte/gateway/c/session_manager/sessiond_main.cpp:259
Jun 16 08:56:03 magma-dev sessiond[9856]:     #4 0x559f94c81c51 in _M_invoke<> /usr/include/c++/6/functional:1391
Jun 16 08:56:03 magma-dev sessiond[9856]:     #5 0x559f94c81a70 in operator() /usr/include/c++/6/functional:1380
Jun 16 08:56:03 magma-dev sessiond[9856]:     #6 0x559f94c8192b in _M_run /usr/include/c++/6/thread:197
Jun 16 08:56:03 magma-dev sessiond[9856]:     #7 0x7ff446dbde6e  (/usr/lib/x86_64-linux-gnu/libstdc++.so.6+0xb9e6e)
Jun 16 08:56:03 magma-dev sessiond[9856]:     #8 0x7ff447d384a3 in start_thread (/lib/x86_64-linux-gnu/libpthread.so.0+0x74a3)
Jun 16 08:56:03 magma-dev sessiond[9856]:     #9 0x7ff446532d0e in __clone (/lib/x86_64-linux-gnu/libc.so.6+0xe8d0e)
Jun 16 08:56:03 magma-dev sessiond[9856]: 0x61800001fc80 is located 0 bytes inside of 816-byte region [0x61800001fc80,0x61800001ffb0)
Jun 16 08:56:03 magma-dev sessiond[9856]: allocated by thread T14 here:
Jun 16 08:56:03 magma-dev sessiond[9856]:     #0 0x7ff448b0cbf0 in operator new(unsigned long) (/usr/lib/x86_64-linux-gnu/libasan.so.3+0xc2bf0)
Jun 16 08:56:03 magma-dev sessiond[9856]:     #1 0x559f94ca91f0 in magma::LocalSessionManagerAsyncService::init_call_data() /home/vagrant/magma/lte/gateway/c/session_manager/SessionManagerServer.cpp:60
```

According to the internet, "Polymorphic base classes should declare virtual destructors. If a class has any virtual functions, it should have a virtual destructor".
Resource : https://stackoverflow.com/questions/41552966/getting-new-delete-type-mismatch-from-asan

Reviewed By: uri200

Differential Revision: D22065108

fbshipit-source-id: ff146a9a92f71408ea25dc86943938ca5afe88a1
rsarwad pushed a commit that referenced this pull request Nov 30, 2020
* Add T3489 tests

Introduce a new test to validate T3489 expiry.

Credit to ulaskozat for the diff

Testing done:
Verified that an ASAN use after free occurs on timer expiry

=7031==ERROR: AddressSanitizer: heap-use-after-free on address 0x603000093460 at pc 0x555807545462 bp 0x7f87093fd2b0 sp 0x7f87093fd2a8
WRITE of size 8 at 0x603000093460 thread T16
    #0 0x555807545461 in nas_stop_T3489 /home/vagrant/magma/lte/gateway/c/oai/tasks/nas/esm/esm_data_context.c:101
    #1 0x5558075c47c5 in esm_proc_esm_information_response /home/vagrant/magma/lte/gateway/c/oai/tasks/nas/esm/esm_information.c:119
    #2 0x55580759339b in esm_recv_information_response /home/vagrant/magma/lte/gateway/c/oai/tasks/nas/esm/sap/esm_recv.c:575
    #3 0x555807551fba in _esm_sap_recv /home/vagrant/magma/lte/gateway/c/oai/tasks/nas/esm/sap/esm_sap.c:679
    #4 0x555807550f33 in esm_sap_send /home/vagrant/magma/lte/gateway/c/oai/tasks/nas/esm/sap/esm_sap.c:283
    #5 0x5558075195a0 in lowerlayer_data_ind /home/vagrant/magma/lte/gateway/c/oai/tasks/nas/emm/LowerLayer.c:276
    #6 0x55580757848f in _emm_as_data_ind /home/vagrant/magma/lte/gateway/c/oai/tasks/nas/emm/sap/emm_as.c:688
    #7 0x555807574ec4 in emm_as_send /home/vagrant/magma/lte/gateway/c/oai/tasks/nas/emm/sap/emm_as.c:180
    #8 0x55580753147f in emm_sap_send /home/vagrant/magma/lte/gateway/c/oai/tasks/nas/emm/sap/emm_sap.c:105
    #9 0x5558074d74fc in nas_proc_ul_transfer_ind /home/vagrant/magma/lte/gateway/c/oai/tasks/nas/nas_proc.c:326
    #10 0x5558071bd634 in handle_message /home/vagrant/magma/lte/gateway/c/oai/tasks/mme_app/mme_app_main.c:97
    #11 0x7f871bb277bd in zloop_start (/usr/lib/x86_64-linux-gnu/libczmq.so.4+0x287bd)
    #12 0x5558071bf169 in mme_app_thread /home/vagrant/magma/lte/gateway/c/oai/tasks/mme_app/mme_app_main.c:447
    #13 0x7f871e11f4a3 in start_thread (/lib/x86_64-linux-gnu/libpthread.so.0+0x74a3)
    #14 0x7f871a494d0e in __clone (/lib/x86_64-linux-gnu/libc.so.6+0xe8d0e)

0x603000093460 is located 0 bytes inside of 32-byte region [0x603000093460,0x603000093480)
freed by thread T16 here:
    #0 0x7f871e602a10 in free (/usr/lib/x86_64-linux-gnu/libasan.so.3+0xc1a10)
    #1 0x5558070dc054 in free_wrapper /home/vagrant/magma/lte/gateway/c/oai/common/dynamic_memory_check.c:47
    #2 0x555807545496 in nas_stop_T3489 /home/vagrant/magma/lte/gateway/c/oai/tasks/nas/esm/esm_data_context.c:103
    #3 0x5558075c517a in _esm_information /home/vagrant/magma/lte/gateway/c/oai/tasks/nas/esm/esm_information.c:269
    #4 0x5558075c4e15 in _esm_information_t3489_handler /home/vagrant/magma/lte/gateway/c/oai/tasks/nas/esm/esm_information.c:199
    #5 0x5558074e2e8a in mme_app_nas_timer_handle_signal_expiry /home/vagrant/magma/lte/gateway/c/oai/tasks/nas/util/nas_timer.c:100
    #6 0x5558071be2d2 in handle_message /home/vagrant/magma/lte/gateway/c/oai/tasks/mme_app/mme_app_main.c:235
    #7 0x7f871bb277bd in zloop_start (/usr/lib/x86_64-linux-gnu/libczmq.so.4+0x287bd)

Signed-off-by: Amar Padmanabhan <[email protected]>

* Invalidate the T3849 timer id while processing esm information retransmit

The _esm_information function stops the existing T3849 timer as referenced
by the esm_ctxt datastructure timer before rescheduling a new T3849 timer
when it requests for the esm info from a UE.
Stopping the timer has a side effect of freeing up the UE related
retransmission data associated with it. This causes issues during
the T3849 timer expiry handling as the cancelled timer and the rescheduled
one reuse the same retransmission data datastructure.

Fix this by unsetting the T3849 timer in the handling of the timer expiry
as the esm_ctxt is not associated with any valid timers anymore. Further
as the timer is a oneshot timer it will be cleaned up after the processing
of the timer callback.

Signed-off-by: Amar Padmanabhan <[email protected]>
rsarwad pushed a commit that referenced this pull request Apr 19, 2021
* Add T3489 tests

Introduce a new test to validate T3489 expiry.

Credit to ulaskozat for the diff

Testing done:
Verified that an ASAN use after free occurs on timer expiry

=7031==ERROR: AddressSanitizer: heap-use-after-free on address 0x603000093460 at pc 0x555807545462 bp 0x7f87093fd2b0 sp 0x7f87093fd2a8
WRITE of size 8 at 0x603000093460 thread T16
    #0 0x555807545461 in nas_stop_T3489 /home/vagrant/magma/lte/gateway/c/oai/tasks/nas/esm/esm_data_context.c:101
    #1 0x5558075c47c5 in esm_proc_esm_information_response /home/vagrant/magma/lte/gateway/c/oai/tasks/nas/esm/esm_information.c:119
    #2 0x55580759339b in esm_recv_information_response /home/vagrant/magma/lte/gateway/c/oai/tasks/nas/esm/sap/esm_recv.c:575
    #3 0x555807551fba in _esm_sap_recv /home/vagrant/magma/lte/gateway/c/oai/tasks/nas/esm/sap/esm_sap.c:679
    #4 0x555807550f33 in esm_sap_send /home/vagrant/magma/lte/gateway/c/oai/tasks/nas/esm/sap/esm_sap.c:283
    #5 0x5558075195a0 in lowerlayer_data_ind /home/vagrant/magma/lte/gateway/c/oai/tasks/nas/emm/LowerLayer.c:276
    #6 0x55580757848f in _emm_as_data_ind /home/vagrant/magma/lte/gateway/c/oai/tasks/nas/emm/sap/emm_as.c:688
    #7 0x555807574ec4 in emm_as_send /home/vagrant/magma/lte/gateway/c/oai/tasks/nas/emm/sap/emm_as.c:180
    #8 0x55580753147f in emm_sap_send /home/vagrant/magma/lte/gateway/c/oai/tasks/nas/emm/sap/emm_sap.c:105
    #9 0x5558074d74fc in nas_proc_ul_transfer_ind /home/vagrant/magma/lte/gateway/c/oai/tasks/nas/nas_proc.c:326
    #10 0x5558071bd634 in handle_message /home/vagrant/magma/lte/gateway/c/oai/tasks/mme_app/mme_app_main.c:97
    #11 0x7f871bb277bd in zloop_start (/usr/lib/x86_64-linux-gnu/libczmq.so.4+0x287bd)
    #12 0x5558071bf169 in mme_app_thread /home/vagrant/magma/lte/gateway/c/oai/tasks/mme_app/mme_app_main.c:447
    #13 0x7f871e11f4a3 in start_thread (/lib/x86_64-linux-gnu/libpthread.so.0+0x74a3)
    #14 0x7f871a494d0e in __clone (/lib/x86_64-linux-gnu/libc.so.6+0xe8d0e)

0x603000093460 is located 0 bytes inside of 32-byte region [0x603000093460,0x603000093480)
freed by thread T16 here:
    #0 0x7f871e602a10 in free (/usr/lib/x86_64-linux-gnu/libasan.so.3+0xc1a10)
    #1 0x5558070dc054 in free_wrapper /home/vagrant/magma/lte/gateway/c/oai/common/dynamic_memory_check.c:47
    #2 0x555807545496 in nas_stop_T3489 /home/vagrant/magma/lte/gateway/c/oai/tasks/nas/esm/esm_data_context.c:103
    #3 0x5558075c517a in _esm_information /home/vagrant/magma/lte/gateway/c/oai/tasks/nas/esm/esm_information.c:269
    #4 0x5558075c4e15 in _esm_information_t3489_handler /home/vagrant/magma/lte/gateway/c/oai/tasks/nas/esm/esm_information.c:199
    #5 0x5558074e2e8a in mme_app_nas_timer_handle_signal_expiry /home/vagrant/magma/lte/gateway/c/oai/tasks/nas/util/nas_timer.c:100
    #6 0x5558071be2d2 in handle_message /home/vagrant/magma/lte/gateway/c/oai/tasks/mme_app/mme_app_main.c:235
    #7 0x7f871bb277bd in zloop_start (/usr/lib/x86_64-linux-gnu/libczmq.so.4+0x287bd)

Signed-off-by: Amar Padmanabhan <[email protected]>

* Invalidate the T3849 timer id while processing esm information retransmit

The _esm_information function stops the existing T3849 timer as referenced
by the esm_ctxt datastructure timer before rescheduling a new T3849 timer
when it requests for the esm info from a UE.
Stopping the timer has a side effect of freeing up the UE related
retransmission data associated with it. This causes issues during
the T3849 timer expiry handling as the cancelled timer and the rescheduled
one reuse the same retransmission data datastructure.

Fix this by unsetting the T3849 timer in the handling of the timer expiry
as the esm_ctxt is not associated with any valid timers anymore. Further
as the timer is a oneshot timer it will be cleaned up after the processing
of the timer callback.

Signed-off-by: Amar Padmanabhan <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

10 participants