Mon, Apr 27, 2020 at 09:58:45PM CEST, pavel.contrib(a)gmail.com wrote:
Hi Jiri,
Thank you, for reviewing the patch.
This patch has the following benefits:
1. We avoid changing settings of a link. Which prevents the kernel from
sending multiply Netlink messages. That will benefit Netlink message
listeners. They will not need to react to the Netlink messages.
2. It makes libteam faster. We don't need to use any syscalls and go
deep into libteam functions when we don't need to. One simple check and
libteam can avoid a lot of work.
In our case, when we have hundreds of ports, and up to a hundred LAGs, this
patch saves us significant time.
Could you please add this info into the patch description?
Thanks!
>
>
>Please let me know if you have additional questions.
>
>
>Thanks
>
>On Fri, Apr 24, 2020 at 11:01 PM Jiri Pirko <jiri(a)resnulli.us> wrote:
>
>> Fri, Apr 17, 2020 at 07:43:35PM CEST, pavel.contrib(a)gmail.com wrote:
>> >Avoid setting the same mac address to a LAG port,
>> >if the LAG port already has the right one.
>>
>> What's the benefit added by this patch?
>>
>>
>> >
>> >Signed-off-by: Pavel Shirshov <pavel.contrib(a)gmail.com>
>> >---
>> > teamd/teamd.c | 9 ++++++++-
>> > 1 file changed, 8 insertions(+), 1 deletion(-)
>> >
>> >diff --git a/teamd/teamd.c b/teamd/teamd.c
>> >index 8cdc16d..f955b19 100644
>> >--- a/teamd/teamd.c
>> >+++ b/teamd/teamd.c
>> >@@ -837,7 +837,14 @@ static int teamd_set_hwaddr(struct teamd_context
>> *ctx)
>> > err = -EINVAL;
>> > goto free_hwaddr;
>> > }
>> >- err = team_hwaddr_set(ctx->th, ctx->ifindex, hwaddr,
hwaddr_len);
>> >+
>> >+ if (memcmp(hwaddr, ctx->hwaddr, hwaddr_len))
>> >+ err = team_hwaddr_set(ctx->th, ctx->ifindex, hwaddr,
>> hwaddr_len);
>> >+ else {
>> >+ err = 0;
>> >+ teamd_log_dbg(ctx, "Skip setting same hwaddr string:
>> \"%s\".", hwaddr_str);
>> >+ }
>> >+
>> > if (!err)
>> > ctx->hwaddr_explicit = true;
>> > free_hwaddr:
>> >--
>> >2.7.4
>> >
>>