Changeset View
Changeset View
Standalone View
Standalone View
sys/dev/ice/ice_vlan_mode.h
- This file was copied from sys/dev/ice/ice_opts.h.
/* SPDX-License-Identifier: BSD-3-Clause */ | /* SPDX-License-Identifier: BSD-3-Clause */ | ||||
/* Copyright (c) 2020, Intel Corporation | /* Copyright (c) 2021, Intel Corporation | ||||
* All rights reserved. | * All rights reserved. | ||||
* | * | ||||
* Redistribution and use in source and binary forms, with or without | * Redistribution and use in source and binary forms, with or without | ||||
* modification, are permitted provided that the following conditions are met: | * modification, are permitted provided that the following conditions are met: | ||||
* | * | ||||
* 1. Redistributions of source code must retain the above copyright notice, | * 1. Redistributions of source code must retain the above copyright notice, | ||||
* this list of conditions and the following disclaimer. | * this list of conditions and the following disclaimer. | ||||
* | * | ||||
Show All 14 Lines | |||||
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS | * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS | ||||
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN | * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN | ||||
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) | * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) | ||||
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE | * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE | ||||
* POSSIBILITY OF SUCH DAMAGE. | * POSSIBILITY OF SUCH DAMAGE. | ||||
*/ | */ | ||||
/*$FreeBSD$*/ | /*$FreeBSD$*/ | ||||
/** | #ifndef _ICE_VLAN_MODE_H_ | ||||
* @file ice_opts.h | #define _ICE_VLAN_MODE_H_ | ||||
* @brief header including kernel option files | |||||
* | |||||
* Contains the various opt_*.h header files which set various macros | |||||
* indicating features and functionality which depend on kernel configuration. | |||||
*/ | |||||
#ifndef _ICE_OPTS_H_ | struct ice_hw; | ||||
#define _ICE_OPTS_H_ | |||||
#include "opt_inet.h" | enum ice_status ice_set_vlan_mode(struct ice_hw *hw); | ||||
#include "opt_inet6.h" | void ice_init_vlan_mode_ops(struct ice_hw *hw); | ||||
#include "opt_rss.h" | |||||
#endif | /* This structure defines the VLAN mode configuration interface. It is used to set the VLAN mode. | ||||
* | |||||
* Note: These operations will be called while the global configuration lock is held. | |||||
* | |||||
* enum ice_status (*set_svm)(struct ice_hw *hw); | |||||
* This function is called when the DDP and/or Firmware don't support double VLAN mode (DVM) or | |||||
* if the set_dvm op is not implemented and/or returns failure. It will set the device in | |||||
* single VLAN mode (SVM). | |||||
* | |||||
* enum ice_status (*set_dvm)(struct ice_hw *hw); | |||||
* This function is called when the DDP and Firmware support double VLAN mode (DVM). It should | |||||
* be implemented to set double VLAN mode. If it fails or remains unimplemented, set_svm will | |||||
* be called as a fallback plan. | |||||
*/ | |||||
struct ice_vlan_mode_ops { | |||||
enum ice_status (*set_svm)(struct ice_hw *hw); | |||||
enum ice_status (*set_dvm)(struct ice_hw *hw); | |||||
}; | |||||
#endif /* _ICE_VLAN_MODE_H */ |