|
|
@@ -0,0 +1,54 @@
|
|
|
+--- a/src/br2684/br2684ctl.c
|
|
|
++++ b/src/br2684/br2684ctl.c
|
|
|
+@@ -1,3 +1,4 @@
|
|
|
++#define _GNU_SOURCE
|
|
|
+ #include <stdio.h>
|
|
|
+ #include <stdlib.h>
|
|
|
+ #include <unistd.h>
|
|
|
+@@ -43,6 +44,7 @@ struct br2684_params {
|
|
|
+
|
|
|
+
|
|
|
+ int lastsock, lastitf;
|
|
|
++static char *up_script;
|
|
|
+
|
|
|
+
|
|
|
+ void fatal(const char *str, int err)
|
|
|
+@@ -185,6 +187,8 @@ int assign_vcc(char *astr, int encap, in
|
|
|
+
|
|
|
+ void start_interface(struct br2684_params* params)
|
|
|
+ {
|
|
|
++ char *cmd;
|
|
|
++
|
|
|
+ if (params->astr==NULL) {
|
|
|
+ syslog(LOG_ERR, "Required ATM parameters not specified.");
|
|
|
+ exit(1);
|
|
|
+@@ -193,13 +197,18 @@ void start_interface(struct br2684_param
|
|
|
+ create_br(params->itfnum, params->payload);
|
|
|
+ assign_vcc(params->astr, params->encap, params->payload, params->sndbuf,
|
|
|
+ params->reqqos);
|
|
|
++ if (up_script) {
|
|
|
++ asprintf(&cmd, "%s nas%d", up_script, lastitf);
|
|
|
++ system(cmd);
|
|
|
++ free(cmd);
|
|
|
++ }
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ void usage(char *s)
|
|
|
+ {
|
|
|
+ printf("usage: %s [-b] [[-c number] [-e 0|1] [-s sndbuf] [-q qos] [-p 0|1] "
|
|
|
+- "[-a [itf.]vpi.vci]*]*\n", s);
|
|
|
++ "[-a [itf.]vpi.vci]*]* [-S script]\n", s);
|
|
|
+ printf(" encapsulations: 0=llc, 1=vcmux\n payloads: 0=routed, 1=bridged\n");
|
|
|
+ exit(1);
|
|
|
+ }
|
|
|
+@@ -258,6 +267,9 @@ int main (int argc, char **argv)
|
|
|
+ params.sndbuf=8192;
|
|
|
+ }
|
|
|
+ break;
|
|
|
++ case 'S':
|
|
|
++ up_script = optarg;
|
|
|
++ break;
|
|
|
+ case 'p': /* payload type: routed (0) or bridged (1) */
|
|
|
+ #ifdef BR2684_FLAG_ROUTED
|
|
|
+ params.payload = atoi(optarg);
|