Lines Matching +full:10 +full:base +full:- +full:t1

77  * - pd:	pointer to the prop_desc_t
78 * - propstrp: a property string array to keep the returned property.
80 * - cntp: number of returned properties.
92 * - propval: a val_desc_t array which keeps the property values to be set.
93 * - cnt: number of properties to be set.
94 * - flags: additional flags passed down the system call.
107 * - propstrp: property string array which keeps the property to be checked.
108 * - cnt: number of properties.
109 * - propval: return value; the property values of the given property strings.
188 * This is set to non-NULL if there is a list of possible property
200 * read-only and may be called before or after permanent update; see
238 #define MAC_PROP_BUFSIZE(v) sizeof (dld_ioc_macprop_t) + (v) - 1
246 * and the type/size of the data passed in the user-kernel interface.
392 "resource-effective"},
399 "txrings-available"},
402 "rxrings-available"},
404 { MAC_PROP_MAX_RXHWCLNT_AVAIL, sizeof (uint_t), "rxhwclnt-available"},
406 { MAC_PROP_MAX_TXHWCLNT_AVAIL, sizeof (uint_t), "txhwclnt-available"},
410 { MAC_PROP_VN_PROMISC_FILTERED, sizeof (boolean_t), "promisc-filtered"},
413 "secondary-macs"},
417 { MAC_PROP_PRIVATE, 0, "driver-private"}
457 { "base-r", LINK_FEC_BASE_R }
471 { "mac-nospoof", MPT_MACNOSPOOF },
473 { "ip-nospoof", MPT_IPNOSPOOF },
474 { "dhcp-nospoof", MPT_DHCPNOSPOOF },
507 { "10BASE-T", ETHER_MEDIA_10BASE_T },
508 { "100BASE-T4", ETHER_MEDIA_100BASE_T4 },
509 { "100BASE-X", ETHER_MEDIA_100BASE_X },
510 { "100BASE-T2", ETHER_MEDIA_100BASE_T2 },
511 { "1000BASE-X", ETHER_MEDIA_1000BASE_X },
512 { "1000BASE-T", ETHER_MEDIA_1000BASE_T },
513 { "1000BASE-KX", ETHER_MEDIA_1000BASE_KX },
514 { "1000BASE-T1", ETHER_MEDIA_1000BASE_T1 },
515 { "1000BASE-CX", ETHER_MEDIA_1000BASE_CX },
516 { "1000BASE-SX", ETHER_MEDIA_1000BASE_SX },
517 { "1000BASE-LX", ETHER_MEDIA_1000BASE_LX },
518 { "1000BASE-BX", ETHER_MEDIA_1000BASE_BX },
519 { "1000-SGMII", ETHER_MEDIA_1000_SGMII },
520 { "100BASE-TX", ETHER_MEDIA_100BASE_TX },
521 { "100BASE-FX", ETHER_MEDIA_100BASE_FX },
522 { "100-SGMII", ETHER_MEDIA_100_SGMII },
523 { "10BASE-T1", ETHER_MEDIA_10BASE_T1 },
524 { "100BASE-T1", ETHER_MEDIA_100BASE_T1 },
525 { "2500BASE-T", ETHER_MEDIA_2500BASE_T },
526 { "2500BASE-KX", ETHER_MEDIA_2500BASE_KX },
527 { "2500BASE-X", ETHER_MEDIA_2500BASE_X },
528 { "5000BASE-T", ETHER_MEDIA_5000BASE_T },
529 { "5000BASE-KR", ETHER_MEDIA_5000BASE_KR },
530 { "10GBASE-T", ETHER_MEDIA_10GBASE_T },
531 { "10GBASE-SR", ETHER_MEDIA_10GBASE_SR },
532 { "10GBASE-LR", ETHER_MEDIA_10GBASE_LR },
533 { "10GBASE-LRM", ETHER_MEDIA_10GBASE_LRM },
534 { "10GBASE-KR", ETHER_MEDIA_10GBASE_KR },
535 { "10GBASE-CX4", ETHER_MEDIA_10GBASE_CX4 },
536 { "10GBASE-KX4", ETHER_MEDIA_10GBASE_KX4 },
537 { "10G-XAUI", ETHER_MEDIA_10G_XAUI },
538 { "10GBASE-AOC", ETHER_MEDIA_10GBASE_AOC },
539 { "10GBASE-ACC", ETHER_MEDIA_10GBASE_ACC },
540 { "10GBASE-CR", ETHER_MEDIA_10GBASE_CR },
541 { "10GBASE-ER", ETHER_MEDIA_10GBASE_ER },
542 { "10G-SFI", ETHER_MEDIA_10G_SFI },
543 { "10G-XFI", ETHER_MEDIA_10G_XFI },
544 { "25GBASE-T", ETHER_MEDIA_25GBASE_T },
545 { "25GBASE-SR", ETHER_MEDIA_25GBASE_SR },
546 { "25GBASE-LR", ETHER_MEDIA_25GBASE_LR },
547 { "25GBASE-ER", ETHER_MEDIA_25GBASE_ER },
548 { "25GBASE-KR", ETHER_MEDIA_25GBASE_KR },
549 { "25GBASE-CR", ETHER_MEDIA_25GBASE_CR },
550 { "25GBASE-AOC", ETHER_MEDIA_25GBASE_AOC },
551 { "25GBASE-ACC", ETHER_MEDIA_25GBASE_ACC },
552 { "25G-AUI", ETHER_MEDIA_25G_AUI },
553 { "40GBASE-T", ETHER_MEDIA_40GBASE_T },
554 { "40GBASE-CR4", ETHER_MEDIA_40GBASE_CR4 },
555 { "40GBASE-KR4", ETHER_MEDIA_40GBASE_KR4 },
556 { "40GBASE-LR4", ETHER_MEDIA_40GBASE_LR4 },
557 { "40GBASE-SR4", ETHER_MEDIA_40GBASE_SR4 },
558 { "40GBASE-ER4", ETHER_MEDIA_40GBASE_ER4 },
559 { "40GBASE-LM4", ETHER_MEDIA_40GBASE_LM4 },
560 { "40GBASE-AOC4", ETHER_MEDIA_40GBASE_AOC4 },
561 { "40GBASE-ACC4", ETHER_MEDIA_40GBASE_ACC4 },
562 { "40G-XLAUI", ETHER_MEDIA_40G_XLAUI },
563 { "40G-XLPPI", ETHER_MEDIA_40G_XLPPI },
564 { "50GBASE-KR2", ETHER_MEDIA_50GBASE_KR2 },
565 { "50GBASE-CR2", ETHER_MEDIA_50GBASE_CR2 },
566 { "50GBASE-SR2", ETHER_MEDIA_50GBASE_SR2 },
567 { "50GBASE-LR2", ETHER_MEDIA_50GBASE_LR2 },
568 { "50GBASE-AOC2", ETHER_MEDIA_50GBASE_AOC2 },
569 { "50GBASE-ACC2", ETHER_MEDIA_50GBASE_ACC2 },
570 { "50GBASE-KR", ETHER_MEDIA_50GBASE_KR },
571 { "50GBASE-CR", ETHER_MEDIA_50GBASE_CR },
572 { "50GBASE-SR", ETHER_MEDIA_50GBASE_SR },
573 { "50GBASE-LR", ETHER_MEDIA_50GBASE_LR },
574 { "50GBASE-FR", ETHER_MEDIA_50GBASE_FR },
575 { "50GBASE-ER", ETHER_MEDIA_50GBASE_ER },
576 { "50GBASE-AOC", ETHER_MEDIA_50GBASE_AOC },
577 { "50GBASE-ACC", ETHER_MEDIA_50GBASE_ACC },
578 { "100GBASE-CR10", ETHER_MEDIA_100GBASE_CR10 },
579 { "100GBASE-SR10", ETHER_MEDIA_100GBASE_SR10 },
580 { "100GBASE-SR4", ETHER_MEDIA_100GBASE_SR4 },
581 { "100GBASE-LR4", ETHER_MEDIA_100GBASE_LR4 },
582 { "100GBASE-ER4", ETHER_MEDIA_100GBASE_ER4 },
583 { "100GBASE-KR4", ETHER_MEDIA_100GBASE_KR4 },
584 { "100GBASE-CR4", ETHER_MEDIA_100GBASE_CR4 },
585 { "100GBASE-CAUI4", ETHER_MEDIA_100GBASE_CAUI4 },
586 { "100GBASE-AOC4", ETHER_MEDIA_100GBASE_AOC4 },
587 { "100GBASE-ACC4", ETHER_MEDIA_100GBASE_ACC4 },
588 { "100GBASE-KR2", ETHER_MEDIA_100GBASE_KR2 },
589 { "100GBASE-CR2", ETHER_MEDIA_100GBASE_CR2 },
590 { "100GBASE-SR2", ETHER_MEDIA_100GBASE_SR2 },
591 { "100GBASE-KR", ETHER_MEDIA_100GBASE_KR },
592 { "100GBASE-CR", ETHER_MEDIA_100GBASE_CR },
593 { "100GBASE-SR", ETHER_MEDIA_100GBASE_SR },
594 { "100GBASE-DR", ETHER_MEDIA_100GBASE_DR },
595 { "100GBASE-LR", ETHER_MEDIA_100GBASE_LR },
596 { "100GBASE-FR", ETHER_MEDIA_100GBASE_FR },
597 { "200GAUI-4", ETHER_MEDIA_200GAUI_4 },
598 { "200GBASE-CR4", ETHER_MEDIA_200GBASE_CR4 },
599 { "200GBASE-KR4", ETHER_MEDIA_200GBASE_KR4 },
600 { "200GBASE-SR4", ETHER_MEDIA_200GBASE_SR4 },
601 { "200GBASE-DR4", ETHER_MEDIA_200GBASE_DR4 },
602 { "200GBASE-FR4", ETHER_MEDIA_200GBASE_FR4 },
603 { "200GBASE-LR4", ETHER_MEDIA_200GBASE_LR4 },
604 { "200GBASE-ER4", ETHER_MEDIA_200GBASE_ER4 },
605 { "200GAUI-2", ETHER_MEDIA_200GAUI_2 },
606 { "200GBASE-KR2", ETHER_MEDIA_200GBASE_KR2 },
607 { "200GBASE-CR2", ETHER_MEDIA_200GBASE_CR2 },
608 { "200GBASE-SR2", ETHER_MEDIA_200GBASE_SR2 },
609 { "400GAUI-8", ETHER_MEDIA_400GAUI_8 },
610 { "400GBASE-KR8", ETHER_MEDIA_400GBASE_KR8 },
611 { "400GBASE-FR8", ETHER_MEDIA_400GBASE_FR8 },
612 { "400GBASE-LR8", ETHER_MEDIA_400GBASE_LR8 },
613 { "400GBASE-ER8", ETHER_MEDIA_400GBASE_ER8 },
614 { "400GAUI-4", ETHER_MEDIA_400GAUI_4 },
615 { "400GBASE-KR4", ETHER_MEDIA_400GBASE_KR4 },
616 { "400GBASE-CR4", ETHER_MEDIA_400GBASE_CR4 },
617 { "400GBASE-SR4", ETHER_MEDIA_400GBASE_SR4 },
618 { "400GBASE-DR4", ETHER_MEDIA_400GBASE_DR4 },
619 { "400GBASE-FR4", ETHER_MEDIA_400GBASE_FR4 }
623 #define RESET_VAL ((uintptr_t)-1)
624 #define UNSPEC_VAL ((uintptr_t)-2)
705 { "secondary-macs", { "--", 0 }, NULL, 0,
860 { "maxbw", { "--", RESET_VAL }, NULL, 0,
865 { "cpus", { "--", RESET_VAL }, NULL, 0,
870 { "cpus-effective", { "--", 0 },
875 { "pool", { "--", RESET_VAL }, NULL, 0,
880 { "pool-effective", { "--", 0 },
961 { "protection", { "--", RESET_VAL },
966 { "promisc-filtered", { "on", 1 },
972 { "allowed-ips", { "--", 0 },
977 { "allowed-dhcp-cids", { "--", 0 },
982 { "rxrings", { "--", RESET_VAL }, NULL, 0,
986 { "rxrings-effective", { "--", 0 },
991 { "txrings", { "--", RESET_VAL }, NULL, 0,
995 { "txrings-effective", { "--", 0 },
1000 { "txrings-available", { "", 0 }, NULL, 0,
1004 { "rxrings-available", { "", 0 }, NULL, 0,
1008 { "rxhwclnt-available", { "", 0 }, NULL, 0,
1012 { "txhwclnt-available", { "", 0 }, NULL, 0,
1026 {"cpus-effective", extract_cpus},
1028 {"pool-effective", extract_pool},
1030 {"allowed-ips", extract_allowedips},
1031 {"allowed-dhcp-cids", extract_allowedcids},
1033 {"rxrings-effective", extract_rxrings},
1035 {"txrings-effective", extract_txrings}
1084 for (i = 0; i < pdp->pd_noptval; i++) { in check_prop()
1086 pdp->pd_optval[i].vd_name) == 0) { in check_prop()
1090 if (i == pdp->pd_noptval) in check_prop()
1093 (void) memcpy(&vdp[j], &pdp->pd_optval[i], sizeof (val_desc_t)); in check_prop()
1108 if (!(pdp->pd_class & class)) in i_dladm_set_single_prop()
1111 if (!DATALINK_MEDIA_ACCEPTED(pdp->pd_dmedia, media)) in i_dladm_set_single_prop()
1114 if ((flags & DLADM_OPT_PERSIST) && (pdp->pd_flags & PD_TEMPONLY)) in i_dladm_set_single_prop()
1120 if (pdp->pd_set == NULL) in i_dladm_set_single_prop()
1128 if (pdp->pd_check != NULL) { in i_dladm_set_single_prop()
1129 needfree = ((pdp->pd_flags & PD_CHECK_ALLOC) != 0); in i_dladm_set_single_prop()
1130 status = pdp->pd_check(handle, pdp, linkid, prop_val, in i_dladm_set_single_prop()
1132 } else if (pdp->pd_optval != NULL) { in i_dladm_set_single_prop()
1146 if (pdp->pd_defval.vd_name == NULL) in i_dladm_set_single_prop()
1150 defval = (strlen(pdp->pd_defval.vd_name) > 0); in i_dladm_set_single_prop()
1151 if ((pdp->pd_flags & PD_CHECK_ALLOC) == 0 && !defval) { in i_dladm_set_single_prop()
1162 (void) memcpy(vdp, &pdp->pd_defval, in i_dladm_set_single_prop()
1164 } else if (pdp->pd_check != NULL) { in i_dladm_set_single_prop()
1165 needfree = ((pdp->pd_flags & PD_CHECK_ALLOC) != 0); in i_dladm_set_single_prop()
1166 status = pdp->pd_check(handle, pdp, linkid, prop_val, in i_dladm_set_single_prop()
1172 if (pdp->pd_flags & PD_AFTER_PERM) in i_dladm_set_single_prop()
1176 status = pdp->pd_set(handle, pdp, linkid, vdp, cnt, flags, in i_dladm_set_single_prop()
1180 free((void *)((val_desc_t *)vdp + i)->vd_val); in i_dladm_set_single_prop()
1201 (strcasecmp(prop_name, pdp->pd_name) != 0)) in i_dladm_set_linkprop()
1216 * default value and will return NOTSUP -- for in i_dladm_set_linkprop()
1261 * For well-known property names, normalize the case. We can also in dladm_set_linkprop()
1303 if (!(pdp->pd_flags & PD_AFTER_PERM)) in dladm_set_linkprop()
1306 prop_name != pdp->pd_name) in dladm_set_linkprop()
1308 status = pdp->pd_set(handle, pdp, linkid, NULL, in dladm_set_linkprop()
1417 if (!(pdp->pd_class & class)) in dladm_get_linkprop()
1420 if (!DATALINK_MEDIA_ACCEPTED(pdp->pd_dmedia, media)) in dladm_get_linkprop()
1425 status = pdp->pd_get(handle, pdp, linkid, prop_val, val_cntp, in dladm_get_linkprop()
1430 if (pdp->pd_set == NULL) { in dladm_get_linkprop()
1433 status = pdp->pd_get(handle, pdp, linkid, prop_val, in dladm_get_linkprop()
1451 if (pdp->pd_defval.vd_name == NULL) { in dladm_get_linkprop()
1456 if (strlen(pdp->pd_defval.vd_name) == 0) { in dladm_get_linkprop()
1457 status = pdp->pd_get(handle, pdp, linkid, prop_val, in dladm_get_linkprop()
1460 (void) strcpy(*prop_val, pdp->pd_defval.vd_name); in dladm_get_linkprop()
1466 if (pdp->pd_getmod != NULL) { in dladm_get_linkprop()
1467 status = pdp->pd_getmod(handle, pdp, linkid, prop_val, in dladm_get_linkprop()
1471 cnt = pdp->pd_noptval; in dladm_get_linkprop()
1479 pdp->pd_optval[i].vd_name); in dladm_get_linkprop()
1485 if (pdp->pd_flags & PD_TEMPONLY) in dladm_get_linkprop()
1522 if (strcasecmp(prop_name, pdp->pd_name) == 0) { in dladm_get_linkprop_values()
1523 prop_name = pdp->pd_name; in dladm_get_linkprop_values()
1531 if (pdp->pd_flags & PD_CHECK_ALLOC) in dladm_get_linkprop_values()
1539 if (!(pdp->pd_class & class)) in dladm_get_linkprop_values()
1542 if (!DATALINK_MEDIA_ACCEPTED(pdp->pd_dmedia, media)) in dladm_get_linkprop_values()
1557 status = pdp->pd_get(handle, pdp, linkid, prop_val, val_cntp, in dladm_get_linkprop_values()
1569 if (pdp->pd_defval.vd_name == NULL) { in dladm_get_linkprop_values()
1574 if (pdp->pd_defval.vd_name[0] != '\0') { in dladm_get_linkprop_values()
1576 *ret_val = pdp->pd_defval.vd_val; in dladm_get_linkprop_values()
1580 status = pdp->pd_get(handle, pdp, linkid, prop_val, val_cntp, in dladm_get_linkprop_values()
1585 if (pdp->pd_flags & PD_TEMPONLY) in dladm_get_linkprop_values()
1598 if (pdp->pd_check != NULL) { in dladm_get_linkprop_values()
1605 status = pdp->pd_check(handle, pdp, linkid, in dladm_get_linkprop_values()
1614 for (i = 0; i < pdp->pd_noptval; i++) { in dladm_get_linkprop_values()
1615 if (strcmp(pdp->pd_optval[i].vd_name, in dladm_get_linkprop_values()
1618 pdp->pd_optval[i].vd_val; in dladm_get_linkprop_values()
1622 if (i == pdp->pd_noptval) { in dladm_get_linkprop_values()
1662 valcnt, dla->dla_flags | DLADM_OPT_ACTIVE); in i_dladm_init_one_prop()
1665 dla->dla_status = status; in i_dladm_init_one_prop()
1706 dla->dla_flags = DLADM_OPT_BOOT; in dladm_init_linkprop()
1707 dla->dla_status = DLADM_STATUS_OK; in dladm_init_linkprop()
1718 status = dla->dla_status; in dladm_init_linkprop()
1736 status = i_dladm_get_public_prop(handle, linkid, pdp->pd_name, flags, in get_zone()
1767 return (-1); in i_dladm_get_zone_dev()
1771 return (-1); in i_dladm_get_zone_dev()
1834 dzp = (dld_ioc_zid_t *)vdp->vd_val; in set_zone()
1836 status = i_dladm_get_public_prop(handle, linkid, pdp->pd_name, flags, in set_zone()
1841 zid_new = dzp->diz_zid; in set_zone()
1850 * It is okay to fail to update the /dev entry (some vanity-named in set_zone()
1883 if ((zoneid = getzoneidbyname(zone_name)) == -1) { in check_zone()
1905 dzp->diz_zid = zoneid; in check_zone()
1906 dzp->diz_linkid = linkid; in check_zone()
1908 vdp->vd_val = (uintptr_t)dzp; in check_zone()
1966 vdp->vd_val = (uintptr_t)maxbw; in check_maxbw()
1975 if (vdp->vd_val == RESET_VAL) { in extract_maxbw()
1976 mrp->mrp_maxbw = MRP_MAXBW_RESETVAL; in extract_maxbw()
1978 bcopy((char *)vdp->vd_val, &mrp->mrp_maxbw, sizeof (uint64_t)); in extract_maxbw()
1980 mrp->mrp_mask |= MRP_MAXBW; in extract_maxbw()
1995 if (strcmp(pdp->pd_name, "cpus-effective") == 0) { in get_cpus()
1997 "resource-effective", flags, perm_flags, &mrp, in get_cpus()
2028 *val_cnt = pv_range->mpr_count; in get_cpus()
2144 bzero(&mrp->mrp_cpus, sizeof (mac_cpus_t)); in extract_cpus()
2145 mrp->mrp_mask |= MRP_CPUS; in extract_cpus()
2150 mrp->mrp_cpu[i] = (uint32_t)vdp[i].vd_val; in extract_cpus()
2152 mrp->mrp_ncpus = cnt; in extract_cpus()
2153 mrp->mrp_mask |= (MRP_CPUS|MRP_CPUS_USERSPEC); in extract_cpus()
2154 mrp->mrp_fanout_mode = MCM_CPUS; in extract_cpus()
2155 mrp->mrp_rx_intr_cpu = -1; in extract_cpus()
2172 if (strcmp(pdp->pd_name, "pool-effective") == 0) { in get_pool()
2174 "resource-effective", flags, perm_flags, &mrp, in get_pool()
2246 vdp->vd_val = (uintptr_t)poolname; in check_pool()
2256 if (vdp->vd_val == RESET_VAL) { in extract_pool()
2257 bzero(&mrp->mrp_pool, sizeof (mrp->mrp_pool)); in extract_pool()
2258 mrp->mrp_mask |= MRP_POOL; in extract_pool()
2262 (void) strlcpy(mrp->mrp_pool, (char *)vdp->vd_val, in extract_pool()
2263 sizeof (mrp->mrp_pool)); in extract_pool()
2264 mrp->mrp_mask |= MRP_POOL; in extract_pool()
2270 mrp->mrp_fanout_mode = MCM_CPUS; in extract_pool()
2305 mrp->mrp_priority = (mac_priority_level_t)vdp->vd_val; in extract_priority()
2306 mrp->mrp_mask |= MRP_PRIORITY; in extract_priority()
2318 uint_t count = r->mpr_count; in i_dladm_range_size()
2322 --count; in i_dladm_range_size()
2324 switch (r->mpr_type) { in i_dladm_range_size()
2348 v->vd_val = UNSPEC_VAL; in check_rings()
2350 v->vd_val = 0; in check_rings()
2352 v->vd_val = strtoul(prop_val[0], NULL, 0); in check_rings()
2353 if (v->vd_val == 0) in check_rings()
2372 if ((dip = i_dladm_buf_alloc_by_name(sz, linkid, pdp->pd_name, flags, in get_rings_range()
2380 rangep = (mac_propval_range_t *)(void *)&dip->pr_val; in get_rings_range()
2382 ur = &rangep->mpr_range_uint32[0]; in get_rings_range()
2384 if (rangep->mpr_count == 0) { in get_rings_range()
2390 } else if (ur->mpur_min == ur->mpur_max && in get_rings_range()
2391 ur->mpur_max == 0) { in get_rings_range()
2397 } else if (ur->mpur_min == ur->mpur_max) { in get_rings_range()
2399 ur->mpur_min); in get_rings_range()
2406 "sw,hw,<%ld-%ld>", ur->mpur_min, ur->mpur_max); in get_rings_range()
2423 * Get the number of (effective-)rings from the resource property. in get_rxrings()
2425 if (strcmp(pdp->pd_name, "rxrings-effective") == 0) { in get_rxrings()
2427 "resource-effective", flags, perm_flags, &mrp, in get_rxrings()
2465 mrp->mrp_nrxrings = 0; in extract_rxrings()
2466 if (vdp->vd_val == RESET_VAL) in extract_rxrings()
2467 mrp->mrp_mask = MRP_RINGS_RESET; in extract_rxrings()
2468 else if (vdp->vd_val == UNSPEC_VAL) in extract_rxrings()
2469 mrp->mrp_mask = MRP_RXRINGS_UNSPEC; in extract_rxrings()
2471 mrp->mrp_nrxrings = vdp->vd_val; in extract_rxrings()
2472 mrp->mrp_mask |= MRP_RX_RINGS; in extract_rxrings()
2488 * Get the number of (effective-)rings from the resource property. in get_txrings()
2490 if (strcmp(pdp->pd_name, "txrings-effective") == 0) { in get_txrings()
2492 "resource-effective", flags, perm_flags, &mrp, in get_txrings()
2533 mrp->mrp_ntxrings = 0; in extract_txrings()
2534 if (vdp->vd_val == RESET_VAL) in extract_txrings()
2535 mrp->mrp_mask = MRP_RINGS_RESET; in extract_txrings()
2536 else if (vdp->vd_val == UNSPEC_VAL) in extract_txrings()
2537 mrp->mrp_mask = MRP_TXRINGS_UNSPEC; in extract_txrings()
2539 mrp->mrp_ntxrings = vdp->vd_val; in extract_txrings()
2540 mrp->mrp_mask |= MRP_TX_RINGS; in extract_txrings()
2577 if (strcmp(pdp->pd_name, rp->rp_name) != 0) in set_resource()
2580 status = rp->rp_extract(vdp, val_cnt, &mrp); in set_resource()
2587 (void) memcpy(dip->pr_val, &mrp, dip->pr_valsize); in set_resource()
2615 dladm_find_setbits32(p->mp_types, setbits, &cnt); in get_protection()
2642 if (p->mp_ipaddrcnt == 0) { in get_allowedips()
2646 if (p->mp_ipaddrcnt > *val_cnt) in get_allowedips()
2649 for (i = 0; i < p->mp_ipaddrcnt; i++) { in get_allowedips()
2651 if (p->mp_ipaddrs[i].ip_version == IPV4_VERSION) { in get_allowedips()
2654 v4addr = V4_PART_OF_V6(p->mp_ipaddrs[i].ip_addr); in get_allowedips()
2657 (void) dladm_ipv6addr2str(&p->mp_ipaddrs[i].ip_addr, in get_allowedips()
2662 p->mp_ipaddrs[i].ip_netmask); in get_allowedips()
2664 *val_cnt = p->mp_ipaddrcnt; in get_allowedips()
2678 mrp->mrp_protect.mp_types = types; in extract_protection()
2679 mrp->mrp_mask |= MRP_PROTECT; in extract_protection()
2687 mac_protect_t *p = &mrp->mrp_protect; in extract_allowedips()
2690 if (vdp->vd_val == 0) { in extract_allowedips()
2691 cnt = (uint_t)-1; in extract_allowedips()
2694 bcopy((void *)vdp[i].vd_val, &p->mp_ipaddrs[i], in extract_allowedips()
2698 p->mp_ipaddrcnt = cnt; in extract_allowedips()
2699 mrp->mrp_mask |= MRP_PROTECT; in extract_allowedips()
2724 mask = strtol(p, &end, 10); in check_single_ip()
2744 IN6_IPADDR_TO_V4MAPPED(v4addr, &addr->ip_addr); in check_single_ip()
2745 addr->ip_version = IPV4_VERSION; in check_single_ip()
2759 smask = 0xFFFFFFFFu << (32 - mask); in check_single_ip()
2765 addr->ip_netmask = mask; in check_single_ip()
2781 for (i = 3; i >= 0; i--) { in check_single_ip()
2788 if (128 - off >= (int)mask) in check_single_ip()
2794 addr->ip_addr = v6addr; in check_single_ip()
2795 addr->ip_version = IPV6_VERSION; in check_single_ip()
2796 addr->ip_netmask = mask; in check_single_ip()
2842 switch (cid->dc_form) { in dladm_cid2str()
2848 if (cid->dc_len < sizeof (duidtype)) in dladm_cid2str()
2851 bcopy(cid->dc_id, &duidtype, sizeof (duidtype)); in dladm_cid2str()
2857 if (cid->dc_len < sizeof (llt)) in dladm_cid2str()
2860 bcopy(cid->dc_id, &llt, sizeof (llt)); in dladm_cid2str()
2863 lladdr = _link_ntoa(cid->dc_id + sizeof (llt), in dladm_cid2str()
2864 NULL, cid->dc_len - sizeof (llt), IFT_OTHER); in dladm_cid2str()
2876 if (cid->dc_len < sizeof (en)) in dladm_cid2str()
2879 bcopy(cid->dc_id, &en, sizeof (en)); in dladm_cid2str()
2882 if (octet_to_hexascii(cid->dc_id + sizeof (en), in dladm_cid2str()
2883 cid->dc_len - sizeof (en), tmp_buf, &hexlen) != 0) in dladm_cid2str()
2893 if (cid->dc_len < sizeof (ll)) in dladm_cid2str()
2896 bcopy(cid->dc_id, &ll, sizeof (ll)); in dladm_cid2str()
2898 lladdr = _link_ntoa(cid->dc_id + sizeof (ll), in dladm_cid2str()
2899 NULL, cid->dc_len - sizeof (ll), IFT_OTHER); in dladm_cid2str()
2910 if (octet_to_hexascii(cid->dc_id + sizeof (duidtype), in dladm_cid2str()
2911 cid->dc_len - sizeof (duidtype), in dladm_cid2str()
2923 if (octet_to_hexascii(cid->dc_id, cid->dc_len, in dladm_cid2str()
2933 for (i = 0; i < cid->dc_len; i++) { in dladm_cid2str()
2934 if (!isprint(cid->dc_id[i])) in dladm_cid2str()
2937 (void) snprintf(buf, DLADM_STRSIZE, "%s", cid->dc_id); in dladm_cid2str()
2995 if (cidlen > sizeof (cid->dc_id)) { in dladm_str2cid()
3002 bcopy(&llt, cid->dc_id, sizeof (llt)); in dladm_str2cid()
3003 bcopy(lladdr, cid->dc_id + sizeof (llt), addrlen); in dladm_str2cid()
3015 if (cidlen > sizeof (cid->dc_id)) { in dladm_str2cid()
3021 bcopy(&ll, cid->dc_id, sizeof (ll)); in dladm_str2cid()
3022 bcopy(lladdr, cid->dc_id + sizeof (ll), addrlen); in dladm_str2cid()
3039 if (cidlen > sizeof (cid->dc_id)) in dladm_str2cid()
3042 bcopy(&en, cid->dc_id, sizeof (en)); in dladm_str2cid()
3043 bcopy(tmp_buf, cid->dc_id + sizeof (en), in dladm_str2cid()
3049 if (cidlen > sizeof (cid->dc_id)) in dladm_str2cid()
3052 bcopy(&dutype, cid->dc_id, sizeof (dutype)); in dladm_str2cid()
3053 bcopy(tmp_buf, cid->dc_id + sizeof (dutype), in dladm_str2cid()
3059 cid->dc_form = CIDFORM_TYPED; in dladm_str2cid()
3068 if (cidlen > sizeof (cid->dc_id)) in dladm_str2cid()
3071 bcopy(tmp_buf, cid->dc_id, cidlen); in dladm_str2cid()
3072 cid->dc_form = CIDFORM_HEX; in dladm_str2cid()
3075 if (cidlen > sizeof (cid->dc_id)) in dladm_str2cid()
3078 bcopy(ptr, cid->dc_id, cidlen); in dladm_str2cid()
3079 cid->dc_form = CIDFORM_STR; in dladm_str2cid()
3081 cid->dc_len = cidlen; in dladm_str2cid()
3101 if (p->mp_cidcnt == 0) { in get_allowedcids()
3105 if (p->mp_cidcnt > *val_cnt) in get_allowedcids()
3108 for (i = 0; i < p->mp_cidcnt; i++) { in get_allowedcids()
3109 mac_dhcpcid_t *cid = &p->mp_cids[i]; in get_allowedcids()
3113 *val_cnt = p->mp_cidcnt; in get_allowedcids()
3121 mac_protect_t *p = &mrp->mrp_protect; in extract_allowedcids()
3124 if (vdp->vd_val == 0) { in extract_allowedcids()
3125 cnt = (uint_t)-1; in extract_allowedcids()
3128 bcopy((void *)vdp[i].vd_val, &p->mp_cids[i], in extract_allowedcids()
3132 p->mp_cidcnt = cnt; in extract_allowedcids()
3133 mrp->mrp_mask |= MRP_PROTECT; in extract_allowedcids()
3181 status = i_dladm_get_public_prop(handle, linkid, pdp->pd_name, flags, in get_secondary_macs()
3219 if (len == (uint_t)-1) in check_secondary_macs()
3248 dip = i_dladm_buf_alloc_by_name(0, linkid, "secondary-macs", 0, in set_secondary_macs()
3253 if (vdp->vd_val == 0) { in set_secondary_macs()
3254 val_cnt = (uint_t)-1; in set_secondary_macs()
3262 bcopy(&msa, dip->pr_val, dip->pr_valsize); in set_secondary_macs()
3283 status = i_dladm_get_public_prop(handle, linkid, pdp->pd_name, flags, in get_autopush()
3295 DLADM_PROP_VAL_MAX - len, "%c", AP_DELIMITER); in get_autopush()
3298 (void) snprintf(*prop_val + len, DLADM_PROP_VAL_MAX - len, in get_autopush()
3301 if (dlap.dap_anchor - 1 == i) { in get_autopush()
3303 DLADM_PROP_VAL_MAX - len, "%c%s", AP_DELIMITER, in get_autopush()
3327 if (dlap->dap_anchor != 0) in i_dladm_add_ap_module()
3329 if (dlap->dap_npush == 0) in i_dladm_add_ap_module()
3332 dlap->dap_anchor = dlap->dap_npush; in i_dladm_add_ap_module()
3335 if (dlap->dap_npush >= MAXAPUSH) in i_dladm_add_ap_module()
3338 (void) strlcpy(dlap->dap_aplist[dlap->dap_npush++], module, in i_dladm_add_ap_module()
3346 * autopush modules. The former is used in dladm set-linkprop, and the
3381 vdp->vd_val = (uintptr_t)dlap; in check_autopush()
3383 vdp->vd_val = 0; in check_autopush()
3388 #define WLDP_BUFSIZE (MAX_BUF_LEN - WIFI_BUF_OFFSET)
3408 if (wrp->wl_rates_num > *val_cnt) { in get_rate_common()
3413 if (wrp->wl_rates_rates[0] == 0) { in get_rate_common()
3419 for (i = 0; i < wrp->wl_rates_num; i++) { in get_rate_common()
3421 wrp->wl_rates_rates[i] % 2, in get_rate_common()
3422 (float)wrp->wl_rates_rates[i] / 2); in get_rate_common()
3424 *val_cnt = wrp->wl_rates_num; in get_rate_common()
3481 for (i = 0; i < rates->wr_cnt; i++) in set_wlan_rate()
3482 wrp->wl_rates_rates[i] = rates->wr_rates[i]; in set_wlan_rate()
3483 wrp->wl_rates_num = rates->wr_cnt; in set_wlan_rate()
3486 (rates->wr_cnt * sizeof (char)) + WIFI_BUF_OFFSET; in set_wlan_rate()
3556 vdp->vd_val = (uintptr_t)(uint_t) in check_rate()
3640 dladm_wlan_powermode_t powermode = vdp->vd_val; in set_powermode()
3701 dladm_wlan_radio_t radio = vdp->vd_val; in set_radio()
3735 hlim = strtol(*prop_val, &ep, 10); in check_hoplimit()
3739 vdp->vd_val = hlim; in check_hoplimit()
3760 elim = strtol(*prop_val, &ep, 10); in check_encaplim()
3764 vdp->vd_val = elim; in check_encaplim()
3794 if (i != val_cnt - 1) in i_dladm_set_linkprop_db()
3883 for (p = link_attr; p->pp_id != MAC_PROP_PRIVATE; p++) { in dladm_name2prop()
3884 if (strcmp(p->pp_name, prop_name) == 0) in dladm_name2prop()
3895 for (p = link_attr; p->pp_id != MAC_PROP_PRIVATE; p++) { in dladm_id2prop()
3896 if (p->pp_id == propid) in dladm_id2prop()
3918 dip->pr_valsize = valsize; in i_dladm_buf_alloc_impl()
3919 (void) strlcpy(dip->pr_name, prop_name, sizeof (dip->pr_name)); in i_dladm_buf_alloc_impl()
3920 dip->pr_linkid = linkid; in i_dladm_buf_alloc_impl()
3921 dip->pr_num = propid; in i_dladm_buf_alloc_impl()
3922 dip->pr_flags = flags; in i_dladm_buf_alloc_impl()
3933 valsize = MAX(p->pp_valsize, valsize); in i_dladm_buf_alloc_by_name()
3934 return (i_dladm_buf_alloc_impl(valsize, linkid, prop_name, p->pp_id, in i_dladm_buf_alloc_by_name()
3945 valsize = MAX(p->pp_valsize, valsize); in i_dladm_buf_alloc_by_id()
3946 return (i_dladm_buf_alloc_impl(valsize, linkid, p->pp_name, propid, in i_dladm_buf_alloc_by_id()
3962 dip = i_dladm_buf_alloc_by_name(0, linkid, pdp->pd_name, 0, &status); in set_public_prop()
3966 if (pdp->pd_flags & PD_CHECK_ALLOC) in set_public_prop()
3967 val = (void *)vdp->vd_val; in set_public_prop()
3970 * Currently all 1/2/4-byte size properties are byte/word/int. in set_public_prop()
3973 switch (dip->pr_valsize) { in set_public_prop()
3975 u8 = vdp->vd_val; in set_public_prop()
3979 u16 = vdp->vd_val; in set_public_prop()
3983 u32 = vdp->vd_val; in set_public_prop()
3987 val = &vdp->vd_val; in set_public_prop()
3993 (void) memcpy(dip->pr_val, val, dip->pr_valsize); in set_public_prop()
3995 dip->pr_valsize = 0; in set_public_prop()
4011 if ((pdp->pd_flags & PD_CHECK_ALLOC) != 0) in set_public_bitprop()
4015 for (j = 0; j < pdp->pd_noptval; j++) { in set_public_bitprop()
4017 pdp->pd_optval[j].vd_name) == 0) { in set_public_bitprop()
4018 vd.vd_val |= pdp->pd_optval[j].vd_val; in set_public_bitprop()
4060 *perm_flags = dip->pr_perm_flags; in i_dladm_get_public_prop()
4063 (void) memcpy(arg, dip->pr_val, size); in i_dladm_get_public_prop()
4078 v->vd_val = strtoul(prop_val[0], NULL, 0); in check_uint32()
4171 status = i_dladm_get_public_prop(handle, linkid, pdp->pd_name, flags, in get_binary()
4189 status = i_dladm_get_public_prop(handle, linkid, pdp->pd_name, flags, in get_uint32()
4219 if ((dip = i_dladm_buf_alloc_by_name(sz, linkid, pdp->pd_name, flags, in get_range()
4223 rangep = (mac_propval_range_t *)(void *)&dip->pr_val; in get_range()
4224 rangep->mpr_count = rcount; in get_range()
4243 if (rangep->mpr_count == 0) { in get_range()
4245 (void) snprintf(prop_val[0], DLADM_PROP_VAL_MAX, "--"); in get_range()
4249 switch (rangep->mpr_type) { in get_range()
4252 uint_t count = rangep->mpr_count, i; in get_range()
4254 ur = &rangep->mpr_range_uint32[0]; in get_range()
4257 if (ur->mpur_min == ur->mpur_max) { in get_range()
4259 "%ld", ur->mpur_min); in get_range()
4262 "%ld-%ld", ur->mpur_min, ur->mpur_max); in get_range()
4285 status = i_dladm_get_public_prop(handle, linkid, pdp->pd_name, flags, in get_tagmode()
4312 status = i_dladm_get_public_prop(handle, linkid, pdp->pd_name, flags, in get_flowctl()
4344 status = i_dladm_get_public_prop(handle, linkid, pdp->pd_name, flags, in get_bits()
4350 for (i = 0; cnt < *val_cnt && i < pdp->pd_noptval; i++) { in get_bits()
4351 if ((v & pdp->pd_optval[i].vd_val) != 0) { in get_bits()
4353 pdp->pd_optval[i].vd_name); in get_bits()
4357 if (i < pdp->pd_noptval) in get_bits()
4380 if (p->pp_id != MAC_PROP_PRIVATE) in i_dladm_set_private_prop()
4406 dp = (uchar_t *)dip->pr_val; in i_dladm_set_private_prop()
4411 dip->pr_flags = 0; in i_dladm_set_private_prop()
4422 if (i != (val_cnt - 1)) in i_dladm_set_private_prop()
4448 if (p->pp_id != MAC_PROP_PRIVATE) in i_dladm_get_priv_prop()
4462 (void) dladm_perm2str(dip->pr_perm_flags, *prop_val); in i_dladm_get_priv_prop()
4466 (void) strncpy(*prop_val, dip->pr_val, in i_dladm_get_priv_prop()
4506 * For properties which have pdp->pd_defval.vd_name as a non-empty in i_dladm_getset_defval()
4508 * are zone and autopush, which populate vdp->vd_val). So in i_dladm_getset_defval()
4509 * libdladm can copy pdp->pd_defval over to the val_desc_t passed in i_dladm_getset_defval()
4511 * other cases (vd_name is ""), doing reset-linkprop will cause in i_dladm_getset_defval()
4515 status = pdp->pd_get(handle, pdp, linkid, prop_vals, &cnt, media, in i_dladm_getset_defval()
4520 pdp->pd_class, media, pdp, prop_vals, cnt, flags); in i_dladm_getset_defval()
4543 for (bpp = bridge_prop; bpp->bpp_name != NULL; bpp++) in get_stp()
4544 if (strcmp(bpp->bpp_name, pd->pd_name) == 0) in get_stp()
4546 retv = dladm_bridge_get_port_cfg(handle, linkid, bpp->bpp_code, &val); in get_stp()
4549 if (i_dladm_get_linkprop_db(handle, linkid, pd->pd_name, in get_stp()
4551 (void) strlcpy(*prop_val, pd->pd_defval.vd_name, in get_stp()
4559 if ((uintptr_t)val == pd->pd_defval.vd_val && in get_stp()
4560 pd->pd_defval.vd_name[0] != '\0') { in get_stp()
4561 (void) strlcpy(*prop_val, pd->pd_defval.vd_name, in get_stp()
4565 for (i = 0; i < pd->pd_noptval; i++) { in get_stp()
4566 if ((uintptr_t)val == pd->pd_optval[i].vd_val) { in get_stp()
4567 (void) strlcpy(*prop_val, pd->pd_optval[i].vd_name, in get_stp()
4609 vdp->vd_val = 0; in check_stp_prop()
4612 iscost = strcmp(pd->pd_name, "stp_cost") == 0; in check_stp_prop()
4616 vdp->vd_val = 0; in check_stp_prop()
4619 vdp->vd_val = strtoul(prop_val[0], &cp, 0); in check_stp_prop()
4626 return (vdp->vd_val > 65535 ? DLADM_STATUS_BADVAL : in check_stp_prop()
4629 if (vdp->vd_val > 255) in check_stp_prop()
4632 * If the user is setting stp_mcheck non-zero, then (per the in check_stp_prop()
4637 * that's the problem -- it's not a bad value, merely one that in check_stp_prop()
4640 if (strcmp(pd->pd_name, "stp_mcheck") == 0 && in check_stp_prop()
4641 vdp->vd_val != 0) { in check_stp_prop()
4672 if (i_dladm_get_linkprop_db(handle, linkid, pd->pd_name, in get_bridge_forward()
4674 (void) strlcpy(*prop_val, pd->pd_defval.vd_name, in get_bridge_forward()
4713 (void) memcpy(&pvid, dip->pr_val, sizeof (pvid)); in get_bridge_pvid()
4735 pvid = vdp->vd_val; in set_bridge_pvid()
4736 (void) memcpy(dip->pr_val, &pvid, sizeof (pvid)); in set_bridge_pvid()
4759 vdp->vd_val = 1; in check_bridge_pvid()
4762 vdp->vd_val = strtoul(prop_val[0], &cp, 0); in check_bridge_pvid()
4767 return (vdp->vd_val > VLAN_ID_MAX ? DLADM_STATUS_BADVAL : in check_bridge_pvid()
4792 if (len == (MAX_BUF_LEN - WIFI_BUF_OFFSET)) in i_dladm_wlan_param()
4793 len = MAX_BUF_LEN - sizeof (dld_ioc_macprop_t) - 1; in i_dladm_wlan_param()
4799 dp = (uchar_t *)dip->pr_val; in i_dladm_wlan_param()
4829 aip = &proplist->al_info[proplist->al_count]; in i_dladm_get_one_prop()
4834 aip->ai_name = prop_name; in i_dladm_get_one_prop()
4837 prop_name, aip->ai_val, &aip->ai_count); in i_dladm_get_one_prop()
4839 if (aip->ai_count != 0) in i_dladm_get_one_prop()
4840 proplist->al_count++; in i_dladm_get_one_prop()
4881 for (i = 0; i < proplist->al_count; i++) { in i_dladm_link_proplist_extract_one()
4882 aip = &proplist->al_info[i]; in i_dladm_link_proplist_extract_one()
4883 if (strcasecmp(aip->ai_name, name) == 0) in i_dladm_link_proplist_extract_one()
4888 if (i == proplist->al_count) in i_dladm_link_proplist_extract_one()
4891 if (aip->ai_val[0] == NULL) in i_dladm_link_proplist_extract_one()
4898 vdp = malloc(sizeof (val_desc_t) * aip->ai_count); in i_dladm_link_proplist_extract_one()
4902 if (strcasecmp(aip->ai_name, pdp->pd_name) != 0) in i_dladm_link_proplist_extract_one()
4906 if (pdp->pd_check != NULL) { in i_dladm_link_proplist_extract_one()
4907 status = pdp->pd_check(handle, pdp, 0, aip->ai_val, in i_dladm_link_proplist_extract_one()
4908 &(aip->ai_count), flags, &vdp, 0); in i_dladm_link_proplist_extract_one()
4919 if (strcasecmp(aip->ai_name, rpp->rp_name) != 0) in i_dladm_link_proplist_extract_one()
4923 if (rpp->rp_extract != NULL) { in i_dladm_link_proplist_extract_one()
4924 status = rpp->rp_extract(vdp, in i_dladm_link_proplist_extract_one()
4925 aip->ai_count, arg); in i_dladm_link_proplist_extract_one()
4963 ((perm & MAC_PROP_PERM_READ) != 0) ? 'r' : '-', in dladm_perm2str()
4964 ((perm & MAC_PROP_PERM_WRITE) != 0) ? 'w' : '-'); in dladm_perm2str()
4981 /* non-property attribute names */ in dladm_attr_is_linkprop()
5038 * for a non-null string to see if it is set. For protection, in dladm_linkprop_is_set()
5039 * secondary-macs and allowed-ips, we can check either the *propval in dladm_linkprop_is_set()
5044 strcmp(prop_name, "secondary-macs") == 0 || in dladm_linkprop_is_set()
5045 strcmp(prop_name, "allowed-ips") == 0) && in dladm_linkprop_is_set()
5070 status = i_dladm_get_public_prop(handle, linkid, pdp->pd_name, flags, in get_linkmode_prop()
5101 status = i_dladm_get_public_prop(handle, linkid, pdp->pd_name, flags, in get_promisc_filtered()
5124 dip = i_dladm_buf_alloc_by_name(0, linkid, pdp->pd_name, in set_promisc_filtered()
5130 (void) memcpy(dip->pr_val, &vdp->vd_val, dip->pr_valsize); in set_promisc_filtered()
5150 status = i_dladm_get_public_prop(handle, linkid, pdp->pd_name, flags, in get_media()
5157 * datalink_media_t type to use as these values are media-type specific. in get_media()