bridge: Allow to easy change network namespace
Added new '-netns' option to simplify executing following cmd:
ip netns exec NETNS bridge OPTIONS COMMAND OBJECT
to
bridge -n[etns] NETNS OPTIONS COMMAND OBJECT
e.g.:
bridge -net vnet0 fdb
Signed-off-by: Vadim Kochan <vadim4j@gmail.com>
Signed-off-by: Jiri Pirko <jiri@resnulli.us>
This commit is contained in:
parent
52700d40a2
commit
527910c801
|
|
@ -2,6 +2,10 @@ BROBJ = bridge.o fdb.o monitor.o link.o mdb.o vlan.o
|
||||||
|
|
||||||
include ../Config
|
include ../Config
|
||||||
|
|
||||||
|
ifeq ($(IP_CONFIG_SETNS),y)
|
||||||
|
CFLAGS += -DHAVE_SETNS
|
||||||
|
endif
|
||||||
|
|
||||||
all: bridge
|
all: bridge
|
||||||
|
|
||||||
bridge: $(BROBJ) $(LIBNETLINK)
|
bridge: $(BROBJ) $(LIBNETLINK)
|
||||||
|
|
|
||||||
|
|
@ -13,6 +13,7 @@
|
||||||
#include "SNAPSHOT.h"
|
#include "SNAPSHOT.h"
|
||||||
#include "utils.h"
|
#include "utils.h"
|
||||||
#include "br_common.h"
|
#include "br_common.h"
|
||||||
|
#include "namespace.h"
|
||||||
|
|
||||||
struct rtnl_handle rth = { .fd = -1 };
|
struct rtnl_handle rth = { .fd = -1 };
|
||||||
int preferred_family = AF_UNSPEC;
|
int preferred_family = AF_UNSPEC;
|
||||||
|
|
@ -31,7 +32,7 @@ static void usage(void)
|
||||||
"Usage: bridge [ OPTIONS ] OBJECT { COMMAND | help }\n"
|
"Usage: bridge [ OPTIONS ] OBJECT { COMMAND | help }\n"
|
||||||
"where OBJECT := { link | fdb | mdb | vlan | monitor }\n"
|
"where OBJECT := { link | fdb | mdb | vlan | monitor }\n"
|
||||||
" OPTIONS := { -V[ersion] | -s[tatistics] | -d[etails] |\n"
|
" OPTIONS := { -V[ersion] | -s[tatistics] | -d[etails] |\n"
|
||||||
" -o[neline] | -t[imestamp] \n");
|
" -o[neline] | -t[imestamp] | -n[etns] name }\n");
|
||||||
exit(-1);
|
exit(-1);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -112,6 +113,10 @@ main(int argc, char **argv)
|
||||||
preferred_family = AF_INET;
|
preferred_family = AF_INET;
|
||||||
} else if (strcmp(opt, "-6") == 0) {
|
} else if (strcmp(opt, "-6") == 0) {
|
||||||
preferred_family = AF_INET6;
|
preferred_family = AF_INET6;
|
||||||
|
} else if (matches(opt, "-netns") == 0) {
|
||||||
|
NEXT_ARG();
|
||||||
|
if (netns_switch(argv[1]))
|
||||||
|
exit(-1);
|
||||||
} else {
|
} else {
|
||||||
fprintf(stderr, "Option \"%s\" is unknown, try \"bridge help\".\n", opt);
|
fprintf(stderr, "Option \"%s\" is unknown, try \"bridge help\".\n", opt);
|
||||||
exit(-1);
|
exit(-1);
|
||||||
|
|
|
||||||
|
|
@ -19,7 +19,8 @@ bridge \- show / manipulate bridge addresses and devices
|
||||||
.ti -8
|
.ti -8
|
||||||
.IR OPTIONS " := { "
|
.IR OPTIONS " := { "
|
||||||
\fB\-V\fR[\fIersion\fR] |
|
\fB\-V\fR[\fIersion\fR] |
|
||||||
\fB\-s\fR[\fItatistics\fR] }
|
\fB\-s\fR[\fItatistics\fR] |
|
||||||
|
\fB\-n\fR[\fIetns\fR] name }
|
||||||
|
|
||||||
.ti -8
|
.ti -8
|
||||||
.BR "bridge link set"
|
.BR "bridge link set"
|
||||||
|
|
@ -112,6 +113,26 @@ output more information. If this option
|
||||||
is given multiple times, the amount of information increases.
|
is given multiple times, the amount of information increases.
|
||||||
As a rule, the information is statistics or some time values.
|
As a rule, the information is statistics or some time values.
|
||||||
|
|
||||||
|
.TP
|
||||||
|
.BR "\-n" , " \-net" , " \-netns " <NETNS>
|
||||||
|
switches
|
||||||
|
.B bridge
|
||||||
|
to the specified network namespace
|
||||||
|
.IR NETNS .
|
||||||
|
Actually it just simplifies executing of:
|
||||||
|
|
||||||
|
.B ip netns exec
|
||||||
|
.IR NETNS
|
||||||
|
.B bridge
|
||||||
|
.RI "[ " OPTIONS " ] " OBJECT " { " COMMAND " | "
|
||||||
|
.BR help " }"
|
||||||
|
|
||||||
|
to
|
||||||
|
|
||||||
|
.B bridge
|
||||||
|
.RI "-n[etns] " NETNS " [ " OPTIONS " ] " OBJECT " { " COMMAND " | "
|
||||||
|
.BR help " }"
|
||||||
|
|
||||||
|
|
||||||
.SH BRIDGE - COMMAND SYNTAX
|
.SH BRIDGE - COMMAND SYNTAX
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue