[<prev] [next>] [day] [month] [year] [list]
Message-ID: <ED104EF999716D4C84ED5EA6FAB8EEE128EF81B3@SZXEMA509-MBX.china.huawei.com>
Date: Mon, 4 Aug 2014 08:04:40 +0000
From: Lichunhe <lichunhe@...wei.com>
To: Veaceslav Falico <vfalico@...il.com>
CC: "j.vosburgh@...il.com" <j.vosburgh@...il.com>,
"andy@...yhouse.net" <andy@...yhouse.net>,
Dingtianhong <dingtianhong@...wei.com>,
"Qianhuibin (Huibin QIAN, Euler)" <qianhuibin@...wei.com>,
"netdev@...r.kernel.org" <netdev@...r.kernel.org>
Subject: RE: [PATCH net/net-next] bonding:Don't received packets if bonding
is not up
Thanks for your reply.
You mean that even the bonding device is down, it also should receive packets for
refreshing slaves status by arp monitoring or 802.3ad protocol. But the bonding device is
down, the status of slaves maybe is not useful, when it is up, it could check it quickly.
>-----Original Message-----
>From: Veaceslav Falico [mailto:vfalico@...il.com]
>Sent: Monday, August 04, 2014 2:13 PM
>To: Lichunhe
>Cc: j.vosburgh@...il.com; andy@...yhouse.net; linux-kernel@...r.kernel.org;
>Dingtianhong; Qianhuibin (Huibin QIAN, Euler)
>Subject: Re: [PATCH net/net-next] bonding:Don't received packets if bonding is
>not up
>
>On Mon, Aug 04, 2014 at 11:15:13AM +0800, lichunhe@...wei.com wrote:
>>From: Chunhe Li <lichunhe@...wei.com>
>>
>>If the bonding device is down, it should not receive packets to network
>>stack or other upper flow stack.
>
>This breaks arp monitoring and 802.3ad modes, as they won't ever come up.
>
>Also, please cc netdev next times.
>
>>
>>Signed-off-by: Chunhe Li <lichunhe@...wei.com>
>>---
>> drivers/net/bonding/bond_main.c | 9 ++++++---
>> 1 file changed, 6 insertions(+), 3 deletions(-)
>>
>>diff --git a/drivers/net/bonding/bond_main.c
>>b/drivers/net/bonding/bond_main.c index 701f86c..48a127b 100644
>>--- a/drivers/net/bonding/bond_main.c
>>+++ b/drivers/net/bonding/bond_main.c
>>@@ -1110,6 +1110,12 @@ static rx_handler_result_t
>bond_handle_frame(struct sk_buff **pskb)
>> int (*recv_probe)(const struct sk_buff *, struct bonding *,
>> struct slave *);
>> int ret = RX_HANDLER_ANOTHER;
>>+
>>+ slave = bond_slave_get_rcu(skb->dev);
>>+ bond = slave->bond;
>>+
>>+ if (unlikely(!(bond->dev->flags & IFF_UP)))
>>+ return RX_HANDLER_PASS;
>>
>> skb = skb_share_check(skb, GFP_ATOMIC);
>> if (unlikely(!skb))
>>@@ -1117,9 +1123,6 @@ static rx_handler_result_t
>>bond_handle_frame(struct sk_buff **pskb)
>>
>> *pskb = skb;
>>
>>- slave = bond_slave_get_rcu(skb->dev);
>>- bond = slave->bond;
>>-
>> recv_probe = ACCESS_ONCE(bond->recv_probe);
>> if (recv_probe) {
>> ret = recv_probe(skb, bond, slave);
>>--
>>1.9.2.0
>>
>>
--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Powered by blists - more mailing lists