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

  [ Vadim Yanitskiy ]
  * configure.ac: do not require unused dlsym/dlopen

  [ Max ]
  * Set working directory in systemd service file
  * Drop forward declaration of gbprox_relay2peer()
  * ctrl: take both address and port from vty config

  [ Alexander Couzens ]
  * implement LL DISCARD with second BVCI

  [ Daniel Willmann ]
  * gbproxy_vty: Add commands to list Cell/BVC of an NSE
  * Improve log levels
  * Fix obsolete documentation of function

  [ Harald Welte ]
  * manual: Use combined/merged gb-ns2 chapter

  [ arehbein ]
  * osmo-gbproxy: Transition to use of 'telnet_init_default'

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

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

  [ Daniel Willmann ]
  * gbproxy: Fix error return value
  * gbproxy: Also try to route STATUS messages with truncated PDU in error
  * gbproxy: Fix crash when FLUSH_LL_ACK does not contain a BVCI IE
  * gbproxy_peer: Free all related BVCs if the cell is freed
  * gbproxy: Only route to an SGSN if the BVC is not blocked
  * gbproxy_peer: Use designated initializers for bvc_ctr_description
  * gbproxy_peer: Add rate counters when forwarding packets fail
  * gbproxy: Ensure PtP-BVCs are reset when we reset the SGSN SIG-BVC

  [ Pau Espin Pedrol ]
  * Drop unneeded ax_check_compile_flag.m4

  [ Alexander Couzens ]
  * docs: usermanual: reorder gb/ns2 chapter to keep all ns2 part together
  * docs: usermanual: add new chapter gb-ns2-maintenance

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

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

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

  [ Pau Espin Pedrol ]
  * Support setting rt-prio and cpu-affinity mask through VTY
  * Avoid sending tx_status upon rx of RIM messages
  * Use new stat item/ctr getter APIs

  [ Daniel Willmann ]
  * gbproxy_main: Fix naming bsc_hack/nsip_proxy -> (osmo-)gbproxy
  * manual: Update manuals, include sgsn pooling and NS variants
  * manuals: Regenerate counters/VTY through docker
  * Remove some outdated TODO/comments
  * gb_proxy.h: Use pragma once instead of ifndef
  * Update the max_sdu_len from NS
  * Handle GPRS_NS2_AFF_CAUSE_FAILURE
  * Remove osmo-sgsn relics
  * gbproxy: Don't free NSE/BVC0 if SGSN NSE goes down
  * gbproxy_main: Add ctrl vty commands
  * gb_proxy: Ensure cell info is up to date when receiving PTP-BVC reset
  * gbproxy_main: Process options after all initialization is done
  * examples/manuals: Improve/update ns-related documentation
  * Don't route messages to an SGSN if it is down
  * manual: Update counters, add proper chapter for counters
  * gbproxy_vty: Remove redundant command "show gbproxy links"
  * manual: Add section describing show gbproxy command usage
  * manual: Add chapter describing osmo counters in general
  * gbproxy: Add usage flag to the imsi_cache
  * gbproxy: Forward MS_REGISTR_ENQ/_RESP correctly
  * gbproxy_peer: Set rate_ctr name for gbproxy_peer stats
  * gbproxy_peer: Free a cell as soon as no BSS BVC uses it
  * gbproxy_ctrl: Fix crash in nsvc-state ctrl command
  * gbproxy_ctrl: Ignore SIG-BVCI in ctrl commands
  * gbproxy: Remove SGSN-side BVC after sending BVC-BLOCK
  * gbproxy: Avoid sending STATUS on unexpected BLOCK_ACK
  * gbproxy: Fix stats when no BVC could be found
  * gbproxy: Use designated initializers for global_ctr_description
  * gbproxy: Improve log message when no bvc is found (include bvci)
  * gbproxy: Route BSSGP STATUS with PDU_IN_ERROR containing a TLLI
  * gpproxy: Route BSSGP STATUS with PDU_IN_ERROR containing a TMSI
  * gbproxy: Add comment, improve log message in gbproxy_tlli_from_status_pdu
  * gbproxy: Improve STATUS handling from SGSN
  * gbproxy: Route DL STATUS with BVCI on SIG-BVC
  * gbproxy: Add comment, remove unused param in gbproxy_tlli_from_status_pdu
  * gbproxy: Route STATUS in PtP-BVC by TLLI/TMSI as well
  * gbproxy: Move BSSGP decoding into its own function and use it
  * gbproxy: Increase correct counter when BSSGP decode from SGSN fails
  * gbproxy: Only use one struct tlv_parsed for gbproxy_decode_bssgp
  * gbproxy: Remove duplicate struct gprs_ra_id handling

  [ Harald Welte ]
  * vty: Print CellId along with RA-ID

  [ Oliver Smith ]
  * doc: include gb-ns2.adoc, not gb-variants.adoc
  * gitignore: add gbproxy_vty_reference.xml
  * examples/osmo-gbproxy.cfg: fix osmo-sgsn conflict
  * debian/control: remove dh-systemd build-depend
  * Revert "Turn some compiler warnings into errors"

 -- Pau Espin Pedrol <pespin@sysmocom.de>  Tue, 16 Nov 2021 18:03:02 +0100

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
