All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] net/bonding: remove all slaves on close
       [not found] <CGME20170406120001eucas1p2a05d5006e760aee92254fe462c6c8bd2@eucas1p2.samsung.com>
@ 2017-04-06 11:59 ` Ilya Maximets
  2017-04-14  9:06   ` Declan Doherty
  0 siblings, 1 reply; 3+ messages in thread
From: Ilya Maximets @ 2017-04-06 11:59 UTC (permalink / raw)
  To: dev, Declan Doherty
  Cc: Heetae Ahn, Eric Kinzie, Bernard Iremonger, Jan Blunck, Ilya Maximets

Some applications like OVS knows nothing about the
device type and wants to use same API to work with
all of them. But bond_pmd, unlike other pmds, requires
additional step (removing of all the slaves) before
closing the device.

In fact that bond_pmd automatically adds all the
devices from kvargs to bonding on configuration it
also should remove all of them on close.

This change is intended to have the same API for physical
and virtual devices. It allows us to handle virtual
devices in OVS in a common way.

Signed-off-by: Ilya Maximets <i.maximets@samsung.com>
---
 drivers/net/bonding/rte_eth_bond_pmd.c | 15 +++++++++++++++
 1 file changed, 15 insertions(+)

diff --git a/drivers/net/bonding/rte_eth_bond_pmd.c b/drivers/net/bonding/rte_eth_bond_pmd.c
index 77d3bee..c398fdb 100644
--- a/drivers/net/bonding/rte_eth_bond_pmd.c
+++ b/drivers/net/bonding/rte_eth_bond_pmd.c
@@ -1659,7 +1659,22 @@ void
 bond_ethdev_close(struct rte_eth_dev *dev)
 {
 	struct bond_dev_private *internals = dev->data->dev_private;
+	uint8_t bond_port_id = internals->port_id;
+	int skipped = 0;
 
+	RTE_LOG(INFO, EAL, "Closing bonded device %s\n", dev->data->name);
+	while (internals->slave_count != skipped) {
+		uint8_t port_id = internals->slaves[skipped].port_id;
+
+		rte_eth_dev_stop(port_id);
+
+		if (rte_eth_bond_slave_remove(bond_port_id, port_id) != 0) {
+			RTE_LOG(ERR, EAL,
+				"Failed to remove port %d from bonded device "
+				"%s\n", port_id, dev->data->name);
+			skipped++;
+		}
+	}
 	bond_ethdev_free_queues(dev);
 	rte_bitmap_reset(internals->vlan_filter_bmp);
 }
-- 
2.7.4

^ permalink raw reply related	[flat|nested] 3+ messages in thread

* Re: [PATCH] net/bonding: remove all slaves on close
  2017-04-06 11:59 ` [PATCH] net/bonding: remove all slaves on close Ilya Maximets
@ 2017-04-14  9:06   ` Declan Doherty
  2017-04-14  9:39     ` Ferruh Yigit
  0 siblings, 1 reply; 3+ messages in thread
From: Declan Doherty @ 2017-04-14  9:06 UTC (permalink / raw)
  To: Ilya Maximets, dev; +Cc: Heetae Ahn, Eric Kinzie, Bernard Iremonger, Jan Blunck

On 06/04/17 12:59, Ilya Maximets wrote:
> Some applications like OVS knows nothing about the
> device type and wants to use same API to work with
> all of them. But bond_pmd, unlike other pmds, requires
> additional step (removing of all the slaves) before
> closing the device.
>
> In fact that bond_pmd automatically adds all the
> devices from kvargs to bonding on configuration it
> also should remove all of them on close.
>
> This change is intended to have the same API for physical
> and virtual devices. It allows us to handle virtual
> devices in OVS in a common way.
>
> Signed-off-by: Ilya Maximets <i.maximets@samsung.com>
> ---
...
>


Acked-by: Declan Doherty <declan.doherty@intel.com>

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [PATCH] net/bonding: remove all slaves on close
  2017-04-14  9:06   ` Declan Doherty
@ 2017-04-14  9:39     ` Ferruh Yigit
  0 siblings, 0 replies; 3+ messages in thread
From: Ferruh Yigit @ 2017-04-14  9:39 UTC (permalink / raw)
  To: Declan Doherty, Ilya Maximets, dev
  Cc: Heetae Ahn, Eric Kinzie, Bernard Iremonger, Jan Blunck

On 4/14/2017 10:06 AM, Declan Doherty wrote:
> On 06/04/17 12:59, Ilya Maximets wrote:
>> Some applications like OVS knows nothing about the
>> device type and wants to use same API to work with
>> all of them. But bond_pmd, unlike other pmds, requires
>> additional step (removing of all the slaves) before
>> closing the device.
>>
>> In fact that bond_pmd automatically adds all the
>> devices from kvargs to bonding on configuration it
>> also should remove all of them on close.
>>
>> This change is intended to have the same API for physical
>> and virtual devices. It allows us to handle virtual
>> devices in OVS in a common way.
>>
>> Signed-off-by: Ilya Maximets <i.maximets@samsung.com>
>> ---
> ...
>>
> 
> 
> Acked-by: Declan Doherty <declan.doherty@intel.com>

Applied to dpdk-next-net/master, thanks.

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2017-04-14  9:39 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
     [not found] <CGME20170406120001eucas1p2a05d5006e760aee92254fe462c6c8bd2@eucas1p2.samsung.com>
2017-04-06 11:59 ` [PATCH] net/bonding: remove all slaves on close Ilya Maximets
2017-04-14  9:06   ` Declan Doherty
2017-04-14  9:39     ` Ferruh Yigit

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.