Charging option
diff --git a/sgsnemu/cmdline.c b/sgsnemu/cmdline.c
index be47cc1..fa7ad7f 100644
--- a/sgsnemu/cmdline.c
+++ b/sgsnemu/cmdline.c
@@ -1,7 +1,7 @@
 /*
   File autogenerated by gengetopt version 2.8
   generated with the following command:
-  gengetopt --conf-parser 
+  /mnt/hda5/bin/gengetopt --conf-parser 
 
   The developers of gengetopt consider the fixed text that goes in all
   gengetopt output files to be in the public domain:
@@ -56,9 +56,10 @@
   printf("              --gtpversion=INT   GTP version to use (default='1')\n");
   printf("   -aSTRING   --apn=STRING       Access point name (default='internet')\n");
   printf("   -iSTRING   --imsi=STRING      IMSI (default='240010123456789')\n");
-  printf("              --nsapi=INT        NSAPI (default='1')\n");
+  printf("              --nsapi=INT        NSAPI (default='0')\n");
   printf("   -mSTRING   --msisdn=STRING    Mobile Station ISDN number (default='46702123456')\n");
   printf("   -qINT      --qos=INT          Requested quality of service (default='0x0b921f')\n");
+  printf("              --charging=INT     Charging characteristics (default='0x0800')\n");
   printf("   -uSTRING   --uid=STRING       Login user ID (default='mig')\n");
   printf("   -pSTRING   --pwd=STRING       Login password (default='hemmelig')\n");
   printf("              --createif         Create local network interface (default=off)\n");
@@ -111,6 +112,7 @@
   args_info->nsapi_given = 0 ;
   args_info->msisdn_given = 0 ;
   args_info->qos_given = 0 ;
+  args_info->charging_given = 0 ;
   args_info->uid_given = 0 ;
   args_info->pwd_given = 0 ;
   args_info->createif_given = 0 ;
@@ -136,9 +138,10 @@
   args_info->gtpversion_arg = 1 ;\
   args_info->apn_arg = strdup("internet") ;\
   args_info->imsi_arg = strdup("240010123456789") ;\
-  args_info->nsapi_arg = 1 ;\
+  args_info->nsapi_arg = 0 ;\
   args_info->msisdn_arg = strdup("46702123456") ;\
   args_info->qos_arg = 0x0b921f ;\
+  args_info->charging_arg = 0x0800 ;\
   args_info->uid_arg = strdup("mig") ;\
   args_info->pwd_arg = strdup("hemmelig") ;\
   args_info->createif_flag = 0;\
@@ -182,6 +185,7 @@
         { "nsapi",	1, NULL, 0 },
         { "msisdn",	1, NULL, 'm' },
         { "qos",	1, NULL, 'q' },
+        { "charging",	1, NULL, 0 },
         { "uid",	1, NULL, 'u' },
         { "pwd",	1, NULL, 'p' },
         { "createif",	0, NULL, 0 },
@@ -427,6 +431,19 @@
             args_info->nsapi_arg = strtol (optarg,&stop_char,0);
             break;
           }
+          /* Charging characteristics.  */
+          else if (strcmp (long_options[option_index].name, "charging") == 0)
+          {
+            if (args_info->charging_given)
+              {
+                fprintf (stderr, "%s: `--charging' option given more than once\n", PACKAGE);
+                clear_args ();
+                exit (EXIT_FAILURE);
+              }
+            args_info->charging_given = 1;
+            args_info->charging_arg = strtol (optarg,&stop_char,0);
+            break;
+          }
           /* Create local network interface.  */
           else if (strcmp (long_options[option_index].name, "createif") == 0)
           {
@@ -850,6 +867,22 @@
                 }
               continue;
             }
+          if (!strcmp(fopt, "charging"))
+            {
+              if (override || !args_info->charging_given)
+                {
+                  args_info->charging_given = 1;
+                  if (fnum == 2)
+                    args_info->charging_arg = strtol (farg,&stop_char,0);
+                  else
+                    {
+                      fprintf (stderr, "%s:%d: required <option_name> <option_val>\n",
+                               filename, line_num);
+                      exit (EXIT_FAILURE);
+                    }
+                }
+              continue;
+            }
           if (!strcmp(fopt, "uid"))
             {
               if (override || !args_info->uid_given)