Lines Matching refs:grp

55 aggr_send_update_policy(aggr_grp_t *grp, uint32_t policy)  in aggr_send_update_policy()  argument
59 ASSERT(MAC_PERIM_HELD(grp->lg_mh)); in aggr_send_update_policy()
68 grp->lg_tx_policy = policy; in aggr_send_update_policy()
69 grp->lg_mac_tx_policy = mac_policy; in aggr_send_update_policy()
82 aggr_grp_t *grp = arg; in aggr_find_tx_ring() local
86 rw_enter(&grp->lg_tx_lock, RW_READER); in aggr_find_tx_ring()
87 if (grp->lg_ntx_ports == 0) { in aggr_find_tx_ring()
92 rw_exit(&grp->lg_tx_lock); in aggr_find_tx_ring()
96 hash = mac_pkt_hash(DL_ETHER, mp, grp->lg_mac_tx_policy, B_TRUE); in aggr_find_tx_ring()
97 port = grp->lg_tx_ports[hash % grp->lg_ntx_ports]; in aggr_find_tx_ring()
117 rw_exit(&grp->lg_tx_lock); in aggr_find_tx_ring()
136 aggr_grp_t *grp = (aggr_grp_t *)arg; in aggr_tx_notify_thread() local
139 CALLB_CPR_INIT(&cprinfo, &grp->lg_tx_flowctl_lock, callb_generic_cpr, in aggr_tx_notify_thread()
142 mutex_enter(&grp->lg_tx_flowctl_lock); in aggr_tx_notify_thread()
143 while (!grp->lg_tx_notify_done) { in aggr_tx_notify_thread()
144 if ((grp->lg_tx_blocked_cnt) == 0) { in aggr_tx_notify_thread()
146 cv_wait(&grp->lg_tx_flowctl_cv, in aggr_tx_notify_thread()
147 &grp->lg_tx_flowctl_lock); in aggr_tx_notify_thread()
148 CALLB_CPR_SAFE_END(&cprinfo, &grp->lg_tx_flowctl_lock); in aggr_tx_notify_thread()
151 while (grp->lg_tx_blocked_cnt != 0) { in aggr_tx_notify_thread()
152 grp->lg_tx_blocked_cnt--; in aggr_tx_notify_thread()
154 grp->lg_tx_blocked_rings[grp->lg_tx_blocked_cnt]; in aggr_tx_notify_thread()
155 mutex_exit(&grp->lg_tx_flowctl_lock); in aggr_tx_notify_thread()
156 mac_tx_ring_update(grp->lg_mh, pseudo_mrh); in aggr_tx_notify_thread()
157 mutex_enter(&grp->lg_tx_flowctl_lock); in aggr_tx_notify_thread()
163 grp->lg_tx_notify_thread = NULL; in aggr_tx_notify_thread()
179 aggr_grp_t *grp = port->lp_grp; in aggr_tx_ring_update() local
197 mutex_enter(&grp->lg_tx_flowctl_lock); in aggr_tx_ring_update()
206 for (i = 0; i < grp->lg_tx_blocked_cnt; i++) { in aggr_tx_ring_update()
207 if (grp->lg_tx_blocked_rings[i] == pseudo_mrh) { in aggr_tx_ring_update()
208 mutex_exit(&grp->lg_tx_flowctl_lock); in aggr_tx_ring_update()
213 grp->lg_tx_blocked_rings[grp->lg_tx_blocked_cnt] = pseudo_mrh; in aggr_tx_ring_update()
214 grp->lg_tx_blocked_cnt++; in aggr_tx_ring_update()
215 cv_signal(&grp->lg_tx_flowctl_cv); in aggr_tx_ring_update()
216 mutex_exit(&grp->lg_tx_flowctl_lock); in aggr_tx_ring_update()
237 aggr_grp_t *grp = port->lp_grp; in aggr_send_port_enable() local
239 ASSERT(MAC_PERIM_HELD(grp->lg_mh)); in aggr_send_port_enable()
250 rw_enter(&grp->lg_tx_lock, RW_WRITER); in aggr_send_port_enable()
251 if (grp->lg_tx_ports_size < grp->lg_ntx_ports+1) { in aggr_send_port_enable()
256 new_size = grp->lg_ntx_ports+1; in aggr_send_port_enable()
260 if (grp->lg_tx_ports_size > 0) { in aggr_send_port_enable()
261 ASSERT(grp->lg_tx_ports != NULL); in aggr_send_port_enable()
262 bcopy(grp->lg_tx_ports, new_ports, in aggr_send_port_enable()
263 grp->lg_ntx_ports * sizeof (aggr_port_t *)); in aggr_send_port_enable()
264 kmem_free(grp->lg_tx_ports, in aggr_send_port_enable()
265 grp->lg_tx_ports_size * sizeof (aggr_port_t *)); in aggr_send_port_enable()
268 grp->lg_tx_ports = new_ports; in aggr_send_port_enable()
269 grp->lg_tx_ports_size = new_size; in aggr_send_port_enable()
272 grp->lg_tx_ports[grp->lg_ntx_ports++] = port; in aggr_send_port_enable()
273 port->lp_tx_idx = grp->lg_ntx_ports-1; in aggr_send_port_enable()
274 rw_exit(&grp->lg_tx_lock); in aggr_send_port_enable()
278 aggr_grp_update_default(grp); in aggr_send_port_enable()
288 aggr_grp_t *grp = port->lp_grp; in aggr_send_port_disable() local
290 ASSERT(MAC_PERIM_HELD(grp->lg_mh)); in aggr_send_port_disable()
298 rw_enter(&grp->lg_tx_lock, RW_WRITER); in aggr_send_port_disable()
300 ntx = grp->lg_ntx_ports; in aggr_send_port_disable()
305 grp->lg_tx_ports[idx] = NULL; in aggr_send_port_disable()
310 victim = grp->lg_tx_ports[ntx - 1]; in aggr_send_port_disable()
311 grp->lg_tx_ports[ntx - 1] = NULL; in aggr_send_port_disable()
313 grp->lg_tx_ports[idx] = victim; in aggr_send_port_disable()
317 grp->lg_ntx_ports--; in aggr_send_port_disable()
318 rw_exit(&grp->lg_tx_lock); in aggr_send_port_disable()
322 aggr_grp_update_default(grp); in aggr_send_port_disable()