diff --git a/doc/ggsn.8 b/doc/ggsn.8
new file mode 100644
index 0000000..7a98281
--- /dev/null
+++ b/doc/ggsn.8
@@ -0,0 +1,262 @@
+
+.\" * OpenGGSN - Gateway GPRS Support Node
+.\" * Copyright (C) 2002, 2003 Mondru AB.
+.\" * 
+.\" * The contents of this file may be used under the terms of the GNU
+.\" * General Public License Version 2, provided that the above copyright
+.\" * notice and this permission notice is included in all copies or
+.\" * substantial portions of the software.
+.\" * 
+.\" * The initial developer of the original code is
+.\" * Jens Jakobsen <jj@openggsn.org>
+.\" * 
+.\" * Contributor(s):
+.\" * 
+.\" Manual page for ggsn
+.\" SH section heading
+.\" SS subsection heading
+.\" LP paragraph
+.\" IP indented paragraph
+.\" TP hanging label
+
+.TH ggsn 8 "July 2003"
+.SH NAME
+ggsn \- Gateway GPRS Support Node.
+.SH SYNOPSIS
+.B ggsn
+\-\-help
+
+.B ggsn
+\-\-version
+
+.B ggsn
+[
+.BI \-\-fg
+] [
+.BI \-\-debug
+] [
+.BI \-\-conf " file"
+] [
+.BI \-\-pidfile " file"
+] [
+.BI \-\-statedir " file" 
+] [ 
+.BI \-\-listen " host" 
+] [
+.BI \-\-net " net" 
+] [
+.BI \-\-ipup " script" 
+] [
+.BI \-\-ipdown " script" 
+] [
+.BI \-\-dynip " net" 
+] [
+.BI \-\-statip " net" 
+] [
+.BI \-\-pcodns1 " host" 
+] [
+.BI \-\-pcodns2 " host" 
+] [
+.BI \-\-timelimit " seconds" 
+]
+.SH DESCRIPTION
+.B ggsn
+is part of the 
+.B OpenGGSN
+project, and implements a Gateway GPRS Support Node. It is used by
+mobile operators as the interface between the Internet and the rest of
+the mobile network infrastructure.
+
+The GPRS functionality and protocols has been standardised by the
+Third Generation Partnership Project (3GPP). According to the 3GPP
+specifications a GGSN has two interfaces: The Gn/Gp interface and the
+Gi interface.
+
+The Gn/Gp interface can be seen as the downlink interface of the
+GGSN. It is used for communicating with the Serving GPRS Support Node
+(SGSN) which again interfaces to the radio access network. The Gn/Gp
+interface uses the GPRS tunneling protocol (GTP). User data packets
+(typically IP packets) are tunneled over GTP, which again uses UDP
+over IP.
+
+The other interface can be thought of as the uplink interface, and
+interfaces the GGSN to an external data network. Gi is most often an
+interface to the Internet.
+.B ggsn
+uses the 
+.B TUN/TAP driver
+for the Gi interface. A tun network interface is established when the
+.B ggsn
+is started.
+
+.B ggsn 
+will accept incoming connections from mobile stations through the
+radio access network and the SGSN. When a connection request is
+received the ggsn will allocate a dynamic IP address for the mobile
+station, and allow the mobile station to access the Gi
+interface. Connections are terminated by either the mobile station or
+the SGSN. Runtime errors are reported using the
+.B syslogd (8)
+facility.
+
+Typically 
+.B ggsn
+will be deployed with two Ethernet interfaces. One for the Gn/Gp
+interface, and one for the Gi interface. Policy routing and firewall
+rules should be used in order to separate Gi traffic from Gn/Gp
+traffic.
+
+.SH OPTIONS
+.TP
+.BI --help
+Print help and exit.
+
+.TP
+.BI --version
+Print version and exit.
+
+.TP
+.BI --fg
+Run in foreground (default = off)
+
+.TP
+.BI --debug
+Run in debug mode (default = off)
+
+.TP
+.BI --conf " file"
+Read configuration 
+.I file
+(default = /etc/ggsn.conf) where each line corresponds to one command
+line option, but with the leading '--' removed. Command line options
+override the options given in the configuration file.
+
+.TP
+.BI --pidfile " file"
+Filename of process id 
+.I file
+(default = /var/run/ggsn.pid)
+
+.TP
+.BI --statedir " path"
+.I path
+to directory of nonvolatile data (default = /var/lib/ggsn/)
+
+.TP
+.BI --listen " host"
+Local interface IP address to use for the Gn/Gp interface. This option
+must be specified. For security issues it is not possible to use
+INADDR_ANY.
+
+.TP
+.BI --net " net"
+Network address of the Gi interface (default = 192.168.0.0/24). The
+network address is set during initialisation when
+.B ggsn
+establishes a tun device for the Gi interface.
+
+.TP
+.BI --ipup " script"
+Script executed after the Gi tun network interface has been brought
+up.  Executed with the following parameters: <devicename> <ip address>
+
+.TP
+.BI --ipdown " script"
+Script executed after the Gi tun network interface has been taken
+down.  Executed with the following parameters: <devicename> <ip
+address>
+
+.TP
+.BI --dynip " net"
+Dynamic IP address pool. Specifies a pool of dynamic IP addresses. If
+this option is omitted the network address specified by the
+.BI --net
+option is used for dynamic IP address allocation.
+
+.TP
+.BI --pcodns1 " host"
+PCO DNS Server 1 (default = 0.0.0.0). PCO stands for Protocol
+Configuration options, and is part of the GPRS protocols. It is used
+to inform the mobile station about the DNS address to use for host
+name resolution.
+
+.TP
+.BI --pcodns2 " host"
+PCO DNS Server 2 (default = 0.0.0.0). PCO stands for Protocol
+Configuration options, and is part of the GPRS protocols. It is used
+to inform the mobile station about the DNS address to use for host
+name resolution.
+
+.TP
+.BI --timelimit " seconds"
+Exit 
+.b ggsn
+after \fIseconds\fP. Used for debugging.
+
+
+.SH FILES
+.I /etc/ggsn.conf
+.RS
+The configuration file for
+.B ggsn.
+.RE
+.I /var/run/ggsn.pid
+.RS
+Process ID file.
+.RE
+.I /var/lib/ggsn
+.RS
+Directory holding nonvolatile data.
+.RE
+
+.SH BUGS
+Report all bugs to the OpenGGSN bug tracking list at 
+.I http://sourceforge.net/projects/ggsn/
+
+.B ggsn
+has very limited management support. Currently both SNMP as well as
+billing mechanisms are missing.
+
+
+.SH "SEE ALSO"
+.BR sgsnemu (8), 
+.BR syslogd (8)
+
+.SH NOTES 
+.LP
+
+Besides the long options documented in this man page
+.B ggsn
+also accepts a number of short options with the same functionality. Use
+.B ggsn --help
+for a full list of all the available options.
+
+The TUN/TAP driver is required for proper operation of
+.B ggsn. 
+For linux kernels later than 2.4.7 the TUN/TAP driver is included in the kernel, but typically needs to be loaded manually with
+.B modprobe tun.
+For automatic loading the line
+.B alias char-major-10-200 tun
+can be added to
+.B /etc/modules.conf.
+For other platforms see
+.I http://vtun.sourceforge.net/tun/
+for information on how to install and configure the tun driver.
+
+.B ggsn 
+uses the GPRS Tunneling Protocol (GTP) as specified by the Third
+Generation Partnership Project (3GPP). 3GPP protocols specifications
+can be found at
+.I http://www.3gpp.org
+
+.SH COPYRIGHT
+
+Copyright (C) 2002, 2003 by Mondru AB.
+
+The contents of this file may be used under the terms of the GNU
+General Public License Version 2, provided that the above copyright
+notice and this permission notice is included in all copies or
+substantial portions of the software.
+
+.SH AUTHORS
+Jens Jakobsen <jj@openggsn.org>
