# OpenGGSN - Gateway GPRS Support Node
# Copyright (C) 2002, 2003, 2004 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.
#  
# Use "gengetopt --conf-parser < cmdline.ggo" 
# to generate cmdline.c and cmdline.h

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  "contexts"     - "Number of contexts"             int    default="1" no
option  "timelimit"    - "Exit after timelimit seconds"   int default="0" no

option  "gtpversion"   - "GTP version to use"             int    default="1" no
option  "apn"          a "Access point name"              string default="internet" no
option  "selmode"      - "Selection mode"                 int    default="0x01" no
option  "imsi"         i "IMSI"                           string default="240010123456789" no
option  "nsapi"        - "NSAPI"                          int default="0" no
option  "msisdn"       m "Mobile Station ISDN number"     string default="46702123456" no
option  "qos"          q "Requested quality of service"   int    default="0x0b921f" no
option  "charging"     - "Charging characteristics"       int    default="0x0800" no
option  "uid"          u "Login user ID"                  string default="mig" no
option  "pwd"          p "Login password"                 string default="hemmelig" no

option  "createif"     - "Create local network interface" flag   off
option  "net"          n "Network address for local interface" string no
option  "defaultroute" - "Create default route"           flag   off
option  "ipup"         - "Script to run after link-up"    string no
option  "ipdown"       - "Script to run after link-down"  string no

option  "pinghost"     - "Ping remote host"               string no
option  "pingrate"     - "Number of ping req per second"  unsigned int default="1" no
option  "pingsize"     - "Number of ping data bytes"      unsigned int default="56" no
option  "pingcount"    - "Number of ping req to send"     unsigned int default="0" no
option  "pingquiet"    - "Do not print ping packet info"  flag off

