teamd: lacp: rewrite lacp port selecting/unselecting logic

Do not unselect and build aggregators again for every change. Rather
work to change current state in reaction to particular change.

Signed-off-by: Jiri Pirko <jiri@resnulli.us>
teamd: pp: free privs in free instead of destroy

This fixes bug when runner was accessing freed port priv.

Signed-off-by: Jiri Pirko <jiri@resnulli.us>
lib: allow message on cli sock be handled before team sock

Signed-off-by: Jiri Pirko <jiri@resnulli.us>
lib: check for port_removed in team_is_port_present() as well

Signed-off-by: Jiri Pirko <jiri@resnulli.us>
teamd: lacp: convert lacpdu values by ntohs

Signed-off-by: Jiri Pirko <jiri@resnulli.us>
teamd: lacp do not call lacp_port_agg_update() from actor_update/patrner_update

This ensures lacp_port_agg_update() sees correct lacp_port->state

Signed-off-by: Jiri Pirko <jiri@resnulli.us>
teamd: fix teamd_run_loop_do_callbacks() indent

Signed-off-by: Jiri Pirko <jiri@resnulli.us>
teamd: fix incorrect check teamd_event_watch_port_added()

this bug caused port did not get correct priority

Signed-off-by: Jiri Pirko <jiri@resnulli.us>
teamd: prepare lacp state dump for multiple selected aggregators

Signed-off-by: Jiri Pirko <jiri@resnulli.us>