aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/ixgbe/ixgbe_dcb_nl.c
diff options
context:
space:
mode:
authorDon Skidmore <donald.c.skidmore@intel.com>2008-12-21 23:10:29 -0500
committerDavid S. Miller <davem@davemloft.net>2008-12-21 23:10:29 -0500
commitf4314e815e87b4ab1c9b1115dd5853cd20ca999c (patch)
tree4a8784070f58420814528ca0abd5cf3e12753ce5 /drivers/net/ixgbe/ixgbe_dcb_nl.c
parent1486a61ebcd2711532f8163d30babc40e11e7b40 (diff)
net: add DCNA attribute to the BCN interface for DCB
Adds the Backward Congestion Notification Address (BCNA) attribute to the Backward Congestion Notification (BCN) interface for Data Center Bridging (DCB), which was missing. Receive the BCNA attribute in the ixgbe driver. The BCNA attribute is for a switch to inform the endstation about the physical port identification in order to support BCN on aggregated links. Signed-off-by: Don Skidmore <donald.c.skidmore@intel.com> Signed-off-by: Eric W Multanen <eric.w.multanen@intel.com> Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
Diffstat (limited to 'drivers/net/ixgbe/ixgbe_dcb_nl.c')
-rw-r--r--drivers/net/ixgbe/ixgbe_dcb_nl.c20
1 files changed, 20 insertions, 0 deletions
diff --git a/drivers/net/ixgbe/ixgbe_dcb_nl.c b/drivers/net/ixgbe/ixgbe_dcb_nl.c
index 7d158a5c545..8ac639d0da0 100644
--- a/drivers/net/ixgbe/ixgbe_dcb_nl.c
+++ b/drivers/net/ixgbe/ixgbe_dcb_nl.c
@@ -93,6 +93,8 @@ int ixgbe_copy_dcb_cfg(struct ixgbe_dcb_config *src_dcb_cfg,
93 dst_dcb_cfg->bcn.rp_admin_mode[i - DCB_BCN_ATTR_RP_0] = 93 dst_dcb_cfg->bcn.rp_admin_mode[i - DCB_BCN_ATTR_RP_0] =
94 src_dcb_cfg->bcn.rp_admin_mode[i - DCB_BCN_ATTR_RP_0]; 94 src_dcb_cfg->bcn.rp_admin_mode[i - DCB_BCN_ATTR_RP_0];
95 } 95 }
96 dst_dcb_cfg->bcn.bcna_option[0] = src_dcb_cfg->bcn.bcna_option[0];
97 dst_dcb_cfg->bcn.bcna_option[1] = src_dcb_cfg->bcn.bcna_option[1];
96 dst_dcb_cfg->bcn.rp_alpha = src_dcb_cfg->bcn.rp_alpha; 98 dst_dcb_cfg->bcn.rp_alpha = src_dcb_cfg->bcn.rp_alpha;
97 dst_dcb_cfg->bcn.rp_beta = src_dcb_cfg->bcn.rp_beta; 99 dst_dcb_cfg->bcn.rp_beta = src_dcb_cfg->bcn.rp_beta;
98 dst_dcb_cfg->bcn.rp_gd = src_dcb_cfg->bcn.rp_gd; 100 dst_dcb_cfg->bcn.rp_gd = src_dcb_cfg->bcn.rp_gd;
@@ -457,6 +459,12 @@ static void ixgbe_dcbnl_getbcncfg(struct net_device *netdev, int enum_index,
457 struct ixgbe_adapter *adapter = netdev_priv(netdev); 459 struct ixgbe_adapter *adapter = netdev_priv(netdev);
458 460
459 switch (enum_index) { 461 switch (enum_index) {
462 case DCB_BCN_ATTR_BCNA_0:
463 *setting = adapter->dcb_cfg.bcn.bcna_option[0];
464 break;
465 case DCB_BCN_ATTR_BCNA_1:
466 *setting = adapter->dcb_cfg.bcn.bcna_option[1];
467 break;
460 case DCB_BCN_ATTR_ALPHA: 468 case DCB_BCN_ATTR_ALPHA:
461 *setting = adapter->dcb_cfg.bcn.rp_alpha; 469 *setting = adapter->dcb_cfg.bcn.rp_alpha;
462 break; 470 break;
@@ -516,6 +524,18 @@ static void ixgbe_dcbnl_setbcncfg(struct net_device *netdev, int enum_index,
516 struct ixgbe_adapter *adapter = netdev_priv(netdev); 524 struct ixgbe_adapter *adapter = netdev_priv(netdev);
517 525
518 switch (enum_index) { 526 switch (enum_index) {
527 case DCB_BCN_ATTR_BCNA_0:
528 adapter->temp_dcb_cfg.bcn.bcna_option[0] = setting;
529 if (adapter->temp_dcb_cfg.bcn.bcna_option[0] !=
530 adapter->dcb_cfg.bcn.bcna_option[0])
531 adapter->dcb_set_bitmap |= BIT_BCN;
532 break;
533 case DCB_BCN_ATTR_BCNA_1:
534 adapter->temp_dcb_cfg.bcn.bcna_option[1] = setting;
535 if (adapter->temp_dcb_cfg.bcn.bcna_option[1] !=
536 adapter->dcb_cfg.bcn.bcna_option[1])
537 adapter->dcb_set_bitmap |= BIT_BCN;
538 break;
519 case DCB_BCN_ATTR_ALPHA: 539 case DCB_BCN_ATTR_ALPHA:
520 adapter->temp_dcb_cfg.bcn.rp_alpha = setting; 540 adapter->temp_dcb_cfg.bcn.rp_alpha = setting;
521 if (adapter->temp_dcb_cfg.bcn.rp_alpha != 541 if (adapter->temp_dcb_cfg.bcn.rp_alpha !=