freediameter (UNRELEASED) UNRELEASED; urgency=low

  *

freediameter (1.5.0) RELEASED; urgency=low

  * freeDiameter:
    - Add -g to help
    - Change -d and -q to control syslog level, as per stdout logging.
    - Syslog to LOG_DAEMON.
    - Actually syslog to LOG_DEBUG, now that -d/-q are used.
    - Add -p pidfile
    - SCTP client: bind to local endpoints configured with ListenOn so
      that the SCTP INIT only contains those local endpoint addresses,
      matching what is advertised in the CER.
  * Base dictionary: Add rules for Experimental-Result.
  * All extensions: Hide symbols except for fd_ext_init(), fd_ext_fini(),
    and fd_ext_depends.
  * dbg_dict_dump.fdx: add extension to write the dictionary
    to the given file or to the log.
  * dbg_dict_dump_json.fdx: add extension to write the dictionary as JSON
    to the given file or stdout.
  * dict_dcca_3gpp.fdx: Update to 3GPP Release 15, adding many standards.
    This adds 96 TYPEs, 145 ENUMVALs, 791 AVPs, 52 RULEs.
    There are various breaking changes (documented below).
  * contrib/dictionary_dcca_3gpp.json: Remove non-3GPP AVPs that are
    actually from base IETF RFCs:
      - MIP6-Feature-Vector (124). IETF RFC 5447
      - Service-Selection (493). IETF RFC 5778
      - Mobile-Node-Identifier (506). IETF RFC 5779
      - QoS-Capability (578). IETF RFC 5777.
  * New API: fd_msg_add_result(): set Result-Code or Experimental-Result.
  * New API: log level FD_LOG_INFO.
  * fd_conf_dump(): fix formatting of local endpoints.
  * fd_msg_search_avp(): support searching avp as well as msg.
  * Fix compiler warnings.
  * Add ERRORS_ON_WARNINGS cmake boolean to enable fatal compiler warnings.
  * New tool: grep_fd_dict_dump: cleanup fd_dict_dump() output in logs.
  * New tool: csv_to_fd: convert .csv with AVP tables to freeDiameter C or JSON.
  * New tool: org_to_csv: convert .org files into .csv files.

  * dict_dcca_3gpp.fdx changes per update to 3GPP Release 15 as at 2019-12:
    - AVP changes:
      - 3GPP-CG-IPv6-Address (14) renamed to 3GPP-CG-Ipv6-Address (14).
      - 3GPP-GGSN-IPv6-Address (16) renamed to 3GPP-GGSN-Ipv6-Address (16).
      - 3GPP-IPv6-DNS-Servers (17) renamed to 3GPP-Ipv6-DNS-Servers (17).
      - 3GPP-SGSN-IPv6-Address (15) renamed to 3GPP-SGSN-Ipv6-Address (15).
      - 3GPP2-BSID (9010) flag M MUST.
      - 3GPP2-BSID (9010) type changed from OctetString to UTF8String.
      - ADC-Revalidation-Time (2801) Time removed in 3GPP TS 29.212 V12.1.0 (2013-06).
      - ADC-Rule-Base-Name (1095) flag M MUST.
      - ADC-Rule-Definition (1094) flag M MUST.
      - ADC-Rule-Install (1092) flag M MUST.
      - ADC-Rule-Name (1096) flag M MUST.
      - ADC-Rule-Remove (1093) flag M MUST.
      - ADC-Rule-Report (1097) flag M MUST.
      - Application-Service-Type (2102) type changed from UTF8String to Enumerated.
      - Application-Session-Id (2103) type changed from UTF8String to Unsigned32.
      - Call-Barring-Infor-List (1488) renamed to Call-Barring-Info (1488).
      - External-Identifier (28) OctetString replaced by External-Identifier (3111) UTF8String.
      - LCS-Requestor-Id (1239) renamed to LCS-Requestor-ID (1239).
      - LCS-Requestor-Id-String (1240) renamed to LCS-Requestor-ID-String (1240).
      - MBMS-BMSC-SSM-IPv6-Address (919) renamed to MBMS-BMSC-SSM-Ipv6-Address (919).
      - MBMS-GGSN-IPv6-Address (917) renamed to MBMS-GGSN-Ipv6-Address (917).
      - MBMSGW-Address (2307) renamed to MBMS-GW-Address (2307).
      - Measurement-Period-LTE (1656) code changed to Measurement-Period-LTE (1655).
      - Measurement-Period-UMTS (1655) code changed to Measurement-Period-UMTS (1656).
      - MME-LocationInformation (1600) renamed to MME-Location-Information(1600).
      - PDG-Address (895) Address removed in 3GPP TS 32.299 V12.6.0 (2014-09).
      - PDG-Charging-Id (896) Unsigned32 removed in 3GPP TS 32.299 V12.6.0 (2014-09).
      - PDN-Connection-ID (1065) flag M MUST NOT.
      - PoC-User-Role-info-Units (1254) renamed to PoC-User-Role-Info-Units (1254).
      - PS-to-CS-Session-Continuity (1099) flag M MUST NOT.
      - SS-Status (1477) type changed from Grouped to OctetString.
      - Status (2702) renamed to Status-AS-Code (2702).
      - WAG-Address (890) Address removed in 3GPP TS 32.299 V12.6.0 (2014-09).
      - WAG-PLMN-Id (891) OctetString removed in 3GPP TS 32.299 V12.6.0 (2014-09).
      - WLAN-Information (875) Grouped removed in 3GPP TS 32.299 V12.6.0 (2014-09).
      - WLAN-Radio-Container (892) Grouped removed in 3GPP TS 32.299 V12.6.0 (2014-09).
      - WLAN-Session-Id (1246) UTF8String removed in 3GPP TS 32.299 V12.6.0 (2014-09).
      - WLAN-Technology (893) Unsigned32 removed in 3GPP TS 32.299 V12.6.0 (2014-09).
      - WLAN-UE-Local-IPAddress (894) Address removed in 3GPP TS 32.299 V12.6.0 (2014-09).
    - AVP renames:
      - Rename Call-Barring-Infor-List (1488) to Call-Barring-Info (1488).
      - Rename LCS-Requestor-Id (1239) to LCS-Requestor-ID (1239).
      - Rename LCS-Requestor-Id-String (1240) to LCS-Requestor-ID-String (1240).
      - Rename MBMSGW-Address (2307) to MBMS-GW-Address (2307).
      - Rename MME-LocationInformation (1600) to MME-Location-Information(1600).
      - Rename PoC-User-Role-info-Units (1254) to PoC-User-Role-Info-Units (1254).
      - Rename Status (2702) to Status-AS-Code (2702).
    - AVP name conflicts:
      - Time-Window (3818) in 3GPP TS 29.345 V12.1.0 (2014-12) predates
        Time-Window-29.154 (4204) in 3GPP TS 29.154 V13.1.0 (2016-03).
    - Add Enumerated(3GPP/Experimental-Result-Code). 145 values.
    - Update standards:
      - 3GPP TS 29.061 V15.5.0 (2018-12). 15 AVPs.
      - 3GPP TS 29.173 V15.0.0 (2018-06). 1 AVP.
      - 3GPP TS 29.212 V15.9.0 (2019-12). 46 AVPs.
      - 3GPP TS 29.214 V15.7.0 (2019-09). 27 AVPs.
      - 3GPP TS 29.229 V15.2.0 (2019-09). 8 AVPs.
      - 3GPP TS 29.272 V15.10.0 (2019-12). 44 AVPs.
      - 3GPP TS 29.329 V15.2.0 (2019-09). 5 AVPs.
      - 3GPP TS 32.299 V15.7.0 (2019-06). 154 AVPs.
    - Add standards:
      - 3GPP TS 29.109 V15.0.0 (2017-06). 21 AVPs.
      - 3GPP TS 29.128 V15.6.0 (2019-09). 25 AVPs.
      - 3GPP TS 29.153 V15.1.0 (2019-09). 2 AVPs.
      - 3GPP TS 29.154 V15.3.0 (2019-09). 16 AVPs.
      - 3GPP TS 29.172 V15.2.0 (2019-12). 66 AVPs.
      - 3GPP TS 29.209 V6.8.0 (2011-09). 2 AVPs.
      - 3GPP TS 29.215 V15.2.0 (2019-09). 9 AVPs.
      - 3GPP TS 29.217 V15.1.0 (2019-09). 14 AVPs.
      - 3GPP TS 29.219 V15.3.0 (2019-09). 7 AVPs.
      - 3GPP TS 29.234 V11.2.0 (2013-06). 19 AVPs.
      - 3GPP TS 29.273 V15.4.0 (2019-09). 40 AVPs.
      - 3GPP TS 29.283 V15.1.0 (2019-09). 16 AVPs.
      - 3GPP TS 29.336 V15.7.0 (2019-09). 79 AVPs.
      - 3GPP TS 29.337 V15.0.0 (2018-06). 4 AVPs.
      - 3GPP TS 29.338 V15.1.0 (2018-12). 34 AVPs.
      - 3GPP TS 29.343 V15.1.0 (2019-09). 13 AVPs.
      - 3GPP TS 29.344 V15.1.0 (2019-09). 7 AVPs.
      - 3GPP TS 29.345 V15.1.0 (2019-09). 68 AVPs.
      - 3GPP TS 29.368 V15.1.0 (2019-09). 12 AVPs.
      - 3GPP TS 29.388 V15.1.0 (2019-09). 3 AVPs.
      - 3GPP TS 29.389 V15.1.0 (2019-09). 3 AVPs.
      - 3GPP TS 29.468 V15.8.0 (2019-12). 33 AVPs.
      - 3GPP TS 29.561 V16.3.0 (2020-03). 9 AVPs.

freediameter (1.4.0) RELEASED; urgency=low

  * New API: fd_fifo_set_max to change the capacity of a queue.
  * New configuration stanza for Relays: ProcessingPeersPattern and ProcessingPeersMinimum
  * New configuration stanza for scalability: RoutingInThreads and RoutingOutThreads
  * some coding style cleanups
  * Improvements on rt_load_balance algorithm
  * Improvements on logging & locking behaviors
  * More tolerant to invalid messages and answers.
  * Improvements on shutdown behaviors.
  * test_ccload: new extension: generates random
    Credit-Control-Requests and counts how many are answered/give an
    error/get no answer. Start it with SIGUSR2, stop it with a second
    SIGUSR2. Statistics are printed on exit.
  * test_cc: new extension. Automatically replies to
    Credit-Control-Requests. Copies minimally necessary data from
    the Request.
  * Fixed testcnx failing due to expired CA certificate

freediameter (1.3.2) RELEASED; urgency=low

  * acl_wl: add configuration reload support (using SIGUSR1).
  * Reduce deprecation warnings.

freediameter (1.3.1) RELEASED; urgency=low

  * test_as: new extension. Automatically replies to Abort-Session-Requests
    with a diameter success message.
  * dbg_loglevel: new extension. Reads debug level from config file
    and supports configuration reload using SIGUSR1; this allows
    changing the loglevel at runtime.
  * rt_rewrite: new extension. Modify messages - move data from one
    AVP to another or drop AVPs completely.
  * rt_deny_by_size: new extension. discard Diameter messages that are
    larger than a configurable size. Has reload support (using
    SIGUSR1).
  * freeDiameterd: add syslog() support ('-s' command line flag)
  * rt_ereg: add configuration reload support (using SIGUSR1). Support
    grouped AVPs. Support multiple separate AVPs.
  * rt_default: add configuration reload support (using SIGUSR1)
  * Various bugfixes

freediameter (1.2.1) RELEASED; urgency=low

  * New extension: rt_randomize (load-balancing on possible destinations)
  * New contrib: Gx extension.
  * rt_redirect.fdx and rt_load_balance.fdx improvement: use a hash table. Thanks Thomas.
  * New hook HOOK_MESSAGE_SENDING to give a last chance to edit messages before they are sent.
    This will be mostly used for enforcing interoperability constraints on non-compliant peers.
  * Simplified log output. Old output can be recovered with DEBUG_WITH_META build option.
  * Updated the internal counters for finer control on the load.
  * Fixes in message expiry mechanism.
  * Bug fixes in error messages generation and various parts.
  * Improvements on shutdown sequence handling.
  * Improvements to the dict_dcca_* extensions.
  * Improved default CMake configuration.
  * Improved build for MacOSX
  * Fixes for a few newer operating systems compatibility.
  * Fixed default secure Diameter port number 5868 instead of5658 (errata of RFC 6733)

 -- Sebastien Decugis <sdecugis@freediameter.net>  Sat, 30 Jan 2016 23:38:03 +0800

freediameter (1.2.0) RELEASED; urgency=low

  * Major changes in the logging system to be more syslog and production friendly
  * New extension: dict_dcca_3gpp
  * New extension: dict_dcca_starent (Starent DCCA vendor-specific AVPs)
  * New extension: rt_ignore_dh (hide network topology by proxying Destination-Host).
  * New extension: rt_load_balance (load balancer based on pending queue size).
  * New extension: rt_busypeers. See doc/rt_busypeers.conf.sample.
  * New extension: dbg_msg_timings. Measures timing of message operations.
  * New extension: dbg_msg_dumps. Use to control hooks display.
  * New API (fd_hook_*) for extensions to control messages logging & profiling
  * New API (fd_stats_*) for extensions to monitor framework state (e.g. SNMP implem)
  * API change: all the fd_*_dump functions now return malloc'd strings instead of logging directly.
  * API change: callback parameter of fd_rt_out_register had its signature updated.
  * Updated dbg_monitoring extension to use the new API
  * New script to generate dictionary extensions from org file (see contrib/tools)
  * New compilation option: WORKAROUND_ACCEPT_INVALID_VSAI to improve compatibility
    with invalid Vendor-Specific-Application-Id AVPs received from some equipments (e.g. Cisco).
  * New compilation option: DISABLE_PEER_EXPIRY for use in test environments.
  * Extensions are now also searched in LD_LIBRARY_PATH.
  * Copy Proxy-Info AVP automatically in new answers.
  * Port value 0 allowed in configuration to disable local server (e.g. disable non-secure port).
  * API change: fd_msg_send_timeout now takes a separate callback for timeout situation.
  * Function changes: fd_msg_dump_* now split in three different type of output.
  * New test testmesg_stress to measure message parser performance
  * Fix termination of the framework to avoid failures.
  * Fix invalid timespec value in peer PSM appearing randomly (leading to crash).
  * Return DIAMETER_LOOP_DETECTED if local peer in the Route-Record list of a message.
  * Allow running without TLS configuration.
  * Upgraded SCTP code to comply with RFC 6458
  * Using default secure Diameter port number 5658 as per RFC 6733
  * Updated TLS code for performance improvements with new GNU TLS.
  * Fix interlocking problem when large number of requests were failed over.
  * New option in test_app.fdx extension for long messages payload.
  * Performance improvement in message sending code path.

 -- Sebastien Decugis <sdecugis@freediameter.net>  Sat, 14 Sep 2013 18:08:07 +0800

freediameter (1.1.6) RELEASED; urgency=low

  * Fix major issue in 1.1.5 preventing to send answers to a received message.
  * New command-line option: --enable_msg_log=( DROPPED | RECEIVED | SENT | NODELIVER | TIMING )
  * Improved parsing error handling and Failed-AVP generation.
  * Added support for some timings measurements in freeDiameter (in the logs)
  * Fix port handling when using non-default port.
  * Some cleanups in several dictionary files.
  * New option to fd_dict_search: AVP_BY_STRUCT
  * Improved compatibility with C++ compilers.
  * Cleanups in sessions creation/destruction to avoid memory corruption under stress.
  * Add support for "include" directive in freeDiameter.conf file.

 -- Sebastien Decugis <sdecugis@freediameter.net>  Sun, 03 Mar 2013 07:40:43 +0100

freediameter (1.1.5) RELEASED; urgency=low

  * Added compatibility with MAC OS X
  * Fix behavior of timeout whe nsending messages to allow re-send.
  * Several cleanups and new contributions included.
  * Added dependency on C++ compiler for CMakeLists.txt

 -- Sebastien Decugis <sdecugis@freediameter.net>  Sat, 03 Nov 2012 17:58:11 +0100

freediameter (1.1.4) RELEASED; urgency=low

  * Compatibility with GnuTLS 3.x versions / updated packaging files accordingly
  * Fix crash on Sparc 64 (possibly other 64b machines)
  * Updated dict_dcca in extensions and contrib (thanks Konstantin)
  * Changed dumping of messages to avoid interleaved information

 -- Sebastien Decugis <sdecugis@freediameter.net>  Fri, 24 Aug 2012 00:17:05 +0200

freediameter (1.1.3) RELEASED; urgency=low

  * Fixed a memory leak
  * Clean-up of some extensions

 -- Sebastien Decugis <sdecugis@freediameter.net>  Tue, 03 Jul 2012 08:15:49 +0200

freediameter (1.1.2) RELEASED; urgency=low

  * FIFO queues are now capped to avoid memory exhaustion.
  * Cleanups in MIPv6 dictionaries.
  * app_acct upgraded: enabled vendor-specific AVP logging, thread-safe version.
  * New function: fd_dict_getlistof to list dictionary contents.
  * New function: fd_dict_delete to remove an entry (dangerous function!)
  * New function: fd_sess_getcount to get count of session objects.
  * A few additional bug fixes, check hg log for details.

 -- Sebastien Decugis <sdecugis@freediameter.net>  Tue, 21 Feb 2012 18:38:10 +0100

freediameter (1.1.1) RELEASED; urgency=low

  * Bug fix release
  * Supports newer GNUTLS versions
  * Allow empty OctetString AVPs (l=0)
  * Allow two instances of freeDiameter on a single host.

 -- Sebastien Decugis <sdecugis@nict.go.jp>  Fri, 30 Sep 2011 21:56:50 +0200

freediameter (1.1.0) RELEASED; urgency=low

  * Source package restructured. Most of the
    framework now contained in the libfdcore library.
    libfreeDiameter renamed as libfdproto.
    This closes #15.
  * API version bumped to version 4.
  * Improved fd_dict_new() when the same object already exists.
  * Improvements to dict_legacy_xml extension.
  * Cleanups in links to shared libraries
  * (app_radgw.fdx) Better handling conversion of DEA with error status
    to RADIUS (closes #25)
  * Allow default signals such as SIGTSTP (ctrl-z) to be used with
    freeDiameterd
  * Improved DiameterIdentity handling (esp. interationalization issues),
    and improve efficiency of some string operations in peers, sessions,
    and dictionary modules (closes #7)
  * Cleanup in the session module to free only unreferenced sessions (#16)
  * Removed fd_cpu_flush_cache(), replaced by more robust alternatives.
  * Improved peer state machine algorithm to counter SCTP multistream race
    condition.
  * New extension rt_redirect.fdx that handles the Diameter Redirect errors.
  * New extension app_redirect that allows sending Redirect indications to
    other peers. See doc/app_redirect.conf.sample for more information.
  * Added incomplete dictionary extension for rfc4006 (DCCA), courtesy
    of Konstantin Chekushin <koch@lmt.lv>

 -- Sebastien Decugis <sdecugis@freediameter.net>  Tue, 29 Mar 2011 10:41:19 +0900

freediameter (1.0.4) RELEASED; urgency=low

  * Added new API to specify timeout on receiving answer (#10)
  * Bumped API version number accordingly.
  * New test_netemul extension (simple network emulator proxy)
  * Improved API compatibility to C++ compilers

 -- Sebastien Decugis <sdecugis@nict.go.jp>  Tue, 11 Jan 2011 12:28:22 +0900

freediameter (1.0.3) RELEASED; urgency=low

  * Fixed a couple of issues for portability (#21, #22, #23)
  * Fixed issue with ListenOn bit ordering (#20)
  * Added dictionary support for MIPv6 application objects.
  * Added dictionary support for legacy XML files.
  * Added python interface dbg_interactive (experimental).
  * Added parameters to fd_disp_register() and fd_sess_handler_create(),
    Bumped API version number accordingly.

 -- Sebastien Decugis <sdecugis@nict.go.jp>  Tue, 14 Dec 2010 11:39:29 +0900

freediameter (1.0.2) RELEASED; urgency=low

  * Fix an issue in app_diameap.fdx with user names (#18)
  * Allow DH parameters loaded from a file (#17)
  * Fixed a few compilation warnings on 64bits architectures.
  * New ALL_EXTENSIONS build option.

 -- Sebastien Decugis <sdecugis@nict.go.jp>  Wed, 27 Oct 2010 11:17:32 +0900

freediameter (1.0.1) RELEASED; urgency=low

  * app_acct.fdx: new set of PHP scripts available in source
    contrib/app_acct_tools
  * app_acct.fdx: new directive 'Server_name_field' in the
    configuration.
  * app_radgw.fdx: new directive 'nonai' in acct and auth plugins to
    disable NAI processing.
  * app_radgw.fdx: New support for RADIUS proxies.
  * app_radgw.fdx: many bug fixes.
  * daemon: Check the local certificate is valid during TLS
    initialization.
  * daemon: Fixed issue for IP addresses in the form x.x.x.235
  * daemon: new option --dbg_gnutls to get GNUTLS debug messages.
  * debian: some cleanups in the packaging (dependencies, meta-data)
  * rt_ereg.fdx: New routing extension based on regular expression
    matching in package freediameter-daemon.

 -- Sebastien Decugis <sdecugis@nict.go.jp>  Wed, 15 Sep 2010 18:30:28 +0900

freediameter (1.0.0-2) experimental; urgency=low

  * Official release 1.0.0

 -- Sebastien Decugis <sdecugis@nict.go.jp>  Thu, 29 Jul 2010 17:27:13 +0900

freediameter (1.0.0-1) experimental; urgency=low

  * Initial Release.

 -- Sebastien Decugis <sdecugis@nict.go.jp>  Wed, 19 May 2010 15:36:54 +0900
