535 lines
21 KiB
C
535 lines
21 KiB
C
/** @file cmdline.h
|
|
* @brief The header file for the command line option parser
|
|
* generated by GNU Gengetopt version 2.22.6
|
|
* http://www.gnu.org/software/gengetopt.
|
|
* DO NOT modify this file, since it can be overwritten
|
|
* @author GNU Gengetopt by Lorenzo Bettini */
|
|
|
|
#ifndef CMDLINE_H
|
|
#define CMDLINE_H
|
|
|
|
/* If we use autoconf. */
|
|
#ifdef HAVE_CONFIG_H
|
|
#include "config.h"
|
|
#endif
|
|
|
|
#include <stdio.h> /* for FILE */
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif /* __cplusplus */
|
|
|
|
#ifndef CMDLINE_PARSER_PACKAGE
|
|
/** @brief the program name (used for printing errors) */
|
|
#define CMDLINE_PARSER_PACKAGE "sgsnemu"
|
|
#endif
|
|
|
|
#ifndef CMDLINE_PARSER_PACKAGE_NAME
|
|
/** @brief the complete program name (used for help and version) */
|
|
#define CMDLINE_PARSER_PACKAGE_NAME "sgsnemu"
|
|
#endif
|
|
|
|
#ifndef CMDLINE_PARSER_VERSION
|
|
/** @brief the program version */
|
|
#define CMDLINE_PARSER_VERSION VERSION
|
|
#endif
|
|
|
|
/** @brief Where the command line options are stored */
|
|
struct gengetopt_args_info {
|
|
const char *help_help;
|
|
/**< @brief Print help and exit help description. */
|
|
const char *version_help;
|
|
/**< @brief Print version and exit help description. */
|
|
int debug_flag;
|
|
/**< @brief Run in debug mode (default=off). */
|
|
const char *debug_help;
|
|
/**< @brief Run in debug mode help description. */
|
|
char *conf_arg;
|
|
/**< @brief Read configuration file. */
|
|
char *conf_orig;
|
|
/**< @brief Read configuration file original value given at command line. */
|
|
const char *conf_help;
|
|
/**< @brief Read configuration file help description. */
|
|
char *pidfile_arg;
|
|
/**< @brief Filename of process id file (default='./sgsnemu.pid'). */
|
|
char *pidfile_orig;
|
|
/**< @brief Filename of process id file original value given at command line. */
|
|
const char *pidfile_help;
|
|
/**< @brief Filename of process id file help description. */
|
|
char *statedir_arg;
|
|
/**< @brief Directory of nonvolatile data (default='./'). */
|
|
char *statedir_orig;
|
|
/**< @brief Directory of nonvolatile data original value given at command line. */
|
|
const char *statedir_help;
|
|
/**< @brief Directory of nonvolatile data help description. */
|
|
char *dns_arg;
|
|
/**< @brief DNS Server to use. */
|
|
char *dns_orig;
|
|
/**< @brief DNS Server to use original value given at command line. */
|
|
const char *dns_help;
|
|
/**< @brief DNS Server to use help description. */
|
|
char *listen_arg;
|
|
/**< @brief Local host. */
|
|
char *listen_orig;
|
|
/**< @brief Local host original value given at command line. */
|
|
const char *listen_help;
|
|
/**< @brief Local host help description. */
|
|
char *remote_arg;
|
|
/**< @brief Remote host. */
|
|
char *remote_orig;
|
|
/**< @brief Remote host original value given at command line. */
|
|
const char *remote_help;
|
|
/**< @brief Remote host help description. */
|
|
int contexts_arg;
|
|
/**< @brief Number of contexts (default='1'). */
|
|
char *contexts_orig;
|
|
/**< @brief Number of contexts original value given at command line. */
|
|
const char *contexts_help;
|
|
/**< @brief Number of contexts help description. */
|
|
int timelimit_arg;
|
|
/**< @brief Exit after timelimit seconds (default='0'). */
|
|
char *timelimit_orig;
|
|
/**< @brief Exit after timelimit seconds original value given at command line. */
|
|
const char *timelimit_help;
|
|
/**< @brief Exit after timelimit seconds help description. */
|
|
int gtpversion_arg;
|
|
/**< @brief GTP version to use (default='1'). */
|
|
char *gtpversion_orig;
|
|
/**< @brief GTP version to use original value given at command line. */
|
|
const char *gtpversion_help;
|
|
/**< @brief GTP version to use help description. */
|
|
char *apn_arg;
|
|
/**< @brief Access point name (default='internet'). */
|
|
char *apn_orig;
|
|
/**< @brief Access point name original value given at command line. */
|
|
const char *apn_help;
|
|
/**< @brief Access point name help description. */
|
|
int selmode_arg;
|
|
/**< @brief Selection mode (default='0x01'). */
|
|
char *selmode_orig;
|
|
/**< @brief Selection mode original value given at command line. */
|
|
const char *selmode_help;
|
|
/**< @brief Selection mode help description. */
|
|
int rattype_arg;
|
|
/**< @brief Radio Access Technology Type (default='1'). */
|
|
char *rattype_orig;
|
|
/**< @brief Radio Access Technology Type original value given at command line. */
|
|
const char *rattype_help;
|
|
/**< @brief Radio Access Technology Type help description. */
|
|
char *userloc_arg;
|
|
/**< @brief User Location Information (default='02509946241207'). */
|
|
char *userloc_orig;
|
|
/**< @brief User Location Information original value given at command line. */
|
|
const char *userloc_help;
|
|
/**< @brief User Location Information help description. */
|
|
char *rai_arg;
|
|
/**< @brief Routing Area Information (default='02509946241207'). */
|
|
char *rai_orig;
|
|
/**< @brief Routing Area Information original value given at command line. */
|
|
const char *rai_help;
|
|
/**< @brief Routing Area Information help description. */
|
|
char *mstz_arg;
|
|
/**< @brief MS Time Zone (default='0'). */
|
|
char *mstz_orig;
|
|
/**< @brief MS Time Zone original value given at command line. */
|
|
const char *mstz_help;
|
|
/**< @brief MS Time Zone help description. */
|
|
char *imeisv_arg;
|
|
/**< @brief IMEI(SV) International Mobile Equipment Identity (and Software Version) (default='2143658709214365'). */
|
|
char *imeisv_orig;
|
|
/**< @brief IMEI(SV) International Mobile Equipment Identity (and Software Version) original value given at command line. */
|
|
const char *imeisv_help;
|
|
/**< @brief IMEI(SV) International Mobile Equipment Identity (and Software Version) help description. */
|
|
int norecovery_flag;
|
|
/**< @brief Do not send recovery (default=off). */
|
|
const char *norecovery_help;
|
|
/**< @brief Do not send recovery help description. */
|
|
char *imsi_arg;
|
|
/**< @brief IMSI (default='240010123456789'). */
|
|
char *imsi_orig;
|
|
/**< @brief IMSI original value given at command line. */
|
|
const char *imsi_help;
|
|
/**< @brief IMSI help description. */
|
|
int nsapi_arg;
|
|
/**< @brief NSAPI (default='0'). */
|
|
char *nsapi_orig;
|
|
/**< @brief NSAPI original value given at command line. */
|
|
const char *nsapi_help;
|
|
/**< @brief NSAPI help description. */
|
|
char *msisdn_arg;
|
|
/**< @brief Mobile Station ISDN number (default='46702123456'). */
|
|
char *msisdn_orig;
|
|
/**< @brief Mobile Station ISDN number original value given at command line. */
|
|
const char *msisdn_help;
|
|
/**< @brief Mobile Station ISDN number help description. */
|
|
int qos_arg;
|
|
/**< @brief Requested quality of service (default='0x000b921f'). */
|
|
char *qos_orig;
|
|
/**< @brief Requested quality of service original value given at command line. */
|
|
const char *qos_help;
|
|
/**< @brief Requested quality of service help description. */
|
|
unsigned long long int qose1_arg;
|
|
/**< @brief Requested quality of service Extension 1 (default='0x9396404074f9ffff'). */
|
|
char *qose1_orig;
|
|
/**< @brief Requested quality of service Extension 1 original value given at command line. */
|
|
const char *qose1_help;
|
|
/**< @brief Requested quality of service Extension 1 help description. */
|
|
int qose2_arg;
|
|
/**< @brief Requested quality of service Extension 2 (default='0x11'). */
|
|
char *qose2_orig;
|
|
/**< @brief Requested quality of service Extension 2 original value given at command line. */
|
|
const char *qose2_help;
|
|
/**< @brief Requested quality of service Extension 2 help description. */
|
|
int qose3_arg;
|
|
/**< @brief Requested quality of service Extension 3 (default='0x0101'). */
|
|
char *qose3_orig;
|
|
/**< @brief Requested quality of service Extension 3 original value given at command line. */
|
|
const char *qose3_help;
|
|
/**< @brief Requested quality of service Extension 3 help description. */
|
|
int qose4_arg;
|
|
/**< @brief Requested quality of service Extension 4 (default='0x4040'). */
|
|
char *qose4_orig;
|
|
/**< @brief Requested quality of service Extension 4 original value given at command line. */
|
|
const char *qose4_help;
|
|
/**< @brief Requested quality of service Extension 4 help description. */
|
|
int charging_arg;
|
|
/**< @brief Charging characteristics (default='0x0800'). */
|
|
char *charging_orig;
|
|
/**< @brief Charging characteristics original value given at command line. */
|
|
const char *charging_help;
|
|
/**< @brief Charging characteristics help description. */
|
|
char *uid_arg;
|
|
/**< @brief Login user ID (default='mig'). */
|
|
char *uid_orig;
|
|
/**< @brief Login user ID original value given at command line. */
|
|
const char *uid_help;
|
|
/**< @brief Login user ID help description. */
|
|
char *pwd_arg;
|
|
/**< @brief Login password (default='hemmelig'). */
|
|
char *pwd_orig;
|
|
/**< @brief Login password original value given at command line. */
|
|
const char *pwd_help;
|
|
/**< @brief Login password help description. */
|
|
int createif_flag;
|
|
/**< @brief Create local network interface (default=off). */
|
|
const char *createif_help;
|
|
/**< @brief Create local network interface help description. */
|
|
char *net_arg;
|
|
/**< @brief Network address for local interface. */
|
|
char *net_orig;
|
|
/**< @brief Network address for local interface original value given at command line. */
|
|
const char *net_help;
|
|
/**< @brief Network address for local interface help description. */
|
|
int defaultroute_flag;
|
|
/**< @brief Create default route (default=off). */
|
|
const char *defaultroute_help;
|
|
/**< @brief Create default route help description. */
|
|
char *ipup_arg;
|
|
/**< @brief Script to run after link-up. */
|
|
char *ipup_orig;
|
|
/**< @brief Script to run after link-up original value given at command line. */
|
|
const char *ipup_help;
|
|
/**< @brief Script to run after link-up help description. */
|
|
char *ipdown_arg;
|
|
/**< @brief Script to run after link-down. */
|
|
char *ipdown_orig;
|
|
/**< @brief Script to run after link-down original value given at command line. */
|
|
const char *ipdown_help;
|
|
/**< @brief Script to run after link-down help description. */
|
|
char *tun_device_arg;
|
|
/**< @brief Name of the local network interface. */
|
|
char *tun_device_orig;
|
|
/**< @brief Name of the local network interface original value given at command line. */
|
|
const char *tun_device_help;
|
|
/**< @brief Name of the local network interface help description. */
|
|
char *netns_arg;
|
|
/**< @brief Network namespace to use. */
|
|
char *netns_orig;
|
|
/**< @brief Network namespace to use original value given at command line. */
|
|
const char *netns_help;
|
|
/**< @brief Network namespace to use help description. */
|
|
char *pinghost_arg;
|
|
/**< @brief Ping remote host. */
|
|
char *pinghost_orig;
|
|
/**< @brief Ping remote host original value given at command line. */
|
|
const char *pinghost_help;
|
|
/**< @brief Ping remote host help description. */
|
|
int pingrate_arg;
|
|
/**< @brief Number of ping req per second (default='1'). */
|
|
char *pingrate_orig;
|
|
/**< @brief Number of ping req per second original value given at command line. */
|
|
const char *pingrate_help;
|
|
/**< @brief Number of ping req per second help description. */
|
|
int pingsize_arg;
|
|
/**< @brief Number of ping data bytes (default='56'). */
|
|
char *pingsize_orig;
|
|
/**< @brief Number of ping data bytes original value given at command line. */
|
|
const char *pingsize_help;
|
|
/**< @brief Number of ping data bytes help description. */
|
|
int pingcount_arg;
|
|
/**< @brief Number of ping req to send (default='0'). */
|
|
char *pingcount_orig;
|
|
/**< @brief Number of ping req to send original value given at command line. */
|
|
const char *pingcount_help;
|
|
/**< @brief Number of ping req to send help description. */
|
|
int pingquiet_flag;
|
|
/**< @brief Do not print ping packet info (default=off). */
|
|
const char *pingquiet_help;
|
|
/**< @brief Do not print ping packet info help description. */
|
|
int no_tx_gpdu_seq_flag;
|
|
/**< @brief Don't transmit G-PDU sequence nums (default=off). */
|
|
const char *no_tx_gpdu_seq_help;
|
|
/**< @brief Don't transmit G-PDU sequence nums help description. */
|
|
char *pdp_type_arg;
|
|
/**< @brief PDP Type (default='v4'). */
|
|
char *pdp_type_orig;
|
|
/**< @brief PDP Type original value given at command line. */
|
|
const char *pdp_type_help;
|
|
/**< @brief PDP Type help description. */
|
|
|
|
unsigned int help_given;
|
|
/**< @brief Whether help was given. */
|
|
unsigned int version_given;
|
|
/**< @brief Whether version was given. */
|
|
unsigned int debug_given;
|
|
/**< @brief Whether debug was given. */
|
|
unsigned int conf_given;
|
|
/**< @brief Whether conf was given. */
|
|
unsigned int pidfile_given;
|
|
/**< @brief Whether pidfile was given. */
|
|
unsigned int statedir_given;
|
|
/**< @brief Whether statedir was given. */
|
|
unsigned int dns_given;
|
|
/**< @brief Whether dns was given. */
|
|
unsigned int listen_given;
|
|
/**< @brief Whether listen was given. */
|
|
unsigned int remote_given;
|
|
/**< @brief Whether remote was given. */
|
|
unsigned int contexts_given;
|
|
/**< @brief Whether contexts was given. */
|
|
unsigned int timelimit_given;
|
|
/**< @brief Whether timelimit was given. */
|
|
unsigned int gtpversion_given;
|
|
/**< @brief Whether gtpversion was given. */
|
|
unsigned int apn_given;
|
|
/**< @brief Whether apn was given. */
|
|
unsigned int selmode_given;
|
|
/**< @brief Whether selmode was given. */
|
|
unsigned int rattype_given;
|
|
/**< @brief Whether rattype was given. */
|
|
unsigned int userloc_given;
|
|
/**< @brief Whether userloc was given. */
|
|
unsigned int rai_given;
|
|
/**< @brief Whether rai was given. */
|
|
unsigned int mstz_given;
|
|
/**< @brief Whether mstz was given. */
|
|
unsigned int imeisv_given;
|
|
/**< @brief Whether imeisv was given. */
|
|
unsigned int norecovery_given;
|
|
/**< @brief Whether norecovery was given. */
|
|
unsigned int imsi_given;
|
|
/**< @brief Whether imsi was given. */
|
|
unsigned int nsapi_given;
|
|
/**< @brief Whether nsapi was given. */
|
|
unsigned int msisdn_given;
|
|
/**< @brief Whether msisdn was given. */
|
|
unsigned int qos_given;
|
|
/**< @brief Whether qos was given. */
|
|
unsigned int qose1_given;
|
|
/**< @brief Whether qose1 was given. */
|
|
unsigned int qose2_given;
|
|
/**< @brief Whether qose2 was given. */
|
|
unsigned int qose3_given;
|
|
/**< @brief Whether qose3 was given. */
|
|
unsigned int qose4_given;
|
|
/**< @brief Whether qose4 was given. */
|
|
unsigned int charging_given;
|
|
/**< @brief Whether charging was given. */
|
|
unsigned int uid_given;
|
|
/**< @brief Whether uid was given. */
|
|
unsigned int pwd_given;
|
|
/**< @brief Whether pwd was given. */
|
|
unsigned int createif_given;
|
|
/**< @brief Whether createif was given. */
|
|
unsigned int net_given;
|
|
/**< @brief Whether net was given. */
|
|
unsigned int defaultroute_given;
|
|
/**< @brief Whether defaultroute was given. */
|
|
unsigned int ipup_given;
|
|
/**< @brief Whether ipup was given. */
|
|
unsigned int ipdown_given;
|
|
/**< @brief Whether ipdown was given. */
|
|
unsigned int tun_device_given;
|
|
/**< @brief Whether tun-device was given. */
|
|
unsigned int netns_given;
|
|
/**< @brief Whether netns was given. */
|
|
unsigned int pinghost_given;
|
|
/**< @brief Whether pinghost was given. */
|
|
unsigned int pingrate_given;
|
|
/**< @brief Whether pingrate was given. */
|
|
unsigned int pingsize_given;
|
|
/**< @brief Whether pingsize was given. */
|
|
unsigned int pingcount_given;
|
|
/**< @brief Whether pingcount was given. */
|
|
unsigned int pingquiet_given;
|
|
/**< @brief Whether pingquiet was given. */
|
|
unsigned int no_tx_gpdu_seq_given;
|
|
/**< @brief Whether no-tx-gpdu-seq was given. */
|
|
unsigned int pdp_type_given;
|
|
/**< @brief Whether pdp-type was given. */
|
|
|
|
int createif_mode_counter;
|
|
/**< @brief Counter for mode createif */
|
|
int pinghost_mode_counter;
|
|
/**< @brief Counter for mode pinghost */
|
|
};
|
|
|
|
/** @brief The additional parameters to pass to parser functions */
|
|
struct cmdline_parser_params {
|
|
int override;
|
|
/**< @brief whether to override possibly already present options (default 0) */
|
|
int initialize;
|
|
/**< @brief whether to initialize the option structure gengetopt_args_info (default 1) */
|
|
int check_required;
|
|
/**< @brief whether to check that all required options were provided (default 1) */
|
|
int check_ambiguity;
|
|
/**< @brief whether to check for options already specified in the option structure gengetopt_args_info (default 0) */
|
|
int print_errors;
|
|
/**< @brief whether getopt_long should print an error message for a bad option (default 1) */
|
|
};
|
|
|
|
/** @brief the purpose string of the program */
|
|
extern const char *gengetopt_args_info_purpose;
|
|
/** @brief the usage string of the program */
|
|
extern const char *gengetopt_args_info_usage;
|
|
/** @brief the description string of the program */
|
|
extern const char *gengetopt_args_info_description;
|
|
/** @brief all the lines making the help output */
|
|
extern const char *gengetopt_args_info_help[];
|
|
|
|
/**
|
|
* The command line parser
|
|
* @param argc the number of command line options
|
|
* @param argv the command line options
|
|
* @param args_info the structure where option information will be stored
|
|
* @return 0 if everything went fine, NON 0 if an error took place
|
|
*/
|
|
int cmdline_parser(int argc, char **argv,
|
|
struct gengetopt_args_info *args_info);
|
|
|
|
/**
|
|
* The command line parser (version with additional parameters - deprecated)
|
|
* @param argc the number of command line options
|
|
* @param argv the command line options
|
|
* @param args_info the structure where option information will be stored
|
|
* @param override whether to override possibly already present options
|
|
* @param initialize whether to initialize the option structure my_args_info
|
|
* @param check_required whether to check that all required options were provided
|
|
* @return 0 if everything went fine, NON 0 if an error took place
|
|
* @deprecated use cmdline_parser_ext() instead
|
|
*/
|
|
int cmdline_parser2(int argc, char **argv,
|
|
struct gengetopt_args_info *args_info,
|
|
int override, int initialize, int check_required);
|
|
|
|
/**
|
|
* The command line parser (version with additional parameters)
|
|
* @param argc the number of command line options
|
|
* @param argv the command line options
|
|
* @param args_info the structure where option information will be stored
|
|
* @param params additional parameters for the parser
|
|
* @return 0 if everything went fine, NON 0 if an error took place
|
|
*/
|
|
int cmdline_parser_ext(int argc, char **argv,
|
|
struct gengetopt_args_info *args_info,
|
|
struct cmdline_parser_params *params);
|
|
|
|
/**
|
|
* Save the contents of the option struct into an already open FILE stream.
|
|
* @param outfile the stream where to dump options
|
|
* @param args_info the option struct to dump
|
|
* @return 0 if everything went fine, NON 0 if an error took place
|
|
*/
|
|
int cmdline_parser_dump(FILE * outfile,
|
|
struct gengetopt_args_info *args_info);
|
|
|
|
/**
|
|
* Save the contents of the option struct into a (text) file.
|
|
* This file can be read by the config file parser (if generated by gengetopt)
|
|
* @param filename the file where to save
|
|
* @param args_info the option struct to save
|
|
* @return 0 if everything went fine, NON 0 if an error took place
|
|
*/
|
|
int cmdline_parser_file_save(const char *filename,
|
|
struct gengetopt_args_info *args_info);
|
|
|
|
/**
|
|
* Print the help
|
|
*/
|
|
void cmdline_parser_print_help(void);
|
|
/**
|
|
* Print the version
|
|
*/
|
|
void cmdline_parser_print_version(void);
|
|
|
|
/**
|
|
* Initializes all the fields a cmdline_parser_params structure
|
|
* to their default values
|
|
* @param params the structure to initialize
|
|
*/
|
|
void cmdline_parser_params_init(struct cmdline_parser_params *params);
|
|
|
|
/**
|
|
* Initializes the passed gengetopt_args_info structure's fields
|
|
* (also set default values for options that have a default)
|
|
* @param args_info the structure to initialize
|
|
*/
|
|
void cmdline_parser_init(struct gengetopt_args_info *args_info);
|
|
/**
|
|
* Deallocates the string fields of the gengetopt_args_info structure
|
|
* (but does not deallocate the structure itself)
|
|
* @param args_info the structure to deallocate
|
|
*/
|
|
void cmdline_parser_free(struct gengetopt_args_info *args_info);
|
|
|
|
/**
|
|
* The config file parser (deprecated version)
|
|
* @param filename the name of the config file
|
|
* @param args_info the structure where option information will be stored
|
|
* @param override whether to override possibly already present options
|
|
* @param initialize whether to initialize the option structure my_args_info
|
|
* @param check_required whether to check that all required options were provided
|
|
* @return 0 if everything went fine, NON 0 if an error took place
|
|
* @deprecated use cmdline_parser_config_file() instead
|
|
*/
|
|
int cmdline_parser_configfile(const char *filename,
|
|
struct gengetopt_args_info *args_info,
|
|
int override, int initialize,
|
|
int check_required);
|
|
|
|
/**
|
|
* The config file parser
|
|
* @param filename the name of the config file
|
|
* @param args_info the structure where option information will be stored
|
|
* @param params additional parameters for the parser
|
|
* @return 0 if everything went fine, NON 0 if an error took place
|
|
*/
|
|
int cmdline_parser_config_file(const char *filename,
|
|
struct gengetopt_args_info *args_info,
|
|
struct cmdline_parser_params *params);
|
|
|
|
/**
|
|
* Checks that all the required options were specified
|
|
* @param args_info the structure to check
|
|
* @param prog_name the name of the program that will be used to print
|
|
* possible errors
|
|
* @return
|
|
*/
|
|
int cmdline_parser_required(struct gengetopt_args_info *args_info,
|
|
const char *prog_name);
|
|
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif /* __cplusplus */
|
|
#endif /* CMDLINE_H */
|