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 1188d650e4c3dc61a5b51f864e0253e37eef83fc
parent 42d27846d0f706effeec4ce6221c168da31ed2b7
Author: Broadcom SDK Release <sdk.releases@broadcom.com>
Date:   Thu,  4 Apr 2019 00:04:04 -0700

SDK-175777: Set the correct offset of qual bcmFieldQualifyEtherType in stage ...

Devices: 56980_A0,56980_B0
Module: field

Symptom:
VFP ethertype does not work in intra-slice mode.

Set the correct offset of qual bcmFieldQualifyEtherType in stage lookup
for 56980 devices during qualifier initialization.

Diffstat:
Msdk-6.5.16/src/bcm/esw/tomahawk/field.c | 28+++++++++++++++++++++++++---
1 file changed, 25 insertions(+), 3 deletions(-)

diff --git a/sdk-6.5.16/src/bcm/esw/tomahawk/field.c b/sdk-6.5.16/src/bcm/esw/tomahawk/field.c @@ -7514,8 +7514,16 @@ _field_th_lookup_qualifiers_init(int unit, _field_stage_t *stage_fc) _bcmFieldSliceSelFpf3, 0, f3_offset + 13, 3); } - _FP_QUAL_ADD(unit, stage_fc, bcmFieldQualifyEtherType, +#if defined (BCM_TOMAHAWK3_SUPPORT) + if (SOC_IS_TOMAHAWK3(unit)) { + _FP_QUAL_ADD(unit, stage_fc, bcmFieldQualifyEtherType, + _bcmFieldSliceSelFpf3, 0, f3_offset + 0, 16); + } else +#endif + { + _FP_QUAL_ADD(unit, stage_fc, bcmFieldQualifyEtherType, _bcmFieldSliceSelFpf3, 0, f3_offset + 16, 16); + } /* F3_1 */ _FP_QUAL_TWO_SLICE_SEL_ADD(unit, stage_fc, bcmFieldQualifyInnerL4DstPort, @@ -7784,13 +7792,27 @@ _field_th_lookup_qualifiers_init(int unit, _field_stage_t *stage_fc) _bcmFieldSliceSelFpf1, 0, _bcmFieldSliceIpHeaderSelect, 0, f1_offset + 8, 8); - +#if defined (BCM_TOMAHAWK3_SUPPORT) + if (soc_feature(unit, soc_feature_th3_style_fp)) { + _FP_QUAL_INTRASLICE_ADD(unit, stage_fc, bcmFieldQualifyInterfaceClassL3, + _bcmFieldSliceSelFpf1, 0, + _bcmFieldSliceIpHeaderSelect, 0, f1_offset + 16, + 12); + _FP_QUAL_INTRASLICE_ADD(unit, stage_fc, bcmFieldQualifyEtherType, + _bcmFieldSliceSelFpf1, 0, + _bcmFieldSliceIpHeaderSelect, 0, f1_offset + 28, + 16); + } else +#endif +#if defined (BCM_TRIDENT3_SUPPORT) if (soc_feature(unit, soc_feature_td3_style_fp)) { _FP_QUAL_INTRASLICE_ADD(unit, stage_fc, bcmFieldQualifyEtherType, _bcmFieldSliceSelFpf1, 0, _bcmFieldSliceIpHeaderSelect, 0, f1_offset + 16, 16); - } else { + } else +#endif + { _FP_QUAL_INTRASLICE_ADD(unit, stage_fc, bcmFieldQualifyInterfaceClassL3, _bcmFieldSliceSelFpf1, 0, _bcmFieldSliceIpHeaderSelect, 0, f1_offset + 16,