osmo-sgsn (1.14.0) UNRELEASED; urgency=medium

  * NOTE: At the time of tagging 1.13.0, current master was too much in WIP
    state. Therefore it has been tagged from 6213201b (a commit between 1.12.0
    and current master) plus several fixes backported on top of that commit:
    https://gitea.osmocom.org/cellular-infrastructure/osmo-sgsn/commit/ed7b21ffaa2a46a02378edb65a61da2d3d696b7d
    The next tag should be 1.14.0 (change UNRELEASED -> unstable).

 -- Oliver Smith <osmith@sysmocom.de>  Fri, 06 Mar 2026 09:46:54 +0100

osmo-sgsn (1.12.0) unstable; urgency=medium

  [ Andreas Eversberg ]
  * Use uniform log format for default config files

  [ Vadim Yanitskiy ]
  * build: include README.md into the release tarball
  * gmm: cosmetic: fix preprocessor macro formatting
  * gmm: mmctx_timer_stop(): warn about timer not running
  * VTY: move default settings to sgsn_instance_alloc()
  * VTY: sync default UMTS UEA config with osmo-msc
  * README.md: cosmetic: fix a typo

  [ Pau Espin Pedrol ]
  * gsup: Use new libosmogsm struct osmo_gsup_pdp_info fields

  [ Harald Welte ]
  * Add funding link to github mirror
  * README.md: Overhaul (more links; improved formatting)
  * README.md: Add Forum and Issue Tracker sections

  [ Max ]
  * .deb/.rpm: add osmocom user during package install

  [ Oliver Smith ]
  * contrib/osmo-sgsn.spec: fix build for almalinux:8
  * .deb/.rpm: various fixes related to non-root
  * contrib: remove rpm spec file
  * debian/postinst: add checks, be verbose
  * sgsn/sgsn_vty: create state-dir
  * debian/osmo-gtphub.init: delete
  * doc: set state-dir to /var/lib/osmocom/osmo-sgsn

  [ Alexander Couzens ]
  * docs: replace legacy NS with new NS2 chapters
  * docs: update year to 2024
  * docs: front page: use https:// instead of http://

 -- Oliver Smith <osmith@sysmocom.de>  Wed, 24 Jul 2024 17:31:38 +0200

osmo-sgsn (1.11.1) unstable; urgency=medium

  [ Philipp Maier ]
  * sgsn_rim: forward message based on RIM ROUTING ADDRESS

  [ Daniel Willmann ]
  * sgsn_vty: Fix output in config_write_sgsn
  * sgsn_vty: Correctly indent encryption cipher-plugin-path
  * vty-tests: Test encryption options
  * libgtp: Check for all successful create_pdp_conf causes

 -- Oliver Smith <osmith@sysmocom.de>  Tue, 28 Nov 2023 13:32:46 +0100

osmo-sgsn (1.11.0) unstable; urgency=medium

  [ Oliver Smith ]
  * Run struct_endianness.py
  * debian: set compat level to 10
  * systemd: depend on networking-online.target

  [ arehbein ]
  * Transition to use of 'telnet_init_default'

  [ Vadim Yanitskiy ]
  * tests: use -no-install libtool flag to avoid ./lt-* scripts
  * tests: $(BUILT_SOURCES) is not defined, depend on osmo-sgsn
  * copyright: fix typo: sysmocom s/s.m.f.c./s.f.m.c./ GmbH

  [ Pau Espin Pedrol ]
  * gmm: Ciphering Key Sequence Number IE has half octet tag
  * gprs_sm.c: Fix load of misaligned ptr address
  * Write explicit role & sctp-role fields in ASP configurations
  * gmm: Update DRX params during rx RAU REQ
  * gmm: Add missing GSM48_IE_GMM_RX_NPDU_NUM_LIST IE in gsm48_gmm_att_tlvdef

  [ Philipp Maier ]
  * sgsn_rim: fix typo
  * sgsn_rim: cosmetic: improve comment
  * sgsn_rim: get rid of MME check in sgsn_rim_rx_from_gtp:
  * sgsn_rim: do not check the origin of a RIM message

 -- Pau Espin Pedrol <pespin@sysmocom.de>  Tue, 12 Sep 2023 16:57:02 +0200

osmo-sgsn (1.10.0) unstable; urgency=medium

  [ Vadim Yanitskiy ]
  * configure.ac: do not require unused dlsym/dlopen
  * gprs_llc: fix misleading spacing in gprs_llc_rcvmsg()
  * gprs_llc.h: use '#pragma once'
  * llc: gprs_llc_fcs(): make the input data pointer const

  [ Max ]
  * Set working directory in systemd service file
  * SNDCP: log more details on failure
  * GTP: migrate from deprecated function
  * Constify LLC/SNDCP parameters
  * GMM: permit E_GMM_COMMON_PROC_SUCCESS in normal state
  * ctrl: take both address and port from vty config

  [ Pau Espin Pedrol ]
  * vty: Make new libgtp tdefs configurable through VTY
  * sndcp: Put decompress handling code into helper function
  * Move gprs_gb_parse.[c,h] to tests/sgsn/
  * Create new specific file for BSSGP code
  * Move some functions gprs_gb.[c,h] -> gprs_gmm.[c,h]
  * Rename gprs_gb.[c,h] -> gprs_ns.[c,h]
  * Move gprs_tmr_to_secs() to tests/gprs/gprs_test.c
  * cosmetic: gprs_llc_vty.c: Fix trailing whitespace
  * vty: Fix wrong value_string used to print llme state
  * Standarize lle and llme state enum & value_string
  * Remove unused function gprs_parse_mi_tmsi()
  * Replace gprs_str_to_apn() with libosmocore API osmo_apn_from_str()
  * Move struct sgsn_ggsn_ctx to its own file gtp_ggsn.{c,h}
  * gprs_subscriber: Move API declarations to correct header
  * Move gprs_sndcp_vty_init() declaration to gprs_sndcp.h
  * Introduce new header file sgsn/gtp.h
  * Fix -Werror=old-style-definition
  * Move related structs to gprs_subscriber.h
  * Remove unneeded extern declaration from libosmocotrl
  * Keep sgsn subsystems under struct sgsn_instance lifecycle
  * Move global ggsn_list into struct sgsn_instance
  * Move struct apn_ctx and APN related definitions to its own file
  * Move struct sgsn_subscriber_pdp_data to gprs_subscriber.h
  * sgsn.h: Drop declaration of non existing function
  * Properly split llc->sndcp->gtp unitdata pathi through extra func call
  * Move func defintions of funcs implemented in gprs_sndcp.c to gprs_sndcp.h
  * sndcp: Standarize unitdata function naming
  * Move gtp related functions to gtp.h
  * Move global apn_list inside struct sgsn_instance
  * gtp_{ggsn,mme}: Allocate contexts under struct sgsn_instance
  * Move extern declarations of tall_sgsn_ctx to sgsn.h
  * Drop extern declarations of global sgsn_instance in source files
  * Move sgsn_pdp_ctx to its own file pdpctx.{c,h}
  * Move global pdp_list inside struct sgsn_instance
  * Move gtphub header to include/osmocom/gtphub/
  * Move sgsn_ctrl_cmds_install() declaration to sgsn.h
  * Move LOGGSUBSCRP to gprs_subscriber.h
  * Rename bscconfig.h -> config.h
  * gtphub.h: Remove dependency on sgsn/gprs_sgsn.h
  * Split gprs_sgsn.{c,h} -> {auth,mmctx,sgsn}.{c,h}
  * Move global mmctx list into struct sgsn_instance
  * vty: Introduce encryption cipher-plugin-path command
  * Fix extra whitespace in pdpctx_ctr_description

  [ Oliver Smith ]
  * contrib/jenkins.sh: use enable-werror with IU too
  * sgsn_libgtp: cb_data_ind: remove mm_idle assert
  * osmo-gtphub.cfg: fix conflict with osmo-ggsn.cfg

 -- Pau Espin Pedrol <pespin@sysmocom.de>  Tue, 07 Feb 2023 17:34:26 +0100

osmo-sgsn (1.9.0) unstable; urgency=medium

  [ Oliver Smith ]
  * llme_free: clean up related sndcp
  * treewide: remove FSF address

  [ Pau Espin Pedrol ]
  * Drop unneeded ax_check_compile_flag.m4
  * Revert "sgsn: Handle different levels of QoS"

  [ Neels Hofmeyr ]
  * s/cipher_support_mask/gea_encryption_mask
  * Iu: add UEA encryption

  [ Vadim Yanitskiy ]
  * tests: use 'check_PROGRAMS' instead of 'noinst_PROGRAMS'

  [ Harald Welte ]
  * update git URLs (git -> https; gitea)
  * README: Major update

 -- Pau Espin Pedrol <pespin@sysmocom.de>  Wed, 29 Jun 2022 11:45:08 +0200

osmo-sgsn (1.8.0) unstable; urgency=medium

  [ Harald Welte ]
  * Remove bogus DNS log category

  [ Daniel Willmann ]
  * manuals: Regenerate counters/VTY through docker

  [ Vadim Yanitskiy ]
  * main: resurrect removed 'ns' logging category as deprecated
  * doc/manuals: update configuration.adoc to use new command syntax
  * tests/Makefile.am: do not try removing non-existing files

  [ Pau Espin Pedrol ]
  * ranap: log ranap iu event type name instead of number
  * gmm: log GMM msg type name instead of number
  * gmm: Expect E_VLR_ANSWERED when in ST_IU_SECURITY_CMD
  * gmm_fsm: Expect E_GMM_COMMON_PROC_INIT_REQ when in ST_GMM_COMMON_PROC_INIT
  * mm_iu: Send event E_PMM_PS_CONN_ESTABLISH upon rx GMM SERVICE REQUEST
  * mm_iu: Expect E_PMM_PS_ATTACH when in ST_PMM_IDLE
  * gprs_gmm.c: State proper GMM prefix logging rx/tx of GMM messages
  * mm_state_iu_fsm: T3314 expiry must lead to PMM IDLE, not PMM DETACHED
  * Iu: Drop timer X3314
  * gprs_ranap.c: Clean up code path releasing IU conn
  * mm_state_{gb,iu}_fsm: Add missing license block, improve spec references
  * mm_state_{gb,iu}_fsm: Improve naming for detach event
  * Drop unused GBRPOXY enum field
  * gtp: Delete ctx upon receive UpdateCtxResp with cause Non-existent
  * Support forwarding RIM messages over GTPCv1 EUTRAN<->GERAN
  * Use new stat item/ctr getter APIs

  [ Keith ]
  * vty: Fix optional display of pdp with mm-context
  * VTY: Don't display 'PDP Address: invalid' for IPv4v6

  [ Eric ]
  * add support for multiple encryption algorithms and a5/4

  [ Oliver Smith ]
  * gtphub: remove llist_first, llist_last macros
  * vty: add "page imsi"
  * debian/control: remove dh-systemd build-depend
  * Revert "Turn some compiler warnings into errors"

 -- Pau Espin Pedrol <pespin@sysmocom.de>  Tue, 16 Nov 2021 17:57:50 +0100

osmo-sgsn (1.7.0) unstable; urgency=medium

  [ Daniel Willmann ]
  * gprs_gmm: Check for RAT change and ensure this only happens for RAU/ATT
  * gbproxy-usermanual: Explain BSSGP/BVC handling
  * gbproxy: Whitespace fixes
  * gbproxy: Add todo for BVC RESET logic
  * gbproxy: Get the peer if paging by BVCI on SIG_BVC
  * Let libosmocore handle VTY parent node tracking
  * osmo-gbproxy: Free msgb in ns2 prim callback
  * configure.ac: Require python3 for ext_tests
  * osmo-gbproxy: Implement nsvc-state ctrl command
  * gbproxy: Remove test testing NSVCI change
  * gbproxy: Add NSE peer that can have multiple gbproxy_peers
  * gbproxy: Ensure BVC0 is reset before handling PtP BVCs
  * gbproxy: Only send paging to each matching NSE once
  * gbproxy: Separate function to move gbproxy_peer to different nse
  * gbproxy: Add logging macros for NSE and BVC
  * gbproxy: Use LOG macros for NSE/BVC
  * gbproxy: Change generic LOG messages so BVCI/NSEI fmt is consistent
  * gbproxy: Add todos encountered while going through the code
  * gbproxy: Add BVC log filters
  * gbproxy: Add newline to log message
  * gbproxy: Allow gbproxy_nse_free(NULL)
  * gbproxy: Delete gbproxy_nse in delete-gbproxy-peer VTY command
  * mm_state_gb_fsm: Handle implicit detach from mm_standby
  * gbproxy: Fix bvci check in gbprox_rx_ptp_from_*
  * osmo-gbproxy: Initialize all hash_maps
  * gbproxy: Fix confusing log message in gbprox_relay2nse
  * gbproxy: Add SGSN NRI configuration
  * gbproxy: Add SGSN pooling support
  * gbproxy: Add comments to sgsn functions
  * gbproxy: Add config option to name an SGSN
  * gbproxy: Add VTY command to override the node selection function
  * Fix gbproxy_sgsn_by_tlli wraparound
  * gbproxy: Implement TLLI cache and use it for SUSPEND/RESUME
  * gbproxy: Increase TLLI cache timeout to 10s
  * gbproxy: Implement IMSI cache
  * gbproxy: Use IMSI cache to handle PAGING_PS_REJECT
  * gbproxy: Use C-style comments
  * gbproxy: Move helper function to a more logical place
  * gbproxy: Remove unused variable assignment
  * gbproxy: Fix VTY cmd name
  * gbproxy: Define and use help string for gbproxy
  * gbproxy: Add VTY commands to query the TLLI/IMSI cache
  * gbproxy: Use IMSI cache for PTP paging and implement DUMMY_PAGING_PS
  * gbproxy: Print the correct message type for dummy paging/paging reject
  * gbproxy: Improve log messages in gbproxy_select_sgsn
  * gbproxy: Fix radio status routing by TMSI
  * manual/gbproxy: Update overview chapter
  * Rename OsmoGbPROXY -> *Proxy
  * manuals/gbproxy: Update configuration chapter
  * manuals/gbproxy: Add osmo-bsc MSC pooling chapter from Neels as a base
  * manuals/gbproxy: MSC -> SGSN for pooling chapter
  * manuals/gbproxy: Move pooling to separate chapter

  [ Alexander Couzens ]
  * gprs_gmm_fsm.c: Implement RAT change between 2g and 3g
  * gtphub: rename sgsn's oww osmo_sockaddr into sgsn_sockaddr
  * gprs_llc: _bssgp_tx_dl_ud: ensure the LLME is valid before using it
  * gmm: on invalid RA id reject the MS with an implicit detach
  * gtphub_test: fix compilation error on gcc 10.2.0
  * gtphub: fix compilation with gcc 10.2.0
  * Port gbproxy to NS2
  * sgsn: check for NULL of gprs_subscr_get_or_create()
  * sgsn: Use the new NS2 api
  * gbproxy: use ns2 vty2
  * configure.ac: define a c standard instead of using the compilers default
  * follow libosmocore/gprs_ns2 API changes of GPRS enums
  * gbproxy: follow gprs_ns2 API vty changes
  * sgsn: migrate to the new gprs_ns2_vty configuration
  * follow libosmocore/gprs_ns2 API changes (gprs_ns2_dynamic_create_nse)

  [ Neels Hofmeyr ]
  * manual: explain IuPS, add SCCP/M3UA section from common chapters
  * fix nullpointer: in gsm48_rx_gmm_ra_upd_req()
  * gsup: send RAT type on LU
  * gbproxy_test.c: fix mobile identity test data
  * use new osmo_mobile_identity API everywhere

  [ Eric ]
  * tests: dlopen does not imply availability of dlsym..
  * configure.ac: fix libtool issue with clang and sanitizer

  [ Harald Welte ]
  * gtphub_test: Fix compilation with gcc-10
  * Fix memory leak when SNDCP de-fragmentation is used
  * Treat RAU as implicit RESUME if GMM is suspended
  * *.spec.in: Use %config(noreplace) to retain current config file
  * Send a BVC-RESET to all persistent Gb interfaces at start-up
  * Use osmo_fd_setup() whenever applicable
  * Use osmo_fd_*_{disable,enable}
  * gbproxy: Properly implement paging to LAC/RAC
  * gbproxy: Implement paging to entire BSS area
  * gprs_gb_parse: Add function to determine TLLI from encoded BSSGP
  * gbproxy: Pass TLLI as LSP towards NS to facilitate load sharing
  * gb_proxy_peer: Add some FIXMEs regarding invalid assumptions
  * gb_proxy: More precise + readable log messages
  * gb_proxy: Broadcast SGSN-INVOKE-TRACE and OVERLOAD
  * gbproxy: Move BSS-side BVC-RESET processing to its own function
  * gb_proxy: Slightly restructure processing of BSS-originated BVC-RESET
  * gbproxy: Cosmetics: use longer lines
  * gbproxy: Send BVC-STATUS if BSS sends us BVC-RESET without mandatory IEs
  * gb_proxy: Use TLVP_PRES_LEN instead of TLVP_PRESENT
  * gb_proxy: Rename gbproxy_peer to gbproxy_bvc
  * gbproxy: Rename gbproxy_cfg.nses to gbproxy_cfg.bss_nses
  * gbproxy: convert bss_nses from llist_head to hashtable
  * gbproxy: convert nse->bvcs from llist_head to hashtable
  * gbproxy: Remove patching, TLLI-tracking and SGSN2 support
  * gb_proxy: cosmetic: Use function rather than open-coding is_sgsn
  * gbproxy: Delete gbproxy_test
  * gb_proxy: Introduce more validation / constraint checks
  * gbproxy: use gbprox_relay2peer() whenever possible
  * gb_proxy: Use osmo_tlv_prot_parse() to validate mandatory IEs
  * gbproxy: Log FSM timeouts
  * migrate to DLBSSGP as log sub-system for BSSGP
  * gbproxy major rewrite for SGSN pool support
  * gbproxy: Use "(nsei << 16) | bvci" as rate_ctr_group index
  * gbproxy: Introduce new DOBJ log category; log object allocation/release
  * gbproxy: Don't create an extra msgb copy for SGSN DL SIG
  * gbproxy: Implement handling of BVC Flow Control
  * gbproxy: Copy RA-ID from BSS side BVC to CELL and SGSN-side BVC
  * gbproxy: (Re)allocate SGSN-side PTP BVC even if CELL already exists
  * gbproxy: Fix segfault when receiving PAGING for unknown destination
  * gbproxy: Add FSM related VTY commands
  * gbproxy: Implement scaling of BVC flow control in SGSN pool
  * gbproxy: Improve VTY state introspection
  * gbproxy: rename vty command "show gbproxy ..." to "show gbproxy bvc ..."
  * gbproxy: Add "show gbproxy cell ..." VTY command
  * gbproxy: Fix build on Deiban 8
  * gb_proxy: Don't use orphan log subsystem DPCU
  * gbproxy: Avoid depending on any of the SGSN code
  * main: add --vty-ref-mode, use vty_dump_xml_ref_mode()
  * manuals: generate vty reference xml at build time

  [ Pau Espin Pedrol ]
  * Use OSMO_FD_* instead of deprecated BSC_FD_*
  * sgsn_libgtp: Improve ps-paging logging
  * gprs_gmm_fsm.c: Add missing license header
  * sgsn_libgtp: Avoid ps-paging MS on GMM Suspended state
  * configure.ac: Fix trailing whitespace
  * doc: Update VTY reference xml file
  * Support setting rt-prio and cpu-affinity mask through VTY
  * Change default SCTP conn NULL->127.0.0.1 to localhost->localhost
  * contrib/jenkins: Enable parallel make in make distcheck
  * Log error if pdp ctx is freed while holding an active timer
  * Fix crash rx DeactPdpReq while waiting for DeactPdpAck after gtp side is freed
  * sgsn_delete_pdp_ctx: Add documentation and assert assumptions
  * process_ms_ctx_status: refactor to avoid code duplication
  * process_ms_ctx_status: Fix crash deleting PDP Ctx if GTP side was already released
  * gbproxy: generate coredump and exit upon SIGABRT received
  * gtphub: generate coredump and exit upon SIGABRT received
  * sgsn: generate coredump and exit upon SIGABRT received
  * gmm: fix build without define PTMSI_ALLOC
  * gmm: Introduce comment to ease addition of Network feature support IE later
  * .gitignore: Ignore new autofoo tmp files
  * sndcp: Fix struct bit fields on big endian
  * Fix nsei+bvci not updated on rx UL SNDCP data

  [ Oliver Smith ]
  * contrib: import RPM spec
  * contrib: integrate RPM spec
  * Makefile.am: EXTRA_DIST: debian, contrib/*.spec.in
  * contrib/jenkins: don't build osmo-gsm-manuals
  * gbproxy: remove (moved to own repository)

  [ Vadim Yanitskiy ]
  * debian/control: change maintainer to the Osmocom team / mailing list
  * gb_proxy_peer: sgsn can never be NULL in gbproxy_sgsn_by_nri()
  * gb_proxy_peer: fix NULL pointer dereference in gbproxy_sgsn_alloc()

  [ Keith ]
  * Fix Radio Priority in MM Attach and PDP Context Activation
  * VTY: Add gtp state-dir command

  [ Philipp Maier ]
  * gprs_sndcp: fix use after free
  * sgsn_rim: Add routing for (GERAN) BSSGP RIM messages

 -- Pau Espin Pedrol <pespin@sysmocom.de>  Tue, 23 Feb 2021 20:29:33 +0100

osmo-sgsn (1.6.0) unstable; urgency=medium

  [ Pau Espin Pedrol ]
  * gprs_gmm: Introduce macros to access msgb's associated IU UE ctx
  * gprs_llc.h: Improve documentation of some structs
  * gprs_gmm.c: Improve doc on nullable parameters
  * gprs_gmm.c: Drop unneeded brackets
  * Introduce define TLLI_UNASSIGNED
  * gprs_sgsn.c: Warn upon llme free unexpected scenarios
  * gprs_gmm: Clarify comment during TLLI assignment
  * gprs_sgsn.c: Remove recently introduced assert
  * gprs_gmm: Introduce assert to guard against unexpected condition
  * gprs_gmm.c: Use correct function to set MM_IDLE state during cleanup
  * gprs_sgsn.h: Flag MM_CTX_T_GERAN_Iu as not supported
  * gprs_gmm.c: Flag mmctx_set_(p)mm_state() functions static
  * sgsn: use sccp_simple_client API to setup ss7 id 0 instead of 1
  * gprs_gmm.c: Fix typo in log message
  * gprs_gmm.c: Call mmctx_set_(p)mm_state only on related ran_type
  * Introduce and use log macros when no mm ctx available
  * gprs_gmm: Avoid spaces in fsm events and enum strings
  * tests: Verify that timers can be set over VTY
  * Replace own timer infra with libosmocore osmo_tdef
  * tests: Introduce vty-transcript-test tests
  * gprs_gmm.c: Use osmo_rai_name() in log line
  * examples: Add osmo-sgsn_custom-sccp.cfg
  * vty: Introduce cs7-instance-iu
  * gprs_gmm.c: Print value_string of reject cause
  * gprs_gmm.c: Add spec document to function documentation
  * gtp: make echo_interval unsigned
  * gtp: cb_delete_context(): Clarify why pdp->lib is set to NULL
  * Introduce log helper LOGGGSN and log category DGTP
  * sgsn: gtp: Drop related pdp contexts on echo timeout against GGSN
  * Move lots of Iu/ranap specific code into its own file
  * Move llc->MM/SM Gb specific glue code to its own file
  * Split enum gprs_pmm_state into Iu and Gb counterparts
  * Merge common allocation steps for Gb and Iu ctx
  * gprs_gmm.c: Replace inet_ntoa with inet_ntop
  * sgsn_cdr.c: Fix ip addr string buffer size
  * sgsn_vty: Fix mmctx rate_ctr output indentation
  * sgsn_vty: Print correct Iu mmctx id in 'show mm-context'
  * Introduce FSM mm_state_gb_fsm
  * Introduce FSM mm_state_iu_fsm
  * vty: Print MM state and RAN type in show mm-context
  * src/gprs/Makefile.am: Move build of shared .c files to an internal lib
  * Move out gbproxy to its own subdir
  * Move out gtphub to its own subdir
  * Move out sgsn to its own subdir
  * gmm: Move code handling GMM Attach Complete to its own function
  * gmm: Move code handling GMM Routing Area Update Complete to its own function
  * gmm: Move code handling GMM PTMSI Realloc Complete to its own function
  * enum gprs_gmm_state: Fix spec reference
  * Implement GMM State using osmocom FSM
  * Split out GPRS SM layer into its own file
  * sgsn: Reject PdpActReq if no GTP pdp ctx exists
  * Introduce TODO-RELEASE file
  * sgsn_libgtp.c: Drop use of deprecated libgtp APIs gtp_retrans*()
  * gmm: Fix assertion hit during RA UPD REQ before completting gmm attach
  * Improve logging in gprs_llc.c code
  * gprs_llc.c: Use enum instead of hardcoded value
  * gprs_gmm.c: Send XID reset with received TLLI

  [ Alexander Couzens ]
  * gprs/gprs_gmm: implement T3314. Timeout to reset MM state READY->STANDBY
  * gprs_gmm: only update gb/iu cell information when Iu/Gb present
  * gprs_gmm: clarify comment of Iu follow-on request
  * gprs_gmm: gsm48_rx_gmm_att_req(): refactor duplicated code
  * sgsn_pdp_ctx_terminate: check llme before accessing
  * gprs_ranap: send CommonId after receiving Security Mode Complete
  * mm_gb_fsm: unassign the llme when entering MM_IDLE
  * gprs_ranap: refactor REQUIRE_MM define
  * sgsn: when receiving data PDU notify the Gb GMM fsm
  * Avoid compiling unneeded files when building without Iu
  * gprs_ranap: release Iu UE Context when exiting PMM Connected
  * Iu: implement a user inactivity timer
  * gprs_ranap: on Iu release, stop the attach fsm if running
  * gprs_mm_state_gb_fsm: ensure T3350 is not running when entering IDLE
  * gprs_ranap: add missing rc = 0
  * gprs_sgsn: always allocate Gb/Iu mm fsm
  * sgsn: MM Gb Fsm: fix event handling for implicit detach
  * ranap: add non-spec X1001
  * gprs_gmm: release Iu connection on RAU failures
  * sgsn_mm_ctx_alloc(): check for unallocated fsms
  * sgsn_libgtp: refactor ps paging into gprs_gb
  * sgsn: Gb: implementing PS Paging when MS is MM_STANDBY

  [ Vadim Yanitskiy ]
  * gprs_mm_state_iu_fsm.c: fix: assign timer_cb to mm_state_iu_fsm

  [ Max ]
  * Use libosmocore constant for IMSI length in ACL entry

  [ Harald Welte ]
  * LLC: Don't use hard-coded N201-U / N201-I values in XID
  * Initial OsmoGbPROXY user manual
  * check for osmo_fsm_register() error return values
  * check for osmo_ss7_init() error return value
  * manual: Fix copy+paste error
  * exit(2) on unsupported positional arguments on command line

  [ Oliver Smith ]
  * gitignore: fix paths to binaries
  * doc: add OsmoGbProxy VTY reference
  * regen_doc.sh: support gbproxy, run without docker
  * osmoappdesc.py, tests: switch to python 3

 -- Pau Espin Pedrol <pespin@sysmocom.de>  Fri, 03 Jan 2020 19:17:56 +0100

osmo-sgsn (1.5.0) unstable; urgency=medium

  [ Max ]
  * Improve 'show subscriber cache' vty command
  * GMM: permit VLR_ANSWERED event in attach FSM
  * Fix IMSI padding in imsi-acl

  [ Harald Welte ]
  * gbproxy_test: Fix test expectations of gprs_ns_rcvmsg()
  * LLC XID: Fix string representation of N201_U
  * LLC: Don't blindly assume all LLC frames have data payload
  * LLC: Avoid NOTICE message on LLC NULL
  * gprs_llc: Correctly refuse any ABM command (SABM, DISC) with DM
  * LLC: Store the XID inside the LLC Entity, not LLC Mgmg Entity
  * gb_proxy.h: Add missing comments; improve comments
  * gb_proxy: cosmetic: Use 'bool' in data structures where applicable

  [ efistokl ]
  * gsm0408_rcv_gmm: send Iu-ReleaseCommand upon receiving Attach Complete.
  * gprs_gmm: send Service Reject when no PDP ctxs are available.

  [ Alexander Couzens ]
  * gprs_gmm: reintroduce calling gsm48_gmm_authorize when not handling GMM Attach Requests
  * gbproxy: parse dtap GSM48_MT_GSM_DEACT_PDP_REQ|ACK

  [ Pau Espin Pedrol ]
  * gprs_sndcp_comp_free: Replace ifelse with switch and better handling of error
  * sgsn: vty: Improve log warning content with spec section
  * Document max retransmit times for T3395
  * sgsn: Fix echo timer not started upon first pdp ctx created
  * sgsn_libgtp: Use new per-GSN libgtp API instead of deprecated API
  * sgsn: Have authentication required on by default
  * Remove undefined param passed to {logging,osmo_stats}_vty_add_cmds
  * Require newer versions of dependencies

  [ Keith ]
  * Echo zero byte XID-Field of Type L3_PAR

  [ Oliver Smith ]
  * debian: create -doc subpackage with pdf manuals
  * contrib/jenkins.sh: run "make maintainer-clean"
  * osmo-gtphub.cfg: fix conflict with osmo-sgsn.cfg
  * osmo-gbproxy.cfg: fix conflict with osmo-sgsn.cfg

  [ Vadim Yanitskiy ]
  * doc/manuals/vty: regenerate sgsn_vty_reference.xml
  * osmo-sgsn: add VTY parameter to toggle authentication
  * sgsn_mm_ctx_find_ggsn_ctx(): fix: always set gsm_cause

  [ Eric Wild ]
  * replace magic tmsi constant with define
  * turn -Werror=null-dereference into a warning

  [ Daniel Willmann ]
  * manuals: Add script to regenerate vty/counter documentation
  * manuals: Update vty/counter documentation
  * Add/fix help string for version option
  * osmo-sgsn: Fix outdated information in usermanual
  * configuration.adoc: Small fixes
  * configuration.adoc: Add a section about encryption

  [ Ruben Undheim ]
  * Spelling fixes

 -- Pau Espin Pedrol <pespin@sysmocom.de>  Thu, 08 Aug 2019 16:46:31 +0200

osmo-sgsn (1.4.0) unstable; urgency=medium

  [ Alexander Couzens ]
  * gprs_subscriber: gsup_auth_error: reject MS in all cases
  * gprs_gmm: make functions relating to GMM Attach Request public
  * gprs_gmm: make extract_subscr_msisdn extract_subscr_hlr public
  * gprs_gmm: Cancel Location: use detach type IMSI
  * vty: add cmd "reset sgsn state"
  * tests: remove gmm unit tests
  * gprs_gmm: introduce a GMM Attach Request FSM
  * debian: add missing build dependencies
  * sgsn: use gtp_clear_queues() when reset sgsn state
  * vty: restart sgsn state: improve output message
  * sgsn_ggsn_ctx_drop_pdp: protect against nullpointer when MM is gone
  * gprs_sgsn.h: fix wrong type of re-attempts
  * GTP: refactor the echo timer
  * gprs_gmm: dont answer unknown IMSI/TMSI on Service Requests NET_FAIL
  * gprs_gmm: Fix missing Security Command for 3G when attaching
  * sgsn_libgtp: fix a potential memleak when the GGSN is not reachable
  * gprs_llc: remove the FCS from the msgb by trim'ing the msgb
  * OsmoSGSN: add rate counter documentation

  [ Daniel Willmann ]
  * gb_proxy: tallocate memory for gbproxy cfg so it can be a talloc ctx
  * gb_proxy: Add ctrl interface and nsvc-state, gbproxy-state commands
  * git-version-gen: Don't check for .git directory

  [ Stefan Sperling ]
  * add a test for OS#3178 (invalid unitdata message)
  * finish gbproxy_parse_bssgp_unitdata test
  * fix bogus assertion in encode_comp_field()
  * fix bogus error check in gprs_sndcp_comp_create()
  * use enums consistently instead of falling back to int
  * update gbproxy test expected output
  * consistently check the result of osmo_shift_v_fixed()
  * remove pointless declaration of struct gsm_network
  * make gsup ipa name configurable in osmo-sgsn.cfg

  [ Pau Espin Pedrol ]
  * jenkins.sh: Use --enable-werror only when iu support is disabled
  * jenkins.sh: Remove non-existent configure options
  * Drop all references of unused SMPP
  * Drop all references of unused MGCP
  * Drop unused common_vty.c
  * sgsn_libgtp.c: Log pointer of deleted context
  * Maintain per ggsn pdp ctx list
  * osmo-sgsn: ping GGSN periodically and check for restart counter
  * Disarm T3395 when dettaching mmctx from pdpctx
  * examples: Enable by default echo req towards active GGSNs
  * vty: Add cmd to disable echo loop explictly
  * Add optional TearDownInd IE in PDP DEACT REQ towards PCU
  * sgsn: Don't attempt to delete GTP pdp ctx if GGSN was restarted
  * Forward GGSN originated DEACT PDP CTX REQ
  * sgsn: Fix T3395 firing forever
  * sgsn: subscriber: Avoid calling memcpy with NULL src
  * sgsn: cdr: Fix uninitialized string access if ggsn is detached
  * sgsn: gtp: Use new API to send PDP DEL CTX REQ without freeing ctx locally
  * sgsn: Fix crash using new libgtp cb_recovery2 API
  * gbproxy: Replace '.' in counter names with ':'
  * Drop gprs_msgb_copy with libosmocore replacement
  * Drop gprs_msgb_resize_area with libosmocore replacement
  * Use osmo_clock_gettime from libosmocore
  * gbproxy: Add VTY parameter: link stored-msgs-max-length
  * gbproxy: Add new VTY-managed timer: link-list clean-stale-timer
  * gbproxy: Replace '.' in counter names with ':'
  * Add osmo-gtphub systemd service file
  * debian: Fix typo in rules preventing build with IU support
  * Install systemd services with autotools
  * Install sample cfg file to /etc/osmocom
  * Update wrong references to bsc in sgsn code
  * Allocate sgsn_instance with talloc
  * gbproxy: flag gbproxy_assign_imsi as static
  * gbproxy: Fix abort during APN patch
  * gbproxy: Remove unneeded parse_ctx param
  * gbproxy: flush_stored_messages: Move comment to func description
  * gbproxy: flush_stored_messages: Log and route using stored_msg info
  * gbproxy: flush_stored_messages: Get rid of msg param
  * Allow easily disabling GFDL references
  * OsmoSGSN: configuration: Move pdp ctx specific CDR fields to its own table
  * OsmoSGSN: configuration: Add missing pdp-periodic event
  * OsmoSGSN: configuration: Document CDR CTRL interface
  * OsmoSGSN: overview: Fix typo and reference OpenGGSN->OsmoGGSN

  [ Harald Welte ]
  * migrate to oap_client in libosmogsm
  * remove libcommon
  * gbproxy-legacy: Ensure well-formed config file
  * Remove local libgsupclient; Use libosmo-gsup-client from osmo-hlr
  * initial checkin of manuals to public repo
  * Add link to Asciidoc source code of manual
  * OsmoSGSN: Fix formatting/cross reference in CDR section
  * Update GSUP chapter regarding UMTS AKA and other recent changes
  * GSUP: Add ladder diagrams for protocol transactions / procedures
  * share chapters/gsup.adoc from OsmoSGSN to OsmoMSC + OsmoHLR
  * vty-ref: Update URI of docbook 5.0 schema

  [ Neels Hofmeyr ]
  * use __FILE__, not __BASE_FILE__
  * vty: fix doc str for 'reset sgsn state'
  * vty: add SCCP related vty commands
  * fix build: remove unused variable
  * Importing history from osmo-gsm-manuals.git
  * add 'make check' target
  * fix 'make clean': shell glob, ignore failure
  * refactor Makefile build rules, don't use the FORCE
  * OsmoSGSN: update VTY reference
  * sgsn: update vty reference

  [ Oliver Smith ]
  * gtphub: Add --version cmdline option
  * build manuals moved here from osmo-gsm-manuals.git
  * Fix DISTCHECK_CONFIGURE_FLAGS override
  * contrib/jenkins.sh: build and publish manuals
  * contrib: fix makedistcheck with disabled systemd

  [ Max ]
  * Cleanup non-existent files from debian/copyright
  * Use safer functions for IMSI ACL
  * gbproxy: fix formatting in gbproxy-state command
  * gbproxy: add number-of-peers ctrl command
  * Revert "gbproxy: fix formatting in gbproxy-state command"
  * Add OsmoSGSN control interface description
  * Remove misleading comment
  * Constify sgsn_acl_lookup() parameter
  * Drop unused osmo-sgsn.pc
  * Use explicit length check
  * Use explicit parameter for sgsn_auth_init()

  [ Jonathan Brielmaier ]
  * fix various typos across all manuals

  [ ikostov ]
  * SGSN: add Auth. policy, NS Statistics and BSSGP state examples, tweaks
  * GSUP, OAP: fix AUTS length to 14, not 16

  [ Philipp Maier ]
  * osmo-sgsn: Update VTY command reference
  * osmo-sgsn: improve auth-policy explaination
  * osmo-sgsn: Explain TCP/IP header compression
  * osmo-sgsn: fix arrow tips in flow diagrams

  [ Holger Hans Peter Freyther ]
  * sgsn: Fix numbering of QoS and add basic description for APN
  * sgsn: Add charging characteristics to GSUP

 -- Harald Welte <laforge@gnumonks.org>  Wed, 23 Jan 2019 18:32:41 +0100

osmo-sgsn (1.3.0) unstable; urgency=medium

  [ Neels Hofmeyr ]
  * drop osmo_sgsn.cfg from src/gprs dir
  * change default config filename to osmo-sgsn.cfg, not osmo_sgsn.cfg
  * vty: skip installing cmds now always installed by default
  * add --enable-sanitize config option
  * use default point-code as listed on Point_Codes wiki page
  * gprs_gmm: segfault: gracefully handle failure to alloc context
  * gsm48_rx_gmm_att_req: fix error handling: don't clean up NULL llme
  * gprs_llc: tx dl ud: make mismatching LLE not crash osmo-sgsn
  * fix build: missing LIBGTP_CFLAGS in sgsn_test
  * sgsn_test: guard against struct gprs_ra_id changing
  * vty: absorb command explanations from osmo-gsm-manuals
  * configure: add --enable-werror
  * implement support for 3-digit MNC with leading zeros
  * osmo-gbproxy: use 'osmo-gbproxy.cfg' as default config name
  * compiler warnings: use enum ranap_nsap_addr_enc, constify local var
  * use osmo_init_logging2(), fix regression test memleaks
  * auth+ciph: log is_r99 and auth types
  * log two RA Update Request failure causes
  * GERAN: allow GSM SRES on UMTS AKA challenge

  [ Alexander Couzens ]
  * .gitignore: remove unneeded ignores of bsc/msc/nitb files
  * tests/ctrl_test_runner.py: remove BSC/NAT TestRunner
  * debian: remove doublicated project name in example files
  * .gitignore: remove non-existent /src/utils exludes
  * configure.ac: remove pcap check
  * configure.ac: remove unused libcdk check
  * .service: remove OpenBSC from service desription
  * mandatory depend on libc-ares and libgtp
  * GMM: dont reply to GMM_DETACH_REQ with POWER OFF when MS is unknown

  [ Harald Welte ]
  * Replace '.' in counter names with ':'
  * Add talloc context introspection via VTY

  [ Pau Espin Pedrol ]
  * Replace '.' in counter names with ':'
  * tests: Fix selection of python version
  * sgsn_cdr: Split log formatting into a snprintf function
  * Add vty cmd 'cdr trap' to send CDR through CTRL iface
  * tests: sgsn_test: Define wrap APIs with correct parameters
  * cosmetic: tests: sgsn_test: Use proper formatting and remove uneeded semicolons
  * gprs_gmm: Remove unused variable
  * cosmetic: gprs_gmm: Remove trailing whitespace
  * gprs_gmm: Convert warning message to pragma message
  * configure.ac: Enable Wall in CFLAGS
  * .gitignore: Add m4 files
  * sgsn_libgtp.c: Fix typos and whitespace

  [ Max ]
  * Fix display of GTP addresses
  * Show GTP version for PDP context in vty
  * Remove unneeded .py scripts
  * Replace '.' in counter names with ':'
  * Remove dead code
  * Enable sanitize for CI tests
  * cosmetic: use macro for gtphub plane iteration
  * Use connection id when allocating rate counters
  * Migrate from OpenSSL to osmo_get_rand_id()
  * Remove obsolete ./configure option
  * Fix RAI construction
  * gtphub: make rate_ctr unique
  * Remove unused bsc_version.c
  * Use gsm48_encode_ra() for RAI encoding
  * gtphub: check for gsn_addr_from_sockaddr() errors
  * gtphub: check for gsn_addr_from_sockaddr() error

 -- Pau Espin Pedrol <pespin@sysmocom.de>  Thu, 03 May 2018 19:01:44 +0200

osmo-sgsn (1.2.0) unstable; urgency=medium

  [ Neels Hofmeyr ]
  * jenkins: fix build: remove unused dependencies
  * debian: fix osmo-sgsn.install, tweak VCS link and descriptions
  * drop files unrelated to osmo-sgsn
  * rewrite README
  * configure.ac: set name to osmo-sgsn, fix ML addr
  * move openbsc.pc to osmo-sgsn.pc
  * move include/openbsc to include/osmocom/sgsn
  * jenkins.sh: fix echo string to say osmo-sgsn, not msc
  * jenkins: use osmo-clean-workspace.sh before and after build

  [ Alexander Couzens ]
  * debian: fix paths of examples
  * debian/rules: show testsuite.log when tests are failing

  [ Max ]
  * Remove rest_octets.h
  * gbproxy: ensure peer allocation result
  * jenkins: use osmo-ggsn for tests
  * Cleanup configure checks
  * Use extended logging for PDP contexts
  * deb: fix copyright file issues
  * Move P-TMSI alloc/update into separate function
  * Check for correct P-TMSI allocation
  * Use new FSF address in license header
  * SGSN: uncomment BSSGP vty tests
  * SGSN: print additional GTP-related info
  * SGSN: check that GSN is created in proper mode
  * Fix APN printing
  * Fix build after recent rate_ctr patches
  * gbproxy: don't link unnecessary
  * Fix libosmo-sigtran dependency
  * jenkins: check for IU properly
  * Log GTP-U endpoints update
  * Log address on GTP creation

  [ Pau Espin Pedrol ]
  * Remove unneeded dep libdbi

  [ Philipp Maier ]
  * log: fix default loglevels
  * non-iu-build: guard vty libosmo-sigtran function calls.
  * configure: fix libosmo-sigtran dependency

  [ Harald Welte ]
  * Debian: Add systemd service files for osmo-sgsn and osmo-gbproxy
  * Debian: fix dh_strip rules for creating one -dbg per program

 -- Harald Welte <laforge@gnumonks.org>  Sat, 28 Oct 2017 19:07:48 +0200

osmo-sgsn (0.1.0) unstable; urgency=low

  * Initial release.

 -- Alexander Couzens <lynxis@fe80.eu>  Tue, 08 Aug 2017 01:13:05 +0000
