After the putback of CR 6667363 ndd ioctl logic can be handled in the GLDv3 layers in onnv build 90, nge ndd doesn't report adv_1000hdx_cap read/write capacity correctly.
bash-3.2# ndd -get /dev/nge1 ?
WARNING: The ndd commands for datalink administration are obsolete and may be removed in a future release of Solaris. Use dladm(1M) to manage datalink tunables.
? (read only)
adv_autoneg_cap (read and write)
adv_1000fdx_cap (read and write)
adv_1000hdx_cap (read and write)
adv_100fdx_cap (read and write)
adv_100hdx_cap (read and write)
adv_10fdx_cap (read and write)
adv_10hdx_cap (read and write)
adv_100T4_cap (read only)
link_status (read only)
link_speed (read only)
link_duplex (read only)
autoneg_cap (read only)
pause_cap (read only)
asym_pause_cap (read only)
1000fdx_cap (read only)
1000hdx_cap (read only)
100T4_cap (read only)
100fdx_cap (read only)
100hdx_cap (read only)
10fdx_cap (read only)
10hdx_cap (read only)
lp_autoneg_cap (read only)
lp_pause_cap (read only)
lp_asym_pause_cap (read only)
lp_1000hdx_cap (read only)
lp_1000fdx_cap (read only)
lp_100T4_cap (read only)
lp_100fdx_cap (read only)
lp_100hdx_cap (read only)
lp_10fdx_cap (read only)
lp_10hdx_cap (read only)
link_autoneg (read only)
tx_bcopy_threshold (read and write)
rx_bcopy_threshold (read and write)
recv_max_packet (read and write)
poll_quiet_time (read and write)
poll_busy_time (read and write)
rx_intr_hwater (read and write)
rx_intr_lwater (read and write)
adv_pause_cap (read and write)
adv_asym_pause_cap (read and write)
tx_n_intr (read and write)
nge_m_setprop() in nge_main.c and nge_m_getprop()
show that it's a read-only property
1581 case MAC_PROP_ADV_1000FDX_CAP:
1582 case MAC_PROP_ADV_1000HDX_CAP:
1583 case MAC_PROP_ADV_100FDX_CAP:
1584 case MAC_PROP_ADV_100HDX_CAP:
1585 case MAC_PROP_ADV_10FDX_CAP:
1586 case MAC_PROP_ADV_10HDX_CAP:
1587 case MAC_PROP_STATUS:
1588 case MAC_PROP_SPEED:
1589 case MAC_PROP_DUPLEX:
1590 case MAC_PROP_EN_1000HDX_CAP:
1591 err = ENOTSUP; /* read-only prop. Can't set this */
1592 break;
1818 case MAC_PROP_ADV_1000HDX_CAP:
1819 if (is_default) {
1820 *(uint8_t *)pr_val = 0;
1821 } else {
1822 *(uint8_t *)pr_val = ngep->param_adv_1000hdx;
1823 }
1824 break;
1825 case MAC_PROP_EN_1000HDX_CAP:
1826 if (is_default) {
1827 *(uint8_t *)pr_val = 0;
1828 } else {
1829 *(uint8_t *)pr_val = ngep->param_en_1000hdx;
1830 }
1831 break;
The issue is that Brussels interface should extract these information from drivers to ndd. Further concern is that if a Fast Ethernet driver migrates to Brussels, showing their 1000fdx/hdx write capacities is explicit not proper.