diff options
| author | Robert Mustacchi <rm@joyent.com> | 2015-04-09 22:58:13 +0000 |
|---|---|---|
| committer | Robert Mustacchi <rm@joyent.com> | 2015-04-15 22:38:00 +0000 |
| commit | cacad459d9f965c72c230297b502a4dacfc196a3 (patch) | |
| tree | 239a62d77366c08bd1da1efaab2187ab2d62b7a6 /usr/src/cmd | |
| parent | 111e3e8e70d0358526a5bc114eeb6d3b089e0d3b (diff) | |
| download | illumos-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.c | 53 |
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) |
