/* If any new ops are added to the VSI VLAN ops interface then an unsupported * implementation should be set here.
*/ staticstruct ice_vsi_vlan_ops ops_unsupported = {
.add_vlan = op_unsupported_vlan_arg,
.del_vlan = op_unsupported_vlan_arg,
.ena_stripping = op_unsupported_tpid_arg,
.dis_stripping = op_unsupported,
.ena_insertion = op_unsupported_tpid_arg,
.dis_insertion = op_unsupported,
.ena_rx_filtering = op_unsupported,
.dis_rx_filtering = op_unsupported,
.ena_tx_filtering = op_unsupported,
.dis_tx_filtering = op_unsupported,
.set_port_vlan = op_unsupported_vlan_arg,
};
/** * ice_vsi_init_unsupported_vlan_ops - init all VSI VLAN ops to unsupported * @vsi: VSI to initialize VSI VLAN ops to unsupported for * * By default all inner and outer VSI VLAN ops return -EOPNOTSUPP. This was done * as oppsed to leaving the ops null to prevent unexpected crashes. Instead if * an unsupported VSI VLAN op is called it will just return -EOPNOTSUPP. *
*/ staticvoid ice_vsi_init_unsupported_vlan_ops(struct ice_vsi *vsi)
{
vsi->outer_vlan_ops = ops_unsupported;
vsi->inner_vlan_ops = ops_unsupported;
}
/** * ice_vsi_init_vlan_ops - initialize type specific VSI VLAN ops * @vsi: VSI to initialize ops for * * If any VSI types are added and/or require different ops than the PF or VF VSI * then they will have to add a case here to handle that. Also, VSI type * specific files should be added in the same manner that was done for PF VSI.
*/ void ice_vsi_init_vlan_ops(struct ice_vsi *vsi)
{ /* Initialize all VSI types to have unsupported VSI VLAN ops */
ice_vsi_init_unsupported_vlan_ops(vsi);
switch (vsi->type) { case ICE_VSI_PF:
ice_pf_vsi_init_vlan_ops(vsi); break; case ICE_VSI_VF:
ice_vf_vsi_init_vlan_ops(vsi); break; case ICE_VSI_SF:
ice_sf_vsi_init_vlan_ops(vsi); break; default:
dev_dbg(ice_pf_to_dev(vsi->back), "%s does not support VLAN operations\n",
ice_vsi_type_str(vsi->type)); break;
}
}
/** * ice_get_compat_vsi_vlan_ops - Get VSI VLAN ops based on VLAN mode * @vsi: VSI used to get the VSI VLAN ops * * This function is meant to be used when the caller doesn't know which VLAN ops * to use (i.e. inner or outer). This allows backward compatibility for VLANs * since most of the Outer VSI VLAN functins are not supported when * the device is configured in Single VLAN Mode (SVM).
*/ struct ice_vsi_vlan_ops *ice_get_compat_vsi_vlan_ops(struct ice_vsi *vsi)
{ if (ice_is_dvm_ena(&vsi->back->hw)) return &vsi->outer_vlan_ops; else return &vsi->inner_vlan_ops;
}
Messung V0.5
¤ Dauer der Verarbeitung: 0.20 Sekunden
(vorverarbeitet)
¤
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.