From 71052cb69c455f8182e8f85ba8d4ea4be7e5caf0 Mon Sep 17 00:00:00 2001 From: Peter Stephenson Date: Thu, 21 Jun 2012 08:50:14 +0000 Subject: Danek (plus .distfiles): 30520: updated Solaris 11 copmletion --- Completion/Solaris/Command/_dladm | 512 +++++++++++++++++++++++++++++--------- 1 file changed, 399 insertions(+), 113 deletions(-) (limited to 'Completion/Solaris/Command/_dladm') diff --git a/Completion/Solaris/Command/_dladm b/Completion/Solaris/Command/_dladm index 3c1595b52..636b766bc 100644 --- a/Completion/Solaris/Command/_dladm +++ b/Completion/Solaris/Command/_dladm @@ -1,4 +1,5 @@ #compdef dladm +# Synced with the S11U1 build 16 man page _dladm_links() { compadd "$@" - $(dladm show-link -p -o link) @@ -36,11 +37,6 @@ _dladm_ethers() { compadd "$@" - $(dladm show-ether -p -o link) } -_dladm_linkprops() { - # TODO: complete property values, when available - compadd "$@" - $(dladm show-linkprop -c -o property) -} - _dladm_vnics() { compadd "$@" - $(dladm show-vnic -p -o link) } @@ -49,21 +45,43 @@ _dladm_etherstubs() { compadd "$@" - $(dladm show-etherstub) } +_dladm_bridges() { + compadd "$@" - $(dladm show-bridge -p -o bridge) +} + +_dladm_iptuns() { + compadd "$@" - $(dladm show-iptun -p -o link) +} + +_dladm_parts() { + compadd "$@" - $(dladm show-part -p -o link) +} + +_dladm_iblinks() { + compadd "$@" - $(dladm show-ib -p -o link) +} + _dladm() { local context state line expl typeset -A opt_args - local -a subcmds rw_properties rw_propnames ro_properties - local -a link_properties link_stats_properties + local -a subcmds + local -a linkprops linkprops_general linkprops_nonvlanvnic linkprops_wifi + local -a linkprops_ether linkprops_ib linkprops_iptun + local -a link_properties link_stats_properties vnic_properties local -a aggr_properties aggr_lacp_properties aggr_ext_properties local -a vlan_properties wifi_properties wifi_connect_properties local -a ether_properties linkprop_properties secobj_properties + local -a bridge_properties bridge_stats_properties bridge_link_properties + local -a bridge_link_stats_properties bridge_fwd_properties + local -a bridge_fwd_properties bridge_trill_properties + local -a iptun_properties tunnel_values part_properties ib_properties # TODO: some subcommands can take multiple comma-separated targets # TODO: some option sets may be different based on other commandline flags # TODO: some subcommands may take different arguments based on options subcmds=( - "show-ether" "show-usage" + "show-ether" "show-ib" "show-usage" {"rename","show"}"-link" {"add","create","delete","modify","remove","show"}"-aggr" {"connect","disconnect","scan","show"}"-wifi" @@ -73,11 +91,14 @@ _dladm() { {"delete","show"}"-phys" {"create","delete","show"}"-vnic" {"create","delete","show"}"-etherstub" + {"create","modify","delete","add","remove","show"}"-bridge" + {"create","modify","delete","show"}"-iptun" + {"create","delete","show"}"-part" ) if [[ $service == "dladm" ]]; then _arguments -C -A "-*" \ - '-\?[help]' \ + '-\?[Help]' \ '*::command:->subcmd' && return 0 if (( CURRENT == 1 )); then @@ -88,7 +109,7 @@ _dladm() { curcontext="${curcontext%:*}=$service:" fi - link_properties=( "link" "class" "mtu" "state" "over" ) + link_properties=( "link" "zone" "class" "mtu" "state" "over" ) link_stats_properties=( "link" "ipackets" "rbytes" "ierrors" "opackets" "obytes" "oerrors" ) aggr_properties=( "link" "policy" "addrpolicy" "lacpactivity" "lacptimer" "flags" ) @@ -108,34 +129,144 @@ _dladm() { vnic_properties=( "link" "over" "speed" "macaddr" "macaddrtype" ) + bridge_properties=( "bridge" "address" "priority" "bmaxage" "bhellotime" "bfwddelay" + "forceproto" "tctime" "tccount" "tchange" "desroot" "rootcost" "rootport" + "maxage" "hellotime" "fwddelay" "holdtime" ) + bridge_stats_properties=( "bridge" "drops" "forwards" "mbcast" "recv" "sent" "unknown" ) + bridge_link_properties=( "link" "index" "state" "uptime" "opercost" "operp2p" "operedge" + "desroot" "descost" "desbridge" "desport" "tcack" ) + bridge_link_stats_properties=( "link" "cfgbpdu" "tcnbpdu" "rstpbpdu" "txbpdu" "drops" "recv" "xmit" ) + bridge_fwd_properties=( "dest" "age" "flags" "output" ) + bridge_trill_properties=( "nick" "flags" "link" "nexthop" ) + + iptun_properties=( "link" "type" "flags" "local" "remote" ) + tunnel_values=( "local:address/host: " "remote:address/host: " ) + + part_properties=( "link" "pkey" "over" "state" "flags" ) + + ib_properties=( "link" "hcaguid" "portguid" "port" "state" "pkeys" ) + + linkprops_general=( + "autopush:streams modules:" + "cpus:processors:" + "cpus-effective" + "mac-address:MAC address:" + "maxbw:bandwith:" + "pool:pools:" + "pool-effective" + "priority:priority:(high medium low)" + "rxringsavail" + "rxrings:value:" + "rxhwclntavail" + "txringsavail" + "txrings:value:" + "txhwclntavail" + "forward:value:(0 1)" + "stp_priority:value:" + "stp_cost:value:" + "stp_edge:value:(0 1)" + "stp_p2p:value:(true false auto)" + "stp_mcheck:value:(0 1)" + "protection:value:(mac-nospoof ip-nospoof dhcp-nospoof restricted)" + "vsi-mgrid:IPv6 address:" + "vsi-mgrid-effective" + "vsi-mgrid-enc:encoding:(oracle_v1 none)" + "vsi-mgrid-enc-effective" + "vsi-typeid:value:" + "vsi-typeid-effective" + "vsi-vers:value:" + "vsi-vers-effective" + "zone:value:_zones" + ) + linkprops_nonvlanvnic=( + "default_tag:value:" + "learn_decay:value:" + "learn_limit:value:" + "rxfanout:value:" + "rxfanout-effective:value:" + "stp:value:(0 1)" + ) + linkprops_wifi=( + "channel:value:" + "powermode:value:(off max fast)" + "radio:value:(on off)" + "speed:value:" + ) + linkprops_ether=( + "duplex" + "state" + "adv_autoneg_cap" + "adv_10gfdx_cap" + "adv_1000fdx_cap" + "adv_1000hdx_cap" + "adv_100fdx_cap" + "adv_100hdx_cap" + "adv_10fdx_cap" + "adv_10hdx_cap" + "en_10gfdx_cap:value:(0 1)" + "en_1000fdx_cap:value:(0 1)" + "en_1000hdx_cap:value:(0 1)" + "en_100fdx_cap:value:(0 1)" + "en_100hdx_cap:value:(0 1)" + "en_10fdx_cap:value:(0 1)" + "en_10hdx_cap:value:(0 1)" + "flowctrl:value:(auto no rx tx pfc bi)" + "flowctrl-effective" + "gvrp-timeout:value:" + "mtu:value:" + "ntcs" + "pfcmap:value:" + "speed" + "tagmode:value:(normal vlanonly)" + "vlan-announce:value:(off gvrp)" + ) + linkprops_ib=( + "linkmode:value:(cm ud)" + ) + linkprops_iptun=( + "hoplimit:value:" + "encaplimit:value:" + ) + linkprops=( + $linkprops_general $linkprops_wifi $linkprops_ether + $linkprops_ib $linkprops_iptun + ) + case $service in ("show-link") _arguments -A "-*" \ - '(-P --persistent)'{-P,--persistent}'[display persistent link configuration]' \ - '(-p --parseable)'{-p,--parseable}'[parseable output]' \ + '(-P --persistent)'{-P,--persistent}'[Display persistent link configuration]' \ + '(-p --parseable)'{-p,--parseable}'[Parseable output]' \ + '-Z[Display ZONE column in output]' \ + '-z[zone]:zonename:_values -s , "zone" $(zoneadm list)' \ - set1 \ - '(-o --output)'{-o,--output}'[properties to display]:property:_values -s , "property" $link_properties' \ + '(-o --output)'{-o,--output}'[Properties to display]:property:_values -s , "property" $link_properties' \ - set2 \ - '(-s --statistics)'{-s,--statistics}'[display link statistics]' \ - '(-i --interval)'{-i,--interval}'[specify an interval]:interval:' \ - '(-o --output)'{-o,--output}'[properties to display]:property:_values -s , "property" $link_stats_properties' \ - ':link name:_dladm_links' \ + '(-s --statistics)'{-s,--statistics}'[Display link statistics]' \ + '(-i --interval)'{-i,--interval}'[Specify an interval]:interval:' \ + '(-o --output)'{-o,--output}'[Properties to display]:property:_values -s , "property" $link_stats_properties' \ + ':link name:_dladm_links' ;; ("rename-link") _arguments -A "-*" \ - '-R[root directory]:directory:_path_files -/' \ + '-R[Root directory]:directory:_path_files -/' \ ':old link name:_dladm_links' \ - ':new link name:' \ + ':new link name:' ;; ("show-phys") _arguments -A "-*" \ - '(-P --persistent)'{-P,--persistent}'[display persistent link configuration]' \ - '(-p --parseable)'{-p,--parseable}'[parseable output]' \ - '(-s --statistics)'{-s,--statistics}'[display link statistics]' \ - '(-i --interval)'{-i,--interval}'[specify an interval]:interval:' \ - '(-o --output)'{-o,--output}'[properties to display]:property:_values -s , "property" link media state speed duplex device' \ + '-H[Show hardware resource usage]' \ + '-L[Display location information]' \ + '(-P --persistent)'{-P,--persistent}'[Display persistent link configuration]' \ + '(-p --parseable)'{-p,--parseable}'[Parseable output]' \ + '-m[Display MAC address information]' \ + '-Z[Display ZONE column in output]' \ + '-z[zone]:zonename:_values -s , "zone" $(zoneadm list)' \ + '(-s --statistics)'{-s,--statistics}'[Display link statistics]' \ + '(-i --interval)'{-i,--interval}'[Specify an interval]:interval:' \ + '(-o --output)'{-o,--output}'[Properties to display]:property:_values -s , "property" link media state speed duplex device' \ ':physical link name:_dladm_devs' ;; @@ -146,97 +277,101 @@ _dladm() { ("create-aggr") _arguments -A "-*" \ - '(-t --temporary)'{-t,--temporary}'[aggregation should be temporary]' \ - '(-R --root)'{-R,--root}'[root directory]:directory:_path_files -/' \ - '(-l --link)'{-l,--link}'[component link]:link:_dladm_links' \ - '(-P --policy)'{-P,--policy}'[port selection policy]:policy:_values -s , "policy" L2 L3 L4' \ + '(-t --temporary)'{-t,--temporary}'[Aggregation should be temporary]' \ + '(-R --root)'{-R,--root}'[Root directory]:directory:_path_files -/' \ + '(-l --link)'{-l,--link}'[Component link]:link:_dladm_links' \ + '(-P --policy)'{-P,--policy}'[Port selection policy]:policy:_values -s , "policy" L2 L3 L4' \ '(-L --lacp-mode)'{-L,--lacp-mode}'[LACP mode]:lacp mode:(off active passive)' \ '(-T --lacp-timer)'{-T,--lacp-timer}'[LACP timer]:lacp timer:(short long)' \ - '(-u --unicast)'{-u,--unicast}'[unicast address]:unicast address:' \ + '(-u --unicast)'{-u,--unicast}'[Unicast address]:unicast address:' \ ':aggregate link name:' ;; ("modify-aggr") _arguments -A "-*" \ - '(-t --temporary)'{-t,--temporary}'[aggregation should be temporary]' \ - '(-R --root)'{-R,--root}'[root directory]:directory:_path_files -/' \ - '(-l --link)'{-l,--link}'[component link]:link:_dladm_links' \ - '(-P --policy)'{-P,--policy}'[port selection policy]:policy:_values -s , "policy" L2 L3 L4' \ + '(-t --temporary)'{-t,--temporary}'[Aggregation should be temporary]' \ + '(-R --root)'{-R,--root}'[Root directory]:directory:_path_files -/' \ + '(-l --link)'{-l,--link}'[Component link]:link:_dladm_links' \ + '(-P --policy)'{-P,--policy}'[Port selection policy]:policy:_values -s , "policy" L2 L3 L4' \ '(-L --lacp-mode)'{-L,--lacp-mode}'[LACP mode]:lacp mode:(off active passive)' \ '(-T --lacp-timer)'{-T,--lacp-timer}'[LACP timer]:lacp timer:(short long)' \ - '(-u --unicast)'{-u,--unicast}'[unicast address]:unicast address:' \ + '(-u --unicast)'{-u,--unicast}'[Unicast address]:unicast address:' \ ':aggregate link name:_dladm_aggrs' ;; ("delete-aggr") _arguments -A "-*" \ - '(-t --temporary)'{-t,--temporary}'[deletion should be temporary]' \ - '(-R --root)'{-R,--root}'[root directory]:directory:_path_files -/' \ + '(-t --temporary)'{-t,--temporary}'[Deletion should be temporary]' \ + '(-R --root)'{-R,--root}'[Root directory]:directory:_path_files -/' \ ':aggregate link name:_dladm_aggrs' ;; ("add-aggr") _arguments -A "-*" \ - '(-t --temporary)'{-t,--temporary}'[aggregation should be temporary]' \ - '(-R --root)'{-R,--root}'[root directory]:directory:_path_files -/' \ - '(-l --link)'{-l,--link}'[component link]:link:_dladm_links' \ + '(-t --temporary)'{-t,--temporary}'[Aggregation should be temporary]' \ + '(-R --root)'{-R,--root}'[Root directory]:directory:_path_files -/' \ + '(-l --link)'{-l,--link}'[Component link]:link:_dladm_links' \ ':aggregate link name:_dladm_aggrs' ;; ("remove-aggr") _arguments -A "-*" \ - '(-t --temporary)'{-t,--temporary}'[aggregation should be temporary]' \ - '(-R --root)'{-R,--root}'[root directory]:directory:_path_files -/' \ - '(-l --link)'{-l,--link}'[component link]:link:_dladm_aggr_ports' \ + '(-t --temporary)'{-t,--temporary}'[Aggregation should be temporary]' \ + '(-R --root)'{-R,--root}'[Root directory]:directory:_path_files -/' \ + '(-l --link)'{-l,--link}'[Component link]:link:_dladm_aggr_ports' \ ':aggregate link name:_dladm_aggrs' ;; ("show-aggr") _arguments -A "-*" \ - '(-P --persistent)'{-P,--persistent}'[display persistent link configuration]' \ - '(-p --parseable)'{-p,--parseable}'[parseable output]' \ - '(-s --statistics)'{-s,--statistics}'[display link statistics]' \ - '(-i --interval)'{-i,--interval}'[specify an interval]:interval:' \ + '(-P --persistent)'{-P,--persistent}'[Display persistent link configuration]' \ + '(-p --parseable)'{-p,--parseable}'[Parseable output]' \ + '(-s --statistics)'{-s,--statistics}'[Display link statistics]' \ + '(-i --interval)'{-i,--interval}'[Specify an interval]:interval:' \ + '-Z[Display ZONE column in output]' \ + '-z[zone]:zonename:_values -s , "zone" $(zoneadm list)' \ ':aggregate link name:_dladm_links' \ - set1 \ - '(-o --output)'{-o,--output}'[properties to display]:property:_values -s , "property" $aggr_properties' \ + '(-o --output)'{-o,--output}'[Properties to display]:property:_values -s , "property" $aggr_properties' \ - lacp \ '(-L --lacp)'{-L,--lacp}'[LACP information]' \ - '(-o --output)'{-o,--output}'[properties to display]:property:_values -s , "property" $aggr_lacp_properties' \ + '(-o --output)'{-o,--output}'[Properties to display]:property:_values -s , "property" $aggr_lacp_properties' \ - extended \ - '(-x --extended)'{-x,--extended}'[extended information]' \ - '(-o --output)'{-o,--output}'[properties to display]:property:_values -s , "property" $aggr_ext_properties' \ + '(-x --extended)'{-x,--extended}'[Extended information]' \ + '(-o --output)'{-o,--output}'[Properties to display]:property:_values -s , "property" $aggr_ext_properties' ;; ("create-vlan") _arguments -A "-*" \ '(-t --temporary)'{-t,--temporary}'[VLAN should be temporary]' \ - '(-f --force)'{-f,--force}'[force VLAN creation]' \ - '(-R --root)'{-R,--root}'[root directory]:directory:_path_files -/' \ - '(-l --link)'{-l,--link}'[component link]:link:_dladm_links' \ + '(-f --force)'{-f,--force}'[Force VLAN creation]' \ + '(-R --root)'{-R,--root}'[Root directory]:directory:_path_files -/' \ + '(-l --link)'{-l,--link}'[Component link]:link:_dladm_links' \ '-v[VLAN ID]:id:' \ ':VLAN link name:' ;; ("delete-vlan") _arguments -A "-*" \ - '(-t --temporary)'{-t,--temporary}'[deletion should be temporary]' \ - '(-R --root)'{-R,--root}'[root directory]:directory:_path_files -/' \ + '(-t --temporary)'{-t,--temporary}'[Deletion should be temporary]' \ + '(-R --root)'{-R,--root}'[Root directory]:directory:_path_files -/' \ ':VLAN link name:_dladm_vlans' ;; ("show-vlan") _arguments -A "-*" \ - '(-P --persistent)'{-P,--persistent}'[display persistent link configuration]' \ - '(-p --parseable)'{-p,--parseable}'[parseable output]' \ - '(-o --output)'{-o,--output}'[properties to display]:property:_values -s , "property" $vlan_properties' \ + '(-P --persistent)'{-P,--persistent}'[Display persistent link configuration]' \ + '(-p --parseable)'{-p,--parseable}'[Parseable output]' \ + '(-o --output)'{-o,--output}'[Properties to display]:property:_values -s , "property" $vlan_properties' \ + '-Z[Display ZONE column in output]' \ + '-z[zone]:zonename:_values -s , "zone" $(zoneadm list)' \ ':VLAN link name:_dladm_vlans' ;; ("scan-wifi") _arguments -A "-*" \ - '(-p --parseable)'{-p,--parseable}'[parseable output]' \ - '(-o --output)'{-o,--output}'[properties to display]:property:_values -s , "property" $wifi_connect_properties' \ + '(-p --parseable)'{-p,--parseable}'[Parseable output]' \ + '(-o --output)'{-o,--output}'[Properties to display]:property:_values -s , "property" $wifi_connect_properties' \ ':wireless link name:_dladm_wifi_links' ;; @@ -244,146 +379,297 @@ _dladm() { _arguments -A "-*" \ '(-e --essid)'{-e,--essid}'[ESSID name]:network:_dladm_wifi_nets' \ '(-b --bsstype)'{-b,--bsstype}'[BSS type]:' \ - '(-m --mode)'{-m,--mode}'[802.11 mode]:mode:(a b g)' \ - '(-k --key)'{-k,--key}'[key name]:key:_dladm_secobjs' \ - '(-s --sec)'{-s,--sec}'[security mode]:(none wep wpa)' \ - '(-a --auth)'{-a,--auth}'[authentication mode]:mode:(open shared)' \ - '(-c --create-ibss)'{-c,--create-ibss}'[create an ad-hoc network]' \ - '(-T --timeout)'{-T,--timeout}'[association timeout]:(forever)' \ + '(-m --mode)'{-m,--mode}'[802.11 mode]:802.11 mode:(a b g n)' \ + '(-k --key)'{-k,--key}'[Key name]:key:_dladm_secobjs' \ + '(-s --sec)'{-s,--sec}'[Security mode]:security mode:(none wep wpa)' \ + '(-a --auth)'{-a,--auth}'[Authentication mode]:authentication mode:(open shared)' \ + '(-c --create-ibss)'{-c,--create-ibss}'[Create an ad-hoc network]' \ + '(-T --timeout)'{-T,--timeout}'[Association timeout]:association timeout:(forever)' \ ':wireless link name:_dladm_wifi_links' ;; ("disconnect-wifi") _arguments -A "-*" \ - set1 \ - '(-a --all-links)'{-a,--all-links}'[all links]' \ + '(-a --all-links)'{-a,--all-links}'[All links]' \ - set2 \ ':wireless link name:_dladm_wifi_links' ;; ("show-wifi") _arguments -A "-*" \ - '(-p --parseable)'{-p,--parseable}'[parseable output]' \ - '(-o --output)'{-o,--output}'[properties to display]:property:_values -s , "property" $wifi_properties' \ + '(-p --parseable)'{-p,--parseable}'[Parseable output]' \ + '(-o --output)'{-o,--output}'[Properties to display]:property:_values -s , "property" $wifi_properties' \ + '-Z[Display ZONE column in output]' \ + '-z[zone]:zonename:_values -s , "zone" $(zoneadm list)' \ ':wireless link name:_dladm_wifi_links' ;; ("show-ether") _arguments -A "-*" \ - '(-p --parseable)'{-p,--parseable}'[parseable output]' \ - '(-x --extended)'{-x,--extended}'[extended output]' \ - '(-o --output)'{-o,--output}'[properties to display]:property:_values -s , "property" $ether_properties' \ + '(-p --parseable)'{-p,--parseable}'[Parseable output]' \ + '(-x --extended)'{-x,--extended}'[Extended output]' \ + '(-o --output)'{-o,--output}'[Properties to display]:property:_values -s , "property" $ether_properties' \ + '-P[protocol]:protocol:(ecp vdp)' \ + '-Z[Display ZONE column in output]' \ + '-z[zone]:zonename:_values -s , "zone" $(zoneadm list)' \ ':ethernet link name:_dladm_ethers' ;; ("set-linkprop") _arguments -A "-*" \ - '(-t --temporary)'{-t,--temporary}'[change should be temporary]' \ - '(-R --root)'{-R,--root}'[root directory]:directory:_path_files -/' \ - '(-p --prop)'{-p,--prop}'[properties]:property:_dladm_linkprops' \ + '(-t --temporary)'{-t,--temporary}'[Change should be temporary]' \ + '(-R --root)'{-R,--root}'[Root directory]:directory:_path_files -/' \ + '(-p --prop)'{-p,--prop}'[Properties]:property:_values -s , "property" ${(M)linkprops\:#*\:*}' \ ':link name:_dladm_links' ;; ("reset-linkprop") _arguments -A "-*" \ - '(-t --temporary)'{-t,--temporary}'[change should be temporary]' \ - '(-R --root)'{-R,--root}'[root directory]:directory:_path_files -/' \ - '(-p --prop)'{-p,--prop}'[properties]:property:_dladm_linkprops' \ + '(-t --temporary)'{-t,--temporary}'[Change should be temporary]' \ + '(-R --root)'{-R,--root}'[Root directory]:directory:_path_files -/' \ + '(-p --prop)'{-p,--prop}'[Properties]:property:_values -s , "property" ${${(M)linkprops\:#*\:*}%%\:*}' \ ':link name:_dladm_links' ;; ("show-linkprop") _arguments -A "-*" \ - '(-P --persistent)'{-P,--persistent}'[display persistent link properties]' \ - '(-c --parseable)'{-c,--parseable}'[parseable output]' \ - '(-o --output)'{-o,--output}'[properties to display]:property:_values -s , "property" $linkprop_properties' \ - '(-p --prop)'{-p,--prop}'[properties]:property:_dladm_linkprops' \ + '(-P --persistent)'{-P,--persistent}'[Display persistent link properties]' \ + '(-c --parseable)'{-c,--parseable}'[Parseable output]' \ + '(-o --output)'{-o,--output}'[Properties to display]:property:_values -s , "property" $linkprop_properties' \ + '(-p --prop)'{-p,--prop}'[Properties]:property:_values -s , "property" ${linkprops%%\:*}' \ + '-Z[Display ZONE column in output]' \ + '-z[zone]:zonename:_values -s , "zone" $(zoneadm list)' \ ':link name:_dladm_links' ;; ("create-secobj") _arguments -A "-*" \ - '(-t --temporary)'{-t,--temporary}'[creation should be temporary]' \ - '(-R --root)'{-R,--root}'[root directory]:directory:_path_files -/' \ - '(-c --class)'{-c,--class}'[class]:class:(wep wpa)' \ - '(-f --file)'{-f,--file}'[file containing object value]:file:_path_files' \ + '(-t --temporary)'{-t,--temporary}'[Creation should be temporary]' \ + '(-R --root)'{-R,--root}'[Root directory]:directory:_path_files -/' \ + '(-c --class)'{-c,--class}'[Class]:class:(wep wpa)' \ + '(-f --file)'{-f,--file}'[File containing object value]:file:_path_files' \ ':object name:' ;; ("delete-secobj") _arguments -A "-*" \ - '(-t --temporary)'{-t,--temporary}'[deletion should be temporary]' \ - '(-R --root)'{-R,--root}'[root directory]:directory:_path_files -/' \ + '(-t --temporary)'{-t,--temporary}'[Deletion should be temporary]' \ + '(-R --root)'{-R,--root}'[Root directory]:directory:_path_files -/' \ ':object name:_dladm_secobjs' ;; ("show-secobj") _arguments -A "-*" \ - '(-P --persistent)'{-P,--persistent}'[display persistent object information]' \ - '(-p --parseable)'{-p,--parseable}'[parseable output]' \ - '(-o --output)'{-o,--output}'[properties to display]:property:_values -s , "property" $secobj_properties' \ + '(-P --persistent)'{-P,--persistent}'[Display persistent object information]' \ + '(-p --parseable)'{-p,--parseable}'[Parseable output]' \ + '(-o --output)'{-o,--output}'[Properties to display]:property:_values -s , "property" $secobj_properties' \ ':object name:_dladm_secobjs' ;; ("create-vnic") # TODO: MAC address completion could be richer _arguments -A "-*" \ - '(-t --temporary)'{-t,--temporary}'[creation should be temporary]' \ - '(-R --root)'{-R,--root}'[root directory]:directory:_path_files -/' \ - '(-l --link)'{-l,--link}'[component link]:link:_dladm_links' \ - '(-m --mac-address)'{-m,--mac-address}'[MAC address]:address:(factory random auto)' \ + '(-t --temporary)'{-t,--temporary}'[Creation should be temporary]' \ + '(-R --root)'{-R,--root}'[Root directory]:directory:_path_files -/' \ + '(-l --link)'{-l,--link}'[Component link]:link:_dladm_links' \ + '(-m --mac-address)'{-m,--mac-address}'[MAC address]:address:(factory random auto vrrp)' \ '-v[VLAN ID]:id:' \ - '(-p --prop)'{-p,--prop}'[property values]:value:' \ + '(-p --prop)'{-p,--prop}'[Property values]:value:_values -s , "property" ${(M)linkprops_general\:#*\:*}' \ ':VNIC name:' ;; ("delete-vnic") _arguments -A "-*" \ - '(-t --temporary)'{-t,--temporary}'[deletion should be temporary]' \ - '(-R --root)'{-R,--root}'[root directory]:directory:_path_files -/' \ + '(-t --temporary)'{-t,--temporary}'[Deletion should be temporary]' \ + '(-R --root)'{-R,--root}'[Root directory]:directory:_path_files -/' \ ':VNIC name:_dladm_vnics' ;; ("show-vnic") _arguments -A "-*" \ - '(-P --persistent)'{-P,--persistent}'[display persistent object information]' \ - '(-p --parseable)'{-p,--parseable}'[parseable output]' \ - '(-o --output)'{-o,--output}'[properties to display]:property:_values -s , "property" $vnic_properties' \ - '(-l --link)'{-l,--link}'[limit to VNICs on link]:link:_dladm_links' \ - '(-s --statistics)'{-s,--statistics}'[display VNIC statistics]' \ - '(-i --interval)'{-i,--interval}'[specify an interval]:interval:' \ + '(-P --persistent)'{-P,--persistent}'[Display persistent object information]' \ + '(-p --parseable)'{-p,--parseable}'[Parseable output]' \ + '(-o --output)'{-o,--output}'[Properties to display]:property:_values -s , "property" $vnic_properties' \ + '(-l --link)'{-l,--link}'[Limit to VNICs on link]:link:_dladm_links' \ + '(-s --statistics)'{-s,--statistics}'[Display VNIC statistics]' \ + '(-i --interval)'{-i,--interval}'[Specify an interval]:interval:' \ + '-Z[Display ZONE column in output]' \ + '-z[zone]:zonename:_values -s , "zone" $(zoneadm list)' \ ':VNIC name:_dladm_vnics' ;; ("create-etherstub") _arguments -A "-*" \ - '(-t --temporary)'{-t,--temporary}'[creation should be temporary]' \ - '(-R --root)'{-R,--root}'[root directory]:directory:_path_files -/' \ + '(-t --temporary)'{-t,--temporary}'[Creation should be temporary]' \ + '(-R --root)'{-R,--root}'[Root directory]:directory:_path_files -/' \ ':etherstub name:' ;; ("delete-etherstub") _arguments -A "-*" \ - '(-t --temporary)'{-t,--temporary}'[deletion should be temporary]' \ - '(-R --root)'{-R,--root}'[root directory]:directory:_path_files -/' \ + '(-t --temporary)'{-t,--temporary}'[Deletion should be temporary]' \ + '(-R --root)'{-R,--root}'[Root directory]:directory:_path_files -/' \ ':etherstub name:_dladm_etherstubs' ;; ("show-etherstub") _arguments -A "-*" \ + '-Z[Display ZONE column in output]' \ + '-z[zone]:zonename:_values -s , "zone" $(zoneadm list)' \ ':etherstub name:_dladm_etherstubs' ;; ("show-usage") _arguments -A "-*" \ - '(-f --file)'{-f,--file}'[read records from file]:_path_files' \ - '(-F --format)'{-f,--format}'[plotfile format]:(gnuplot)' \ - '(-p --plot)'{-p,--plot}'[write plot to file]:' \ - '(-e --start)'{-e,--start}'[start time]:date/time (MM/DD/YYYY,hh\:mm\:ss)' \ - '(-s --stop)'{-s,--stop}'[stop time]:date/time (MM/DD/YYYY,hh\:mm\:ss)' \ + '(-f --file)'{-f,--file}'[Read records from file]:file:_path_files' \ + '(-F --format)'{-F,--format}'[Plotfile format]:plotfile format:(gnuplot)' \ + '(-p --plot)'{-p,--plot}'[Write plot to file]:' \ + '(-e --start)'{-e,--start}'[Start time]:date/time (MM/DD/YYYY,hh\:mm\:ss)' \ + '(-s --stop)'{-s,--stop}'[Stop time]:date/time (MM/DD/YYYY,hh\:mm\:ss)' \ ':link name:_dladm_links' ;; + ("create-bridge") + _arguments -A "-*" \ + '(-P --protect)'{-P,--protect}'[Specify a protection method]:protection method:(stp trill)' \ + '(-R --root)'{-R,--root}'[Root directory]:directory:_path_files -/' \ + '(-p --priority)'{-p,--priority}'[Specify the bridge priority]:value' \ + '(-m --max-age)'{-m,--max-age}'[Specify the max age for config info]:value' \ + '(-h --hello-time)'{-h,--hello-time}'[Specify the hello time]:value' \ + '(-d --forward-delay)'{-d,--forward-delay}'[Specify the forward delay]:value' \ + '(-f --force-protocol)'{-f,--force-protocol}'[Specify forced maximum supported protocol]:value' \ + '*'{-l,--link}'[Specify link to add]:link:_dladm_links' \ + ':bridge name:' + ;; + + + ("modify-bridge") + _arguments -A "-*" \ + '(-P --protect)'{-P,--protect}'[Specify a protection method]:protection method:(stp trill)' \ + '(-R --root)'{-R,--root}'[Root directory]:directory:_path_files -/' \ + '(-p --priority)'{-p,--priority}'[Specify the bridge priority]:value' \ + '(-m --max-age)'{-m,--max-age}'[Specify the max age for config info]:value' \ + '(-h --hello-time)'{-h,--hello-time}'[Specify the hello time]:value' \ + '(-d --forward-delay)'{-d,--forward-delay}'[Specify the forward delay]:value' \ + '(-f --force-protocol)'{-f,--force-protocol}'[Specify forced maximum supported protocol]:value' \ + ':bridge name:_dladm_bridges' + ;; + + + ("delete-bridge") + _arguments -A "-*" \ + '(-R --root)'{-R,--root}'[Root directory]:directory:_path_files -/' \ + ':bridge name:_dladm_bridges' + ;; + + + ("add-bridge"|"remove-bridge") + _arguments -A "-*" \ + '(-R --root)'{-R,--root}'[Root directory]:directory:_path_files -/' \ + '*'{-l,--link}'[Specify link to add]:link:_dladm_links' \ + ':bridge name:_dladm_bridges' + ;; + + + ("show-bridge") + # XXX $bridge_stats_properties get added into -o completions for set1 + # XXX $bridge_link_stats_properties get added into -o completions for set3 + _arguments -A "-*" \ + '(-p --parseable)'{-p,--parseable}'[Parseable output]' \ + - set1 \ + '(-o --output)'{-o,--output}'[Properties to display]:property:_values -s , "property" $bridge_properties' \ + - set2 \ + '(-s --statistics)'{-s,--statistics}'[Display statistics]' \ + '(-i --interval)'{-i,--interval}'[Specify an interval]:seconds' \ + '(-o --output)'{-o,--output}'[Properties to display]:property:_values -s , "property" $bridge_stats_properties' \ + - set3 \ + '(-l --link)'{-l,--link}'[Display link status or statistics]' \ + '(-o --output)'{-o,--output}'[Properties to display]:property:_values -s , "property" $bridge_link_properties' \ + - set4 \ + '(-s --statistics)'{-s,--statistics}'[Display statistics]' \ + '(-l --link)'{-l,--link}'[Display link status or statistics]' \ + '(-i --interval)'{-i,--interval}'[Specify an interval]:seconds' \ + '(-o --output)'{-o,--output}'[Properties to display]:property:_values -s , "property" $bridge_link_stats_properties' \ + - set5 \ + '(-f --forwarding)'{-f,--forwarding}'[Display forwarding entries]' \ + '(-o --output)'{-o,--output}'[Properties to display]:property:_values -s , "property" $bridge_fwd_properties' \ + - set6 \ + '(-t --trill)'{-t,--trill}'[Display TRILL nickname entries]' \ + '(-o --output)'{-o,--output}'[Properties to display]:property:_values -s , "property" $bridge_trill_properties' \ + ':bridge name:_dladm_bridges' + ;; + + + ("create-iptun") + _arguments -A "-*" \ + '(-t --temporary)'{-t,--temporary}'[Temporary tunnel]' \ + '(-R --root)'{-R,--root}'[Root directory]:directory:_path_files -/' \ + '(-T --type)'{-T,--type}'[Tunnel type]:tunnel type:(ipv4 ipv6 6to4)' \ + '(-a --address)'{-a,--address}'[Endpoint addresses]:address/host:_values -s , "address/host" $tunnel_values' \ + ':tunnel name:' + ;; + + ("modify-iptun") + _arguments -A "-*" \ + '(-t --temporary)'{-t,--temporary}'[Temporary modification]' \ + '(-R --root)'{-R,--root}'[Root directory]:directory:_path_files -/' \ + '(-a --address)'{-a,--address}'[Endpoint addresses]:address/host:_values -s , "address/host" $tunnel_values' \ + ':tunnel name:_dladm_iptuns' + ;; + + ("delete-iptun") + _arguments -A "-*" \ + '(-t --temporary)'{-t,--temporary}'[Temporary deletion]' \ + '(-R --root)'{-R,--root}'[Root directory]:directory:_path_files -/' \ + ':tunnel name:_dladm_iptuns' + ;; + + ("show-iptun") + _arguments -A "-*" \ + '(-P --persistent)'{-P,--persistent}'[Display persistent tunnel configuration]' \ + '(-p --parseable)'{-p,--parseable}'[Parseable output]' \ + '(-o --output)'{-o,--output}'[Properties to display]:property:_values -s , "property" $iptun_properties' \ + '-Z[Display ZONE column in output]' \ + '-z[zone]:zonename:_values -s , "zone" $(zoneadm list)' \ + ':tunnel name:_dladm_iptuns' + ;; + + ("create-part") + _arguments -A "-*" \ + '(-t --temporary)'{-t,--temporary}'[Temporary partition]' \ + '(-R --root)'{-R,--root}'[Root directory]:directory:_path_files -/' \ + '(-f --force)'{-f,--force}'[Force partition creation]' \ + '(-l --link)'{-l,--link}'[IP-over-IB physical link name]:IB link:_dladm_iblinks' \ + '(-p --prop)'{-p,--prop}'[Set link properties]:link property:_values -s , "property" ${(M)linkprops_nonvlanvnic\:#*\:*} ${(M)linkprops_general\:#*\:*}' \ + '(-P --pkey)'{-P,--pkey}'[Set parition key]:hex number:' \ + ':partition link name:' + ;; + + ("delete-part") + _arguments -A "-*" \ + '(-t --temporary)'{-t,--temporary}'[Temporary deletion]' \ + '(-R --root)'{-R,--root}'[Root directory]:directory:_path_files -/' \ + ':link name:_dladm_parts' + ;; + + ("show-part") + _arguments -A "-*" \ + '(-P --persistent)'{-P,--persistent}'[Display persistent partition configuration]' \ + '(-p --parseable)'{-p,--parseable}'[Parseable output]' \ + '(-l --link)'{-l,--link}'[Information for this link]:link name:_dladm_iblinks' \ + '(-o --output)'{-o,--output}'[Properties to display]:property:_values -s , "property" $part_properties' \ + ':partition link name:_dladm_parts' + ;; + + ("show-ib") + _arguments -A "-*" \ + '(-P --persistent)'{-P,--persistent}'[Display persistent partition configuration]' \ + '(-p --parseable)'{-p,--parseable}'[Parseable output]' \ + '(-o --output)'{-o,--output}'[Properties to display]:property:_values -s , "property" $ib_properties' \ + ':IB link name:_dladm_iblinks' + ;; + (*) _message "unknown dladm subcommand: $service" ;; -- cgit 1.4.1