##############################################################################
#
# Sample ggsn configuration file
#
##############################################################################

# TAG: fg
# Include this flag if process is to run in the foreground
#
fg

# TAG: debug
# Include this flag to include debug information.
#debug


# TAG: conf
# Configuration file to use. This file is the configuration file, 
# so changing this parameter in the configuration file does not make
# sense. Use it on the command line instead.

# TAG: pidfile
# File to store information about the process id of the program.
# The program must have write access to this file/directory.
#pidfile /var/run/ggsn.pid

# TAG: statedir
# Directory to use for nonvolatile storage. 
# The program must have write access to this directory.
#pidfile /var/lib/ggsn/


# TAG: listen
# Specifies the local IP address to listen to
listen 10.0.0.240

# TAG: net
# IP network address of external packet data network
# Used to set up network interface.
#net 192.168.0.0/24

# TAG: ipup
# Script executed after network interface has been brought up.
# Executed with the following parameters: <devicename> <ip address>
#ipup /etc/ggsn/ip-up

# TAG: ipdown
# Script executed after network interface has been taken down.
# Executed with the following parameters: <devicename> <ip address>
#ipdown /etc/ggsn/ip-down

# TAG: dynip
# Dynamic IP address pool.
# Used for allocation of dynamic IP address when address is not given
# by HLR or radius server.
#dynip 192.168.0.0/24

# TAG: statip
# Use of this tag is currently UNSUPPORTED
# Static IP address pool.
# Used for allocation of static IP address by means of either HLR or
# radius server.
#statip 192.168.1.0/24

# TAG: pcodns1
# Protocol configuration option domain name system server 1.
#pcodns1 0.0.0.0

# TAG: pcodns2
# Protocol configuration option domain name system server 2.
#pcodns2 0.0.0.0

# TAG: timelimit
# Exit after timelimit seconds.
# Setting timelimit to zero will cause the program not to exit.
#timelimit 0

# TAG: apn
# Use of this tag is EXPERIMENTAL
# Access point name to connect to when run in client mode.
#apn internet

# TAG: qos
# Use of this tag is EXPERIMENTAL
# Requested Quality of Service used when run in client mode.
# 3 bytes corresponding to ????
#qos 0x0b921f





