##############################################################################
#
# 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.217

# 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: 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.
#static

# 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

# TAG: createif
# Use this flag if you want to set up a local network interface after
# a PDP context has been established.
#createif

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

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

# TAG: defaultroute
# Use this flag if you want to add a default route to the routing tables
# after the network interface has been brought up.
# If net and/or mask tags are set this overrides the use of a default route.
#defaultroute

# TAG: net
# IP network address of external packet data network.
# Only used if the defaultroute flag is set.
#net 0.0.0.0

# TAG: mask
# IP network mask of external packet data network.
# Only used if the defaultroute flag is set.
#mask 0.0.0.0

# TAG: pinghost
# Ping a remote host through a PDP context by using ICMP echo messages.
# If more than one PDP context has been established the ICMP messages will
# be distributed between all available contexts.
#pinghost 192.168.0.0

# TAG: pingrate
# Number of ping messages to send off each second.
#pingrate 1

# TAG: pingsize
# Size of ICMP echo message payload. Add 28 to get the full IP packet size.
#pingsize 56

# TAG: pingcount
# Number of ping messages to send off.
#pingcount 0

# TAG: pingquiet
# Do not print ping packet info.
#pingquiet





