##############################################################################
#
# 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: selmode
# Selection mode to use when connecting to GGSN.
#selmode 0x01

# 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





