Lines Matching defs:i40e

41 	i40e_t *i40e = arg;
43 struct i40e_hw *hw = &i40e->i40e_hw_space;
50 mutex_enter(&i40e->i40e_general_lock);
52 if (i40e->i40e_state & I40E_SUSPENDED) {
57 for (i = 0; i < i40e->i40e_resources.ifr_nmacfilt_used; i++) {
58 if (bcmp(mac_addr, i40e->i40e_uaddrs[i].iua_mac,
63 if (i == i40e->i40e_resources.ifr_nmacfilt_used) {
68 iua = &i40e->i40e_uaddrs[i];
69 ASSERT(i40e->i40e_resources.ifr_nmacfilt_used > 0);
78 i40e_error(i40e, "failed to remove mac address "
86 last = i40e->i40e_resources.ifr_nmacfilt_used - 1;
88 i40e_uaddr_t *src = &i40e->i40e_uaddrs[last];
96 bzero(&i40e->i40e_uaddrs[last], sizeof (i40e_uaddr_t));
97 i40e->i40e_uaddrs[last].iua_mac[0] = 0x01;
98 i40e->i40e_resources.ifr_nmacfilt_used--;
101 mutex_exit(&i40e->i40e_general_lock);
109 i40e_t *i40e = arg;
110 struct i40e_hw *hw = &i40e->i40e_hw_space;
118 mutex_enter(&i40e->i40e_general_lock);
119 if (i40e->i40e_state & I40E_SUSPENDED) {
124 if (i40e->i40e_resources.ifr_nmacfilt ==
125 i40e->i40e_resources.ifr_nmacfilt_used) {
130 for (i = 0; i < i40e->i40e_resources.ifr_nmacfilt_used; i++) {
131 if (bcmp(mac_addr, i40e->i40e_uaddrs[i].iua_mac,
147 if ((ret = i40e_aq_add_macvlan(hw, i40e->i40e_vsi_id, &filt, 1,
149 i40e_error(i40e, "failed to add mac address "
157 iua = &i40e->i40e_uaddrs[i40e->i40e_resources.ifr_nmacfilt_used];
159 iua->iua_vsi = i40e->i40e_vsi_id;
160 i40e->i40e_resources.ifr_nmacfilt_used++;
161 ASSERT(i40e->i40e_resources.ifr_nmacfilt_used <=
162 i40e->i40e_resources.ifr_nmacfilt);
165 mutex_exit(&i40e->i40e_general_lock);
172 i40e_t *i40e = arg;
175 mutex_enter(&i40e->i40e_general_lock);
176 if (i40e->i40e_state & I40E_SUSPENDED) {
181 if (!i40e_start(i40e, B_TRUE)) {
186 atomic_or_32(&i40e->i40e_state, I40E_STARTED);
188 mutex_exit(&i40e->i40e_general_lock);
196 i40e_t *i40e = arg;
198 mutex_enter(&i40e->i40e_general_lock);
200 if (i40e->i40e_state & I40E_SUSPENDED)
203 atomic_and_32(&i40e->i40e_state, ~I40E_STARTED);
204 i40e_stop(i40e, B_TRUE);
206 mutex_exit(&i40e->i40e_general_lock);
218 i40e_t *i40e = arg;
219 struct i40e_hw *hw = &i40e->i40e_hw_space;
222 mutex_enter(&i40e->i40e_general_lock);
223 if (i40e->i40e_state & I40E_SUSPENDED) {
229 ret = i40e_aq_set_vsi_unicast_promiscuous(hw, i40e->i40e_vsi_id,
232 i40e_error(i40e, "failed to %s unicast promiscuity on "
243 if (i40e->i40e_mcast_promisc_count > 0) {
244 i40e->i40e_promisc_on = on;
248 ret = i40e_aq_set_vsi_multicast_promiscuous(hw, i40e->i40e_vsi_id,
251 i40e_error(i40e, "failed to %s multicast promiscuity on "
259 ret = i40e_aq_set_vsi_unicast_promiscuous(hw, i40e->i40e_vsi_id,
262 i40e_error(i40e, "failed to %s unicast promiscuity on "
270 i40e->i40e_promisc_on = on;
274 mutex_exit(&i40e->i40e_general_lock);
282 i40e_multicast_add(i40e_t *i40e, const uint8_t *multicast_address)
284 struct i40e_hw *hw = &i40e->i40e_hw_space;
289 ASSERT(MUTEX_HELD(&i40e->i40e_general_lock));
291 if (i40e->i40e_resources.ifr_nmcastfilt_used ==
292 i40e->i40e_resources.ifr_nmcastfilt) {
293 if (i40e->i40e_mcast_promisc_count == 0 &&
294 i40e->i40e_promisc_on == B_FALSE) {
296 i40e->i40e_vsi_id, B_TRUE, NULL);
298 i40e_error(i40e, "failed to enable multicast "
300 i40e->i40e_vsi_id, ret);
304 i40e->i40e_mcast_promisc_count++;
308 mc = &i40e->i40e_maddrs[i40e->i40e_resources.ifr_nmcastfilt_used];
314 if ((ret = i40e_aq_add_macvlan(hw, i40e->i40e_vsi_id, &filt, 1,
316 i40e_error(i40e, "failed to add mac address "
326 i40e->i40e_resources.ifr_nmcastfilt_used++;
334 i40e_multicast_remove(i40e_t *i40e, const uint8_t *multicast_address)
337 struct i40e_hw *hw = &i40e->i40e_hw_space;
339 ASSERT(MUTEX_HELD(&i40e->i40e_general_lock));
341 for (i = 0; i < i40e->i40e_resources.ifr_nmcastfilt_used; i++) {
345 if (bcmp(multicast_address, i40e->i40e_maddrs[i].ima_mac,
355 if (i40e_aq_remove_macvlan(hw, i40e->i40e_vsi_id,
357 i40e_error(i40e, "failed to remove mac address "
367 last = i40e->i40e_resources.ifr_nmcastfilt_used - 1;
369 bcopy(&i40e->i40e_maddrs[last], &i40e->i40e_maddrs[i],
371 bzero(&i40e->i40e_maddrs[last], sizeof (i40e_maddr_t));
374 ASSERT(i40e->i40e_resources.ifr_nmcastfilt_used > 0);
375 i40e->i40e_resources.ifr_nmcastfilt_used--;
379 if (i40e->i40e_mcast_promisc_count > 0) {
380 if (i40e->i40e_mcast_promisc_count == 1 &&
381 i40e->i40e_promisc_on == B_FALSE) {
383 i40e->i40e_vsi_id, B_FALSE, NULL);
385 i40e_error(i40e, "failed to disable "
387 i40e->i40e_vsi_id, ret);
391 i40e->i40e_mcast_promisc_count--;
402 i40e_t *i40e = arg;
405 mutex_enter(&i40e->i40e_general_lock);
407 if (i40e->i40e_state & I40E_SUSPENDED) {
408 mutex_exit(&i40e->i40e_general_lock);
413 rc = i40e_multicast_add(i40e, multicast_address);
415 rc = i40e_multicast_remove(i40e, multicast_address);
418 mutex_exit(&i40e->i40e_general_lock);
427 * At this time, we don't support toggling i40e into loopback mode. It's
454 i40e_t *i40e = itrq->itrq_i40e;
456 mutex_enter(&i40e->i40e_general_lock);
457 ASSERT(i40e->i40e_intr_poll == B_TRUE);
458 i40e_intr_rx_queue_enable(i40e, itrq->itrq_index);
459 i40e->i40e_intr_poll = B_FALSE;
460 mutex_exit(&i40e->i40e_general_lock);
470 i40e_t *i40e = itrq->itrq_i40e;
472 mutex_enter(&i40e->i40e_general_lock);
473 i40e_intr_rx_queue_disable(i40e, itrq->itrq_index);
474 i40e->i40e_intr_poll = B_TRUE;
475 mutex_exit(&i40e->i40e_general_lock);
485 i40e_t *i40e = arg;
487 i40e_trqpair_t *itrq = &(i40e->i40e_trqpairs[ring_index]);
494 ASSERT(ring_index < i40e->i40e_num_trqpairs);
507 if (i40e->i40e_intr_type & DDI_INTR_TYPE_MSIX) {
509 i40e->i40e_intr_handles[itrq->itrq_tx_intrvec];
518 i40e_t *i40e = arg;
520 i40e_trqpair_t *itrq = &i40e->i40e_trqpairs[ring_index];
528 ASSERT3S(ring_index, <, i40e->i40e_num_trqpairs);
544 if (i40e->i40e_intr_type & DDI_INTR_TYPE_MSIX) {
546 i40e->i40e_intr_handles[itrq->itrq_rx_intrvec];
555 i40e_t *i40e = arg;
565 i40e->i40e_rx_group_handle = gh;
566 infop->mgi_driver = (mac_group_driver_t)i40e;
572 ASSERT(i40e->i40e_num_rx_groups == I40E_GROUP_MAX);
573 infop->mgi_count = i40e->i40e_num_trqpairs;
579 i40e_t *i40e = arg;
587 if (i40e->i40e_tx_hcksum_enable == B_TRUE)
605 cap_rings->mr_rnum = i40e->i40e_num_trqpairs;
612 cap_rings->mr_rnum = i40e->i40e_num_trqpairs;
632 i40e_m_setprop_private(i40e_t *i40e, const char *pr_name, uint_t pr_valsize,
639 ASSERT(MUTEX_HELD(&i40e->i40e_general_lock));
651 i40e->i40e_rx_dma_min = (uint32_t)val;
660 i40e->i40e_tx_dma_min = (uint32_t)val;
669 i40e->i40e_rx_itr = (uint32_t)val;
670 i40e_intr_set_itr(i40e, I40E_ITR_INDEX_RX, i40e->i40e_rx_itr);
679 i40e->i40e_tx_itr = (uint32_t)val;
680 i40e_intr_set_itr(i40e, I40E_ITR_INDEX_TX, i40e->i40e_tx_itr);
689 i40e->i40e_tx_itr = (uint32_t)val;
690 i40e_intr_set_itr(i40e, I40E_ITR_INDEX_OTHER,
691 i40e->i40e_other_itr);
699 i40e_m_getprop_private(i40e_t *i40e, const char *pr_name, uint_t pr_valsize,
704 ASSERT(MUTEX_HELD(&i40e->i40e_general_lock));
707 val = i40e->i40e_rx_dma_min;
709 val = i40e->i40e_tx_dma_min;
711 val = i40e->i40e_rx_itr;
713 val = i40e->i40e_tx_itr;
715 val = i40e->i40e_other_itr;
733 i40e_m_propinfo_private(i40e_t *i40e, const char *pr_name,
776 i40e_t *i40e = arg;
779 mutex_enter(&i40e->i40e_general_lock);
780 if (i40e->i40e_state & I40E_SUSPENDED) {
781 mutex_exit(&i40e->i40e_general_lock);
813 if (new_mtu == i40e->i40e_sdu)
822 if (i40e->i40e_state & I40E_STARTED) {
827 ret = mac_maxsdu_update(i40e->i40e_mac_hdl, new_mtu);
829 i40e->i40e_sdu = new_mtu;
830 i40e_update_mtu(i40e);
835 ret = i40e_m_setprop_private(i40e, pr_name, pr_valsize, pr_val);
842 mutex_exit(&i40e->i40e_general_lock);
850 i40e_t *i40e = arg;
856 mutex_enter(&i40e->i40e_general_lock);
864 bcopy(&i40e->i40e_link_duplex, pr_val, sizeof (link_duplex_t));
871 speed = i40e->i40e_link_speed * 1000000ULL;
879 bcopy(&i40e->i40e_link_state, pr_val, sizeof (link_state_t));
906 bcopy(&i40e->i40e_sdu, pr_val, sizeof (uint32_t));
920 *u8 = (i40e->i40e_phy.link_speed & I40E_LINK_SPEED_100MB) != 0;
929 *u8 = (i40e->i40e_phy.link_speed & I40E_LINK_SPEED_1GB) != 0;
938 *u8 = (i40e->i40e_phy.link_speed & I40E_LINK_SPEED_10GB) != 0;
947 *u8 = (i40e->i40e_phy.link_speed & I40E_LINK_SPEED_40GB) != 0;
950 ret = i40e_m_getprop_private(i40e, pr_name, pr_valsize, pr_val);
957 mutex_exit(&i40e->i40e_general_lock);
966 i40e_t *i40e = arg;
968 mutex_enter(&i40e->i40e_general_lock);
1001 (i40e->i40e_phy.link_speed & I40E_LINK_SPEED_100MB) != 0);
1006 (i40e->i40e_phy.link_speed & I40E_LINK_SPEED_100MB) != 0);
1011 (i40e->i40e_phy.link_speed & I40E_LINK_SPEED_1GB) != 0);
1016 (i40e->i40e_phy.link_speed & I40E_LINK_SPEED_1GB) != 0);
1021 (i40e->i40e_phy.link_speed & I40E_LINK_SPEED_10GB) != 0);
1026 (i40e->i40e_phy.link_speed & I40E_LINK_SPEED_10GB) != 0);
1031 (i40e->i40e_phy.link_speed & I40E_LINK_SPEED_40GB) != 0);
1036 (i40e->i40e_phy.link_speed & I40E_LINK_SPEED_40GB) != 0);
1039 i40e_m_propinfo_private(i40e, pr_name, prh);
1045 mutex_exit(&i40e->i40e_general_lock);
1071 i40e_register_mac(i40e_t *i40e)
1073 struct i40e_hw *hw = &i40e->i40e_hw_space;
1081 mac->m_driver = i40e;
1082 mac->m_dip = i40e->i40e_dip;
1086 mac->m_max_sdu = i40e->i40e_sdu;
1091 status = mac_register(mac, &i40e->i40e_mac_hdl);
1093 i40e_error(i40e, "mac_register() returned %d", status);