We see the below error logs:
Aug 22 15:04:40 [Device] fpc0 LBCM-L2,pfe_bcm_l2_egr_vlan_xlat_program(),118: EGRESS vlan-xlat entry set failed for ifl(), egr-xlat-outer(), old_vlan-id(), port-classid()
Aug 22 15:04:40 [Device] fpc0 LBCM-L2,brcm_l2_bdvlan_ep_bd_ifbd_attach_cmn(),741: Unable to add vlan egr xlate hw_entry *** to dev_num 0 ifl ***
Aug 22 15:04:40 [Device] fpc0 LBCM-L2,pfe_bcm_l2_ep_bd_ifbd_attach(),3313: Vlan membership failed for ifd [interface]
Aug 22 15:04:40 [Device] fpc0 LBCM-L2,pfe_bcm_l2_evt_entry_set(),2519: EGR-VLAN-translation (hw-token: ***, vlan-tag: ***, port_class: ***) failed (error-msg: Table full)
1. With native-vlan, calculations change drastically because of allocation of different Port class id to differentiate the behaviour as per the design. 2. This Port class is per ifd. there is optimistaion in place at egress to re-use the port_class id. 3. An entry is installed in the egr_xlate_table (which is a hash table) with <Port_class, ovid, ivid> as key to replace the outer vlan hw-token to ovid. 4. In the device, there are 1527 vlans, from the dump we see it has 9 different port class id's. so by formula: EGR_VLAN_XLATE_1_DOUBLE.epipe0 count = (No. of vlan)+ [ (No. of vlan) * Port class_id] , we will get= 13,743 entries which is less than 16384 entries. Leaf-egr_xlate % grep -o 'XLATE:PORT_GROUP_ID=[0-9]\+' egr_xlate.log | sort | uniq XLATE:PORT_GROUP_ID=0 XLATE:PORT_GROUP_ID=1 XLATE:PORT_GROUP_ID=2 XLATE:PORT_GROUP_ID=3 XLATE:PORT_GROUP_ID=4 XLATE:PORT_GROUP_ID=5 XLATE:PORT_GROUP_ID=6 XLATE:PORT_GROUP_ID=8 XLATE:PORT_GROUP_ID=9 5. If let say customer is adding another native-vlan, then in worst case, if new Port class is assigned, then it is the case of table full. so by formula: EGR_VLAN_XLATE_1_DOUBLE.epipe0 count = (No. of vlan)+ [ (No. of vlan) * Port class_id] >> 16384.