##############################################################################
#
# Sample sgsnemu configuration file
#
##############################################################################

# 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.
#statedir ./


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

# 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
# Number of contexts to establish from the emulator to the ggsn.
# Set this tag to zero to not establish any contexts.
#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


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

# TAG: defaultroute
# Use this flag if you want to add a default route after a network interface
# had been established.
#defaultroute

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





