lacp
valid_lacp_pdu(aggr_port_t *portp, lacp_t *lacp)
if ((lacp->actor_info.information_len != sizeof (link_info_t)) ||
(lacp->partner_info.information_len != sizeof (link_info_t)) ||
(lacp->collector_len != LACP_COLLECTOR_INFO_LEN) ||
(lacp->terminator_len != LACP_TERMINATOR_INFO_LEN)) {
lacp->terminator_len));
record_PDU(aggr_port_t *portp, lacp_t *lacp)
pl->PartnerOperPortNum = ntohs(lacp->actor_info.port);
ntohs(lacp->actor_info.port_priority);
pl->PartnerOperSystem = lacp->actor_info.system_id;
htons(lacp->actor_info.system_priority);
pl->PartnerOperKey = ntohs(lacp->actor_info.key);
pl->PartnerOperPortState.state = lacp->actor_info.state.state;
if (((ntohs(lacp->partner_info.port) == pl->ActorPortNumber) &&
(ntohs(lacp->partner_info.port_priority) ==
(ether_cmp(&lacp->partner_info.system_id,
(ntohs(lacp->partner_info.system_priority) ==
(ntohs(lacp->partner_info.key) == pl->ActorOperPortKey) &&
(lacp->partner_info.state.bit.aggregation ==
(!lacp->actor_info.state.bit.aggregation)) {
lacp->actor_info.state.bit.sync;
update_selected(aggr_port_t *portp, lacp_t *lacp)
if ((pl->PartnerOperPortNum != ntohs(lacp->actor_info.port)) ||
ntohs(lacp->actor_info.port_priority)) ||
&lacp->actor_info.system_id) != 0) ||
ntohs(lacp->actor_info.system_priority)) ||
(pl->PartnerOperKey != ntohs(lacp->actor_info.key)) ||
lacp->actor_info.state.bit.aggregation)) {
update_NTT(aggr_port_t *portp, lacp_t *lacp)
if ((pl->ActorPortNumber != ntohs(lacp->partner_info.port)) ||
ntohs(lacp->partner_info.port_priority)) ||
&lacp->partner_info.system_id) != 0) ||
ntohs(lacp->partner_info.system_priority)) ||
(pl->ActorOperPortKey != ntohs(lacp->partner_info.key)) ||
lacp->partner_info.state.bit.activity) ||
lacp->partner_info.state.bit.timeout) ||
lacp->partner_info.state.bit.sync) ||
lacp->partner_info.state.bit.aggregation)) {
lacp_receive_sm(aggr_port_t *portp, lacp_t *lacp)
} else if (lacp != NULL) {
if (!((lacp && (oldstate == LACP_CURRENT) &&
lacp_receive_sm(portp, lacp);
if (!lacp) /* no LACPDU so current_while_timer popped */
if (!valid_lacp_pdu(portp, lacp)) {
selected_updated = update_selected(portp, lacp);
update_NTT(portp, lacp);
sync_updated = record_PDU(portp, lacp);
lacp_t *lacp;
lacp = (lacp_t *)dmp->b_rptr;
if (lacp->subtype != LACP_SUBTYPE && lacp->subtype != MARKER_SUBTYPE) {
portp->lp_linkid, lacp->subtype));
lacp_t *lacp;
lacp = (lacp_t *)dmp->b_rptr;
switch (lacp->subtype) {
lacp_receive_sm(portp, lacp);
fill_lacp_pdu(aggr_port_t *portp, lacp_t *lacp)
lacp->subtype = LACP_SUBTYPE;
lacp->version = LACP_VERSION;
lacp->actor_info.tlv_type = ACTOR_TLV;
lacp->actor_info.information_len = sizeof (link_info_t);
lacp->actor_info.system_priority =
bcopy(aggrp->lg_addr, (uchar_t *)&lacp->actor_info.system_id,
lacp->actor_info.key = htons(pl->ActorOperPortKey);
lacp->actor_info.port_priority = htons(pl->ActorPortPriority);
lacp->actor_info.port = htons(pl->ActorPortNumber);
lacp->actor_info.state.state = pl->ActorOperPortState.state;
lacp->partner_info.tlv_type = PARTNER_TLV;
lacp->partner_info.information_len = sizeof (link_info_t);
lacp->partner_info.system_priority =
lacp->partner_info.system_id = pl->PartnerOperSystem;
lacp->partner_info.key = htons(pl->PartnerOperKey);
lacp->partner_info.port_priority =
lacp->partner_info.port = htons(pl->PartnerOperPortNum);
lacp->partner_info.state.state = pl->PartnerOperPortState.state;
lacp->tlv_collector = COLLECTOR_TLV;
lacp->collector_len = 0x10;
lacp->collector_max_delay = htons(aggrp->aggr.CollectorMaxDelay);
lacp->tlv_terminator = TERMINATOR_TLV;
lacp->terminator_len = 0x0;