[SRU][Xenial][PATCH 0/4] Fixes for LP:1697892

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
7 messages Options
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

[SRU][Xenial][PATCH 0/4] Fixes for LP:1697892

Joseph Salisbury-3
BugLink: http://bugs.launchpad.net/bugs/1697892

== SRU Justification ==
Kernel versions >= 4.2: bonding 802.3ad does not work with 5G, 25G and 50G link
speeds.  This bug is resolved by mainline commits 3952af4d, 0622cab0, 19ddde1 and c7c55067.  These
commits were included in mainline in the following versions:

3952af4d: v4.5-rc1
0622cab0: v4.7-rc6
19ddde1e: v4.12-rc1
c7c55067: v4.12-rc6

The fix is  needed in Xenial, Yakkety, Zesty and Artful. Y, Z and A do
not need the first two prereq commits, so their SRU will be sent separatly.

== Fixes ==
commit 3952af4d50343728e54bf93880e0ecb9c42c47aa
Author: Jiri Pirko <[hidden email]>
Date:   Thu Dec 3 12:12:05 2015 +0100

    bonding: add 802.3ad support for 100G speeds

commit 0622cab0341cac6b30da177b0faa39fae0680e71
Author: Jay Vosburgh <[hidden email]>
Date:   Thu Jun 23 14:20:51 2016 -0700

    bonding: fix 802.3ad aggregator reselection

commit 19ddde1eeca1ee81f4add5e04da66055e09281ac
Author: Jarod Wilson <[hidden email]>
Date:   Tue Mar 14 11:48:32 2017 -0400

    bonding: add 802.3ad support for 25G speeds

commit c7c550670afda2e16f9e2d06a1473885312eb6b5
Author: Thibaut Collet <[hidden email]>
Date:   Thu Jun 8 11:18:11 2017 +0200

    bonding: fix 802.3ad support for 5G and 50G speeds

== Regression Potential ==
These commits are just adding new enum definitions, so risk of regression
is low.  Commit  0622cab034 is a prereq commit needed for Xenial to fix a
regression caused by commit 7bb11dc9f59d.

== Test Case ==
A test kernel was built with these patches and tested by the original bug
reporter.  The bug reporter states the test kernel resolved the bug.


Jarod Wilson (1):
  bonding: add 802.3ad support for 25G speeds

Jay Vosburgh (1):
  bonding: fix 802.3ad aggregator reselection

Jiri Pirko (1):
  bonding: add 802.3ad support for 100G speeds

Thibaut Collet (1):
  bonding: fix 802.3ad support for 5G and 50G speeds

 drivers/net/bonding/bond_3ad.c | 100 +++++++++++++++++++++++++++++++++--------
 1 file changed, 81 insertions(+), 19 deletions(-)

--
2.7.4


--
kernel-team mailing list
[hidden email]
https://lists.ubuntu.com/mailman/listinfo/kernel-team
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

[SRU][Xenial][PATCH 1/4] bonding: add 802.3ad support for 100G speeds

Joseph Salisbury-3
From: Jiri Pirko <[hidden email]>

BugLink: http://bugs.launchpad.net/bugs/1697892

Similar to other speeds, add 100G to bonding 802.3ad code.

Signed-off-by: Jiri Pirko <[hidden email]>
Signed-off-by: David S. Miller <[hidden email]>
(cherry picked from commit 3952af4d50343728e54bf93880e0ecb9c42c47aa)
Signed-off-by: Joseph Salisbury <[hidden email]>
---
 drivers/net/bonding/bond_3ad.c | 11 ++++++++++-
 1 file changed, 10 insertions(+), 1 deletion(-)

diff --git a/drivers/net/bonding/bond_3ad.c b/drivers/net/bonding/bond_3ad.c
index 940e2eb..4cbb8b2 100644
--- a/drivers/net/bonding/bond_3ad.c
+++ b/drivers/net/bonding/bond_3ad.c
@@ -93,7 +93,8 @@ enum ad_link_speed_type {
  AD_LINK_SPEED_10000MBPS,
  AD_LINK_SPEED_20000MBPS,
  AD_LINK_SPEED_40000MBPS,
- AD_LINK_SPEED_56000MBPS
+ AD_LINK_SPEED_56000MBPS,
+ AD_LINK_SPEED_100000MBPS,
 };
 
 /* compare MAC addresses */
@@ -258,6 +259,7 @@ static inline int __check_agg_selection_timer(struct port *port)
  *     %AD_LINK_SPEED_20000MBPS
  *     %AD_LINK_SPEED_40000MBPS
  *     %AD_LINK_SPEED_56000MBPS
+ *     %AD_LINK_SPEED_100000MBPS
  */
 static u16 __get_link_speed(struct port *port)
 {
@@ -305,6 +307,10 @@ static u16 __get_link_speed(struct port *port)
  speed = AD_LINK_SPEED_56000MBPS;
  break;
 
+ case SPEED_100000:
+ speed = AD_LINK_SPEED_100000MBPS;
+ break;
+
  default:
  /* unknown speed value from ethtool. shouldn't happen */
  speed = 0;
@@ -681,6 +687,9 @@ static u32 __get_agg_bandwidth(struct aggregator *aggregator)
  case AD_LINK_SPEED_56000MBPS:
  bandwidth = aggregator->num_of_ports * 56000;
  break;
+ case AD_LINK_SPEED_100000MBPS:
+ bandwidth = aggregator->num_of_ports * 100000;
+ break;
  default:
  bandwidth = 0; /* to silence the compiler */
  }
--
2.7.4


--
kernel-team mailing list
[hidden email]
https://lists.ubuntu.com/mailman/listinfo/kernel-team
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

[SRU][Xenial][PATCH 2/4] bonding: fix 802.3ad aggregator reselection

Joseph Salisbury-3
In reply to this post by Joseph Salisbury-3
From: Jay Vosburgh <[hidden email]>

BugLink: http://bugs.launchpad.net/bugs/1697892

Since commit 7bb11dc9f59d ("bonding: unify all places where
actor-oper key needs to be updated."), the logic in bonding to handle
selection between multiple aggregators has not functioned.

        This affects only configurations wherein the bonding slaves
connect to two discrete aggregators (e.g., two independent switches, each
with LACP enabled), thus creating two separate aggregation groups within a
single bond.

        The cause is a change in 7bb11dc9f59d to no longer set
AD_PORT_BEGIN on a port after a link state change, which would cause the
port to be reselected for attachment to an aggregator as if were newly
added to the bond.  We cannot restore the prior behavior, as it
contradicts IEEE 802.1AX 5.4.12, which requires ports that "become
inoperable" (lose carrier, setting port_enabled=false as per 802.1AX
5.4.7) to remain selected (i.e., assigned to the aggregator).  As the port
now remains selected, the aggregator selection logic is not invoked.

        A side effect of this change is that aggregators in bonding will
now contain ports that are link down.  The aggregator selection logic
does not currently handle this situation correctly, causing incorrect
aggregator selection.

        This patch makes two changes to repair the aggregator selection
logic in bonding to function as documented and within the confines of the
standard:

        First, the aggregator selection and related logic now utilizes the
number of active ports per aggregator, not the number of selected ports
(as some selected ports may be down).  The ad_select "bandwidth" and
"count" options only consider ports that are link up.

        Second, on any carrier state change of any slave, the aggregator
selection logic is explicitly called to insure the correct aggregator is
active.

Reported-by: Veli-Matti Lintu <[hidden email]>
Fixes: 7bb11dc9f59d ("bonding: unify all places where actor-oper key needs to be updated.")
Signed-off-by: Jay Vosburgh <[hidden email]>
Signed-off-by: David S. Miller <[hidden email]>
(cherry picked from commit 0622cab0341cac6b30da177b0faa39fae0680e71)
Signed-off-by: Joseph Salisbury <[hidden email]>
---
 drivers/net/bonding/bond_3ad.c | 64 +++++++++++++++++++++++++++++-------------
 1 file changed, 45 insertions(+), 19 deletions(-)

diff --git a/drivers/net/bonding/bond_3ad.c b/drivers/net/bonding/bond_3ad.c
index 4cbb8b2..4d71426 100644
--- a/drivers/net/bonding/bond_3ad.c
+++ b/drivers/net/bonding/bond_3ad.c
@@ -649,6 +649,20 @@ static void __set_agg_ports_ready(struct aggregator *aggregator, int val)
  }
 }
 
+static int __agg_active_ports(struct aggregator *agg)
+{
+ struct port *port;
+ int active = 0;
+
+ for (port = agg->lag_ports; port;
+     port = port->next_port_in_aggregator) {
+ if (port->is_enabled)
+ active++;
+ }
+
+ return active;
+}
+
 /**
  * __get_agg_bandwidth - get the total bandwidth of an aggregator
  * @aggregator: the aggregator we're looking at
@@ -656,39 +670,40 @@ static void __set_agg_ports_ready(struct aggregator *aggregator, int val)
  */
 static u32 __get_agg_bandwidth(struct aggregator *aggregator)
 {
+ int nports = __agg_active_ports(aggregator);
  u32 bandwidth = 0;
 
- if (aggregator->num_of_ports) {
+ if (nports) {
  switch (__get_link_speed(aggregator->lag_ports)) {
  case AD_LINK_SPEED_1MBPS:
- bandwidth = aggregator->num_of_ports;
+ bandwidth = nports;
  break;
  case AD_LINK_SPEED_10MBPS:
- bandwidth = aggregator->num_of_ports * 10;
+ bandwidth = nports * 10;
  break;
  case AD_LINK_SPEED_100MBPS:
- bandwidth = aggregator->num_of_ports * 100;
+ bandwidth = nports * 100;
  break;
  case AD_LINK_SPEED_1000MBPS:
- bandwidth = aggregator->num_of_ports * 1000;
+ bandwidth = nports * 1000;
  break;
  case AD_LINK_SPEED_2500MBPS:
- bandwidth = aggregator->num_of_ports * 2500;
+ bandwidth = nports * 2500;
  break;
  case AD_LINK_SPEED_10000MBPS:
- bandwidth = aggregator->num_of_ports * 10000;
+ bandwidth = nports * 10000;
  break;
  case AD_LINK_SPEED_20000MBPS:
- bandwidth = aggregator->num_of_ports * 20000;
+ bandwidth = nports * 20000;
  break;
  case AD_LINK_SPEED_40000MBPS:
- bandwidth = aggregator->num_of_ports * 40000;
+ bandwidth = nports * 40000;
  break;
  case AD_LINK_SPEED_56000MBPS:
- bandwidth = aggregator->num_of_ports * 56000;
+ bandwidth = nports * 56000;
  break;
  case AD_LINK_SPEED_100000MBPS:
- bandwidth = aggregator->num_of_ports * 100000;
+ bandwidth = nports * 100000;
  break;
  default:
  bandwidth = 0; /* to silence the compiler */
@@ -1522,10 +1537,10 @@ static struct aggregator *ad_agg_selection_test(struct aggregator *best,
 
  switch (__get_agg_selection_mode(curr->lag_ports)) {
  case BOND_AD_COUNT:
- if (curr->num_of_ports > best->num_of_ports)
+ if (__agg_active_ports(curr) > __agg_active_ports(best))
  return curr;
 
- if (curr->num_of_ports < best->num_of_ports)
+ if (__agg_active_ports(curr) < __agg_active_ports(best))
  return best;
 
  /*FALLTHROUGH*/
@@ -1553,8 +1568,14 @@ static int agg_device_up(const struct aggregator *agg)
  if (!port)
  return 0;
 
- return netif_running(port->slave->dev) &&
-       netif_carrier_ok(port->slave->dev);
+ for (port = agg->lag_ports; port;
+     port = port->next_port_in_aggregator) {
+ if (netif_running(port->slave->dev) &&
+    netif_carrier_ok(port->slave->dev))
+ return 1;
+ }
+
+ return 0;
 }
 
 /**
@@ -1602,7 +1623,7 @@ static void ad_agg_selection_logic(struct aggregator *agg,
 
  agg->is_active = 0;
 
- if (agg->num_of_ports && agg_device_up(agg))
+ if (__agg_active_ports(agg) && agg_device_up(agg))
  best = ad_agg_selection_test(best, agg);
  }
 
@@ -1614,7 +1635,7 @@ static void ad_agg_selection_logic(struct aggregator *agg,
  * answering partner.
  */
  if (active && active->lag_ports &&
-    active->lag_ports->is_enabled &&
+    __agg_active_ports(active) &&
     (__agg_has_partner(active) ||
      (!__agg_has_partner(active) &&
      !__agg_has_partner(best)))) {
@@ -2127,7 +2148,7 @@ void bond_3ad_unbind_slave(struct slave *slave)
  else
  temp_aggregator->lag_ports = temp_port->next_port_in_aggregator;
  temp_aggregator->num_of_ports--;
- if (temp_aggregator->num_of_ports == 0) {
+ if (__agg_active_ports(temp_aggregator) == 0) {
  select_new_active_agg = temp_aggregator->is_active;
  ad_clear_agg(temp_aggregator);
  if (select_new_active_agg) {
@@ -2394,7 +2415,9 @@ void bond_3ad_adapter_speed_duplex_changed(struct slave *slave)
  */
 void bond_3ad_handle_link_change(struct slave *slave, char link)
 {
+ struct aggregator *agg;
  struct port *port;
+ bool dummy;
 
  port = &(SLAVE_AD_INFO(slave)->port);
 
@@ -2421,6 +2444,9 @@ void bond_3ad_handle_link_change(struct slave *slave, char link)
  port->is_enabled = false;
  ad_update_actor_keys(port, true);
  }
+ agg = __get_first_agg(port);
+ ad_agg_selection_logic(agg, &dummy);
+
  netdev_dbg(slave->bond->dev, "Port %d changed link status to %s\n",
    port->actor_port_number,
    link == BOND_LINK_UP ? "UP" : "DOWN");
@@ -2461,7 +2487,7 @@ int bond_3ad_set_carrier(struct bonding *bond)
  active = __get_active_agg(&(SLAVE_AD_INFO(first_slave)->aggregator));
  if (active) {
  /* are enough slaves available to consider link up? */
- if (active->num_of_ports < bond->params.min_links) {
+ if (__agg_active_ports(active) < bond->params.min_links) {
  if (netif_carrier_ok(bond->dev)) {
  netif_carrier_off(bond->dev);
  goto out;
--
2.7.4


--
kernel-team mailing list
[hidden email]
https://lists.ubuntu.com/mailman/listinfo/kernel-team
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

[SRU][Xenial][PATCH 3/4] bonding: add 802.3ad support for 25G speeds

Joseph Salisbury-3
In reply to this post by Joseph Salisbury-3
From: Jarod Wilson <[hidden email]>

BugLink: http://bugs.launchpad.net/bugs/1697892

Cut-n-paste enablement of 802.3ad bonding on 25G NICs, which currently
report 0 as their bandwidth.

CC: Jay Vosburgh <[hidden email]>
CC: Veaceslav Falico <[hidden email]>
CC: Andy Gospodarek <[hidden email]>
CC: [hidden email]
Signed-off-by: Jarod Wilson <[hidden email]>
Acked-by: Andy Gospodarek <[hidden email]>
Signed-off-by: David S. Miller <[hidden email]>
(cherry picked from commit 19ddde1eeca1ee81f4add5e04da66055e09281ac)
Signed-off-by: Joseph Salisbury <[hidden email]>
---
 drivers/net/bonding/bond_3ad.c | 9 +++++++++
 1 file changed, 9 insertions(+)

diff --git a/drivers/net/bonding/bond_3ad.c b/drivers/net/bonding/bond_3ad.c
index 4d71426..3e983d8 100644
--- a/drivers/net/bonding/bond_3ad.c
+++ b/drivers/net/bonding/bond_3ad.c
@@ -92,6 +92,7 @@ enum ad_link_speed_type {
  AD_LINK_SPEED_2500MBPS,
  AD_LINK_SPEED_10000MBPS,
  AD_LINK_SPEED_20000MBPS,
+ AD_LINK_SPEED_25000MBPS,
  AD_LINK_SPEED_40000MBPS,
  AD_LINK_SPEED_56000MBPS,
  AD_LINK_SPEED_100000MBPS,
@@ -257,6 +258,7 @@ static inline int __check_agg_selection_timer(struct port *port)
  *     %AD_LINK_SPEED_2500MBPS,
  *     %AD_LINK_SPEED_10000MBPS
  *     %AD_LINK_SPEED_20000MBPS
+ *     %AD_LINK_SPEED_25000MBPS
  *     %AD_LINK_SPEED_40000MBPS
  *     %AD_LINK_SPEED_56000MBPS
  *     %AD_LINK_SPEED_100000MBPS
@@ -299,6 +301,10 @@ static u16 __get_link_speed(struct port *port)
  speed = AD_LINK_SPEED_20000MBPS;
  break;
 
+ case SPEED_25000:
+ speed = AD_LINK_SPEED_25000MBPS;
+ break;
+
  case SPEED_40000:
  speed = AD_LINK_SPEED_40000MBPS;
  break;
@@ -696,6 +702,9 @@ static u32 __get_agg_bandwidth(struct aggregator *aggregator)
  case AD_LINK_SPEED_20000MBPS:
  bandwidth = nports * 20000;
  break;
+ case AD_LINK_SPEED_25000MBPS:
+ bandwidth = nports * 25000;
+ break;
  case AD_LINK_SPEED_40000MBPS:
  bandwidth = nports * 40000;
  break;
--
2.7.4


--
kernel-team mailing list
[hidden email]
https://lists.ubuntu.com/mailman/listinfo/kernel-team
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

[SRU][Xenial][PATCH 4/4] bonding: fix 802.3ad support for 5G and 50G speeds

Joseph Salisbury-3
In reply to this post by Joseph Salisbury-3
From: Thibaut Collet <[hidden email]>

BugLink: http://bugs.launchpad.net/bugs/1697892

This patch adds [5|50] Gbps enum definition, and fixes
aggregated bandwidth calculation based on above slave links.

Fixes: c9a70d43461d ("net-next: ethtool: Added port speed macros.")
Signed-off-by: Thibaut Collet <[hidden email]>
Signed-off-by: Nicolas Dichtel <[hidden email]>
Acked-by: Andy Gospodarek <[hidden email]>
Signed-off-by: David S. Miller <[hidden email]>
(cherry picked from commit c7c550670afda2e16f9e2d06a1473885312eb6b5)
Signed-off-by: Joseph Salisbury <[hidden email]>
---
 drivers/net/bonding/bond_3ad.c | 18 ++++++++++++++++++
 1 file changed, 18 insertions(+)

diff --git a/drivers/net/bonding/bond_3ad.c b/drivers/net/bonding/bond_3ad.c
index 3e983d8..53370d0 100644
--- a/drivers/net/bonding/bond_3ad.c
+++ b/drivers/net/bonding/bond_3ad.c
@@ -90,10 +90,12 @@ enum ad_link_speed_type {
  AD_LINK_SPEED_100MBPS,
  AD_LINK_SPEED_1000MBPS,
  AD_LINK_SPEED_2500MBPS,
+ AD_LINK_SPEED_5000MBPS,
  AD_LINK_SPEED_10000MBPS,
  AD_LINK_SPEED_20000MBPS,
  AD_LINK_SPEED_25000MBPS,
  AD_LINK_SPEED_40000MBPS,
+ AD_LINK_SPEED_50000MBPS,
  AD_LINK_SPEED_56000MBPS,
  AD_LINK_SPEED_100000MBPS,
 };
@@ -256,10 +258,12 @@ static inline int __check_agg_selection_timer(struct port *port)
  *     %AD_LINK_SPEED_100MBPS,
  *     %AD_LINK_SPEED_1000MBPS,
  *     %AD_LINK_SPEED_2500MBPS,
+ *     %AD_LINK_SPEED_5000MBPS,
  *     %AD_LINK_SPEED_10000MBPS
  *     %AD_LINK_SPEED_20000MBPS
  *     %AD_LINK_SPEED_25000MBPS
  *     %AD_LINK_SPEED_40000MBPS
+ *     %AD_LINK_SPEED_50000MBPS
  *     %AD_LINK_SPEED_56000MBPS
  *     %AD_LINK_SPEED_100000MBPS
  */
@@ -293,6 +297,10 @@ static u16 __get_link_speed(struct port *port)
  speed = AD_LINK_SPEED_2500MBPS;
  break;
 
+ case SPEED_5000:
+ speed = AD_LINK_SPEED_5000MBPS;
+ break;
+
  case SPEED_10000:
  speed = AD_LINK_SPEED_10000MBPS;
  break;
@@ -309,6 +317,10 @@ static u16 __get_link_speed(struct port *port)
  speed = AD_LINK_SPEED_40000MBPS;
  break;
 
+ case SPEED_50000:
+ speed = AD_LINK_SPEED_50000MBPS;
+ break;
+
  case SPEED_56000:
  speed = AD_LINK_SPEED_56000MBPS;
  break;
@@ -696,6 +708,9 @@ static u32 __get_agg_bandwidth(struct aggregator *aggregator)
  case AD_LINK_SPEED_2500MBPS:
  bandwidth = nports * 2500;
  break;
+ case AD_LINK_SPEED_5000MBPS:
+ bandwidth = nports * 5000;
+ break;
  case AD_LINK_SPEED_10000MBPS:
  bandwidth = nports * 10000;
  break;
@@ -708,6 +723,9 @@ static u32 __get_agg_bandwidth(struct aggregator *aggregator)
  case AD_LINK_SPEED_40000MBPS:
  bandwidth = nports * 40000;
  break;
+ case AD_LINK_SPEED_50000MBPS:
+ bandwidth = nports * 50000;
+ break;
  case AD_LINK_SPEED_56000MBPS:
  bandwidth = nports * 56000;
  break;
--
2.7.4


--
kernel-team mailing list
[hidden email]
https://lists.ubuntu.com/mailman/listinfo/kernel-team
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

ACK: [SRU][Xenial][PATCH 0/4] Fixes for LP:1697892

Stefan Bader-2
In reply to this post by Joseph Salisbury-3
On 14.07.2017 17:13, Joseph Salisbury wrote:

> BugLink: http://bugs.launchpad.net/bugs/1697892
>
> == SRU Justification ==
> Kernel versions >= 4.2: bonding 802.3ad does not work with 5G, 25G and 50G link
> speeds.  This bug is resolved by mainline commits 3952af4d, 0622cab0, 19ddde1 and c7c55067.  These
> commits were included in mainline in the following versions:
>
> 3952af4d: v4.5-rc1
> 0622cab0: v4.7-rc6
> 19ddde1e: v4.12-rc1
> c7c55067: v4.12-rc6
>
> The fix is  needed in Xenial, Yakkety, Zesty and Artful. Y, Z and A do
> not need the first two prereq commits, so their SRU will be sent separatly.
>
> == Fixes ==
> commit 3952af4d50343728e54bf93880e0ecb9c42c47aa
> Author: Jiri Pirko <[hidden email]>
> Date:   Thu Dec 3 12:12:05 2015 +0100
>
>     bonding: add 802.3ad support for 100G speeds
>
> commit 0622cab0341cac6b30da177b0faa39fae0680e71
> Author: Jay Vosburgh <[hidden email]>
> Date:   Thu Jun 23 14:20:51 2016 -0700
>
>     bonding: fix 802.3ad aggregator reselection
>
> commit 19ddde1eeca1ee81f4add5e04da66055e09281ac
> Author: Jarod Wilson <[hidden email]>
> Date:   Tue Mar 14 11:48:32 2017 -0400
>
>     bonding: add 802.3ad support for 25G speeds
>
> commit c7c550670afda2e16f9e2d06a1473885312eb6b5
> Author: Thibaut Collet <[hidden email]>
> Date:   Thu Jun 8 11:18:11 2017 +0200
>
>     bonding: fix 802.3ad support for 5G and 50G speeds
>
> == Regression Potential ==
> These commits are just adding new enum definitions, so risk of regression
> is low.  Commit  0622cab034 is a prereq commit needed for Xenial to fix a
> regression caused by commit 7bb11dc9f59d.
>
> == Test Case ==
> A test kernel was built with these patches and tested by the original bug
> reporter.  The bug reporter states the test kernel resolved the bug.
>
>
> Jarod Wilson (1):
>   bonding: add 802.3ad support for 25G speeds
>
> Jay Vosburgh (1):
>   bonding: fix 802.3ad aggregator reselection
>
> Jiri Pirko (1):
>   bonding: add 802.3ad support for 100G speeds
>
> Thibaut Collet (1):
>   bonding: fix 802.3ad support for 5G and 50G speeds
>
>  drivers/net/bonding/bond_3ad.c | 100 +++++++++++++++++++++++++++++++++--------
>  1 file changed, 81 insertions(+), 19 deletions(-)
>
Acked-by: Stefan Bader <[hidden email]>



--
kernel-team mailing list
[hidden email]
https://lists.ubuntu.com/mailman/listinfo/kernel-team

signature.asc (836 bytes) Download Attachment
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

ACK: [SRU][Xenial][PATCH 0/4] Fixes for LP:1697892

Marcelo Cerri
In reply to this post by Joseph Salisbury-3
Loading...