|
@@ -0,0 +1,74 @@
|
|
|
+--- a/src/br2684/br2684ctl.c
|
|
|
++++ b/src/br2684/br2684ctl.c
|
|
|
+@@ -45,6 +45,7 @@ struct br2684_params {
|
|
|
+
|
|
|
+ int lastsock, lastitf;
|
|
|
+ static char *up_script;
|
|
|
++const char *itfname = "nas";
|
|
|
+
|
|
|
+
|
|
|
+ void fatal(const char *str, int err)
|
|
|
+@@ -73,7 +74,7 @@ int create_pidfile(int num)
|
|
|
+
|
|
|
+ if (num < 0) return -1;
|
|
|
+
|
|
|
+- snprintf(name, 32, "/var/run/br2684ctl-nas%d.pid", num);
|
|
|
++ snprintf(name, 32, "/var/run/br2684ctl-%s%d.pid", itfname, num);
|
|
|
+ pidfile = fopen(name, "w");
|
|
|
+ if (pidfile == NULL) return -1;
|
|
|
+ fprintf(pidfile, "%d", getpid());
|
|
|
+@@ -102,7 +103,7 @@ int create_br(int itfnum, int payload)
|
|
|
+ ni.media |= BR2684_FLAG_ROUTED;
|
|
|
+ #endif
|
|
|
+ ni.mtu = 1500;
|
|
|
+- sprintf(ni.ifname, "nas%d", itfnum);
|
|
|
++ sprintf(ni.ifname, "%s%d", itfname, itfnum);
|
|
|
+ err=ioctl (lastsock, ATM_NEWBACKENDIF, &ni);
|
|
|
+
|
|
|
+ if (err == 0)
|
|
|
+@@ -167,7 +168,7 @@ int assign_vcc(char *astr, int encap, in
|
|
|
+
|
|
|
+ be.backend_num = ATM_BACKEND_BR2684;
|
|
|
+ be.ifspec.method = BR2684_FIND_BYIFNAME;
|
|
|
+- sprintf(be.ifspec.spec.ifname, "nas%d", lastitf);
|
|
|
++ sprintf(be.ifspec.spec.ifname, "%s%d", itfname, lastitf);
|
|
|
+ be.fcs_in = BR2684_FCSIN_NO;
|
|
|
+ be.fcs_out = BR2684_FCSOUT_NO;
|
|
|
+ be.fcs_auto = 0;
|
|
|
+@@ -198,7 +199,7 @@ void start_interface(struct br2684_param
|
|
|
+ assign_vcc(params->astr, params->encap, params->payload, params->sndbuf,
|
|
|
+ params->reqqos);
|
|
|
+ if (up_script) {
|
|
|
+- asprintf(&cmd, "%s nas%d", up_script, lastitf);
|
|
|
++ asprintf(&cmd, "%s %s%d", up_script, itfname, lastitf);
|
|
|
+ system(cmd);
|
|
|
+ free(cmd);
|
|
|
+ }
|
|
|
+@@ -207,7 +208,7 @@ void start_interface(struct br2684_param
|
|
|
+
|
|
|
+ void usage(char *s)
|
|
|
+ {
|
|
|
+- printf("usage: %s [-b] [[-c number] [-e 0|1] [-s sndbuf] [-q qos] [-p 0|1] "
|
|
|
++ printf("usage: %s [-b] [-n name] [[-c number] [-e 0|1] [-s sndbuf] [-q qos] [-p 0|1] "
|
|
|
+ "[-a [itf.]vpi.vci]*]* [-S script]\n", s);
|
|
|
+ printf(" encapsulations: 0=llc, 1=vcmux\n payloads: 0=routed, 1=bridged\n");
|
|
|
+ exit(1);
|
|
|
+@@ -234,7 +235,7 @@ int main (int argc, char **argv)
|
|
|
+
|
|
|
+ openlog (LOG_NAME,LOG_OPTION,LOG_FACILITY);
|
|
|
+ if (argc>1)
|
|
|
+- while ((c = getopt(argc, argv,"q:a:bc:e:s:S:p:?h")) !=EOF)
|
|
|
++ while ((c = getopt(argc, argv,"q:a:bn:c:e:s:S:p:?h")) !=EOF)
|
|
|
+ switch (c) {
|
|
|
+ case 'q':
|
|
|
+ printf ("optarg : %s",optarg);
|
|
|
+@@ -247,6 +248,9 @@ int main (int argc, char **argv)
|
|
|
+ case 'b':
|
|
|
+ background=1;
|
|
|
+ break;
|
|
|
++ case 'n':
|
|
|
++ itfname = optarg;
|
|
|
++ break;
|
|
|
+ case 'c':
|
|
|
+ /* temporary, to make it work with multiple interfaces: */
|
|
|
+ if (params.itfnum>=0) start_interface(¶ms);
|