openbcm

Git mirror of https://github.com/Broadcom-Network-Switching-Software/OpenBCM
git clone git://git.finwo.net/mirror/broadcom/openbcm
Log | Files | Refs | README

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:
Msdk-6.5.16/src/bcm/esw/port.c | 11++++++++++-
Msdk-6.5.16/src/bcm/esw/switch.c | 36++++++++++++++++++++++++++++++++----
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) */