commit 70f6fd6669d89fa1ab39ed6bf3fb84519115abdb
parent 3589cd69e41f327b0e9047db8d18d2ea1b2b4ae9
Author: Broadcom SDK Release <sdk.releases@broadcom.com>
Date: Fri, 9 Aug 2019 16:23:14 -0700
SDK-186227: Now with the fix users would be able to set 6 bits for PORT LBN f...
Devices: 56980_A0
Module: rtag7
Symptom:
Width of LBN (sub_field_width[2]) is set to 4 in the API
_bcm_xgs3_fieldoffset_set. Shouldn't it be 6?
Now with the fix users would be able to set 6 bits for PORT LBN for TH3.
Diffstat:
2 files changed, 42 insertions(+), 5 deletions(-)
diff --git a/sdk-6.5.16/src/bcm/esw/port.c b/sdk-6.5.16/src/bcm/esw/port.c
@@ -38091,9 +38091,18 @@ bcm_pbmp_t pbmp;
case bcmPortControlLoadBalancingNumber:
#if defined(BCM_BRADLEY_SUPPORT)
if (SOC_IS_HBX(unit) || SOC_IS_TRX(unit)) {
- rv = _bcm_esw_port_tab_set(unit, port, _BCM_CPU_TABS_BOTH,
+#if defined(BCM_TOMAHAWK3_SUPPORT)
+ if (SOC_IS_TOMAHAWK3(unit)) {
+ rv = _bcm_esw_port_tab_set(unit, port, _BCM_CPU_TABS_BOTH,
+ RTAG7_PORT_LBNf,
+ (value) & 0x3f);
+ } else
+#endif /* BCM_TOMAHAWK3_SUPPORT */
+ {
+ rv = _bcm_esw_port_tab_set(unit, port, _BCM_CPU_TABS_BOTH,
RTAG7_PORT_LBNf,
(value) & 0xf);
+ }
}
#endif /* BCM_BRADLEY_SUPPORT */
break;
diff --git a/sdk-6.5.16/src/bcm/esw/switch.c b/sdk-6.5.16/src/bcm/esw/switch.c
@@ -9665,7 +9665,14 @@ _bcm_xgs3_fieldoffset_set(int unit, bcm_port_t port,
if (SOC_IS_TD_TT(unit) || SOC_IS_TRIUMPH3(unit)) {
sub_field_width[0] = 16; /* HASH_A0 (16bit) */
sub_field_width[1] = 16; /* HASH_B0 (16bit) */
- sub_field_width[2] = 4; /* LBN (4bit) */
+#if defined(BCM_TOMAHAWK3_SUPPORT)
+ if (SOC_IS_TOMAHAWK3(unit)) {
+ sub_field_width[2] = 6; /* LBN (6bit) */
+ } else
+#endif /* BCM_TOMAHAWK3_SUPPORT */
+ {
+ sub_field_width[2] = 4; /* LBN (4bit) */
+ }
sub_field_width[3] = 16; /* MH.DPORT/ HASH_A0(16bit) */
sub_field_width[4] = 8; /* MH.LBID / IRSEL local LBID (8 bit) */
sub_field_width[5] = 8; /* SW1 LBID ( 8 bit)*/
@@ -9740,7 +9747,14 @@ _bcm_xgs3_fieldoffset_set(int unit, bcm_port_t port,
if (SOC_IS_TRIUMPH3(unit) || SOC_IS_TD_TT(unit)) {
sub_field_width[0] = 64; /* Concat B1,B0,A1,A0(64bit) */
sub_field_width[1] = 0; /* 0 */
- sub_field_width[2] = 4; /* LBN (4bit) */
+#if defined(BCM_TOMAHAWK3_SUPPORT)
+ if (SOC_IS_TOMAHAWK3(unit)) {
+ sub_field_width[2] = 6; /* LBN (6bit) */
+ } else
+#endif /* BCM_TOMAHAWK3_SUPPORT */
+ {
+ sub_field_width[2] = 4; /* LBN (4bit) */
+ }
sub_field_width[3] = 16; /* MH.DPORT/ HASH_A0(16bit) */
sub_field_width[4] = 8; /* MH.LBID / IRSEL local LBID (8 bit) */
sub_field_width[5] = 8; /* SW1 LBID (8 bit) */
@@ -10008,7 +10022,14 @@ _bcm_xgs3_fieldoffset_get(int unit, bcm_port_t port,
if (SOC_IS_TD_TT(unit) || SOC_IS_TRIUMPH3(unit)) {
sub_field_width[0] = 16; /* HASH_A0 (16bit) */
sub_field_width[1] = 16; /* HASH_B0 (16bit) */
- sub_field_width[2] = 4; /* LBN (4bit) */
+#if defined(BCM_TOMAHAWK3_SUPPORT)
+ if (SOC_IS_TOMAHAWK3(unit)) {
+ sub_field_width[2] = 6; /* LBN (6bit) */
+ } else
+#endif /* BCM_TOMAHAWK3_SUPPORT */
+ {
+ sub_field_width[2] = 4; /* LBN (4bit) */
+ }
sub_field_width[3] = 16; /* MH.DPORT/ HASH_A0(16bit) */
sub_field_width[4] = 8; /* MH.LBID / IRSEL local LBID (8 bit) */
sub_field_width[5] = 8; /* SW1 LBID ( 8 bit)*/
@@ -10072,7 +10093,14 @@ _bcm_xgs3_fieldoffset_get(int unit, bcm_port_t port,
if (SOC_IS_TD_TT(unit) || SOC_IS_TRIUMPH3(unit)) {
sub_field_width[0] = 64; /* Concat B1,B0,A1,A0(64bit) */
sub_field_width[1] = 0; /* 0 */
- sub_field_width[2] = 4; /* LBN (4bit) */
+#if defined(BCM_TOMAHAWK3_SUPPORT)
+ if (SOC_IS_TOMAHAWK3(unit)) {
+ sub_field_width[2] = 6; /* LBN (6bit) */
+ } else
+#endif /* BCM_TOMAHAWK3_SUPPORT */
+ {
+ sub_field_width[2] = 4; /* LBN (4bit) */
+ }
sub_field_width[3] = 16; /* MH.DPORT/ HASH_A0(16bit) */
sub_field_width[4] = 8; /* MH.LBID / IRSEL local LBID (8 bit) */
sub_field_width[5] = 8; /* SW1 LBID (8 bit) */