Lines Matching refs:i40e

46 	i40e_t *i40e = rxg->irg_i40e;  in i40e_group_remove_mac()  local
48 struct i40e_hw *hw = &i40e->i40e_hw_space; in i40e_group_remove_mac()
55 mutex_enter(&i40e->i40e_general_lock); in i40e_group_remove_mac()
57 if (i40e->i40e_state & I40E_SUSPENDED) { in i40e_group_remove_mac()
62 for (i = 0; i < i40e->i40e_resources.ifr_nmacfilt_used; i++) { in i40e_group_remove_mac()
63 if (bcmp(mac_addr, i40e->i40e_uaddrs[i].iua_mac, in i40e_group_remove_mac()
68 if (i == i40e->i40e_resources.ifr_nmacfilt_used) { in i40e_group_remove_mac()
73 iua = &i40e->i40e_uaddrs[i]; in i40e_group_remove_mac()
74 ASSERT(i40e->i40e_resources.ifr_nmacfilt_used > 0); in i40e_group_remove_mac()
83 i40e_error(i40e, "failed to remove mac address " in i40e_group_remove_mac()
91 last = i40e->i40e_resources.ifr_nmacfilt_used - 1; in i40e_group_remove_mac()
93 i40e_uaddr_t *src = &i40e->i40e_uaddrs[last]; in i40e_group_remove_mac()
101 bzero(&i40e->i40e_uaddrs[last], sizeof (i40e_uaddr_t)); in i40e_group_remove_mac()
102 i40e->i40e_uaddrs[last].iua_mac[0] = 0x01; in i40e_group_remove_mac()
103 i40e->i40e_resources.ifr_nmacfilt_used--; in i40e_group_remove_mac()
106 mutex_exit(&i40e->i40e_general_lock); in i40e_group_remove_mac()
115 i40e_t *i40e = rxg->irg_i40e; in i40e_group_add_mac() local
116 struct i40e_hw *hw = &i40e->i40e_hw_space; in i40e_group_add_mac()
124 mutex_enter(&i40e->i40e_general_lock); in i40e_group_add_mac()
125 if (i40e->i40e_state & I40E_SUSPENDED) { in i40e_group_add_mac()
130 if (i40e->i40e_resources.ifr_nmacfilt == in i40e_group_add_mac()
131 i40e->i40e_resources.ifr_nmacfilt_used) { in i40e_group_add_mac()
136 for (i = 0; i < i40e->i40e_resources.ifr_nmacfilt_used; i++) { in i40e_group_add_mac()
137 if (bcmp(mac_addr, i40e->i40e_uaddrs[i].iua_mac, in i40e_group_add_mac()
151 i40e_error(i40e, "failed to add mac address " in i40e_group_add_mac()
159 iua = &i40e->i40e_uaddrs[i40e->i40e_resources.ifr_nmacfilt_used]; in i40e_group_add_mac()
162 i40e->i40e_resources.ifr_nmacfilt_used++; in i40e_group_add_mac()
163 ASSERT(i40e->i40e_resources.ifr_nmacfilt_used <= in i40e_group_add_mac()
164 i40e->i40e_resources.ifr_nmacfilt); in i40e_group_add_mac()
167 mutex_exit(&i40e->i40e_general_lock); in i40e_group_add_mac()
174 i40e_t *i40e = arg; in i40e_m_start() local
177 mutex_enter(&i40e->i40e_general_lock); in i40e_m_start()
178 if (i40e->i40e_state & I40E_SUSPENDED) { in i40e_m_start()
183 if (!i40e_start(i40e)) { in i40e_m_start()
188 atomic_or_32(&i40e->i40e_state, I40E_STARTED); in i40e_m_start()
190 mutex_exit(&i40e->i40e_general_lock); in i40e_m_start()
198 i40e_t *i40e = arg; in i40e_m_stop() local
200 mutex_enter(&i40e->i40e_general_lock); in i40e_m_stop()
202 if (i40e->i40e_state & I40E_SUSPENDED) in i40e_m_stop()
205 atomic_and_32(&i40e->i40e_state, ~I40E_STARTED); in i40e_m_stop()
206 i40e_stop(i40e); in i40e_m_stop()
208 mutex_exit(&i40e->i40e_general_lock); in i40e_m_stop()
220 i40e_t *i40e = arg; in i40e_m_promisc() local
221 struct i40e_hw *hw = &i40e->i40e_hw_space; in i40e_m_promisc()
224 mutex_enter(&i40e->i40e_general_lock); in i40e_m_promisc()
225 if (i40e->i40e_state & I40E_SUSPENDED) { in i40e_m_promisc()
231 ret = i40e_aq_set_vsi_unicast_promiscuous(hw, I40E_DEF_VSI_SEID(i40e), in i40e_m_promisc()
234 i40e_error(i40e, "failed to %s unicast promiscuity on " in i40e_m_promisc()
245 if (i40e->i40e_mcast_promisc_count > 0) { in i40e_m_promisc()
246 i40e->i40e_promisc_on = on; in i40e_m_promisc()
250 ret = i40e_aq_set_vsi_multicast_promiscuous(hw, I40E_DEF_VSI_SEID(i40e), in i40e_m_promisc()
253 i40e_error(i40e, "failed to %s multicast promiscuity on " in i40e_m_promisc()
262 I40E_DEF_VSI_SEID(i40e), !on, NULL, false); in i40e_m_promisc()
264 i40e_error(i40e, "failed to %s unicast promiscuity on " in i40e_m_promisc()
272 i40e->i40e_promisc_on = on; in i40e_m_promisc()
276 mutex_exit(&i40e->i40e_general_lock); in i40e_m_promisc()
284 i40e_multicast_add(i40e_t *i40e, const uint8_t *multicast_address) in i40e_multicast_add() argument
286 struct i40e_hw *hw = &i40e->i40e_hw_space; in i40e_multicast_add()
291 ASSERT(MUTEX_HELD(&i40e->i40e_general_lock)); in i40e_multicast_add()
293 if (i40e->i40e_resources.ifr_nmcastfilt_used == in i40e_multicast_add()
294 i40e->i40e_resources.ifr_nmcastfilt) { in i40e_multicast_add()
295 if (i40e->i40e_mcast_promisc_count == 0 && in i40e_multicast_add()
296 i40e->i40e_promisc_on == B_FALSE) { in i40e_multicast_add()
298 I40E_DEF_VSI_SEID(i40e), true, NULL); in i40e_multicast_add()
300 i40e_error(i40e, "failed to enable multicast " in i40e_multicast_add()
302 I40E_DEF_VSI_SEID(i40e), ret); in i40e_multicast_add()
306 i40e->i40e_mcast_promisc_count++; in i40e_multicast_add()
310 mc = &i40e->i40e_maddrs[i40e->i40e_resources.ifr_nmcastfilt_used]; in i40e_multicast_add()
316 if ((ret = i40e_aq_add_macvlan(hw, I40E_DEF_VSI_SEID(i40e), &filt, 1, in i40e_multicast_add()
318 i40e_error(i40e, "failed to add mac address " in i40e_multicast_add()
328 i40e->i40e_resources.ifr_nmcastfilt_used++; in i40e_multicast_add()
336 i40e_multicast_remove(i40e_t *i40e, const uint8_t *multicast_address) in i40e_multicast_remove() argument
339 struct i40e_hw *hw = &i40e->i40e_hw_space; in i40e_multicast_remove()
341 ASSERT(MUTEX_HELD(&i40e->i40e_general_lock)); in i40e_multicast_remove()
343 for (i = 0; i < i40e->i40e_resources.ifr_nmcastfilt_used; i++) { in i40e_multicast_remove()
347 if (bcmp(multicast_address, i40e->i40e_maddrs[i].ima_mac, in i40e_multicast_remove()
357 if (i40e_aq_remove_macvlan(hw, I40E_DEF_VSI_SEID(i40e), &filt, in i40e_multicast_remove()
359 i40e_error(i40e, "failed to remove mac address " in i40e_multicast_remove()
369 last = i40e->i40e_resources.ifr_nmcastfilt_used - 1; in i40e_multicast_remove()
371 bcopy(&i40e->i40e_maddrs[last], &i40e->i40e_maddrs[i], in i40e_multicast_remove()
373 bzero(&i40e->i40e_maddrs[last], sizeof (i40e_maddr_t)); in i40e_multicast_remove()
376 ASSERT(i40e->i40e_resources.ifr_nmcastfilt_used > 0); in i40e_multicast_remove()
377 i40e->i40e_resources.ifr_nmcastfilt_used--; in i40e_multicast_remove()
381 if (i40e->i40e_mcast_promisc_count > 0) { in i40e_multicast_remove()
382 if (i40e->i40e_mcast_promisc_count == 1 && in i40e_multicast_remove()
383 i40e->i40e_promisc_on == B_FALSE) { in i40e_multicast_remove()
385 I40E_DEF_VSI_SEID(i40e), false, NULL); in i40e_multicast_remove()
387 i40e_error(i40e, "failed to disable " in i40e_multicast_remove()
389 I40E_DEF_VSI_SEID(i40e), ret); in i40e_multicast_remove()
393 i40e->i40e_mcast_promisc_count--; in i40e_multicast_remove()
404 i40e_t *i40e = arg; in i40e_m_multicast() local
407 mutex_enter(&i40e->i40e_general_lock); in i40e_m_multicast()
409 if (i40e->i40e_state & I40E_SUSPENDED) { in i40e_m_multicast()
410 mutex_exit(&i40e->i40e_general_lock); in i40e_m_multicast()
415 rc = i40e_multicast_add(i40e, multicast_address); in i40e_m_multicast()
417 rc = i40e_multicast_remove(i40e, multicast_address); in i40e_m_multicast()
420 mutex_exit(&i40e->i40e_general_lock); in i40e_m_multicast()
461 i40e_t *i40e = itrq->itrq_i40e; in i40e_ring_stop() local
463 ddi_fm_service_impact(i40e->i40e_dip, DDI_SERVICE_LOST); in i40e_ring_stop()
464 i40e_error(i40e, "Failed to stop ring %u", itrq->itrq_index); in i40e_ring_stop()
502 i40e_t *i40e = arg; in i40e_fill_tx_ring() local
504 i40e_trqpair_t *itrq = &(i40e->i40e_trqpairs[ring_index]); in i40e_fill_tx_ring()
511 ASSERT(ring_index < i40e->i40e_num_trqpairs_per_vsi); in i40e_fill_tx_ring()
524 if (i40e->i40e_intr_type & DDI_INTR_TYPE_MSIX) { in i40e_fill_tx_ring()
526 i40e->i40e_intr_handles[itrq->itrq_tx_intrvec]; in i40e_fill_tx_ring()
535 i40e_t *i40e = arg; in i40e_fill_rx_ring() local
543 trqpair_index = (group_index * i40e->i40e_num_trqpairs_per_vsi) + in i40e_fill_rx_ring()
545 ASSERT3U(trqpair_index, <, i40e->i40e_num_trqpairs); in i40e_fill_rx_ring()
546 itrq = &i40e->i40e_trqpairs[trqpair_index]; in i40e_fill_rx_ring()
562 if (i40e->i40e_intr_type & DDI_INTR_TYPE_MSIX) { in i40e_fill_rx_ring()
564 i40e->i40e_intr_handles[itrq->itrq_rx_intrvec]; in i40e_fill_rx_ring()
573 i40e_t *i40e = arg; in i40e_fill_rx_group() local
579 rxg = &i40e->i40e_rx_groups[index]; in i40e_fill_rx_group()
588 ASSERT3U(i40e->i40e_num_rx_groups, <=, I40E_MAX_NUM_RX_GROUPS); in i40e_fill_rx_group()
589 infop->mgi_count = i40e->i40e_num_trqpairs_per_vsi; in i40e_fill_rx_group()
596 i40e_t *i40e = arg; in i40e_transceiver_info() local
601 mutex_enter(&i40e->i40e_general_lock); in i40e_transceiver_info()
602 switch (i40e->i40e_hw_space.phy.link_info.module_type[0]) { in i40e_transceiver_info()
607 mutex_exit(&i40e->i40e_general_lock); in i40e_transceiver_info()
611 present = !!(i40e->i40e_hw_space.phy.link_info.link_info & in i40e_transceiver_info()
614 usable = !!(i40e->i40e_hw_space.phy.link_info.an_info & in i40e_transceiver_info()
619 mutex_exit(&i40e->i40e_general_lock); in i40e_transceiver_info()
631 i40e_t *i40e = arg; in i40e_transceiver_read() local
632 struct i40e_hw *hw = &i40e->i40e_hw_space; in i40e_transceiver_read()
648 mutex_enter(&i40e->i40e_general_lock); in i40e_transceiver_read()
649 switch (i40e->i40e_hw_space.phy.link_info.module_type[0]) { in i40e_transceiver_read()
654 mutex_exit(&i40e->i40e_general_lock); in i40e_transceiver_read()
665 mutex_exit(&i40e->i40e_general_lock); in i40e_transceiver_read()
677 mutex_exit(&i40e->i40e_general_lock); in i40e_transceiver_read()
684 mutex_exit(&i40e->i40e_general_lock); in i40e_transceiver_read()
693 i40e_t *i40e = arg; in i40e_gld_led_set() local
694 struct i40e_hw *hw = &i40e->i40e_hw_space; in i40e_gld_led_set()
705 if (mode != MAC_LED_DEFAULT && !i40e->i40e_led_saved) { in i40e_gld_led_set()
706 i40e->i40e_led_status = i40e_led_get(hw); in i40e_gld_led_set()
707 i40e->i40e_led_saved = B_TRUE; in i40e_gld_led_set()
712 if (i40e->i40e_led_saved) { in i40e_gld_led_set()
713 i40e_led_set(hw, i40e->i40e_led_status, B_FALSE); in i40e_gld_led_set()
714 i40e->i40e_led_status = 0; in i40e_gld_led_set()
715 i40e->i40e_led_saved = B_FALSE; in i40e_gld_led_set()
737 i40e_t *i40e = arg; in i40e_m_getcapab() local
747 if (i40e->i40e_tx_hcksum_enable == B_TRUE) in i40e_m_getcapab()
755 if (i40e->i40e_tx_lso_enable == B_TRUE) { in i40e_m_getcapab()
779 cap_rings->mr_rnum = i40e->i40e_num_trqpairs_per_vsi; in i40e_m_getcapab()
786 cap_rings->mr_rnum = i40e->i40e_num_trqpairs; in i40e_m_getcapab()
788 cap_rings->mr_gnum = i40e->i40e_num_rx_groups; in i40e_m_getcapab()
829 i40e_m_setprop_private(i40e_t *i40e, const char *pr_name, uint_t pr_valsize, in i40e_m_setprop_private() argument
836 ASSERT(MUTEX_HELD(&i40e->i40e_general_lock)); in i40e_m_setprop_private()
848 i40e->i40e_rx_dma_min = (uint32_t)val; in i40e_m_setprop_private()
857 i40e->i40e_tx_dma_min = (uint32_t)val; in i40e_m_setprop_private()
866 i40e->i40e_rx_itr = (uint32_t)val; in i40e_m_setprop_private()
867 i40e_intr_set_itr(i40e, I40E_ITR_INDEX_RX, i40e->i40e_rx_itr); in i40e_m_setprop_private()
876 i40e->i40e_tx_itr = (uint32_t)val; in i40e_m_setprop_private()
877 i40e_intr_set_itr(i40e, I40E_ITR_INDEX_TX, i40e->i40e_tx_itr); in i40e_m_setprop_private()
886 i40e->i40e_tx_itr = (uint32_t)val; in i40e_m_setprop_private()
887 i40e_intr_set_itr(i40e, I40E_ITR_INDEX_OTHER, in i40e_m_setprop_private()
888 i40e->i40e_other_itr); in i40e_m_setprop_private()
896 i40e_m_getprop_private(i40e_t *i40e, const char *pr_name, uint_t pr_valsize, in i40e_m_getprop_private() argument
901 ASSERT(MUTEX_HELD(&i40e->i40e_general_lock)); in i40e_m_getprop_private()
904 val = i40e->i40e_rx_dma_min; in i40e_m_getprop_private()
906 val = i40e->i40e_tx_dma_min; in i40e_m_getprop_private()
908 val = i40e->i40e_rx_itr; in i40e_m_getprop_private()
910 val = i40e->i40e_tx_itr; in i40e_m_getprop_private()
912 val = i40e->i40e_other_itr; in i40e_m_getprop_private()
930 i40e_m_propinfo_private(i40e_t *i40e, const char *pr_name, in i40e_m_propinfo_private() argument
969 i40e_update_fec(i40e_t *i40e, link_fec_t fec) in i40e_update_fec() argument
971 struct i40e_hw *hw = &i40e->i40e_hw_space; in i40e_update_fec()
977 ASSERT(MUTEX_HELD(&i40e->i40e_general_lock)); in i40e_update_fec()
979 if (fec == i40e->i40e_fec_requested) in i40e_update_fec()
1033 i40e->i40e_fec_requested = fec_requested; in i40e_update_fec()
1043 i40e_t *i40e = arg; in i40e_m_setprop() local
1046 mutex_enter(&i40e->i40e_general_lock); in i40e_m_setprop()
1047 if (i40e->i40e_state & I40E_SUSPENDED) { in i40e_m_setprop()
1048 mutex_exit(&i40e->i40e_general_lock); in i40e_m_setprop()
1087 if (new_mtu == i40e->i40e_sdu) in i40e_m_setprop()
1096 if (i40e->i40e_state & I40E_STARTED) { in i40e_m_setprop()
1101 ret = mac_maxsdu_update(i40e->i40e_mac_hdl, new_mtu); in i40e_m_setprop()
1103 i40e->i40e_sdu = new_mtu; in i40e_m_setprop()
1104 i40e_update_mtu(i40e); in i40e_m_setprop()
1111 ret = i40e_update_fec(i40e, fec); in i40e_m_setprop()
1115 ret = i40e_m_setprop_private(i40e, pr_name, pr_valsize, pr_val); in i40e_m_setprop()
1122 mutex_exit(&i40e->i40e_general_lock); in i40e_m_setprop()
1141 i40e_link_to_media(i40e_t *i40e) in i40e_link_to_media() argument
1143 switch (i40e->i40e_link_state) { in i40e_link_to_media()
1152 switch (i40e->i40e_hw_space.phy.link_info.phy_type) { in i40e_link_to_media()
1243 i40e_t *i40e = arg; in i40e_m_getprop() local
1249 mutex_enter(&i40e->i40e_general_lock); in i40e_m_getprop()
1257 bcopy(&i40e->i40e_link_duplex, pr_val, sizeof (link_duplex_t)); in i40e_m_getprop()
1264 speed = i40e->i40e_link_speed * 1000000ULL; in i40e_m_getprop()
1272 bcopy(&i40e->i40e_link_state, pr_val, sizeof (link_state_t)); in i40e_m_getprop()
1275 *(mac_ether_media_t *)pr_val = i40e_link_to_media(i40e); in i40e_m_getprop()
1302 bcopy(&i40e->i40e_sdu, pr_val, sizeof (uint32_t)); in i40e_m_getprop()
1310 i40e_fec_to_linkfec(&i40e->i40e_hw_space); in i40e_m_getprop()
1317 *(link_fec_t *)pr_val = i40e->i40e_fec_requested; in i40e_m_getprop()
1331 *u8 = (i40e->i40e_phy.link_speed & I40E_LINK_SPEED_100MB) != 0; in i40e_m_getprop()
1340 *u8 = (i40e->i40e_phy.link_speed & I40E_LINK_SPEED_1GB) != 0; in i40e_m_getprop()
1349 *u8 = (i40e->i40e_phy.link_speed & I40E_LINK_SPEED_2_5GB) != 0; in i40e_m_getprop()
1358 *u8 = (i40e->i40e_phy.link_speed & I40E_LINK_SPEED_5GB) != 0; in i40e_m_getprop()
1367 *u8 = (i40e->i40e_phy.link_speed & I40E_LINK_SPEED_10GB) != 0; in i40e_m_getprop()
1376 *u8 = (i40e->i40e_phy.link_speed & I40E_LINK_SPEED_25GB) != 0; in i40e_m_getprop()
1385 *u8 = (i40e->i40e_phy.link_speed & I40E_LINK_SPEED_40GB) != 0; in i40e_m_getprop()
1388 ret = i40e_m_getprop_private(i40e, pr_name, pr_valsize, pr_val); in i40e_m_getprop()
1395 mutex_exit(&i40e->i40e_general_lock); in i40e_m_getprop()
1404 i40e_t *i40e = arg; in i40e_m_propinfo() local
1406 mutex_enter(&i40e->i40e_general_lock); in i40e_m_propinfo()
1427 if (i40e_is_25G_device(i40e->i40e_hw_space.device_id)) in i40e_m_propinfo()
1431 if (i40e_is_25G_device(i40e->i40e_hw_space.device_id)) { in i40e_m_propinfo()
1452 (i40e->i40e_phy.link_speed & I40E_LINK_SPEED_100MB) != 0); in i40e_m_propinfo()
1457 (i40e->i40e_phy.link_speed & I40E_LINK_SPEED_100MB) != 0); in i40e_m_propinfo()
1462 (i40e->i40e_phy.link_speed & I40E_LINK_SPEED_1GB) != 0); in i40e_m_propinfo()
1467 (i40e->i40e_phy.link_speed & I40E_LINK_SPEED_1GB) != 0); in i40e_m_propinfo()
1472 (i40e->i40e_phy.link_speed & I40E_LINK_SPEED_2_5GB) != 0); in i40e_m_propinfo()
1477 (i40e->i40e_phy.link_speed & I40E_LINK_SPEED_2_5GB) != 0); in i40e_m_propinfo()
1482 (i40e->i40e_phy.link_speed & I40E_LINK_SPEED_5GB) != 0); in i40e_m_propinfo()
1487 (i40e->i40e_phy.link_speed & I40E_LINK_SPEED_5GB) != 0); in i40e_m_propinfo()
1492 (i40e->i40e_phy.link_speed & I40E_LINK_SPEED_10GB) != 0); in i40e_m_propinfo()
1497 (i40e->i40e_phy.link_speed & I40E_LINK_SPEED_10GB) != 0); in i40e_m_propinfo()
1502 (i40e->i40e_phy.link_speed & I40E_LINK_SPEED_25GB) != 0); in i40e_m_propinfo()
1507 (i40e->i40e_phy.link_speed & I40E_LINK_SPEED_25GB) != 0); in i40e_m_propinfo()
1512 (i40e->i40e_phy.link_speed & I40E_LINK_SPEED_40GB) != 0); in i40e_m_propinfo()
1517 (i40e->i40e_phy.link_speed & I40E_LINK_SPEED_40GB) != 0); in i40e_m_propinfo()
1520 i40e_m_propinfo_private(i40e, pr_name, prh); in i40e_m_propinfo()
1526 mutex_exit(&i40e->i40e_general_lock); in i40e_m_propinfo()
1552 i40e_register_mac(i40e_t *i40e) in i40e_register_mac() argument
1554 struct i40e_hw *hw = &i40e->i40e_hw_space; in i40e_register_mac()
1562 mac->m_driver = i40e; in i40e_register_mac()
1563 mac->m_dip = i40e->i40e_dip; in i40e_register_mac()
1567 mac->m_max_sdu = i40e->i40e_sdu; in i40e_register_mac()
1572 status = mac_register(mac, &i40e->i40e_mac_hdl); in i40e_register_mac()
1574 i40e_error(i40e, "mac_register() returned %d", status); in i40e_register_mac()