On Fri, Sep 11, 2015 at 06:03:01PM +0200, Jiri Pirko wrote:
Fri, Sep 11, 2015 at 03:24:07PM CEST, fbl(a)sysclose.org wrote:
>On Fri, Sep 11, 2015 at 09:46:45AM +0200, Jiri Pirko wrote:
>> Fri, Sep 11, 2015 at 01:14:09AM CEST, sridhar.samudrala(a)intel.com wrote:
>> >Currently AGGREGATION flag is only set when there is a change in port
state.
>> >Adding a 2nd port should cause the AGGREGATION flag of the first port to be
>> >changed to 'Yes' and removing the last but one port should cause
the
>> >AGGREGATION flag of the remaining port to be changed to 'No'.
>> >A simple fix is set AGGREGATION flag before sending LACP frames based on
>> >the number of ports in the team.
>>
>>
>> INFO_STATE_AGGREGATION is set in lacp_port_actor_update. Why that is not
>> enough?
>
>It seems we only do that if the state of a port changes.
>
> 920 static int lacp_port_set_state(struct lacp_port *lacp_port,
> 921 enum lacp_port_state new_state)
> 922 {
> 923 int err;
> 924
>*925 if (new_state == lacp_port->state)
> 926 return 0;
>
>fbl
So the problematic codepath is lacp_callback_periodic->lacpdu_send where
the sate is not updated.
How about following patch:
LGTM.
fbl