Lines Matching refs:softring

167 	mac_soft_ring_t *softring;					\
176 softring = mac_tx_srs->srs_tx_soft_rings[i]; \
178 (void) mac_soft_ring_bind(softring, \
231 mac_soft_ring_t *softring, *next, *head;
249 for (softring = head; softring != NULL; softring = next) {
250 next = softring->s_ring_next;
251 mac_soft_ring_free(softring);
318 mac_soft_ring_t *softring;
327 for (softring = mac_srs->srs_soft_ring_head;
328 softring != NULL; softring = softring->s_ring_next) {
329 if ((softring->s_ring_type & ST_RING_TCP) &&
330 (softring->s_ring_rx_arg2 != NULL)) {
332 softring->s_ring_rx_arg2);
341 mac_soft_ring_t *softring;
350 for (softring = mac_srs->srs_soft_ring_head;
351 softring != NULL; softring = softring->s_ring_next) {
352 if ((softring->s_ring_type & ST_RING_TCP) &&
353 (softring->s_ring_rx_arg2 != NULL)) {
355 softring->s_ring_rx_arg2);
370 mac_soft_ring_t *softring;
394 softring = mac_srs->srs_soft_ring_head;
395 while (softring != NULL) {
396 if (softring->s_ring_type & (ST_RING_TCP | ST_RING_UDP)) {
402 mac_soft_ring_dls_bypass(softring,
409 if (!(softring->s_ring_type & ST_RING_TCP)) {
410 softring->s_ring_rx_arg2 = NULL;
411 softring = softring->s_ring_next;
414 mrf.mrf_rx_arg = softring;
415 mrf.mrf_intr_handle = (mac_intr_handle_t)softring;
416 mrf.mrf_cpu_id = softring->s_ring_cpuid;
419 softring->s_ring_rx_arg2 = mcip->mci_resource_add(
422 softring = softring->s_ring_next;
435 mac_soft_ring_t *softring;
462 for (softring = mac_srs->srs_soft_ring_head;
463 softring != NULL; softring = softring->s_ring_next) {
464 if (!(softring->s_ring_type & (ST_RING_UDP | ST_RING_TCP)))
467 if ((softring->s_ring_type & ST_RING_TCP) &&
468 softring->s_ring_rx_arg2 != NULL) {
470 softring->s_ring_rx_arg2);
473 mutex_enter(&softring->s_ring_lock);
474 while (softring->s_ring_state & S_RING_PROC) {
475 softring->s_ring_state |= S_RING_CLIENT_WAIT;
476 cv_wait(&softring->s_ring_client_cv,
477 &softring->s_ring_lock);
479 softring->s_ring_state &= ~S_RING_CLIENT_WAIT;
480 softring->s_ring_rx_arg2 = NULL;
481 softring->s_ring_rx_func = mac_rx_deliver;
482 softring->s_ring_rx_arg1 = mcip;
483 mutex_exit(&softring->s_ring_lock);
1474 mac_soft_ring_t *softring;
1482 softring = srs->srs_soft_ring_head;
1483 while (softring != NULL) {
1484 softring->s_ring_type &= ~ST_RING_BW_CTL;
1485 softring = softring->s_ring_next;
1500 softring = srs->srs_soft_ring_head;
1501 while (softring != NULL) {
1502 softring->s_ring_type |= ST_RING_BW_CTL;
1503 softring = softring->s_ring_next;
1600 mac_soft_ring_t *softring;
1607 softring = mac_srs->srs_soft_ring_head;
1608 while (softring != NULL) {
1609 mutex_enter(&softring->s_ring_lock);
1610 softring->s_ring_rx_func = rx_func;
1611 softring->s_ring_rx_arg1 = rx_arg1;
1612 mutex_exit(&softring->s_ring_lock);
1613 softring = softring->s_ring_next;
1685 mac_soft_ring_t *softring;
1687 softring = mac_srs->srs_soft_ring_head;
1688 if (softring == NULL) {
1697 while (softring != NULL) {
1698 if (softring->s_ring_type & ST_RING_TCP) {
1699 mac_srs->srs_tcp_soft_rings[tcp_count++] = softring;
1700 } else if (softring->s_ring_type & ST_RING_UDP) {
1701 mac_srs->srs_udp_soft_rings[udp_count++] = softring;
1702 } else if (softring->s_ring_type & ST_RING_OTH) {
1703 mac_srs->srs_oth_soft_rings[oth_count++] = softring;
1705 ASSERT(softring->s_ring_type & ST_RING_TX);
1706 mac_srs->srs_tx_soft_rings[tx_count++] = softring;
1708 softring = softring->s_ring_next;
1725 mac_soft_ring_t *softring;
1737 softring = mac_soft_ring_create(id, mac_soft_ring_worker_wait,
1740 softring->s_ring_rx_arg2 = NULL;
1747 mac_soft_ring_dls_bypass(softring,
1751 mrf.mrf_rx_arg = softring;
1752 mrf.mrf_intr_handle = (mac_intr_handle_t)softring;
1756 * this softring to maintain full CPU locality through
1758 * the softring so the flow control can be pushed
1761 softring->s_ring_rx_arg2 =
1769 * rings. Now create the UDP softring and allow it to
1772 softring = mac_soft_ring_create(id, mac_soft_ring_worker_wait,
1775 softring->s_ring_rx_arg2 = NULL;
1778 mac_soft_ring_dls_bypass(softring,
1784 softring = mac_soft_ring_create(id, mac_soft_ring_worker_wait,
1787 softring->s_ring_rx_arg2 = NULL;
1803 mac_soft_ring_t *softring;
1852 softring = mac_rx_srs->srs_tcp_soft_rings[i];
1853 if (softring->s_ring_rx_arg2 != NULL) {
1856 softring->s_ring_rx_arg2);
1878 softring = mac_rx_srs->srs_tcp_soft_rings[i];
1879 if (softring->s_ring_rx_arg2 != NULL) {
1881 softring->s_ring_rx_arg2, cpuid);
2731 * 1) TCP softring which is polled by TCP squeue where possible
2734 * 3) OTH softring which goes via DLS (currently deal with IPv6
2743 * softring based on protocol. Since TCP has IP based squeue
2745 * its own softring which can be polled by IP squeue. We need
2746 * to separate out UDP/SCTP to UDP softring since it can bypass
2748 * need a softring (OTH) for rest.
2771 * out to the correct softring based on their protocol and
2791 * let squeue do the polling on TCP softring.
3424 mac_soft_ring_t *softring;
3440 for (softring = mac_srs->srs_soft_ring_head; softring != NULL;
3441 softring = softring->s_ring_next)
3442 (void) untimeout(softring->s_ring_tid);
3453 * SRS worker, poll, and softring threads. The SRS worker thread serves as
3548 mac_soft_ring_t *softring;
3550 for (softring = mac_srs->srs_soft_ring_head; softring != NULL;
3551 softring = softring->s_ring_next)
3552 mac_soft_ring_signal(softring, sr_flag);
3558 * SRS worker, poll, and softring threads. The SRS worker thread serves as
3565 mac_soft_ring_t *softring;
3589 for (softring = mac_srs->srs_soft_ring_head; softring != NULL;
3590 softring = softring->s_ring_next) {
3591 if (!(softring->s_ring_state & S_RING_QUIESCE))
3593 mac_soft_ring_signal(softring, S_RING_RESTART);
3746 mac_soft_ring_remove(mac_soft_ring_set_t *mac_srs, mac_soft_ring_t *softring)
3753 mac_soft_ring_signal(softring, S_RING_CONDEMNED);
3759 if (softring == mac_srs->srs_soft_ring_head) {
3760 mac_srs->srs_soft_ring_head = softring->s_ring_next;
3767 softring->s_ring_prev->s_ring_next =
3768 softring->s_ring_next;
3769 if (softring->s_ring_next != NULL) {
3770 softring->s_ring_next->s_ring_prev =
3771 softring->s_ring_prev;
3774 softring->s_ring_prev;
3782 mac_soft_ring_free(softring);