DPDK patches and discussions
 help / color / mirror / Atom feed
From: podovinnikov <podovinnikov@protei.ru>
To: Ferruh Yigit <ferruh.yigit@intel.com>, linville@tuxdriver.com
Cc: dev@dpdk.org, Chas Williams <chas3@att.com>
Subject: Re: [dpdk-dev] [PATCH v2] fix lacp check system address
Date: Tue, 26 Nov 2019 18:09:23 +0300	[thread overview]
Message-ID: <dbab3dec-0085-1710-0082-4611ca73e2e0@protei.ru> (raw)
In-Reply-To: <906848bc-7411-79dd-0ee1-c0f3c5d1ff16@intel.com>

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.


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:[~2019-11-26 15:09 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 ` Vadim
2019-11-26 13:27   ` Ferruh Yigit
2019-11-26 15:09     ` podovinnikov [this message]
2020-04-10 10:15       ` Ferruh Yigit
2020-04-10 10:21         ` Ferruh Yigit
2020-04-10 10:24           ` Ferruh Yigit
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=dbab3dec-0085-1710-0082-4611ca73e2e0@protei.ru \
    --to=podovinnikov@protei.ru \
    --cc=chas3@att.com \
    --cc=dev@dpdk.org \
    --cc=ferruh.yigit@intel.com \
    --cc=linville@tuxdriver.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).