u8 mask = QED_ACCEPT_UCAST_UNMATCHED | QED_ACCEPT_MCAST_UNMATCHED;
        struct qed_filter_accept_flags *flags = ¶ms->accept_flags;
        struct qed_public_vf_info *vf_info;
+       u16 tlv_mask;
+
+       tlv_mask = BIT(QED_IOV_VP_UPDATE_ACCEPT_PARAM) |
+                  BIT(QED_IOV_VP_UPDATE_ACCEPT_ANY_VLAN);
 
        /* Untrusted VFs can't even be trusted to know that fact.
         * Simply indicate everything is configured fine, and trace
         * configuration 'behind their back'.
         */
-       if (!(*tlvs & BIT(QED_IOV_VP_UPDATE_ACCEPT_PARAM)))
+       if (!(*tlvs & tlv_mask))
                return 0;
 
        vf_info = qed_iov_get_public_vf_info(hwfn, vfid, true);
                        flags->tx_accept_filter &= ~mask;
        }
 
+       if (params->update_accept_any_vlan_flg) {
+               vf_info->accept_any_vlan = params->accept_any_vlan;
+
+               if (vf_info->forced_vlan && !vf_info->is_trusted_configured)
+                       params->accept_any_vlan = false;
+       }
+
        return 0;
 }
 
 
                params.update_ctl_frame_check = 1;
                params.mac_chk_en = !vf_info->is_trusted_configured;
+               params.update_accept_any_vlan_flg = 0;
+
+               if (vf_info->accept_any_vlan && vf_info->forced_vlan) {
+                       params.update_accept_any_vlan_flg = 1;
+                       params.accept_any_vlan = vf_info->accept_any_vlan;
+               }
 
                if (vf_info->rx_accept_mode & mask) {
                        flags->update_rx_mode_config = 1;
                if (!vf_info->is_trusted_configured) {
                        flags->rx_accept_filter &= ~mask;
                        flags->tx_accept_filter &= ~mask;
+                       params.accept_any_vlan = false;
                }
 
                if (flags->update_rx_mode_config ||
                    flags->update_tx_mode_config ||
-                   params.update_ctl_frame_check)
+                   params.update_ctl_frame_check ||
+                   params.update_accept_any_vlan_flg) {
+                       DP_VERBOSE(hwfn, QED_MSG_IOV,
+                                  "vport update config for %s VF[abs 0x%x rel 0x%x]\n",
+                                  vf_info->is_trusted_configured ? "trusted" : "untrusted",
+                                  vf->abs_vf_id, vf->relative_vf_id);
                        qed_sp_vport_update(hwfn, ¶ms,
                                            QED_SPQ_MODE_EBLOCK, NULL);
+               }
        }
 }