Lines Matching refs:pl

154 	aggr_lacp_port_t	*pl = &port->lp_lacp;  in aggr_port_timer_thread()  local
160 CALLB_CPR_INIT(&cprinfo, &pl->lacp_timer_lock, callb_generic_cpr, in aggr_port_timer_thread()
163 mutex_enter(&pl->lacp_timer_lock); in aggr_port_timer_thread()
167 if ((lacp_timer_bits = pl->lacp_timer_bits) == 0) { in aggr_port_timer_thread()
169 cv_wait(&pl->lacp_timer_cv, &pl->lacp_timer_lock); in aggr_port_timer_thread()
170 CALLB_CPR_SAFE_END(&cprinfo, &pl->lacp_timer_lock); in aggr_port_timer_thread()
173 pl->lacp_timer_bits = 0; in aggr_port_timer_thread()
179 pl->periodic_timer.id = 0; in aggr_port_timer_thread()
181 pl->wait_while_timer.id = 0; in aggr_port_timer_thread()
183 pl->current_while_timer.id = 0; in aggr_port_timer_thread()
185 mutex_exit(&pl->lacp_timer_lock); in aggr_port_timer_thread()
190 mutex_enter(&pl->lacp_timer_lock); in aggr_port_timer_thread()
202 mutex_enter(&pl->lacp_timer_lock); in aggr_port_timer_thread()
203 if (pl->lacp_timer_bits & LACP_THREAD_EXIT) in aggr_port_timer_thread()
207 pl->lacp_timer_bits = 0; in aggr_port_timer_thread()
208 pl->lacp_timer_thread = NULL; in aggr_port_timer_thread()
209 cv_broadcast(&pl->lacp_timer_cv); in aggr_port_timer_thread()
271 aggr_lacp_port_t *pl = &portp->lp_lacp; in aggr_lacp_init_port() local
277 pl->ActorPortNumber = portp->lp_portid; in aggr_lacp_init_port()
280 pl->ActorPortNumber)); in aggr_lacp_init_port()
282 pl->ActorPortPriority = (uint16_t)lacp_port_priority; in aggr_lacp_init_port()
283 pl->ActorPortAggrId = 0; /* aggregator id - not used */ in aggr_lacp_init_port()
284 pl->NTT = B_FALSE; /* need to transmit */ in aggr_lacp_init_port()
286 pl->ActorAdminPortKey = aggrp->lg_key; in aggr_lacp_init_port()
287 pl->ActorOperPortKey = pl->ActorAdminPortKey; in aggr_lacp_init_port()
290 portp->lp_linkid, pl->ActorAdminPortKey, pl->ActorOperPortKey)); in aggr_lacp_init_port()
293 pl->ActorAdminPortState.bit.activity = B_FALSE; in aggr_lacp_init_port()
294 pl->ActorAdminPortState.bit.timeout = B_TRUE; in aggr_lacp_init_port()
295 pl->ActorAdminPortState.bit.aggregation = B_TRUE; in aggr_lacp_init_port()
296 pl->ActorAdminPortState.bit.sync = B_FALSE; in aggr_lacp_init_port()
297 pl->ActorAdminPortState.bit.collecting = B_FALSE; in aggr_lacp_init_port()
298 pl->ActorAdminPortState.bit.distributing = B_FALSE; in aggr_lacp_init_port()
299 pl->ActorAdminPortState.bit.defaulted = B_FALSE; in aggr_lacp_init_port()
300 pl->ActorAdminPortState.bit.expired = B_FALSE; in aggr_lacp_init_port()
301 pl->ActorOperPortState = pl->ActorAdminPortState; in aggr_lacp_init_port()
308 pl->PartnerAdminPortState.bit.timeout = in aggr_lacp_init_port()
309 pl->PartnerOperPortState.bit.timeout = B_TRUE; in aggr_lacp_init_port()
311 pl->PartnerCollectorMaxDelay = 0; /* tens of microseconds */ in aggr_lacp_init_port()
316 pl->sm.lacp_on = B_FALSE; /* LACP Off default */ in aggr_lacp_init_port()
317 pl->sm.begin = B_TRUE; /* Prevents transmissions */ in aggr_lacp_init_port()
318 pl->sm.lacp_enabled = B_FALSE; in aggr_lacp_init_port()
319 pl->sm.port_enabled = B_FALSE; /* Link Down */ in aggr_lacp_init_port()
320 pl->sm.actor_churn = B_FALSE; in aggr_lacp_init_port()
321 pl->sm.partner_churn = B_FALSE; in aggr_lacp_init_port()
322 pl->sm.ready_n = B_FALSE; in aggr_lacp_init_port()
323 pl->sm.port_moved = B_FALSE; in aggr_lacp_init_port()
327 pl->sm.periodic_state = LACP_NO_PERIODIC; in aggr_lacp_init_port()
328 pl->sm.receive_state = LACP_INITIALIZE; in aggr_lacp_init_port()
329 pl->sm.mux_state = LACP_DETACHED; in aggr_lacp_init_port()
330 pl->sm.churn_state = LACP_NO_ACTOR_CHURN; in aggr_lacp_init_port()
335 pl->current_while_timer.id = 0; in aggr_lacp_init_port()
336 pl->current_while_timer.val = SHORT_TIMEOUT_TIME; in aggr_lacp_init_port()
338 pl->periodic_timer.id = 0; in aggr_lacp_init_port()
339 pl->periodic_timer.val = FAST_PERIODIC_TIME; in aggr_lacp_init_port()
341 pl->wait_while_timer.id = 0; in aggr_lacp_init_port()
342 pl->wait_while_timer.val = AGGREGATE_WAIT_TIME; in aggr_lacp_init_port()
344 pl->lacp_timer_bits = 0; in aggr_lacp_init_port()
346 mutex_init(&pl->lacp_timer_lock, NULL, MUTEX_DRIVER, NULL); in aggr_lacp_init_port()
347 cv_init(&pl->lacp_timer_cv, NULL, CV_DRIVER, NULL); in aggr_lacp_init_port()
349 pl->lacp_timer_thread = thread_create(NULL, 0, aggr_port_timer_thread, in aggr_lacp_init_port()
373 aggr_lacp_port_t *pl = &portp->lp_lacp; in lacp_reset_port() local
377 pl->NTT = B_FALSE; /* need to transmit */ in lacp_reset_port()
380 pl->ActorOperPortState.bit.timeout = in lacp_reset_port()
381 pl->ActorAdminPortState.bit.timeout; in lacp_reset_port()
383 pl->ActorOperPortState.bit.sync = B_FALSE; in lacp_reset_port()
384 pl->ActorOperPortState.bit.collecting = B_FALSE; in lacp_reset_port()
385 pl->ActorOperPortState.bit.distributing = B_FALSE; in lacp_reset_port()
386 pl->ActorOperPortState.bit.defaulted = B_TRUE; in lacp_reset_port()
387 pl->ActorOperPortState.bit.expired = B_FALSE; in lacp_reset_port()
389 pl->PartnerOperPortState.bit.timeout = B_TRUE; /* fast t/o */ in lacp_reset_port()
390 pl->PartnerCollectorMaxDelay = 0; /* tens of microseconds */ in lacp_reset_port()
395 pl->sm.begin = B_TRUE; /* Prevents transmissions */ in lacp_reset_port()
396 pl->sm.actor_churn = B_FALSE; in lacp_reset_port()
397 pl->sm.partner_churn = B_FALSE; in lacp_reset_port()
398 pl->sm.ready_n = B_FALSE; in lacp_reset_port()
402 pl->sm.periodic_state = LACP_NO_PERIODIC; in lacp_reset_port()
403 pl->sm.receive_state = LACP_INITIALIZE; in lacp_reset_port()
404 pl->sm.mux_state = LACP_DETACHED; in lacp_reset_port()
405 pl->sm.churn_state = LACP_NO_ACTOR_CHURN; in lacp_reset_port()
410 pl->current_while_timer.val = SHORT_TIMEOUT_TIME; in lacp_reset_port()
411 pl->periodic_timer.val = FAST_PERIODIC_TIME; in lacp_reset_port()
443 aggr_lacp_port_t *pl = &portp->lp_lacp; in start_periodic_timer() local
447 mutex_enter(&pl->lacp_timer_lock); in start_periodic_timer()
448 if (pl->periodic_timer.id == 0) { in start_periodic_timer()
449 pl->periodic_timer.id = timeout(periodic_timer_pop, portp, in start_periodic_timer()
452 mutex_exit(&pl->lacp_timer_lock); in start_periodic_timer()
458 aggr_lacp_port_t *pl = &portp->lp_lacp; in stop_periodic_timer() local
463 mutex_enter(&pl->lacp_timer_lock); in stop_periodic_timer()
464 if ((id = pl->periodic_timer.id) != 0) { in stop_periodic_timer()
465 pl->lacp_timer_bits &= ~LACP_PERIODIC_TIMEOUT; in stop_periodic_timer()
466 pl->periodic_timer.id = 0; in stop_periodic_timer()
468 mutex_exit(&pl->lacp_timer_lock); in stop_periodic_timer()
484 aggr_lacp_port_t *pl = &portp->lp_lacp; in periodic_timer_pop() local
486 mutex_enter(&pl->lacp_timer_lock); in periodic_timer_pop()
487 pl->lacp_timer_bits |= LACP_PERIODIC_TIMEOUT; in periodic_timer_pop()
488 cv_broadcast(&pl->lacp_timer_cv); in periodic_timer_pop()
489 mutex_exit(&pl->lacp_timer_lock); in periodic_timer_pop()
538 aggr_lacp_port_t *pl = &portp->lp_lacp; in lacp_periodic_sm() local
543 if (!pl->sm.lacp_on) { in lacp_periodic_sm()
546 pl->sm.periodic_state = LACP_NO_PERIODIC; in lacp_periodic_sm()
547 pl->NTT = B_FALSE; in lacp_periodic_sm()
551 lacp_periodic_str[pl->sm.periodic_state])); in lacp_periodic_sm()
555 if (pl->sm.begin || !pl->sm.lacp_enabled || in lacp_periodic_sm()
556 !pl->sm.port_enabled || in lacp_periodic_sm()
557 !pl->ActorOperPortState.bit.activity && in lacp_periodic_sm()
558 !pl->PartnerOperPortState.bit.activity) { in lacp_periodic_sm()
562 pl->sm.periodic_state = LACP_NO_PERIODIC; in lacp_periodic_sm()
563 pl->NTT = B_FALSE; in lacp_periodic_sm()
566 lacp_periodic_str[pl->sm.periodic_state])); in lacp_periodic_sm()
575 if (pl->sm.periodic_state == LACP_NO_PERIODIC) { in lacp_periodic_sm()
576 pl->periodic_timer.val = FAST_PERIODIC_TIME; in lacp_periodic_sm()
577 pl->sm.periodic_state = LACP_FAST_PERIODIC; in lacp_periodic_sm()
578 } else if ((pl->sm.periodic_state == LACP_SLOW_PERIODIC) && in lacp_periodic_sm()
579 pl->PartnerOperPortState.bit.timeout) { in lacp_periodic_sm()
602 aggr_lacp_port_t *pl = &portp->lp_lacp; in lacp_xmit_sm() local
610 if (!pl->sm.lacp_on || !pl->NTT) in lacp_xmit_sm()
617 if ((pl->sm.periodic_state == LACP_NO_PERIODIC) || in lacp_xmit_sm()
618 !pl->sm.lacp_enabled || pl->sm.begin) { in lacp_xmit_sm()
619 pl->NTT = B_FALSE; in lacp_xmit_sm()
635 elapsed = now - pl->time; in lacp_xmit_sm()
638 pl->time = now; in lacp_xmit_sm()
661 pl->NTT = B_FALSE; in lacp_xmit_sm()
681 aggr_lacp_port_t *pl = &portp->lp_lacp; in fill_lacp_pdu() local
700 lacp->actor_info.key = htons(pl->ActorOperPortKey); in fill_lacp_pdu()
701 lacp->actor_info.port_priority = htons(pl->ActorPortPriority); in fill_lacp_pdu()
702 lacp->actor_info.port = htons(pl->ActorPortNumber); in fill_lacp_pdu()
703 lacp->actor_info.state.state = pl->ActorOperPortState.state; in fill_lacp_pdu()
711 htons(pl->PartnerOperSysPriority); in fill_lacp_pdu()
712 lacp->partner_info.system_id = pl->PartnerOperSystem; in fill_lacp_pdu()
713 lacp->partner_info.key = htons(pl->PartnerOperKey); in fill_lacp_pdu()
715 htons(pl->PartnerOperPortPriority); in fill_lacp_pdu()
716 lacp->partner_info.port = htons(pl->PartnerOperPortNum); in fill_lacp_pdu()
717 lacp->partner_info.state.state = pl->PartnerOperPortState.state; in fill_lacp_pdu()
748 aggr_lacp_port_t *pl = &portp->lp_lacp; in lacp_mux_sm() local
749 lacp_mux_state_t oldstate = pl->sm.mux_state; in lacp_mux_sm()
754 if (!pl->sm.lacp_on) { in lacp_mux_sm()
755 pl->sm.mux_state = LACP_DETACHED; in lacp_mux_sm()
756 pl->ActorOperPortState.bit.sync = B_FALSE; in lacp_mux_sm()
758 if (pl->ActorOperPortState.bit.collecting || in lacp_mux_sm()
759 pl->ActorOperPortState.bit.distributing) { in lacp_mux_sm()
765 pl->ActorOperPortState.bit.collecting = in lacp_mux_sm()
766 pl->ActorOperPortState.bit.distributing = B_FALSE; in lacp_mux_sm()
770 if (pl->sm.begin || !pl->sm.lacp_enabled) in lacp_mux_sm()
771 pl->sm.mux_state = LACP_DETACHED; in lacp_mux_sm()
775 switch (pl->sm.mux_state) { in lacp_mux_sm()
777 if (pl->sm.begin) { in lacp_mux_sm()
781 if ((pl->sm.selected == AGGR_SELECTED) || in lacp_mux_sm()
782 (pl->sm.selected == AGGR_STANDBY)) { in lacp_mux_sm()
783 pl->sm.mux_state = LACP_WAITING; in lacp_mux_sm()
789 if (pl->sm.selected == AGGR_UNSELECTED) { in lacp_mux_sm()
790 pl->sm.mux_state = LACP_DETACHED; in lacp_mux_sm()
794 if ((pl->sm.selected == AGGR_SELECTED) && aggrp->aggr.ready) { in lacp_mux_sm()
795 pl->sm.mux_state = LACP_ATTACHED; in lacp_mux_sm()
801 if ((pl->sm.selected == AGGR_UNSELECTED) || in lacp_mux_sm()
802 (pl->sm.selected == AGGR_STANDBY)) { in lacp_mux_sm()
803 pl->sm.mux_state = LACP_DETACHED; in lacp_mux_sm()
807 if ((pl->sm.selected == AGGR_SELECTED) && in lacp_mux_sm()
808 pl->PartnerOperPortState.bit.sync) { in lacp_mux_sm()
809 pl->sm.mux_state = LACP_COLLECTING_DISTRIBUTING; in lacp_mux_sm()
815 if ((pl->sm.selected == AGGR_UNSELECTED) || in lacp_mux_sm()
816 (pl->sm.selected == AGGR_STANDBY) || in lacp_mux_sm()
817 !pl->PartnerOperPortState.bit.sync) { in lacp_mux_sm()
818 pl->sm.mux_state = LACP_ATTACHED; in lacp_mux_sm()
826 lacp_mux_str[pl->sm.mux_state])); in lacp_mux_sm()
829 switch (pl->sm.mux_state) { in lacp_mux_sm()
831 if (pl->ActorOperPortState.bit.collecting || in lacp_mux_sm()
832 pl->ActorOperPortState.bit.distributing) { in lacp_mux_sm()
838 pl->ActorOperPortState.bit.sync = in lacp_mux_sm()
839 pl->ActorOperPortState.bit.collecting = B_FALSE; in lacp_mux_sm()
844 pl->ActorOperPortState.bit.distributing = B_FALSE; in lacp_mux_sm()
853 if (pl->ActorOperPortState.bit.collecting || in lacp_mux_sm()
854 pl->ActorOperPortState.bit.distributing) { in lacp_mux_sm()
860 pl->ActorOperPortState.bit.sync = B_TRUE; in lacp_mux_sm()
861 pl->ActorOperPortState.bit.collecting = B_FALSE; in lacp_mux_sm()
866 pl->ActorOperPortState.bit.distributing = B_FALSE; in lacp_mux_sm()
868 if (pl->PartnerOperPortState.bit.sync) { in lacp_mux_sm()
879 if (!pl->ActorOperPortState.bit.collecting && in lacp_mux_sm()
880 !pl->ActorOperPortState.bit.distributing) { in lacp_mux_sm()
885 pl->ActorOperPortState.bit.distributing = B_TRUE; in lacp_mux_sm()
890 pl->ActorOperPortState.bit.collecting = B_TRUE; in lacp_mux_sm()
900 pl->NTT = B_TRUE; in lacp_mux_sm()
1246 aggr_lacp_port_t *pl = &portp->lp_lacp; in lacp_selection_logic() local
1251 if (!pl->sm.lacp_on) { in lacp_selection_logic()
1258 if (pl->sm.begin || !pl->sm.lacp_enabled || in lacp_selection_logic()
1263 "lp_state=%d)\n", portp->lp_linkid, pl->sm.selected, in lacp_selection_logic()
1264 AGGR_UNSELECTED, pl->sm.begin, pl->sm.lacp_enabled, in lacp_selection_logic()
1276 if (!pl->sm.lacp_enabled) { in lacp_selection_logic()
1278 portp->lp_linkid, pl->sm.selected, AGGR_UNSELECTED)); in lacp_selection_logic()
1290 if (ether_cmp(&pl->PartnerOperSystem, &etherzeroaddr) == 0 || in lacp_selection_logic()
1291 (pl->PartnerOperKey == 0)) { in lacp_selection_logic()
1320 if (ether_cmp(&pl->PartnerOperSystem, in lacp_selection_logic()
1322 (pl->PartnerOperKey != aggrp->aggr.PartnerOperAggrKey)) { in lacp_selection_logic()
1331 pl->PartnerOperSystem; in lacp_selection_logic()
1333 pl->PartnerOperKey; in lacp_selection_logic()
1350 if (ether_cmp(&pl->PartnerOperSystem, in lacp_selection_logic()
1379 aggrp->aggr.PartnerSystem = pl->PartnerOperSystem; in lacp_selection_logic()
1380 aggrp->aggr.PartnerOperAggrKey = pl->PartnerOperKey; in lacp_selection_logic()
1398 } else if (ether_cmp(&pl->PartnerOperSystem, in lacp_selection_logic()
1400 (pl->PartnerOperKey != aggrp->aggr.PartnerOperAggrKey)) { in lacp_selection_logic()
1410 "MAC or key (%d)\n", portp->lp_linkid, pl->PartnerOperKey, in lacp_selection_logic()
1418 if (pl->sm.selected != AGGR_SELECTED) { in lacp_selection_logic()
1421 pl->sm.selected, AGGR_SELECTED)); in lacp_selection_logic()
1486 aggr_lacp_port_t *pl = &portp->lp_lacp; in wait_while_timer_pop() local
1488 mutex_enter(&pl->lacp_timer_lock); in wait_while_timer_pop()
1489 pl->lacp_timer_bits |= LACP_WAIT_WHILE_TIMEOUT; in wait_while_timer_pop()
1490 cv_broadcast(&pl->lacp_timer_cv); in wait_while_timer_pop()
1491 mutex_exit(&pl->lacp_timer_lock); in wait_while_timer_pop()
1513 aggr_lacp_port_t *pl = &portp->lp_lacp; in start_wait_while_timer() local
1517 mutex_enter(&pl->lacp_timer_lock); in start_wait_while_timer()
1518 if (pl->wait_while_timer.id == 0) { in start_wait_while_timer()
1519 pl->wait_while_timer.id = in start_wait_while_timer()
1524 mutex_exit(&pl->lacp_timer_lock); in start_wait_while_timer()
1531 aggr_lacp_port_t *pl = &portp->lp_lacp; in stop_wait_while_timer() local
1536 mutex_enter(&pl->lacp_timer_lock); in stop_wait_while_timer()
1537 if ((id = pl->wait_while_timer.id) != 0) { in stop_wait_while_timer()
1538 pl->lacp_timer_bits &= ~LACP_WAIT_WHILE_TIMEOUT; in stop_wait_while_timer()
1539 pl->wait_while_timer.id = 0; in stop_wait_while_timer()
1541 mutex_exit(&pl->lacp_timer_lock); in stop_wait_while_timer()
1557 aggr_lacp_port_t *pl = &portp->lp_lacp; in aggr_lacp_port_attached() local
1571 pl->sm.lacp_enabled = B_TRUE; in aggr_lacp_port_attached()
1572 pl->ActorOperPortState.bit.aggregation = B_TRUE; in aggr_lacp_port_attached()
1573 pl->sm.begin = B_TRUE; in aggr_lacp_port_attached()
1628 aggr_lacp_port_t *pl = &portp->lp_lacp; in lacp_on() local
1641 pl->sm.lacp_on = B_TRUE; in lacp_on()
1646 pl->sm.port_enabled = B_TRUE; in lacp_on()
1647 pl->sm.lacp_enabled = B_TRUE; in lacp_on()
1648 pl->ActorOperPortState.bit.aggregation = B_TRUE; in lacp_on()
1669 aggr_lacp_port_t *pl = &portp->lp_lacp; in lacp_off() local
1675 pl->sm.lacp_on = B_FALSE; in lacp_off()
1690 pl->sm.port_enabled = B_FALSE; in lacp_off()
1691 pl->sm.lacp_enabled = B_FALSE; in lacp_off()
1692 pl->ActorOperPortState.bit.aggregation = B_FALSE; in lacp_off()
1735 aggr_lacp_port_t *pl = &portp->lp_lacp; in start_current_while_timer() local
1739 mutex_enter(&pl->lacp_timer_lock); in start_current_while_timer()
1740 if (pl->current_while_timer.id == 0) { in start_current_while_timer()
1742 pl->current_while_timer.val = time; in start_current_while_timer()
1743 else if (pl->ActorOperPortState.bit.timeout) in start_current_while_timer()
1744 pl->current_while_timer.val = SHORT_TIMEOUT_TIME; in start_current_while_timer()
1746 pl->current_while_timer.val = LONG_TIMEOUT_TIME; in start_current_while_timer()
1748 pl->current_while_timer.id = in start_current_while_timer()
1753 mutex_exit(&pl->lacp_timer_lock); in start_current_while_timer()
1760 aggr_lacp_port_t *pl = &portp->lp_lacp; in stop_current_while_timer() local
1765 mutex_enter(&pl->lacp_timer_lock); in stop_current_while_timer()
1766 if ((id = pl->current_while_timer.id) != 0) { in stop_current_while_timer()
1767 pl->lacp_timer_bits &= ~LACP_CURRENT_WHILE_TIMEOUT; in stop_current_while_timer()
1768 pl->current_while_timer.id = 0; in stop_current_while_timer()
1770 mutex_exit(&pl->lacp_timer_lock); in stop_current_while_timer()
1780 aggr_lacp_port_t *pl = &portp->lp_lacp; in current_while_timer_pop() local
1782 mutex_enter(&pl->lacp_timer_lock); in current_while_timer_pop()
1783 pl->lacp_timer_bits |= LACP_CURRENT_WHILE_TIMEOUT; in current_while_timer_pop()
1784 cv_broadcast(&pl->lacp_timer_cv); in current_while_timer_pop()
1785 mutex_exit(&pl->lacp_timer_lock); in current_while_timer_pop()
1808 aggr_lacp_port_t *pl = &portp->lp_lacp; in record_Default() local
1812 pl->PartnerOperPortNum = pl->PartnerAdminPortNum; in record_Default()
1813 pl->PartnerOperPortPriority = pl->PartnerAdminPortPriority; in record_Default()
1814 pl->PartnerOperSystem = pl->PartnerAdminSystem; in record_Default()
1815 pl->PartnerOperSysPriority = pl->PartnerAdminSysPriority; in record_Default()
1816 pl->PartnerOperKey = pl->PartnerAdminKey; in record_Default()
1817 pl->PartnerOperPortState.state = pl->PartnerAdminPortState.state; in record_Default()
1819 pl->ActorOperPortState.bit.defaulted = B_TRUE; in record_Default()
1828 aggr_lacp_port_t *pl = &portp->lp_lacp; in record_PDU() local
1836 pl->PartnerOperPortNum = ntohs(lacp->actor_info.port); in record_PDU()
1837 pl->PartnerOperPortPriority = in record_PDU()
1839 pl->PartnerOperSystem = lacp->actor_info.system_id; in record_PDU()
1840 pl->PartnerOperSysPriority = in record_PDU()
1842 pl->PartnerOperKey = ntohs(lacp->actor_info.key); in record_PDU()
1845 save_sync = pl->PartnerOperPortState.bit.sync; in record_PDU()
1846 pl->PartnerOperPortState.state = lacp->actor_info.state.state; in record_PDU()
1849 pl->ActorOperPortState.bit.defaulted = B_FALSE; in record_PDU()
1859 if (((ntohs(lacp->partner_info.port) == pl->ActorPortNumber) && in record_PDU()
1861 pl->ActorPortPriority) && in record_PDU()
1866 (ntohs(lacp->partner_info.key) == pl->ActorOperPortKey) && in record_PDU()
1868 pl->ActorOperPortState.bit.aggregation)) || in record_PDU()
1871 pl->PartnerOperPortState.bit.sync = in record_PDU()
1874 pl->PartnerOperPortState.bit.sync = B_FALSE; in record_PDU()
1877 if (save_sync != pl->PartnerOperPortState.bit.sync) { in record_PDU()
1880 pl->PartnerOperPortState.bit.sync)); in record_PDU()
1896 aggr_lacp_port_t *pl = &portp->lp_lacp; in update_selected() local
1900 if ((pl->PartnerOperPortNum != ntohs(lacp->actor_info.port)) || in update_selected()
1901 (pl->PartnerOperPortPriority != in update_selected()
1903 (ether_cmp(&pl->PartnerOperSystem, in update_selected()
1905 (pl->PartnerOperSysPriority != in update_selected()
1907 (pl->PartnerOperKey != ntohs(lacp->actor_info.key)) || in update_selected()
1908 (pl->PartnerOperPortState.bit.aggregation != in update_selected()
1911 "selected %d-->%d\n", portp->lp_linkid, pl->sm.selected, in update_selected()
1930 aggr_lacp_port_t *pl = &portp->lp_lacp; in update_default_selected() local
1934 if ((pl->PartnerAdminPortNum != pl->PartnerOperPortNum) || in update_default_selected()
1935 (pl->PartnerOperPortPriority != pl->PartnerAdminPortPriority) || in update_default_selected()
1936 (ether_cmp(&pl->PartnerOperSystem, &pl->PartnerAdminSystem) != 0) || in update_default_selected()
1937 (pl->PartnerOperSysPriority != pl->PartnerAdminSysPriority) || in update_default_selected()
1938 (pl->PartnerOperKey != pl->PartnerAdminKey) || in update_default_selected()
1939 (pl->PartnerOperPortState.bit.aggregation != in update_default_selected()
1940 pl->PartnerAdminPortState.bit.aggregation)) { in update_default_selected()
1944 pl->sm.selected, AGGR_UNSELECTED)); in update_default_selected()
1960 aggr_lacp_port_t *pl = &portp->lp_lacp; in update_NTT() local
1964 if ((pl->ActorPortNumber != ntohs(lacp->partner_info.port)) || in update_NTT()
1965 (pl->ActorPortPriority != in update_NTT()
1971 (pl->ActorOperPortKey != ntohs(lacp->partner_info.key)) || in update_NTT()
1972 (pl->ActorOperPortState.bit.activity != in update_NTT()
1974 (pl->ActorOperPortState.bit.timeout != in update_NTT()
1976 (pl->ActorOperPortState.bit.sync != in update_NTT()
1978 (pl->ActorOperPortState.bit.aggregation != in update_NTT()
1982 portp->lp_linkid, pl->NTT, B_TRUE)); in update_NTT()
1984 pl->NTT = B_TRUE; in update_NTT()
2005 aggr_lacp_port_t *pl = &portp->lp_lacp; in lacp_receive_sm() local
2006 lacp_receive_state_t oldstate = pl->sm.receive_state; in lacp_receive_sm()
2011 if (!pl->sm.lacp_on) in lacp_receive_sm()
2015 if (pl->sm.begin || pl->sm.port_moved) { in lacp_receive_sm()
2016 pl->sm.receive_state = LACP_INITIALIZE; in lacp_receive_sm()
2017 } else if (!pl->sm.port_enabled) { /* DL_NOTE_LINK_DOWN */ in lacp_receive_sm()
2018 pl->sm.receive_state = LACP_PORT_DISABLED; in lacp_receive_sm()
2019 } else if (!pl->sm.lacp_enabled) { /* DL_NOTE_AGGR_UNAVAIL */ in lacp_receive_sm()
2020 pl->sm.receive_state = in lacp_receive_sm()
2021 (pl->sm.receive_state == LACP_PORT_DISABLED) ? in lacp_receive_sm()
2024 if ((pl->sm.receive_state == LACP_EXPIRED) || in lacp_receive_sm()
2025 (pl->sm.receive_state == LACP_DEFAULTED)) { in lacp_receive_sm()
2026 pl->sm.receive_state = LACP_CURRENT; in lacp_receive_sm()
2028 } else if ((pl->sm.receive_state == LACP_CURRENT) && in lacp_receive_sm()
2029 (pl->current_while_timer.id == 0)) { in lacp_receive_sm()
2030 pl->sm.receive_state = LACP_EXPIRED; in lacp_receive_sm()
2031 } else if ((pl->sm.receive_state == LACP_EXPIRED) && in lacp_receive_sm()
2032 (pl->current_while_timer.id == 0)) { in lacp_receive_sm()
2033 pl->sm.receive_state = LACP_DEFAULTED; in lacp_receive_sm()
2037 (pl->sm.receive_state == LACP_CURRENT)))) { in lacp_receive_sm()
2040 lacp_receive_str[pl->sm.receive_state])); in lacp_receive_sm()
2043 switch (pl->sm.receive_state) { in lacp_receive_sm()
2047 pl->ActorOperPortState.bit.expired = B_FALSE; in lacp_receive_sm()
2048 pl->sm.port_moved = B_FALSE; in lacp_receive_sm()
2049 pl->sm.receive_state = LACP_PORT_DISABLED; in lacp_receive_sm()
2050 pl->sm.begin = B_FALSE; in lacp_receive_sm()
2055 pl->PartnerOperPortState.bit.sync = B_FALSE; in lacp_receive_sm()
2062 if (pl->sm.port_enabled && !pl->sm.lacp_enabled) { in lacp_receive_sm()
2063 pl->sm.receive_state = LACP_DISABLED; in lacp_receive_sm()
2067 } else if (pl->sm.port_enabled && pl->sm.lacp_enabled) { in lacp_receive_sm()
2068 pl->sm.receive_state = LACP_EXPIRED; in lacp_receive_sm()
2087 pl->PartnerOperPortState.bit.sync = B_FALSE; in lacp_receive_sm()
2088 pl->PartnerOperPortState.bit.timeout = B_TRUE; in lacp_receive_sm()
2090 pl->ActorOperPortState.bit.expired = B_TRUE; in lacp_receive_sm()
2102 pl->PartnerOperPortState.bit.aggregation = B_FALSE; in lacp_receive_sm()
2103 pl->ActorOperPortState.bit.expired = B_FALSE; in lacp_receive_sm()
2112 pl->ActorOperPortState.bit.expired = B_FALSE; in lacp_receive_sm()
2113 pl->PartnerOperPortState.bit.sync = B_TRUE; in lacp_receive_sm()
2142 save_activity = pl->PartnerOperPortState.bit.activity; in lacp_receive_sm()
2147 pl->ActorOperPortState.bit.expired = B_FALSE; in lacp_receive_sm()
2163 if ((pl->PartnerOperPortState.bit.timeout && in lacp_receive_sm()
2164 (pl->periodic_timer.val != FAST_PERIODIC_TIME)) || in lacp_receive_sm()
2165 (!pl->PartnerOperPortState.bit.timeout && in lacp_receive_sm()
2166 (pl->periodic_timer.val != SLOW_PERIODIC_TIME)) || in lacp_receive_sm()
2167 (pl->PartnerOperPortState.bit.activity != in lacp_receive_sm()
2174 if (pl->NTT) in lacp_receive_sm()