GTP1 functionality and documentation update
diff --git a/ChangeLog b/ChangeLog
index 6953a7d..846d598 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,23 @@
+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.
diff --git a/NEWS b/NEWS
index 2a0aee1..547c6a4 100644
--- a/NEWS
+++ b/NEWS
@@ -4,6 +4,15 @@
 OpenGGSN - Gateway GPRS Support Node
 Copyright (C) 2002, 2003 Mondru AB.
 
+Version 0.7
+===========
+
+ * 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
+   fallback to using GTP0.
+ * Standards compliance document.
+
 Version 0.6
 ===========
 
diff --git a/README b/README
index f633cbc..6a4f576 100644
--- a/README
+++ b/README
@@ -58,9 +58,10 @@
 routing. Now you should be able to ping through the connection. Use a
 network analysator such as ethereal to monitor the traffic.
 
-sgsnemu -h will show a list of available options. "-c sgsnemu.conf"
-use sgsnemu.conf as a configuration file. A sample file is provided in
-examples/sgsnemu.conf.
+sgsnemu -h will show a list of available options. 
+
+sgsnemu -c sgsnemu.conf will use sgsnemu.conf as a configuration
+file. A sample file is provided in examples/sgsnemu.conf.
 
 *ggsn*
 Edit the configuration file ggsn.conf found under openggsn/examples.
@@ -83,7 +84,8 @@
 ========
 
 OpenGGSN is an open source implementation of GPRS Support Nodes
-(GSNs). It implements the GPRS tunneling protocol (GTP) version 0.
+(GSNs). It implements the GPRS tunneling protocol (GTP) version 0 and
+version 1.
 
 OpenGGSN provides 3 components:
  * gtplib
@@ -93,8 +95,9 @@
 *gtplib*
 This library contains all functionality relating to the GTP
 protocol. Use this library if you want to implement your own
-GSN. Currently gtplib supports GTPv0. At the moment no interface
-documentation is available for download.
+GSN. gtplib supports both GTPv0 (GSM 09.60) and GTPv1 (3GPP
+29.060). At the moment no interface documentation is available for
+download.
 
 *ggsn*
 The ggsn implements a Gateway GPRS Support Node. The GGSN is a small
@@ -108,7 +111,9 @@
 This application emulates a Serving GPRS Support Node (SGSN). sgsnemu
 enables you to test your 3GPP core network without the need to invest
 in a 3G radio access network. An important application of sgsnemu is
-the testing of roaming connectivity through a GPRS roaming exchange.
+the testing of roaming connectivity through a GPRS roaming
+exchange. sgsnemu will first attempt to use GTPv1. If unsuccessful it
+will fallback to GTPv0.
 
 
 Performance
@@ -182,7 +187,7 @@
 2. Copy the latest config.guess and config.sub from ftp://ftp.gnu.org/gnu/config
 3. Run autoscan and copy configure.scan to configure.in
 4. Add/edit the following lines in configure.in:
-   - AC_INIT(openggsn, 0.52, jj@openggsn.org)
+   - AC_INIT(openggsn, 0.70, jj@openggsn.org)
    - AC_CONFIG_SRCDIR([gtp/gtp.c])
    - AM_CONFIG_HEADER([config.h])
    - AC_PROG_LIBTOOL
@@ -247,7 +252,7 @@
 
 Start the ggsn as root using the command:
 
-  ggsn -c examples/ggsn.conf --fg -l 10.0.0.40 --net 192.168.0.0/24 --dynip 192.168.0.0/24
+ggsn -c examples/ggsn.conf --fg -l 10.0.0.40 --net 192.168.0.0/24 --dynip 192.168.0.0/24
 
 First a tun network interface will be created. In the above example
 the network interface address is 192.168.0.0 and the mask is
@@ -300,7 +305,7 @@
 details.
 4. Launch sgsnemu with something like:
 
-     sgsnemu --listen 10.0.0.50 --remote 10.0.0.40 --dns 10.20.38.51 --timelimit 10 --contexts 0 
+sgsnemu --listen 10.0.0.50 --remote 10.0.0.40 --dns 10.20.38.51 --timelimit 10 --contexts 0 
 
 sgsnemu will print something like the following on the screen:
 
@@ -340,7 +345,7 @@
 network, so please be carefull not to route internet traffic onto the
 GPRS core network! Assuming you know what you are doing:
 
-     sgsnemu --listen 10.0.0.50 --remote 10.0.0.40 --dns 10.20.38.51 --timelimit 10 --contexts 1 --apn internet --imsi 240011234567890 --msisdn 46702123456 --createif --defaultroute
+sgsnemu --listen 10.0.0.50 --remote 10.0.0.40 --dns 10.20.38.51 --timelimit 10 --contexts 1 --apn internet --imsi 240011234567890 --msisdn 46702123456 --createif --defaultroute
 
 sgsnemu will print something like the following on the screen:
 
diff --git a/configure b/configure
index 847ffa1..4c33a59 100755
--- a/configure
+++ b/configure
@@ -1,6 +1,6 @@
 #! /bin/sh
 # Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.57 for openggsn 0.61b.
+# Generated by GNU Autoconf 2.57 for openggsn 0.70.
 #
 # Report bugs to <jj@openggsn.org>.
 #
@@ -427,8 +427,8 @@
 # Identity of this package.
 PACKAGE_NAME='openggsn'
 PACKAGE_TARNAME='openggsn'
-PACKAGE_VERSION='0.61b'
-PACKAGE_STRING='openggsn 0.61b'
+PACKAGE_VERSION='0.70'
+PACKAGE_STRING='openggsn 0.70'
 PACKAGE_BUGREPORT='jj@openggsn.org'
 
 ac_unique_file="gtp/gtp.c"
@@ -946,7 +946,7 @@
   # Omit some internal or obsolete options to make the list less imposing.
   # This message is too long to be a string in the A/UX 3.1 sh.
   cat <<_ACEOF
-\`configure' configures openggsn 0.61b to adapt to many kinds of systems.
+\`configure' configures openggsn 0.70 to adapt to many kinds of systems.
 
 Usage: $0 [OPTION]... [VAR=VALUE]...
 
@@ -1012,7 +1012,7 @@
 
 if test -n "$ac_init_help"; then
   case $ac_init_help in
-     short | recursive ) echo "Configuration of openggsn 0.61b:";;
+     short | recursive ) echo "Configuration of openggsn 0.70:";;
    esac
   cat <<\_ACEOF
 
@@ -1110,7 +1110,7 @@
 test -n "$ac_init_help" && exit 0
 if $ac_init_version; then
   cat <<\_ACEOF
-openggsn configure 0.61b
+openggsn configure 0.70
 generated by GNU Autoconf 2.57
 
 Copyright 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001, 2002
@@ -1125,7 +1125,7 @@
 This file contains any messages produced by compilers while
 running configure, to aid debugging if configure makes a mistake.
 
-It was created by openggsn $as_me 0.61b, which was
+It was created by openggsn $as_me 0.70, which was
 generated by GNU Autoconf 2.57.  Invocation command line was
 
   $ $0 $@
@@ -9085,7 +9085,7 @@
 
 # Define the identity of the package.
  PACKAGE=openggsn
- VERSION=0.61b
+ VERSION=0.70
 
 
 cat >>confdefs.h <<_ACEOF
@@ -9719,7 +9719,7 @@
 } >&5
 cat >&5 <<_CSEOF
 
-This file was extended by openggsn $as_me 0.61b, which was
+This file was extended by openggsn $as_me 0.70, which was
 generated by GNU Autoconf 2.57.  Invocation command line was
 
   CONFIG_FILES    = $CONFIG_FILES
@@ -9782,7 +9782,7 @@
 
 cat >>$CONFIG_STATUS <<_ACEOF
 ac_cs_version="\\
-openggsn config.status 0.61b
+openggsn config.status 0.70
 configured by $0, generated by GNU Autoconf 2.57,
   with options \\"`echo "$ac_configure_args" | sed 's/[\\""\`\$]/\\\\&/g'`\\"
 
diff --git a/configure.in b/configure.in
index c52d86f..69533d7 100644
--- a/configure.in
+++ b/configure.in
@@ -1,5 +1,5 @@
 # Process this file with autoconf to produce a configure script.
-AC_INIT(openggsn, 0.61b, jj@openggsn.org)
+AC_INIT(openggsn, 0.70, jj@openggsn.org)
 AC_CONFIG_SRCDIR([gtp/gtp.c])
 AM_CONFIG_HEADER([config.h])
 #AC_CONFIG_HEADER([config.h])
diff --git a/doc/Makefile b/doc/Makefile
index 71d2214..35928c3 100644
--- a/doc/Makefile
+++ b/doc/Makefile
@@ -82,7 +82,7 @@
 PACKAGE = openggsn
 RANLIB = ranlib
 STRIP = strip
-VERSION = 0.61b
+VERSION = 0.70
 am__include = include
 am__quote = 
 install_sh = /home/jj/openggsn/install-sh