Testing LLME allocations
Testing core subscriber data API
llist_count(gprs_subscribers) == 0
llist_count(gprs_subscribers) == 1
llist_count(gprs_subscribers) == 1
llist_count(gprs_subscribers) == 2
llist_count(gprs_subscribers) == 3
llist_count(gprs_subscribers) == 2
llist_count(gprs_subscribers) == 1
llist_count(gprs_subscribers) == 0
Testing authentication triplet handling
Testing subscriber GSUP handling
Testing GMM detach
Testing GMM detach (power off)
Testing GMM detach (no MMCTX)
Testing GMM detach accept (unexpected)
Testing GMM Status (no MMCTX)
Auth policy 'closed': Testing GMM attach
Auth policy 'remote': Testing GMM attach
Auth policy 'remote', auth faked: Testing GMM attach
Auth policy 'remote', triplet based auth: Testing GMM attach
Auth policy 'remote', GSUP based auth: Testing GMM attach
Auth policy 'remote', GSUP based auth: Testing GMM attach with retry
Auth policy 'remote', real GSUP based auth: Testing GMM attach
Testing GMM reject
  - Attach Request (invalid MI length)
  - Attach Request (invalid MI type)
  - Routing Area Update Request (valid)
  - Routing Area Update Request (invalid type)
  - Routing Area Update Request (invalid CAP length)
Testing cancellation
Testing P-TMSI allocation
  - sgsn_alloc_ptmsi
  - Repeated Attach Request
  - Repeated RA Update Request
Testing routing area changes
  - Attach Request (RA 1)
  - RA Update Request (RA 1 -> RA 1)
  - RA Update Request (RA 1 -> RA 2)
  - RA Update Request (RA other -> RA 2)
  - Attach Request (RA 2)
  - RA Update Request (RA 2 -> RA 2)
Testing APN matching
Testing GGSN selection
Done
