summaryrefslogtreecommitdiff
path: root/usr/src/cmd
diff options
context:
space:
mode:
authorRobert Mustacchi <rm@joyent.com>2015-04-09 22:58:13 +0000
committerRobert Mustacchi <rm@joyent.com>2015-04-15 22:38:00 +0000
commitcacad459d9f965c72c230297b502a4dacfc196a3 (patch)
tree239a62d77366c08bd1da1efaab2187ab2d62b7a6 /usr/src/cmd
parent111e3e8e70d0358526a5bc114eeb6d3b089e0d3b (diff)
downloadillumos-joyent-cacad459d9f965c72c230297b502a4dacfc196a3.tar.gz
OS-3958 want documentation for overlay devices
OS-4182 need dladm create-overlay -t OS-4174 long options for dladm *-overlay OS-4179 want search plugin in overlay property list OS-4181 Clean up duplicate VXLAN_MAGIC definition
Diffstat (limited to 'usr/src/cmd')
-rw-r--r--usr/src/cmd/dladm/dladm.c53
1 files changed, 42 insertions, 11 deletions
diff --git a/usr/src/cmd/dladm/dladm.c b/usr/src/cmd/dladm/dladm.c
index b847a3ba58..8e4f61fae0 100644
--- a/usr/src/cmd/dladm/dladm.c
+++ b/usr/src/cmd/dladm/dladm.c
@@ -413,16 +413,16 @@ static cmd_t cmds[] = {
" show-bridge -t [-p] [-o <field>,...] [-s [-i <interval>]]"
" <bridge>\n" },
{ "create-overlay", do_create_overlay,
- " create-overlay -e <encap> -s <search> -v <vnetid>\n"
- "\t\t [ -p <prop>=<value>[,...]] <overlay-name>" },
+ " create-overlay [-t] -e <encap> -s <search> -v <vnetid>\n"
+ "\t\t [ -p <prop>=<value>[,...]] <overlay>" },
{ "delete-overlay", do_delete_overlay,
- " delete-overlay <overlay-name>" },
+ " delete-overlay <overlay>" },
{ "modify-overlay", do_modify_overlay,
- " modify-overlay [-d mac] [-f] [-s mac=ip:port] "
- "<overlay-name>" },
+ " modify-overlay -d mac | -f | -s mac=ip:port "
+ "<overlay>" },
{ "show-overlay", do_show_overlay,
- " show-overlay [-f | -t] [-p] [-o <field>,...]"
- "<overlay> \n" },
+ " show-overlay [-f | -t] [[-p] -o <field>,...] "
+ "[<overlay>]\n" },
{ "show-usage", do_show_usage,
" show-usage [-a] [-d | -F <format>] "
"[-s <DD/MM/YYYY,HH:MM:SS>]\n"
@@ -1451,6 +1451,31 @@ static ofmt_field_t bridge_trill_fields[] = {
offsetof(bridge_trill_fields_buf_t, bridget_nexthop), print_default_cb },
{ NULL, 0, 0, NULL}};
+static const struct option overlay_create_lopts[] = {
+ { "encap", required_argument, NULL, 'e' },
+ { "prop", required_argument, NULL, 'p' },
+ { "search", required_argument, NULL, 's' },
+ { "temporary", no_argument, NULL, 't' },
+ { "vnetid", required_argument, NULL, 'v' },
+ { NULL, 0, NULL, 0 }
+};
+
+static const struct option overlay_modify_lopts[] = {
+ { "delete-entry", required_argument, NULL, 'd' },
+ { "flush-table", no_argument, NULL, 'f' },
+ { "set-entry", required_argument, NULL, 's' },
+ { NULL, 0, NULL, 0 }
+};
+
+static const struct option overlay_show_lopts[] = {
+ { "fma", no_argument, NULL, 'f' },
+ { "target", no_argument, NULL, 't' },
+ { "parsable", no_argument, NULL, 'p' },
+ { "parseable", no_argument, NULL, 'p' },
+ { "output", required_argument, NULL, 'o' },
+ { NULL, 0, NULL, 0 }
+};
+
/*
* Structures for dladm show-overlay
*/
@@ -9891,14 +9916,15 @@ do_create_overlay(int argc, char *argv[], const char *use)
char *encap = NULL, *endp, *search = NULL;
char name[MAXLINKNAMELEN];
dladm_status_t status;
- uint32_t flags = DLADM_OPT_ACTIVE | DLADM_OPT_TRANSIENT;
+ uint32_t flags = DLADM_OPT_ACTIVE | DLADM_OPT_PERSIST;
uint64_t vid;
boolean_t havevid = B_FALSE;
char propstr[DLADM_STRSIZE];
dladm_arg_list_t *proplist = NULL;
bzero(propstr, sizeof (propstr));
- while ((opt = getopt(argc, argv, ":e:v:p:s:")) != -1) {
+ while ((opt = getopt_long(argc, argv, ":te:v:p:s:",
+ overlay_create_lopts, NULL)) != -1) {
switch (opt) {
case 'e':
encap = optarg;
@@ -9906,6 +9932,9 @@ do_create_overlay(int argc, char *argv[], const char *use)
case 's':
search = optarg;
break;
+ case 't':
+ flags &= ~DLADM_OPT_PERSIST;
+ break;
case 'p':
(void) strlcat(propstr, optarg, DLADM_STRSIZE);
if (strlcat(propstr, ",", DLADM_STRSIZE) >=
@@ -10412,7 +10441,8 @@ do_show_overlay(int argc, char *argv[], const char *use)
fieldsp = overlay_fields;
parse = B_FALSE;
ofmtflags = OFMT_WRAP;
- while ((opt = getopt(argc, argv, ":o:pft")) != -1) {
+ while ((opt = getopt_long(argc, argv, ":o:pft", overlay_show_lopts,
+ NULL)) != -1) {
switch (opt) {
case 'f':
funcp = show_one_overlay_fma;
@@ -10474,7 +10504,8 @@ do_modify_overlay(int argc, char *argv[], const char *use)
dladm_status_t status;
flush = set = delete = B_FALSE;
- while ((opt = getopt(argc, argv, ":fd:s:")) != -1) {
+ while ((opt = getopt_long(argc, argv, ":fd:s:", overlay_modify_lopts,
+ NULL)) != -1) {
switch (opt) {
case 'd':
if (delete == B_TRUE)