Skip to content

Commit 8085a36

Browse files
kubalewskianguy11
authored andcommitted
i40e: Remove LLDP frame filters
Remove filters from being setup in case of software DCB and allow the LLDP frames to be properly transmitted to the wire. It is not possible to transmit the LLDP frame out of the port, if they are filtered by control VSI. This prohibits software LLDP agent properly communicate its DCB capabilities to the neighbors. Fixes: 4b208ea ("i40e: Add init and default config of software based DCB") Signed-off-by: Arkadiusz Kubalewski <[email protected]> Tested-by: Imam Hassan Reza Biswas <[email protected]> Signed-off-by: Tony Nguyen <[email protected]>
1 parent 15395ec commit 8085a36

File tree

3 files changed

+0
-44
lines changed

3 files changed

+0
-44
lines changed

drivers/net/ethernet/intel/i40e/i40e.h

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1144,7 +1144,6 @@ static inline bool i40e_is_sw_dcb(struct i40e_pf *pf)
11441144
return !!(pf->flags & I40E_FLAG_DISABLE_FW_LLDP);
11451145
}
11461146

1147-
void i40e_set_lldp_forwarding(struct i40e_pf *pf, bool enable);
11481147
#ifdef CONFIG_I40E_DCB
11491148
void i40e_dcbnl_flush_apps(struct i40e_pf *pf,
11501149
struct i40e_dcbx_config *old_cfg,

drivers/net/ethernet/intel/i40e/i40e_ethtool.c

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5282,7 +5282,6 @@ static int i40e_set_priv_flags(struct net_device *dev, u32 flags)
52825282
i40e_aq_cfg_lldp_mib_change_event(&pf->hw, false, NULL);
52835283
i40e_aq_stop_lldp(&pf->hw, true, false, NULL);
52845284
} else {
5285-
i40e_set_lldp_forwarding(pf, false);
52865285
status = i40e_aq_start_lldp(&pf->hw, false, NULL);
52875286
if (status) {
52885287
adq_err = pf->hw.aq.asq_last_status;

drivers/net/ethernet/intel/i40e/i40e_main.c

Lines changed: 0 additions & 42 deletions
Original file line numberDiff line numberDiff line change
@@ -6879,40 +6879,6 @@ static int i40e_init_pf_dcb(struct i40e_pf *pf)
68796879
}
68806880
#endif /* CONFIG_I40E_DCB */
68816881

6882-
/**
6883-
* i40e_set_lldp_forwarding - set forwarding of lldp frames
6884-
* @pf: PF being configured
6885-
* @enable: if forwarding to OS shall be enabled
6886-
*
6887-
* Toggle forwarding of lldp frames behavior,
6888-
* When passing DCB control from firmware to software
6889-
* lldp frames must be forwarded to the software based
6890-
* lldp agent.
6891-
*/
6892-
void i40e_set_lldp_forwarding(struct i40e_pf *pf, bool enable)
6893-
{
6894-
if (pf->lan_vsi == I40E_NO_VSI)
6895-
return;
6896-
6897-
if (!pf->vsi[pf->lan_vsi])
6898-
return;
6899-
6900-
/* No need to check the outcome, commands may fail
6901-
* if desired value is already set
6902-
*/
6903-
i40e_aq_add_rem_control_packet_filter(&pf->hw, NULL, ETH_P_LLDP,
6904-
I40E_AQC_ADD_CONTROL_PACKET_FLAGS_TX |
6905-
I40E_AQC_ADD_CONTROL_PACKET_FLAGS_IGNORE_MAC,
6906-
pf->vsi[pf->lan_vsi]->seid, 0,
6907-
enable, NULL, NULL);
6908-
6909-
i40e_aq_add_rem_control_packet_filter(&pf->hw, NULL, ETH_P_LLDP,
6910-
I40E_AQC_ADD_CONTROL_PACKET_FLAGS_RX |
6911-
I40E_AQC_ADD_CONTROL_PACKET_FLAGS_IGNORE_MAC,
6912-
pf->vsi[pf->lan_vsi]->seid, 0,
6913-
enable, NULL, NULL);
6914-
}
6915-
69166882
/**
69176883
* i40e_print_link_message - print link up or down
69186884
* @vsi: the VSI for which link needs a message
@@ -10736,10 +10702,6 @@ static void i40e_rebuild(struct i40e_pf *pf, bool reinit, bool lock_acquired)
1073610702
*/
1073710703
i40e_add_filter_to_drop_tx_flow_control_frames(&pf->hw,
1073810704
pf->main_vsi_seid);
10739-
#ifdef CONFIG_I40E_DCB
10740-
if (pf->flags & I40E_FLAG_DISABLE_FW_LLDP)
10741-
i40e_set_lldp_forwarding(pf, true);
10742-
#endif /* CONFIG_I40E_DCB */
1074310705

1074410706
/* restart the VSIs that were rebuilt and running before the reset */
1074510707
i40e_pf_unquiesce_all_vsi(pf);
@@ -15772,10 +15734,6 @@ static int i40e_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
1577215734
*/
1577315735
i40e_add_filter_to_drop_tx_flow_control_frames(&pf->hw,
1577415736
pf->main_vsi_seid);
15775-
#ifdef CONFIG_I40E_DCB
15776-
if (pf->flags & I40E_FLAG_DISABLE_FW_LLDP)
15777-
i40e_set_lldp_forwarding(pf, true);
15778-
#endif /* CONFIG_I40E_DCB */
1577915737

1578015738
if ((pf->hw.device_id == I40E_DEV_ID_10G_BASE_T) ||
1578115739
(pf->hw.device_id == I40E_DEV_ID_10G_BASE_T4))

0 commit comments

Comments
 (0)