From: Declan Doherty <declan.doherty@intel.com>
To: Kyle Larose <klarose@sandvine.com>,
"users@dpdk.org" <users@dpdk.org>, "dev@dpdk.org" <dev@dpdk.org>
Subject: Re: [dpdk-users] active_backup link bonding and mac address
Date: Fri, 12 May 2017 15:55:49 +0100 [thread overview]
Message-ID: <9aabdec0-81b2-689d-9f2e-838d93c67ccb@intel.com> (raw)
In-Reply-To: <D76BBBCF97F57144BB5FCF08007244A7705D4ABC@wtl-exchp-1.sandvine.com>
On 12/05/2017 3:31 PM, Kyle Larose wrote:
> I'm adding the dev mailing list/link bonding maintainer, because I've done some more investigation and I'm beginning to think something is wrong.
>
>> -----Original Message-----
>> From: Kyle Larose
>> Sent: Thursday, May 11, 2017 4:55 PM
>> To: users@dpdk.org
>> Subject: active_backup link bonding and mac address
>>
>> Hey fellow DPDK users,
>>
>> I have a question about the link bond pmd.
>>
>> I am running 4 X710 interfaces in a link bond pmd for my application. In
>> LACP mode, everything works fine. But, in active_backup mode, if the primary
>> link fails, my application stops working. The reason is that I'm still
>> sending packets with the original MAC address of the link bond pmd, which is
>> that of the original primary slave. However, the new primary is not in
>> promiscuous mode, so traffic coming back with that MAC address drops.
>>
>> What should I be doing here:
>>
>> 1) Should I be listening for the changes in the state of the primary, and
>> updating the MAC address I use to send? (I have it cached for efficiency)
>> 2) Should the driver be placing the interface into promiscuous mode to allow
>> for this, similar to what LACP does?
>> 3) Should the driver be overwriting the MAC on egress, similar to what the
>> tlb driver seems to do (in bond_ethdev_tx_burst_tlb)
>>
>> I'm fine with #1, but it seems to break the goal of having the link bond pmd
>> be transparent to the application.
>>
>
> I checked the mac address of the link bond interface after the failover, and it did not change.
> It still had the MAC address of the first slave that was added. This seems incompatible with
> solution number 1 that I suggested above, which means either it the link bond device should
> update its address, or it should be promiscuous at the slave level.
>
> FWIW, I'm using 16.07. I have reproduced this on testpmd by looking at port state. (with some
> fiddling -- needed to prevent it from starting the slave interfaces, and turn off its default
> promiscuous mode.)
>
> Does anyone have any input on this problem?
>
> Thanks,
>
> Kyle
>
Kyle, sorry I didn't see the post in the users list. I think the issue
is that the new primary is missing the bond MAC address on it's valid
MACs list, hence it is dropping the ingress packets after a fail-over
event, placing the all the slave devices into promiscuous mode as you
suggest in option 2 would probably make the issue go away but I don't
think it's the correct solution. I think we should just be adding the
bond MAC to each slaves devices valid MAC list. As only one bond slave
is only active at any time this won't cause any issues to the network,
and will mean that fail over is transparent to your application and
there is no need for MAC rewrites, which would invalidate existing ARP
table entries at downstream end points.
next prev parent reply other threads:[~2017-05-12 14:55 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-05-12 14:31 Kyle Larose
2017-05-12 14:55 ` Declan Doherty [this message]
2017-05-12 15:34 ` Kyle Larose
2017-05-12 15:46 ` Declan Doherty
2017-05-12 19:02 ` Kyle Larose
-- strict thread matches above, loose matches on Subject: below --
2017-05-11 20:54 Kyle Larose
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=9aabdec0-81b2-689d-9f2e-838d93c67ccb@intel.com \
--to=declan.doherty@intel.com \
--cc=dev@dpdk.org \
--cc=klarose@sandvine.com \
--cc=users@dpdk.org \
/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).