All of lore.kernel.org
 help / color / mirror / Atom feed
From: Ferruh Yigit <ferruh.yigit@intel.com>
To: podovinnikov <podovinnikov@protei.ru>,
	Chas Williams <chas3@att.com>,
	"Wei Hu (Xavier)" <xavier.huwei@huawei.com>,
	"Wei Hu (Xavier)" <huwei013@chinasoftinc.com>
Cc: dev@dpdk.org
Subject: Re: [dpdk-dev] [PATCH v2] fix lacp check system address
Date: Fri, 10 Apr 2020 11:24:12 +0100	[thread overview]
Message-ID: <2100656d-c4e1-1aed-8d7c-1e728371ea2a@intel.com> (raw)
In-Reply-To: <96d3e5ae-ad62-2f7d-c91f-e13d170d210d@intel.com>

On 4/10/2020 11:21 AM, Ferruh Yigit wrote:
> On 4/10/2020 11:15 AM, Ferruh Yigit wrote:
>> On 11/26/2019 3:09 PM, podovinnikov wrote:
>>> Hi Ferruh
>>>
>>>> This is bonding patch, please cc bonding maintainers (Chas, instead of John W.
>>>> Linville).
>>> Sorry about that. I have 2 patches ( one for af packet, one for bonding).
>>>
>>> I am a little confused.
>>>
>>>
>>>> Can you please give more details, what is failing what is the impact etc.
>>>
>>> In bond (lacp) we have several nics ( ports )
>>>
>>> When we have negotiation with peer about what port we prefer,
>>>
>>> we send information about what system we preferred in partner system 
>>> name field.
>>>
>>> Peer also sends us what partner system name it prefer.
>>>
>>> When we receive a message from it we must compare its preferred
>>>
>>> system name with our system name, but not with our port mac address
>>>
>>> In my test I have several problems with that
>>>
>>> 1. If master port (mac address same as system address)
>>>
>>> shuts down (I have two ports) I loose connection
>>>
>>> 2. If secondary port (mac address not same as system address)
>>>
>>> receives message before master port, my connection is not established.
>>
>> Hi Vadim,
>>
>> Thanks for the info and sorry for late response, it is sitting in backlog for a
>> long time now.
>>
>> @Chas, do you have any objection on the fix, if not I am planning to merge it soon.
>>
>> Thanks,
>> ferruh
> 
> cc'ed Xavier, he also has a bonding patch in the backlog waiting for review [1].
> 
> 
> Vadim, Xavier,
> 
> Since you both send bonding patches, I assume you both know about bonding at
> some level, at least more than me, so would you mind reviewing eachother's
> patch? So both can go it.

+ other email address of the Xavier.

> 
> Thanks,
> ferruh
> 
> 
> [1]
> https://patchwork.dpdk.org/user/todo/dpdk/?series=8679
> 
>>
>>>
>>>
>>> 26.11.2019 16:27, Ferruh Yigit пишет:
>>>> Hi Vadim,
>>>>
>>>> On 11/26/2019 11:55 AM, Vadim wrote:
>>>>> Signed-off-by: Vadim <podovinnikov@protei.ru>
>>>> Can you please provide full "Name Surname <email@adress>" signature?
>>>>
>>>>
>>>> This is bonding patch, please cc bonding maintainers (Chas, instead of John W.
>>>> Linville).
>>>>
>>>>> fix lacp check system address
>>>> Can you please give more details, what is failing what is the impact etc.
>>>>
>>>>> ---
>>>>>   drivers/net/bonding/rte_eth_bond_8023ad.c | 17 ++++++++++++++++-
>>>>>   1 file changed, 16 insertions(+), 1 deletion(-)
>>>>>
>>>>> diff --git a/drivers/net/bonding/rte_eth_bond_8023ad.c b/drivers/net/bonding/rte_eth_bond_8023ad.c
>>>>> index b77a37ddb..d4dda790a 100644
>>>>> --- a/drivers/net/bonding/rte_eth_bond_8023ad.c
>>>>> +++ b/drivers/net/bonding/rte_eth_bond_8023ad.c
>>>>> @@ -792,18 +792,33 @@ rx_machine_update(struct bond_dev_private *internals, uint16_t slave_id,
>>>>>   		struct rte_mbuf *lacp_pkt) {
>>>>>   	struct lacpdu_header *lacp;
>>>>>   	struct lacpdu_actor_partner_params *partner;
>>>>> +	struct port *port, *agg;
>>>>>   
>>>>>   	if (lacp_pkt != NULL) {
>>>>>   		lacp = rte_pktmbuf_mtod(lacp_pkt, struct lacpdu_header *);
>>>>>   		RTE_ASSERT(lacp->lacpdu.subtype == SLOW_SUBTYPE_LACP);
>>>>>   
>>>>>   		partner = &lacp->lacpdu.partner;
>>>>> +		port = &bond_mode_8023ad_ports[slave_id];
>>>>> +		agg = &bond_mode_8023ad_ports[port->aggregator_port_id];
>>>>> +
>>>>>   		if (rte_is_same_ether_addr(&partner->port_params.system,
>>>>> -			&internals->mode4.mac_addr)) {
>>>>> +							&agg->actor.system)) {
>>>>>   			/* This LACP frame is sending to the bonding port
>>>>>   			 * so pass it to rx_machine.
>>>>>   			 */
>>>>>   			rx_machine(internals, slave_id, &lacp->lacpdu);
>>>>> +		} else {
>>>>> +			char preferred_system_name[RTE_ETHER_ADDR_FMT_SIZE];
>>>>> +			char self_system_name[RTE_ETHER_ADDR_FMT_SIZE];
>>>>> +			rte_ether_format_addr(preferred_system_name,
>>>>> +						RTE_ETHER_ADDR_FMT_SIZE,
>>>>> +						&partner->port_params.system);
>>>>> +			rte_ether_format_addr(self_system_name,
>>>>> +				RTE_ETHER_ADDR_FMT_SIZE, &agg->actor.system);
>>>>> +			MODE4_DEBUG("preferred partner system %s not equal "
>>>>> +						"self system: %s\n",
>>>>> +				preferred_system_name, self_system_name);
>>>>>   		}
>>>>>   		rte_pktmbuf_free(lacp_pkt);
>>>>>   	} else
>>>>>
>>
> 


  reply	other threads:[~2020-04-10 10:24 UTC|newest]

Thread overview: 14+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <20191125180323.E0B174C90@dpdk.org>
2019-11-26 11:55 ` [dpdk-dev] [PATCH v2] fix lacp check system address Vadim
2019-11-26 13:27   ` Ferruh Yigit
2019-11-26 15:09     ` podovinnikov
2020-04-10 10:15       ` Ferruh Yigit
2020-04-10 10:21         ` Ferruh Yigit
2020-04-10 10:24           ` Ferruh Yigit [this message]
2020-06-04  7:52             ` podovinnikov
2020-06-04 11:44               ` Ferruh Yigit
2021-02-17 16:26   ` [dpdk-dev] [PATCH v3] net/bonding: fix LACP system address check Ferruh Yigit
2021-02-17 16:30     ` Ferruh Yigit
2021-03-02 12:10       ` Ferruh Yigit
2021-03-05  1:43     ` Min Hu (Connor)
2021-03-05  9:21       ` Ferruh Yigit
2019-11-25 22:25 [dpdk-dev] [PATCH] fix lacp check system address Stephen Hemminger
2019-11-26 11:45 ` [dpdk-dev] [PATCH v2] " Vadim

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=2100656d-c4e1-1aed-8d7c-1e728371ea2a@intel.com \
    --to=ferruh.yigit@intel.com \
    --cc=chas3@att.com \
    --cc=dev@dpdk.org \
    --cc=huwei013@chinasoftinc.com \
    --cc=podovinnikov@protei.ru \
    --cc=xavier.huwei@huawei.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.