2004-04-28: Jens Jakobsen <jj@openggsn.org>
	Improved Solaris support. OpenGGSN now correctly initializes
	tun/tap driver under Solaris. As a consequence the ggsn network
	interface IP address is set to the network address plus one.

	Added routing manipulation and IP address alias capability for
	FreeBSD.

2004-01-19: Jens Jakobsen <jj@openggsn.org>
	Initial FreeBSD port (Thanks to	Pavel Andreev <pavel.andreev@hp.com>).

	IMSI bugfix. The IMSI encoding used by create PDP context was
	missing the leading '1111' to indicate that the 16'nd digit was
	unused. (Thanks to Pavel Andreev <pavel.andreev@hp.com>).
	

2004-01-15: Jens Jakobsen <jj@openggsn.org>
	Added iptables firewall script.
	

2004-01-14: Jens Jakobsen <jj@openggsn.org>
	Changes to allow compilation under Solaris: u_int8_t changed to uint8_t
	and tun api changed for sun platform (#ifdef).

	
2004-01-09: Jens Jakobsen <jj@openggsn.org>
	Fixed bug which included NSAPI in GTPv0 create PDP context messages.


2003-11-10: Jens Jakobsen <jj@openggsn.org>
	Added --net option for sgsnemu. Allow user to specify the network
	address and mask of the local interface.

	Added --gtpversion option for sgsnemu. Allow user to specify which
	GTP version to use.

	Added --nsapi option for sgsnemu. Allow user to specify which
	NSAPI to use.

	Changed the functionality for multiple contexts. Previously
	contexts were differentiated by nsapi. This limited the number of
	contexts to 16. Now each context is established with a new imsi
	and msisdn.


2003-10-22: Jens Jakobsen <jj@openggsn.org>
	Support for GTP1. Currently without support for the secondary pdp
	context activation procedure.

	sgsnemu will first attempt to use GTP1. If that fails it will
	proceed with GTP0.

	Various gtplib API changes to allow support for GTP1.

	gtplib now listens to 3 separate UDP ports: GTP0, GTP1 control
	plane and GTP1 user plane. A socket for each port has to be
	included in the application select loop.

	gtplib now verifies that messages are valid for the particular
	type of support node. As an example a received Create PDP Context
	Request message is not allowed for an SGSN.

	Standards compliance document.

	
2003-07-07: Jens Jakobsen <jj@openggsn.org>
	Added spec.in file for building binary RPM packages. Now openggsn
	will install binaries, man pages as well as scripts.

	Added ggsn and sgsnemu man pages

	Added ggsn Sys V init script

	Added bootstrap script for autotools automation
	

2003-04-11: Jens Jakobsen <jj@openggsn.org>
	Added -ggdb to gtp, sgsnemu and ggsn makefiles in order to include
	debugging information.

	Added ippool.c and ippool.h to ggsn. This allows for generic
	allocation of dynamic ip addresses based on a <net>/<mask>
	description of ip address space. The same files are also used in
	sgsnemu, but only for hashing IP addresses. At the same time the
	corresponding functionality is removed from pdp.c.
	
	Added syserr.h and syserr.c to ggsn and sgsnemu. These files allow
	writing to syslog with file name and line number. Later this
	should also be introduced in gtp.

	Added support for DNS protocol configuration options in ggsn for
	create context response. This allow the MS to setup DNS
	configuration correctly.

	tun.c and tun.h have been updated to allow setting interface IP
	addresses and routes by means of ioctl and netlink. This allow
	sgsnemu to allocate an interface IP address for each context
	established.


2003-01-29: Jens Jakobsen <jj@openggsn.org>
	Added -L../gtp to sgsnemu and ggsn makefiles so that make will
	work without an installed libgtp.

	Added sgsnemu check to check for valid pointer when deleting tun.

	Removed enabling of ip_forward = 1 from ggsn.c and sgsnemu. From a
	security point of view it was not very good that openggsn
	automatically enabled routing.

	Added ipup, ipdown and createif to sgsnemu/cmdline.ggo. Now
	sgsnemu will set up default route and then execute ipup script
	after tun device has been set up. After tun has been deleted the
	ipdown script is executed.

	Added support for ping to sgsnemu.

	Added ipup and ipdown to ggsn/cmdline.ggo.
	
