osmo-gbproxy (1:0.1.0) unstable; urgency=medium

  [ Philipp Maier ]
  * gb_proxy_ctrl: use mcc-mnc-lac-rac notation instead mcc,mnc,lac,rac
  * gb_proxy: simplify raid data storage
  * gb_proxy_peer: Remove unused function gbproxy_cell_by_bvci_or_new
  * gb_proxy_peer: Require ra_id and cid in gbproxy_cell_alloc
  * gb_proxy: extend TLV parser
  * gb_proxy: add support for relaying BSSGP RIM messages
  * gb_proxy: fix wrong usage of bssgp_rim_ri_name()

  [ Daniel Willmann ]
  * gb_proxy_peer: Add Function to get gbproxy cell by cell id
  * gbproxy_vty: Fix NRI VTY help MSC->SGSN
  * gbproxy_vty: Fix NRI overlap behaviour to match osmo-bsc
  * Various comment/whitespace changes
  * Remove trailing whitespace
  * gbproxy: Use bssgp2_nsi_tx_ptp in gbprox_relay2nse
  * Remove unused log categories
  * Move vty node into gbproxy_vty.c
  * Add SDU length for an NSE (== BSSGP PDU size)
  * gbproxy: Use bssgp2_enc_status when sending STATUS

  [ Pau Espin Pedrol ]
  * Drop c-ares references
  * debian/copyright: Drop osmo-sgsn.git leftover files from list
  * gitignore: Ignore autofoo files *~

  [ Oliver Smith ]
  * d/changelog: set epoch=1

 -- Pau Espin Pedrol <pespin@sysmocom.de>  Wed, 24 Feb 2021 16:54:13 +0100

osmo-gbproxy (1:0.0.1) unstable; urgency=medium

  [ Harald Welte ]
  * Further clean-up in osmo-sgsn -> osmo-gbproxy migration
  * Update README to cover osmo-gbproxy and not osmo-sgsn

  [ Oliver Smith ]
  * contrib/jenkins.sh: adjust to osmo-gbproxy split
  * debian: fix installing pdfs for -doc package
  * contrib/osmo-gbproxy.spec.in: fix config paths

 -- Oliver Smith <osmith@sysmocom.de>  Fri, 05 Feb 2021 11:42:48 +0100

osmo-gbproxy (1:0.0.0) unstable; urgency=medium

  [ Neels Hofmeyr ]
  * manual: explain IuPS, add SCCP/M3UA section from common chapters

  [ 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

  [ Oliver Smith ]
  * contrib: import RPM spec
  * contrib: integrate RPM spec
  * Makefile.am: EXTRA_DIST: debian, contrib/*.spec.in

  [ Neels Hofmeyr ]
  * gbproxy_test.c: fix mobile identity test data
  * use new osmo_mobile_identity API everywhere

  [ Harald Welte ]
  * *.spec.in: Use %config(noreplace) to retain current config file

  [ Alexander Couzens ]
  * gtphub: rename sgsn's oww osmo_sockaddr into sgsn_sockaddr

  [ Vadim Yanitskiy ]
  * debian/control: change maintainer to the Osmocom team / mailing list

  [ Pau Espin Pedrol ]
  * configure.ac: Fix trailing whitespace
  * doc: Update VTY reference xml file
  * Support setting rt-prio and cpu-affinity mask through VTY

  [ Daniel Willmann ]
  * gbproxy-usermanual: Explain BSSGP/BVC handling

  [ Alexander Couzens ]
  * gtphub_test: fix compilation error on gcc 10.2.0

  [ Pau Espin Pedrol ]
  * contrib/jenkins: Enable parallel make in make distcheck

  [ Keith ]
  * VTY: Add gtp state-dir command

  [ Alexander Couzens ]
  * Port gbproxy to NS2

  [ Daniel Willmann ]
  * 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

  [ Harald Welte ]
  * gbproxy: Properly implement paging to LAC/RAC
  * gbproxy: Implement paging to entire BSS area

  [ Pau Espin Pedrol ]
  * gbproxy: generate coredump and exit upon SIGABRT received

  [ Harald Welte ]
  * gbproxy: Pass TLLI as LSP towards NS to facilitate load sharing
  * gb_proxy_peer: Add some FIXMEs regarding invalid assumptions

  [ Daniel Willmann ]
  * 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

  [ Harald Welte ]
  * gb_proxy: More precise + readable log messages

  [ Daniel Willmann ]
  * 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

  [ Harald Welte ]
  * 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

  [ Daniel Willmann ]
  * 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

  [ Harald Welte ]
  * 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

  [ Daniel Willmann ]
  * gbproxy: Fix bvci check in gbprox_rx_ptp_from_*

  [ Harald Welte ]
  * 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 ..."

  [ Daniel Willmann ]
  * osmo-gbproxy: Initialize all hash_maps
  * gbproxy: Fix confusing log message in gbprox_relay2nse

  [ Harald Welte ]
  * gbproxy: Add "show gbproxy cell ..." VTY command

  [ Daniel Willmann ]
  * gbproxy: Add SGSN NRI configuration
  * gbproxy: Add SGSN pooling support
  * gbproxy: Add comments to sgsn functions

  [ Harald Welte ]
  * gbproxy: Fix build on Deiban 8

  [ Alexander Couzens ]
  * sgsn: Use the new NS2 api
  * gbproxy: use ns2 vty2

  [ Daniel Willmann ]
  * gbproxy: Add config option to name an SGSN
  * gbproxy: Add VTY command to override the node selection function

  [ Vadim Yanitskiy ]
  * gb_proxy_peer: sgsn can never be NULL in gbproxy_sgsn_by_nri()
  * gb_proxy_peer: fix NULL pointer dereference in gbproxy_sgsn_alloc()

  [ Daniel Willmann ]
  * Fix gbproxy_sgsn_by_tlli wraparound

  [ Alexander Couzens ]
  * configure.ac: define a c standard instead of using the compilers default

  [ Daniel Willmann ]
  * gbproxy: Implement TLLI cache and use it for SUSPEND/RESUME
  * gbproxy: Increase TLLI cache timeout to 10s

  [ Oliver Smith ]
  * contrib/jenkins: don't build osmo-gsm-manuals

  [ Daniel Willmann ]
  * 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

  [ Harald Welte ]
  * gb_proxy: Don't use orphan log subsystem DPCU

  [ Daniel Willmann ]
  * 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

  [ Alexander Couzens ]
  * follow libosmocore/gprs_ns2 API changes of GPRS enums

  [ Harald Welte ]
  * gbproxy: Avoid depending on any of the SGSN code

  [ Daniel Willmann ]
  * 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 ]
  * 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)

  [ Oliver Smith ]
  * === Split osmo-gbproxy from osmo-sgsn ===

 -- Oliver Smith <osmith@sysmocom.de>  Fri, 29 Jan 2021 12:57:28 +0100
