Paul Durrant wrote: > On 11/05/07, Cathy Zhou <Cathy.Zhou at sun.com> wrote: >> Think about this more, one question comes up: >> >> Based on the Nemo design doc, no traffic is allowed before m_start() >> entry >> point is called. But the aggr driver calls mac_start() to start each >> port's >> MAC only in aggr_m_start(), when the aggregation is plumbed. >> >> How LACP traffic is able to get through before m_start() is called. > > Indeed. Looks like I was wrong. The underlying MACs are not started > until the aggregation is started. The RX function is hooked earlier on > but no traffic should be passed up before the m_start entry point is > called. Might be worth checking this really is the case though. > If so, I guess there is some bug in the aggr driver. I hit a panic which shows the port is not started, but the aggregation is already trying to send packets in lacp_xmit_sm().
Nicolas, Can you comment on this? Thanks - Cathy --------------------------------------- > ffffffff92c35a48::print aggr_port_t lp_state lp_started lp_state = 2 (AGGR_PORT_STATE_ATTACHED) lp_started = 0 > $C ffffff00076efa90 vpanic() ffffff00076efae0 assfail+0x7e(fffffffff7e721a8, fffffffff7e72180, 21f) ffffff00076efb20 lacp_xmit_sm+0x187(ffffffff92c35a48) ffffff00076efb50 periodic_timer_pop_locked+0x60(ffffffff92c35a48) ffffff00076efb80 periodic_timer_pop+0x33(ffffffff92c35a48) ffffff00076efbd0 callout_execute+0xb1(fffffffecc5db000) ffffff00076efc60 taskq_thread+0x1dc(fffffffecb457698) ffffff00076efc70 thread_start+8()
