# OpenGGSN - Gateway GPRS Support Node
# Copyright (C) 2002, 2003 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):
#
#
# 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  "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  "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"  int default="1" no
option  "pingsize"     - "Number of ping data bytes"      int default="56" no
option  "pingcount"    - "Number of ping req to send"     int default="0" no
option  "pingquiet"    - "Do not print ping packet info"  flag off

