osmo-ggsn (1.1.0) unstable; urgency=medium

  * libgtp: pdp.h: Addition of new tx_gpdu_seq struct member member
  * libgtp: pdp.h: add LOGPDPX() helper to public API

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

osmo-ggsn (1.0.0) unstable; urgency=medium

  * Transition to OsmoGGSN

 -- Harald Welte <laforge@gnumonks.org>  Wed, 06 Sep 2017 12:19:48 +0200

openggsn (0.94.0) UNRELEASED; urgency=medium

  [ Holger Hans Peter Freyther ]
  * Bump version to ease upgrading from Debian SID.
  * Bump libgtp SO version after ABI change.

  [ Harald Welte ]
  * various documentation / README updates
  * improve error logging and propagation
  * endian-safe definition of IP header
  * IPv6 user plane support

 -- Harald Welte <laforge@gnumonks.org>  Sun, 13 Aug 2017 09:34:20 +0200

openggsn (0.92) precise; urgency=medium

  * Release 0.92

 -- Holger Hans Peter Freyther <holger@moiji-mobile.com>  Mon, 30 Nov 2015 14:05:59 +0100

openggsn (0.91+git34) precise; urgency=medium

  * Non-maintainer upload.

 -- Holger Hans Peter Freyther <holger@freyther.de>  Tue, 23 Sep 2014 16:38:32 +0200

openggsn (0.91+git33) precise; urgency=low

  * Fix init script.

 -- Eric Butler <eric@codebutler.com>  Fri, 24 Aug 2012 21:15:32 -0700

openggsn (0.91+git33) precise; urgency=low

  * Update package for Ubuntu Precise.

 -- Eric Butler <eric@codebutler.com>  Tue, 14 Aug 2012 16:48:59 -0700

openggsn (0.91-2) unstable; urgency=low

  * Switch to source/format (git)

 -- Harald Welte <laforge@gnumonks.org>  Tue, 10 May 2011 17:31:37 +0200

openggsn (0.91-1) unstable; urgency=low

  * Initial release (Closes: #nnnn)  <nnnn is the bug number of your ITP>

 -- Harald Welte <laforge@gnumonks.org>  Tue, 24 Aug 2010 11:23:40 +0200
