linkprop.c revision 0b8f054691a3974b7c86dd2700ecbf6108a2d55e
2N/A * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
2N/A * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
2N/A#include <libdevinfo.h>
2N/A#include <libdllink.h>
2N/A#include <libdladm_impl.h>
2N/A#include <libdlwlan_impl.h>
2N/A#include <libdlwlan.h>
2N/A#include <libdlvlan.h>
2N/A#include <libdlvnic.h>
2N/A#include <libdladm.h>
2N/A#include <libdlstat.h>
2N/A#include <inttypes.h>
2N/Atypedef struct link_attr_s {
2N/A sizeof (resource_prop_t))
2N/A datalink_id_t, const char *, void *));
2N/Astatic dladm_status_t
2N/Astatic dladm_status_t
2N/A return (DLADM_STATUS_BADARG);
2N/A return (DLADM_STATUS_BADARG);
2N/A return (DLADM_STATUS_TEMPONLY);
2N/A return (DLADM_STATUS_OK);
2N/A return (DLADM_STATUS_PROPRDONLY);
2N/A return (DLADM_STATUS_NOMEM);
2N/A return (DLADM_STATUS_NOTSUP);
2N/A return (DLADM_STATUS_NOMEM);
2N/A sizeof (val_desc_t));
2N/Astatic dladm_status_t
2N/A for (i = 0; i < DLADM_MAX_PROPS; i++) {
2N/A if (s != DLADM_STATUS_OK &&
2N/A s != DLADM_STATUS_NOTSUP)
2N/A return (DLADM_STATUS_BADARG);
2N/A return (DLADM_STATUS_BADARG);
2N/A for (i = 0; i < DLADM_MAX_PROPS; i++) {
2N/A return (DLADM_STATUS_BADARG);
2N/A for (i = 0; i < DLADM_MAX_PROPS; i++)
2N/A if (i == DLADM_MAX_PROPS) {
2N/A return (DLADM_STATUS_NOTFOUND);
2N/A return (DLADM_STATUS_BADARG);
2N/A return (DLADM_STATUS_BADARG);
2N/A case DLADM_PROP_VAL_CURRENT:
2N/A case DLADM_PROP_VAL_PERM:
2N/A case DLADM_PROP_VAL_DEFAULT:
2N/A return (DLADM_STATUS_TEMPONLY);
2N/A return (DLADM_WALK_CONTINUE);
2N/A sizeof (char *) * DLADM_MAX_PROP_VALCNT +
2N/A i * DLADM_PROP_VAL_MAX;
2N/A return (DLADM_WALK_CONTINUE);
NULL, 0);
return (DLADM_WALK_TERMINATE);
return (DLADM_WALK_CONTINUE);
} else if (any_media ||
0) == DLADM_STATUS_OK) &&
return (DLADM_STATUS_OK);
static dladm_status_t
char *cp;
if (flags != 0)
return (DLADM_STATUS_NOTSUP);
return (status);
return (DLADM_STATUS_OK);
void *dlhandle;
void *sym;
int ret;
return (ret);
static dladm_status_t
int ret;
goto cleanup;
if (add)
if (ret != 0) {
goto cleanup;
if (prof)
return (status);
static dladm_status_t
char *cp;
return (DLADM_STATUS_BADVALCNT);
return (status);
return (status);
return (status);
goto rollback1;
B_FALSE);
goto rollback2;
goto rollback2;
return (DLADM_STATUS_OK);
return (status);
static dladm_status_t
char *zone_name;
return (DLADM_STATUS_BADVALCNT);
return (DLADM_STATUS_NOMEM);
goto done;
goto done;
goto done;
sizeof (flags)) < 0) {
goto done;
goto done;
return (DLADM_STATUS_OK);
done:
return (status);
static dladm_status_t
return (status);
return (DLADM_STATUS_OK);
static dladm_status_t
return (DLADM_STATUS_BADVALCNT);
return (DLADM_STATUS_NOMEM);
return (status);
return (DLADM_STATUS_MINMAXBW);
return (DLADM_STATUS_OK);
return (DLADM_STATUS_OK);
static dladm_status_t
return (status);
return (DLADM_STATUS_TOOSMALL);
if (ncpus == 0) {
return (DLADM_STATUS_OK);
for (i = 0; i < ncpus; i++) {
return (DLADM_STATUS_OK);
static dladm_status_t
return (status);
case MAC_PROP_MAXBW:
case MAC_PROP_PRIO:
return (DLADM_STATUS_BADARG);
case MAC_PROP_MAXBW:
sizeof (uint64_t));
case MAC_PROP_PRIO:
sizeof (mac_priority_level_t));
return (DLADM_STATUS_BADARG);
return (status);
static dladm_status_t
return (status);
return (status);
return (status);
static dladm_status_t
int i, j, rc;
return (DLADM_STATUS_NOMEM);
for (i = 0; i < val_cnt; i++) {
errno = 0;
return (DLADM_STATUS_CPUMAX);
return (DLADM_STATUS_CPUERR);
return (DLADM_STATUS_CPUNOTONLINE);
for (i = 0; i < val_cnt; i++) {
for (j = 0; j < val_cnt; j++) {
return (DLADM_STATUS_BADARG);
return (DLADM_STATUS_OK);
return (DLADM_STATUS_OK);
static dladm_status_t
return (status);
return (DLADM_STATUS_OK);
static dladm_status_t
return (DLADM_STATUS_BADVALCNT);
return (DLADM_STATUS_NOMEM);
return (status);
return (DLADM_STATUS_BADVAL);
return (DLADM_STATUS_OK);
sizeof (mac_priority_level_t));
return (DLADM_STATUS_OK);
static dladm_status_t
int i, len;
return (DLADM_STATUS_NOTDEFINED);
return (DLADM_STATUS_OK);
done:
return (DLADM_STATUS_OK);
return (DLADM_STATUS_BADVAL);
return (DLADM_STATUS_BADVAL);
return (DLADM_STATUS_BADVAL);
return (DLADM_STATUS_OK);
return (DLADM_STATUS_BADVALCNT);
return (DLADM_STATUS_OK);
static dladm_status_t
char *module;
return (DLADM_STATUS_BADVALCNT);
return (DLADM_STATUS_NOMEM);
return (status);
return (DLADM_STATUS_OK);
static dladm_status_t
uint_t i;
return (DLADM_STATUS_NOMEM);
B_FALSE);
goto done;
goto done;
goto done;
done:
return (status);
static dladm_status_t
static dladm_status_t
switch (media) {
case DL_ETHER:
return (DLADM_STATUS_NOTSUP);
case DL_WIFI:
return (DLADM_STATUS_BADARG);
static dladm_status_t
return (DLADM_STATUS_NOMEM);
return (status);
static dladm_status_t
return (DLADM_STATUS_PROPRDONLY);
return (DLADM_STATUS_BADVALCNT);
done:
return (status);
static dladm_status_t
return (DLADM_STATUS_BADVALCNT);
goto done;
for (i = 0; i < MAX_SUPPORT_RATES; i++) {
i * DLADM_STRSIZE;
goto done;
for (i = 0; i < modval_cnt; i++) {
if (i == modval_cnt)
done:
return (status);
static dladm_status_t
int buflen)
static dladm_status_t
!= DLADM_STATUS_OK)
goto done;
goto done;
done:
return (status);
static dladm_status_t
int buflen)
static dladm_status_t
!= DLADM_STATUS_OK)
goto done;
case WL_PM_AM:
case WL_PM_MPS:
case WL_PM_FAST:
goto done;
done:
return (status);
static dladm_status_t
switch (*pm) {
case DLADM_WLAN_PM_OFF:
case DLADM_WLAN_PM_MAX:
case DLADM_WLAN_PM_FAST:
return (DLADM_STATUS_NOTSUP);
static dladm_status_t
return (DLADM_STATUS_BADVALCNT);
return (status);
static dladm_status_t
static dladm_status_t
!= DLADM_STATUS_OK)
goto done;
switch (radio) {
case B_TRUE:
case B_FALSE:
goto done;
done:
return (status);
static dladm_status_t
wl_radio_t r;
switch (*radio) {
case DLADM_WLAN_RADIO_ON:
r = B_TRUE;
case DLADM_WLAN_RADIO_OFF:
r = B_FALSE;
return (DLADM_STATUS_NOTSUP);
sizeof (r), B_TRUE));
static dladm_status_t
return (DLADM_STATUS_BADVALCNT);
return (status);
static dladm_status_t
return (status);
if (val_cnt == 0) {
goto done;
for (i = 0; i < val_cnt; i++) {
buf);
done:
return (status);
static dladm_status_t
return (status);
goto done;
goto done;
done:
return (status);
static dladm_status_t
return (DLADM_STATUS_BADARG);
return (status);
return (DLADM_STATUS_OK);
static link_attr_t *
link_attr_t *p;
static link_attr_t *
link_attr_t *p;
static dld_ioc_macprop_t *
int dsize;
return (NULL);
return (dip);
static dld_ioc_macprop_t *
link_attr_t *p;
static dld_ioc_macprop_t *
link_attr_t *p;
static dladm_status_t
void *val;
return (status);
done:
return (status);
return (status);
static dld_ioc_macprop_t *
return (NULL);
return (NULL);
return (dip);
static dladm_status_t
return (DLADM_STATUS_BADVAL);
return (DLADM_STATUS_OK);
static dladm_status_t
return (status);
switch (link_duplex) {
case LINK_DUPLEX_FULL:
case LINK_DUPLEX_HALF:
return (DLADM_STATUS_OK);
static dladm_status_t
return (status);
return (DLADM_STATUS_OK);
static dladm_status_t
return (status);
switch (link_state) {
case LINK_STATE_UP:
case LINK_STATE_DOWN:
return (DLADM_STATUS_OK);
static dladm_status_t
return (status);
return (DLADM_STATUS_OK);
static dladm_status_t
uint32_t v = 0;
return (status);
return (DLADM_STATUS_OK);
--count;
switch (r->mpr_type) {
case MAC_PROPVAL_UINT32:
*sz = 0;
return (EINVAL);
static dladm_status_t
* actual count of value ranges. See mac.h for more details.
return (status);
int err;
goto retry;
return (status);
case MAC_PROPVAL_UINT32: {
return (status);
static dladm_status_t
return (status);
switch (mode) {
case LINK_TAGMODE_NORMAL:
case LINK_TAGMODE_VLANONLY:
return (DLADM_STATUS_OK);
static dladm_status_t
return (status);
case LINK_FLOWCTRL_NONE:
case LINK_FLOWCTRL_RX:
case LINK_FLOWCTRL_TX:
case LINK_FLOWCTRL_BI:
return (DLADM_STATUS_OK);
static dladm_status_t
int i, slen;
int bufsize = 0;
link_attr_t *p;
return (DLADM_STATUS_BADARG);
return (DLADM_STATUS_BADARG);
return (DLADM_STATUS_OK);
for (i = 0; i < val_cnt; i++) {
return (status);
slen = 0;
for (i = 0; i < val_cnt; i++) {
int plen = 0;
return (status);
static dladm_status_t
link_attr_t *p;
return (DLADM_STATUS_BADARG);
return (DLADM_STATUS_BADARG);
return (status);
return (status);
static dladm_status_t
bufsize =
for (i = 0; i < DLADM_MAX_PROP_VALCNT; i++) {
sizeof (char *) * DLADM_MAX_PROP_VALCNT +
i * DLADM_PROP_VAL_MAX;
return (status);
void *dp;
return (status);
return (DLADM_STATUS_BADARG);
return (DLADM_STATUS_TEMPONLY);
return (DLADM_STATUS_NOMEM);
if (set)
if (!set)
return (status);
return (DLADM_WALK_CONTINUE);
return (status);
static dladm_status_t
return (DLADM_STATUS_OK);
for (i = 0; i < DLADM_MAX_PROPS; i++) {
return (DLADM_STATUS_NOMEM);
return (DLADM_STATUS_BADARG);
return (status);
for (j = 0; j < DLADM_MAX_RSRC_PROP; j++) {
return (status);
return (status);
mrp);
return (status);
mrp);
return (status);
mrp);
return (status);
return (status);
return (buf);
&perms);
return (status);
return (status);
const char *nonprop[] = {
return (!is_nonprop);