##############################################################################
#
# Sample sgsnemu 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 pricess id of the program.
# The program must have write access to this file/directory.
#pidfile ./sgsnemu.pid

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


# TAG: dns
# DNS server to use for ns lookups.
# If this tag is not set the system default DNS will be used.
#pidfile ./sgsnemu.pid

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

# TAG: remote
# Specifies the remote IP address to connect to
# If DNS is setup correctly it should be possible to specify the 
# access point name (APN) as the remote address.
remote 10.0.0.240

# TAG: net
# IP network address of external packet data network
# This tag is used for setting up routing at the emulator
#net 192.168.0.0

# TAG: mask
# IP network mask of external packet data network
# This tag is used for setting up routing at the emulator
#mask 255.255.255.0


# TAG: contexts
# Use of this tag is EXPERIMENTAL
# Number of contexts to establish from the emulator to the ggsn.
# Set this tag to zero to not establish any contexts.
#contexts 1

# TAG: static
# Use of this tag is EXPERIMENTAL
# Use this flag if you do not want to set dynamic tun interfaces.
# If this flag is set a single network interface is established.
#contexts 1

# TAG: timelimit
# Disconnect contexts after timelimit seconds, and exit the program.
# Setting timelimit to zero will cause the program not to disconnect.
#timelimit 0


# TAG: apn
# Access point name to connect to when run in client mode.
#apn internet

# TAG: imsi
# IMSI number used when run in client mode.
#imsi 2400101234567890

# TAG: msisdn
# MSISDN number used when run in client mode.
#msisdn 46702123456

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

# TAG: uid
# User ID used when run in client mode.
#uid mig

# TAG: pwd
# Password used when run in client mode.
#pwd hemlig


