#  OpenGGSN - Gateway GPRS Support Node
#  Copyright (C) 2002 Mondru AB.
#  
#  The contents of this file may be used under the terms of the GNU
#  General Public License Version 2, provided that the above copyright
#  notice and this permission notice is included in all copies or
#  substantial portions of the software.
#  
#  The initial developer of the original code is
#  Jens Jakobsen <jj@openggsn.org>
#  
#  Contributor(s):

option  "fg"          f "Run in foreground"              flag   off
option  "debug"       d "Run in debug mode"              flag   off

option  "conf"        c "Read configuration file"        string no
option  "pidfile"     - "Filename of process id file"    string default="./sgsnemu.pid" no
option  "statedir"    - "Directory of nonvolatile data"  string default="./" no

option  "dns"         - "DNS Server to use"              string no
option  "listen"      l "Local interface"                string no
option  "remote"      r "Remote host"                    string no
option  "net"         n "Network"                        string default="192.168.0.0" no
option  "mask"        - "Network mask"                   string default="255.255.255.0" no

option  "contexts"    - "Number of contexts"             int    default="1" no
option  "static"      - "Allocate static tun ifterface"  flag   off
option  "timelimit"   - "Exit after timelimit seconds"   int default="0" no

option  "apn"         a "Access point name"              string default="internet" no
option  "imsi"        i "IMSI"                           string default="240010123456789" no
option  "msisdn"      m "Mobile Station ISDN number"     string default="46702123456" no
option  "qos"         q "Requested quality of service"   int    default="0x0b921f" no
option  "uid"         u "Login user ID"                  string default="mig" no
option  "pwd"         p "Login password"                 string default="hemmelig" no

