FreeBSD kernel BXE device code
|
Go to the source code of this file.
Data Structures | |
struct | ecore_mcast_mac_elem |
struct | ecore_pending_mcast_cmd |
Macros | |
#define | list_next_entry(pos, member) list_entry((pos)->member.next, typeof(*(pos)), member) |
#define | ECORE_57711_SET_MC_FILTER(filter, bit) |
#define | ECORE_CAM_SIZE_EMUL 5 |
#define ECORE_57711_SET_MC_FILTER | ( | filter, | |
bit | |||
) |
Definition at line 3510 of file ecore_sp.c.
#define ECORE_CAM_SIZE_EMUL 5 |
#define list_next_entry | ( | pos, | |
member | |||
) | list_entry((pos)->member.next, typeof(*(pos)), member) |
Definition at line 1359 of file ecore_sp.c.
|
inlinestatic |
atomic_add_ifless - add if the result is less than a given value.
@v: pointer of type ecore_atomic_t : the amount to add to v... @u: ...if (v + a) is less than u.
returns TRUE if (v + a) was less than u, and FALSE otherwise.
Definition at line 4189 of file ecore_sp.c.
References ECORE_ATOMIC_CMPXCHG, ECORE_ATOMIC_READ, ECORE_LIKELY, and ECORE_UNLIKELY.
Referenced by ecore_credit_pool_put().
|
inlinestatic |
atomic_dec_ifmoe - dec if the result is more or equal than a given value.
@v: pointer of type ecore_atomic_t : the amount to dec from v... @u: ...if (v - a) is more or equal than u.
returns TRUE if (v - a) was more or equal than u, and FALSE otherwise.
Definition at line 4217 of file ecore_sp.c.
References ECORE_ATOMIC_CMPXCHG, ECORE_ATOMIC_READ, ECORE_LIKELY, and ECORE_UNLIKELY.
Referenced by ecore_credit_pool_get().
|
inlinestatic |
Definition at line 153 of file ecore_sp.c.
References ecore_exe_queue_free_elem(), ECORE_LIST_FIRST_ENTRY, ECORE_LIST_IS_EMPTY, ECORE_LIST_REMOVE_ENTRY, ecore_exeq_elem::link, and ecore_exe_queue_obj::pending_comp.
Referenced by ecore_complete_vlan_mac(), and ecore_exe_queue_step().
|
static |
Calling function should not diffrentiate between this case and the case in which there is already a pending ramrod
Definition at line 1760 of file ecore_sp.c.
References __ecore_vlan_mac_h_pend(), __ecore_vlan_mac_h_write_trylock(), ecore_exe_queue_step(), ECORE_MSG, ECORE_PENDING, ECORE_SPIN_LOCK_BH, ECORE_SPIN_UNLOCK_BH, ECORE_SUCCESS, ecore_vlan_mac_obj::exe_queue, and ecore_exe_queue_obj::lock.
Referenced by ecore_complete_vlan_mac(), and ecore_config_vlan_mac().
|
static |
__ecore_vlan_mac_h_exec_pending - execute step instead of a previous step which wasn't able to run due to a taken lock on vlan mac head list.
@sc: device handle @o: vlan_mac object
Should be called under execution queue lock; notice it might release and reclaim it during its run.
Definition at line 471 of file ecore_sp.c.
References ECORE_ERR, ecore_exe_queue_step(), ECORE_MSG, ECORE_PENDING, ECORE_SUCCESS, ecore_vlan_mac_obj::exe_queue, ecore_vlan_mac_obj::head_exe_request, and ecore_vlan_mac_obj::saved_ramrod_flags.
Referenced by __ecore_vlan_mac_h_write_unlock().
|
static |
__ecore_vlan_mac_h_pend - Pend an execution step which couldn't have been called due to vlan mac head list lock being taken.
@sc: device handle @o: vlan_mac object @ramrod_flags: ramrod flags of missed execution
Should be called under execution queue lock.
Definition at line 501 of file ecore_sp.c.
References ECORE_MSG, ecore_vlan_mac_obj::head_exe_request, and ecore_vlan_mac_obj::saved_ramrod_flags.
Referenced by __ecore_vlan_mac_execute_step().
|
static |
__ecore_vlan_mac_h_read_lock - lock the vlan mac head list reader lock
@sc: device handle @o: vlan_mac object
Should be called under the execution queue lock. May sleep. May release and reclaim execution queue lock during its run.
Definition at line 559 of file ecore_sp.c.
References ECORE_MSG, ECORE_SUCCESS, and ecore_vlan_mac_obj::head_reader.
Referenced by ecore_vlan_mac_h_read_lock().
|
static |
__ecore_vlan_mac_h_read_unlock - unlock the vlan mac head list reader lock
@sc: device handle @o: vlan_mac object
Should be called under execution queue lock. Notice if a pending execution exists, it would be performed if this was the last reader. possibly releasing and reclaiming the execution queue lock.
Definition at line 600 of file ecore_sp.c.
References __ecore_vlan_mac_h_write_unlock(), ECORE_ERR, ECORE_MSG, ecore_vlan_mac_obj::head_exe_request, and ecore_vlan_mac_obj::head_reader.
Referenced by ecore_vlan_mac_h_read_unlock().
|
static |
__ecore_vlan_mac_h_write_trylock - try getting the writer lock on vlan mac head list.
@sc: device handle @o: vlan_mac object
: Non-blocking implementation; should be called under execution queue lock.
Definition at line 449 of file ecore_sp.c.
References ECORE_BUSY, ECORE_MSG, ECORE_SUCCESS, and ecore_vlan_mac_obj::head_reader.
Referenced by __ecore_vlan_mac_execute_step().
|
static |
__ecore_vlan_mac_h_write_unlock - unlock the vlan mac head list writer lock
@sc: device handle @o: vlan_mac object
Should be called under execution queue lock. Notice if a pending execution exists, it would perform it - possibly releasing and reclaiming the execution queue lock.
Definition at line 521 of file ecore_sp.c.
References __ecore_vlan_mac_h_exec_pending(), ECORE_MSG, and ecore_vlan_mac_obj::head_exe_request.
Referenced by __ecore_vlan_mac_h_read_unlock(), and ecore_vlan_mac_h_write_unlock().
__FBSDID | ( | "$FreeBSD$" | ) |
|
inlinestatic |
Definition at line 2528 of file ecore_sp.c.
References addr, BAR_TSTRORM_INTMEM, ecore_storm_memset_struct(), size, and TSTORM_MAC_FILTER_CONFIG_OFFSET.
Referenced by ecore_set_rx_mode_e1x().
|
static |
Definition at line 686 of file ecore_sp.c.
References ECORE_EXISTS, ECORE_INVAL, ECORE_IS_VALID_ETHER_ADDR, ECORE_LIST_FOR_EACH_ENTRY, ECORE_MEMCMP, ECORE_MSG, ECORE_SUCCESS, ETH_ALEN, ecore_vlan_mac_obj::head, ecore_mac_ramrod_data::is_inner_mac, ecore_vlan_mac_registry_elem::link, ecore_mac_ramrod_data::mac, ecore_classification_ramrod_data::mac, and ecore_vlan_mac_registry_elem::u.
Referenced by ecore_init_mac_obj().
|
static |
Definition at line 766 of file ecore_sp.c.
References ECORE_LIST_FOR_EACH_ENTRY, ECORE_MEMCMP, ECORE_MSG, ETH_ALEN, ecore_vlan_mac_obj::head, ecore_mac_ramrod_data::is_inner_mac, ecore_vlan_mac_registry_elem::link, ecore_mac_ramrod_data::mac, ecore_classification_ramrod_data::mac, and ecore_vlan_mac_registry_elem::u.
Referenced by ecore_init_mac_obj().
|
static |
Definition at line 845 of file ecore_sp.c.
References ecore_vlan_mac_obj::check_add, and ecore_vlan_mac_obj::check_del.
Referenced by ecore_init_mac_obj(), ecore_init_vlan_mac_obj(), ecore_init_vlan_obj(), and ecore_init_vxlan_fltr_obj().
|
static |
Definition at line 870 of file ecore_sp.c.
Referenced by ecore_init_mac_obj(), and ecore_init_vlan_mac_obj().
|
static |
Definition at line 707 of file ecore_sp.c.
References ECORE_EXISTS, ECORE_LIST_FOR_EACH_ENTRY, ECORE_MSG, ECORE_SUCCESS, ecore_vlan_mac_obj::head, ecore_vlan_mac_registry_elem::link, ecore_vlan_mac_registry_elem::u, ecore_vlan_ramrod_data::vlan, and ecore_classification_ramrod_data::vlan.
Referenced by ecore_init_vlan_obj().
|
static |
Definition at line 784 of file ecore_sp.c.
References ECORE_LIST_FOR_EACH_ENTRY, ECORE_MSG, ecore_vlan_mac_obj::head, ecore_vlan_mac_registry_elem::link, ecore_vlan_mac_registry_elem::u, ecore_vlan_ramrod_data::vlan, and ecore_classification_ramrod_data::vlan.
Referenced by ecore_init_vlan_obj().
|
static |
Definition at line 723 of file ecore_sp.c.
References ECORE_EXISTS, ECORE_LIST_FOR_EACH_ENTRY, ECORE_MEMCMP, ECORE_MSG, ECORE_SUCCESS, ETH_ALEN, ecore_vlan_mac_obj::head, ecore_vlan_mac_ramrod_data::is_inner_mac, ecore_vlan_mac_registry_elem::link, ecore_vlan_mac_ramrod_data::mac, ecore_vlan_mac_registry_elem::u, ecore_vlan_mac_ramrod_data::vlan, and ecore_classification_ramrod_data::vlan_mac.
Referenced by ecore_init_vlan_mac_obj().
|
static |
Definition at line 801 of file ecore_sp.c.
References ECORE_LIST_FOR_EACH_ENTRY, ECORE_MEMCMP, ECORE_MSG, ETH_ALEN, ecore_vlan_mac_obj::head, ecore_vlan_mac_ramrod_data::is_inner_mac, ecore_vlan_mac_registry_elem::link, ecore_vlan_mac_ramrod_data::mac, ecore_vlan_mac_registry_elem::u, ecore_vlan_mac_ramrod_data::vlan, and ecore_classification_ramrod_data::vlan_mac.
Referenced by ecore_init_vlan_mac_obj().
|
static |
Definition at line 744 of file ecore_sp.c.
References ECORE_EXISTS, ECORE_LIST_FOR_EACH_ENTRY, ECORE_MEMCMP, ECORE_MSG, ECORE_SUCCESS, ETH_ALEN, ecore_vlan_mac_obj::head, ecore_vxlan_fltr_ramrod_data::innermac, ecore_vlan_mac_registry_elem::link, ecore_vlan_mac_registry_elem::u, ecore_vxlan_fltr_ramrod_data::vni, and ecore_classification_ramrod_data::vxlan_fltr.
Referenced by ecore_init_vxlan_fltr_obj().
|
static |
Definition at line 823 of file ecore_sp.c.
References ECORE_LIST_FOR_EACH_ENTRY, ECORE_MEMCMP, ECORE_MSG, ETH_ALEN, ecore_vlan_mac_obj::head, ecore_vxlan_fltr_ramrod_data::innermac, ecore_vlan_mac_registry_elem::link, ecore_vlan_mac_registry_elem::u, ecore_vxlan_fltr_ramrod_data::vni, and ecore_classification_ramrod_data::vxlan_fltr.
Referenced by ecore_init_vxlan_fltr_obj().
|
static |
ecore_complete_vlan_mac - complete one VLAN-MAC ramrod
@sc: device handle @o: ecore_vlan_mac_obj @cqe: @cont: if TRUE schedule next execution chunk
Definition at line 1795 of file ecore_sp.c.
References __ecore_exe_queue_reset_pending(), __ecore_vlan_mac_execute_step(), ecore_raw_obj::clear_pending, ecore_exe_queue_empty(), ECORE_INVAL, ECORE_PENDING, ECORE_SPIN_LOCK_BH, ECORE_SPIN_UNLOCK_BH, ECORE_SUCCESS, ECORE_TEST_BIT, event_ring_msg::error, ecore_vlan_mac_obj::exe_queue, ecore_exe_queue_obj::lock, event_ring_elem::message, RAMROD_CONT, and ecore_vlan_mac_obj::raw.
Referenced by ecore_init_vlan_mac_common().
int ecore_config_mcast | ( | struct bxe_softc * | sc, |
struct ecore_mcast_ramrod_params * | p, | ||
enum ecore_mcast_cmd | cmd | ||
) |
ecore_config_mcast - Configure multicast MACs list.
@cmd: command to execute: BNX2X_MCAST_CMD_X
May configure a new list provided in p->mcast_list (ECORE_MCAST_CMD_ADD), clean up (ECORE_MCAST_CMD_DEL) or restore (ECORE_MCAST_CMD_RESTORE) a current configuration, continue to execute the pending commands (ECORE_MCAST_CMD_CONT).
If previous command is still pending or if number of MACs to configure is more that maximum number of MACs in one command, the current command will be enqueued to the tail of the pending commands list.
Return: 0 is operation was successful and there are no pending completions, negative if there were errors, positive if there are pending completions.
Definition at line 4003 of file ecore_sp.c.
References ecore_raw_obj::check_pending, ecore_mcast_obj::check_sched, ecore_raw_obj::clear_pending, ecore_mcast_obj::config_mcast, ECORE_MSG, ECORE_SUCCESS, ECORE_TEST_BIT, ecore_mcast_obj::enqueue_cmd, ecore_mcast_obj::get_registry_size, ecore_mcast_obj::max_cmd_len, ecore_mcast_ramrod_params::mcast_list_len, ecore_mcast_ramrod_params::mcast_obj, RAMROD_COMP_WAIT, ecore_mcast_ramrod_params::ramrod_flags, ecore_mcast_obj::raw, ecore_mcast_obj::revert, ecore_raw_obj::set_pending, ecore_mcast_obj::total_pending_num, ecore_mcast_obj::validate, and ecore_mcast_obj::wait_comp.
Referenced by bxe_chip_cleanup(), bxe_handle_mcast_eqe(), bxe_set_mc_list(), and bxe_squeeze_objects().
int ecore_config_rss | ( | struct bxe_softc * | sc, |
struct ecore_config_rss_params * | p | ||
) |
ecore_config_rss - Updates RSS configuration according to provided parameters
Return: 0 in case of success
Definition at line 4587 of file ecore_sp.c.
References ecore_raw_obj::clear_pending, ecore_rss_config_obj::config_rss, ECORE_MSG, ECORE_SUCCESS, ECORE_TEST_BIT, RAMROD_COMP_WAIT, RAMROD_DRV_CLR_ONLY, ecore_config_rss_params::ramrod_flags, ecore_rss_config_obj::raw, ecore_config_rss_params::rss_obj, ecore_raw_obj::set_pending, and ecore_raw_obj::wait_comp.
Referenced by bxe_config_rss_pf().
int ecore_config_rx_mode | ( | struct bxe_softc * | sc, |
struct ecore_rx_mode_ramrod_params * | p | ||
) |
ecore_config_rx_mode - Send and RX_MODE ramrod according to the provided parameters.
: Command parameters
Return: 0 - if operation was successful and there is no pending completions, positive number - if there are pending completions, negative - if there were errors
Definition at line 2793 of file ecore_sp.c.
References ecore_rx_mode_obj::config_rx_mode, ECORE_TEST_BIT, RAMROD_COMP_WAIT, ecore_rx_mode_ramrod_params::ramrod_flags, ecore_rx_mode_ramrod_params::rx_mode_obj, and ecore_rx_mode_obj::wait_comp.
Referenced by bxe_set_q_rx_mode().
int ecore_config_vlan_mac | ( | struct bxe_softc * | sc, |
struct ecore_vlan_mac_ramrod_params * | p | ||
) |
ecore_config_vlan_mac - configure VLAN/MAC/VLAN_MAC filtering rules.
@sc: device handle :
Definition at line 2118 of file ecore_sp.c.
References __ecore_vlan_mac_execute_step(), ecore_raw_obj::clear_pending, ecore_exe_queue_empty(), ecore_exe_queue_length(), ECORE_MSG, ECORE_PENDING, ECORE_SUCCESS, ECORE_TEST_BIT, ecore_vlan_mac_push_new_cmd(), ecore_vlan_mac_obj::exe_queue, RAMROD_COMP_WAIT, RAMROD_CONT, RAMROD_DRV_CLR_ONLY, RAMROD_EXEC, ecore_vlan_mac_ramrod_params::ramrod_flags, ecore_vlan_mac_obj::raw, ecore_vlan_mac_ramrod_params::vlan_mac_obj, and ecore_raw_obj::wait_comp.
Referenced by bxe_set_mac_one(), ecore_vlan_mac_del_all(), and ecore_vlan_mac_restore().
|
static |
Definition at line 4270 of file ecore_sp.c.
Referenced by ecore_init_credit_pool().
|
static |
Definition at line 4260 of file ecore_sp.c.
References ecore_credit_pool_obj::credit, ECORE_ATOMIC_READ, and ECORE_SMP_MB.
Referenced by ecore_init_credit_pool().
|
static |
Definition at line 4235 of file ecore_sp.c.
References __atomic_dec_ifmoe(), ecore_credit_pool_obj::credit, and ECORE_SMP_MB.
Referenced by ecore_init_credit_pool().
|
static |
Definition at line 4276 of file ecore_sp.c.
References ecore_credit_pool_obj::base_pool_offset, BIT_VEC64_CLEAR_BIT, BIT_VEC64_ELEM_SZ, BIT_VEC64_TEST_BIT, ECORE_POOL_VEC_SIZE, offset, and ecore_credit_pool_obj::pool_mirror.
Referenced by ecore_init_credit_pool().
|
static |
Definition at line 4331 of file ecore_sp.c.
References offset.
Referenced by ecore_init_credit_pool().
|
static |
Definition at line 4246 of file ecore_sp.c.
References __atomic_add_ifless(), ecore_credit_pool_obj::credit, ECORE_SMP_MB, and ecore_credit_pool_obj::pool_sz.
Referenced by ecore_init_credit_pool().
|
static |
Definition at line 4306 of file ecore_sp.c.
References ecore_credit_pool_obj::base_pool_offset, BIT_VEC64_SET_BIT, offset, ecore_credit_pool_obj::pool_mirror, and ecore_credit_pool_obj::pool_sz.
Referenced by ecore_init_credit_pool().
|
static |
Definition at line 4324 of file ecore_sp.c.
Referenced by ecore_init_credit_pool().
|
static |
Definition at line 2786 of file ecore_sp.c.
References ECORE_SUCCESS.
Referenced by ecore_init_rx_mode_obj().
|
inlinestatic |
ecore_exe_queue_add - add a new element to the execution queue
@sc: driver handle @o: queue @cmd: new command to add @restore: true - do not optimize the command
If the element is optimized or is illegal, frees it.
Definition at line 115 of file ecore_sp.c.
References ecore_exe_queue_free_elem(), ECORE_LIST_PUSH_TAIL, ECORE_MSG, ECORE_SPIN_LOCK_BH, ECORE_SPIN_UNLOCK_BH, ECORE_SUCCESS, ecore_exe_queue_obj::exe_queue, ecore_exeq_elem::link, ecore_exe_queue_obj::lock, ecore_exe_queue_obj::optimize, ecore_exe_queue_obj::owner, and ecore_exe_queue_obj::validate.
Referenced by ecore_vlan_mac_push_new_cmd().
|
inlinestatic |
Definition at line 255 of file ecore_sp.c.
References ECORE_MSG, and ECORE_ZALLOC.
Referenced by ecore_vlan_mac_push_new_cmd().
|
inlinestatic |
Definition at line 245 of file ecore_sp.c.
References ECORE_LIST_IS_EMPTY, ecore_exe_queue_obj::exe_queue, and ecore_exe_queue_obj::pending_comp.
Referenced by ecore_complete_vlan_mac(), ecore_config_vlan_mac(), and ecore_wait_vlan_mac().
|
inlinestatic |
Definition at line 82 of file ecore_sp.c.
References ECORE_FREE, and ECORE_MSG.
Referenced by __ecore_exe_queue_reset_pending(), ecore_exe_queue_add(), ecore_optimize_vlan_mac(), and ecore_vlan_mac_del_all().
|
inlinestatic |
ecore_exe_queue_init - init the Exe Queue object
@o: pointer to the object @exe_len: length @owner: pointer to the owner @validate: validate function pointer @optimize: optimize function pointer @exec: execute function pointer @get: get function pointer
Definition at line 51 of file ecore_sp.c.
References ECORE_LIST_INIT, ECORE_MEMSET, ECORE_MSG, ECORE_SPIN_LOCK_INIT, ecore_exe_queue_obj::exe_chunk_len, ecore_exe_queue_obj::exe_queue, ecore_exe_queue_obj::execute, ecore_exe_queue_obj::get, ecore_exe_queue_obj::lock, ecore_exe_queue_obj::optimize, ecore_exe_queue_obj::owner, ecore_exe_queue_obj::pending_comp, ecore_exe_queue_obj::remove, and ecore_exe_queue_obj::validate.
Referenced by ecore_init_mac_obj(), ecore_init_vlan_mac_obj(), ecore_init_vlan_obj(), and ecore_init_vxlan_fltr_obj().
|
inlinestatic |
Definition at line 89 of file ecore_sp.c.
References ECORE_LIST_FOR_EACH_ENTRY, ECORE_SPIN_LOCK_BH, ECORE_SPIN_UNLOCK_BH, ecore_exe_queue_obj::exe_queue, ecore_exeq_elem::link, and ecore_exe_queue_obj::lock.
Referenced by ecore_config_vlan_mac().
|
inlinestatic |
ecore_exe_queue_step - execute one execution chunk atomically
@sc: driver handle @o: queue @ramrod_flags: flags
(Should be called while holding the exe_queue->lock).
Definition at line 178 of file ecore_sp.c.
References __ecore_exe_queue_reset_pending(), ecore_exeq_elem::cmd_len, ECORE_DBG_BREAK_IF, ECORE_LIST_FIRST_ENTRY, ECORE_LIST_IS_EMPTY, ECORE_LIST_PUSH_TAIL, ECORE_LIST_REMOVE_ENTRY, ECORE_LIST_SPLICE_INIT, ECORE_MEMSET, ECORE_MSG, ECORE_PENDING, ECORE_SUCCESS, ECORE_TEST_BIT, ecore_exe_queue_obj::exe_chunk_len, ecore_exe_queue_obj::exe_queue, ecore_exe_queue_obj::execute, ecore_exeq_elem::link, ecore_exe_queue_obj::owner, ecore_exe_queue_obj::pending_comp, and RAMROD_DRV_CLR_ONLY.
Referenced by __ecore_vlan_mac_execute_step(), and __ecore_vlan_mac_h_exec_pending().
|
static |
ecore_execute_vlan_mac - execute vlan mac command
@sc: device handle @qo: @exe_chunk: @ramrod_flags:
go and send a ramrod!
Definition at line 1956 of file ecore_sp.c.
References ecore_vlan_mac_registry_elem::cam_offset, ecore_vlan_mac_obj::check_del, ecore_raw_obj::check_pending, ecore_raw_obj::cid, ecore_raw_obj::clear_pending, ecore_vlan_mac_data::cmd, ecore_exeq_elem::cmd_data, ECORE_DBG_BREAK_IF, ECORE_FREE, ECORE_LIST_FOR_EACH_ENTRY, ECORE_LIST_PUSH_HEAD, ECORE_LIST_REMOVE_ENTRY, ECORE_PENDING, ecore_sp_post, ECORE_SUCCESS, ECORE_TEST_BIT, ECORE_VLAN_MAC_ADD, ECORE_VLAN_MAC_DEL, ecore_vlan_mac_get_registry_elem(), ECORE_VLAN_MAC_MOVE, ETH_CONNECTION_TYPE, ecore_vlan_mac_obj::head, ecore_vlan_mac_registry_elem::link, ecore_vlan_mac_obj::put_cam_offset, ecore_vlan_mac_obj::ramrod_cmd, RAMROD_DRV_CLR_ONLY, RAMROD_RESTORE, ecore_vlan_mac_obj::raw, ecore_raw_obj::rdata_mapping, ecore_vlan_mac_obj::set_one_rule, ecore_raw_obj::set_pending, ecore_vlan_mac_data::target_obj, ecore_vlan_mac_data::u, ecore_exe_queue_cmd_data::vlan_mac, and ecore_qable_obj::vlan_mac.
Referenced by ecore_init_mac_obj(), ecore_init_vlan_mac_obj(), ecore_init_vlan_obj(), and ecore_init_vxlan_fltr_obj().
|
static |
Definition at line 1428 of file ecore_sp.c.
References ecore_vlan_mac_data::cmd, ecore_exeq_elem::cmd_data, ECORE_LIST_FOR_EACH_ENTRY, ECORE_MEMCMP, ecore_exe_queue_obj::exe_queue, ecore_classification_ramrod_data::mac, ecore_vlan_mac_data::u, and ecore_exe_queue_cmd_data::vlan_mac.
Referenced by ecore_init_mac_obj().
|
static |
Definition at line 1446 of file ecore_sp.c.
References ecore_vlan_mac_data::cmd, ecore_exeq_elem::cmd_data, ECORE_LIST_FOR_EACH_ENTRY, ECORE_MEMCMP, ecore_exe_queue_obj::exe_queue, ecore_vlan_mac_data::u, ecore_classification_ramrod_data::vlan, and ecore_exe_queue_cmd_data::vlan_mac.
Referenced by ecore_init_vlan_obj().
|
static |
Definition at line 1464 of file ecore_sp.c.
References ecore_vlan_mac_data::cmd, ecore_exeq_elem::cmd_data, ECORE_LIST_FOR_EACH_ENTRY, ECORE_MEMCMP, ecore_exe_queue_obj::exe_queue, ecore_vlan_mac_data::u, ecore_classification_ramrod_data::vlan_mac, and ecore_exe_queue_cmd_data::vlan_mac.
Referenced by ecore_init_vlan_mac_obj().
|
static |
Definition at line 1483 of file ecore_sp.c.
References ecore_vlan_mac_data::cmd, ecore_exeq_elem::cmd_data, ECORE_LIST_FOR_EACH_ENTRY, ECORE_MEMCMP, ecore_exe_queue_obj::exe_queue, ecore_vlan_mac_data::u, ecore_exe_queue_cmd_data::vlan_mac, and ecore_classification_ramrod_data::vxlan_fltr.
Referenced by ecore_init_vxlan_fltr_obj().
|
static |
ecore_func_chk_transition - perform function state machine transition
@sc: device handle @o: @params:
It both checks if the requested command is legal in a current state and, if it's legal, sets a ‘next_state’ in the object that will be used in the completion flow to set the ‘state’ of the object.
returns 0 if a requested command is a legal transition, ECORE_INVAL otherwise.
Definition at line 5899 of file ecore_sp.c.
References ecore_func_state_params::cmd, ECORE_BUSY, ECORE_ERR, ECORE_F_CMD_AFEX_UPDATE, ECORE_F_CMD_AFEX_VIFLISTS, ECORE_F_CMD_HW_INIT, ECORE_F_CMD_HW_RESET, ECORE_F_CMD_SET_TIMESYNC, ECORE_F_CMD_START, ECORE_F_CMD_STOP, ECORE_F_CMD_SWITCH_UPDATE, ECORE_F_CMD_TX_START, ECORE_F_CMD_TX_STOP, ECORE_F_STATE_INITIALIZED, ECORE_F_STATE_MAX, ECORE_F_STATE_RESET, ECORE_F_STATE_STARTED, ECORE_F_STATE_TX_STOPPED, ECORE_INVAL, ECORE_MSG, ECORE_SUCCESS, ECORE_TEST_BIT, next_state, ecore_func_sp_obj::next_state, ecore_func_sp_obj::pending, RAMROD_DRV_CLR_ONLY, and ecore_func_state_params::ramrod_flags.
Referenced by ecore_init_func_obj().
|
static |
ecore_func_comp_cmd - complete the state change command
@sc: device handle @o: @cmd:
Checks that the arrived completion is expected.
Definition at line 5873 of file ecore_sp.c.
References ecore_func_state_change_comp().
Referenced by ecore_init_func_obj().
enum ecore_func_state ecore_func_get_state | ( | struct bxe_softc * | sc, |
struct ecore_func_sp_obj * | o | ||
) |
Definition at line 5801 of file ecore_sp.c.
References ECORE_F_STATE_MAX, and ecore_func_sp_obj::pending.
Referenced by bxe_func_wait_started().
|
static |
Definition at line 6072 of file ecore_sp.c.
References ecore_func_sp_obj::complete_cmd, ecore_func_sp_obj::drv, ECORE_ABS_FUNC_ID, ECORE_ERR, ECORE_F_CMD_HW_INIT, ecore_func_init_cmn(), ecore_func_init_cmn_chip(), ecore_func_init_func(), ecore_func_init_port(), ECORE_INVAL, ECORE_MSG, ecore_func_state_params::f_obj, FW_MSG_CODE_DRV_LOAD_COMMON, FW_MSG_CODE_DRV_LOAD_COMMON_CHIP, FW_MSG_CODE_DRV_LOAD_FUNCTION, FW_MSG_CODE_DRV_LOAD_PORT, ecore_func_sp_drv_ops::gunzip_end, ecore_func_sp_drv_ops::gunzip_init, ecore_func_state_params::hw_init, ecore_func_sp_drv_ops::init_fw, ecore_func_hw_init_params::load_phase, and ecore_func_state_params::params.
Referenced by ecore_func_send_cmd().
|
inlinestatic |
Definition at line 6192 of file ecore_sp.c.
References ecore_func_sp_obj::complete_cmd, ecore_func_sp_obj::drv, ECORE_ABS_FUNC_ID, ECORE_ERR, ECORE_F_CMD_HW_RESET, ecore_func_reset_cmn(), ecore_func_reset_func(), ecore_func_reset_port(), ECORE_MSG, ECORE_SUCCESS, ecore_func_state_params::f_obj, FW_MSG_CODE_DRV_UNLOAD_COMMON, FW_MSG_CODE_DRV_UNLOAD_FUNCTION, FW_MSG_CODE_DRV_UNLOAD_PORT, ecore_func_state_params::hw_reset, ecore_func_state_params::params, and ecore_func_hw_reset_params::reset_phase.
Referenced by ecore_func_send_cmd().
|
inlinestatic |
ecore_func_init_cmn - performs HW init at common stage
@sc: device handle @drv:
Init HW when the current phase is FW_MSG_CODE_DRV_LOAD_COMMON_CHIP: initialize COMMON, PORT-only and FUNCTION-only HW blocks.
Definition at line 6062 of file ecore_sp.c.
References ecore_func_init_port(), and ecore_func_sp_drv_ops::init_hw_cmn.
Referenced by ecore_func_hw_init().
|
inlinestatic |
ecore_func_init_cmn_chip - performs HW init at chip-common stage
@sc: device handle @drv:
Init HW when the current phase is FW_MSG_CODE_DRV_LOAD_COMMON_CHIP: initialize COMMON_CHIP, PORT-only and FUNCTION-only HW blocks.
Definition at line 6042 of file ecore_sp.c.
References ecore_func_init_port(), and ecore_func_sp_drv_ops::init_hw_cmn_chip.
Referenced by ecore_func_hw_init().
|
inlinestatic |
ecore_func_init_func - performs HW init at function stage
@sc: device handle @drv:
Init HW when the current phase is FW_MSG_CODE_DRV_LOAD_FUNCTION: initialize only FUNCTION-only HW blocks.
Definition at line 6005 of file ecore_sp.c.
References ecore_func_sp_drv_ops::init_hw_func.
Referenced by ecore_func_hw_init(), and ecore_func_init_port().
|
inlinestatic |
ecore_func_init_port - performs HW init at port stage
@sc: device handle @drv:
Init HW when the current phase is FW_MSG_CODE_DRV_LOAD_PORT: initialize PORT-only and FUNCTION-only HW blocks.
Definition at line 6022 of file ecore_sp.c.
References ecore_func_init_func(), and ecore_func_sp_drv_ops::init_hw_port.
Referenced by ecore_func_hw_init(), ecore_func_init_cmn(), and ecore_func_init_cmn_chip().
|
inlinestatic |
ecore_func_reset_cmn - reser HW at common stage
@sc: device handle @drv:
Reset HW at FW_MSG_CODE_DRV_UNLOAD_COMMON and FW_MSG_CODE_DRV_UNLOAD_COMMON_CHIP stages: reset COMMON, COMMON_CHIP, FUNCTION-only and PORT-only HW blocks.
Definition at line 6185 of file ecore_sp.c.
References ecore_func_reset_port(), and ecore_func_sp_drv_ops::reset_hw_cmn.
Referenced by ecore_func_hw_reset().
|
inlinestatic |
ecore_func_reset_func - reset HW at function stage
@sc: device handle @drv:
Reset HW at FW_MSG_CODE_DRV_UNLOAD_FUNCTION stage: reset only FUNCTION-only HW blocks.
Definition at line 6147 of file ecore_sp.c.
References ecore_func_sp_drv_ops::reset_hw_func.
Referenced by ecore_func_hw_reset(), and ecore_func_reset_port().
|
inlinestatic |
ecore_func_reset_port - reser HW at port stage
@sc: device handle @drv:
Reset HW at FW_MSG_CODE_DRV_UNLOAD_PORT stage: reset FUNCTION-only and PORT-only HW blocks.
!!!IMPORTANT!!!
It's important to call reset_port before reset_func() as the last thing reset_func does is pf_disable() thus disabling PGLUE_B, which makes impossible any DMAE transactions.
Definition at line 6168 of file ecore_sp.c.
References ecore_func_reset_func(), and ecore_func_sp_drv_ops::reset_hw_port.
Referenced by ecore_func_hw_reset(), and ecore_func_reset_cmn().
|
inlinestatic |
Definition at line 6368 of file ecore_sp.c.
References function_update_data::afex_default_vlan, function_update_data::afex_default_vlan_change_flg, ecore_func_sp_obj::afex_rdata, ecore_func_sp_obj::afex_rdata_mapping, AFEX_UPDATE, ecore_func_state_params::afex_update, function_update_data::allowed_priorities, function_update_data::allowed_priorities_change_flg, function_update_data::echo, ECORE_CPU_TO_LE16, ECORE_MEMSET, ECORE_MSG, ecore_sp_post, ecore_func_state_params::f_obj, NONE_CONNECTION_TYPE, ecore_func_state_params::params, RAMROD_CMD_ID_COMMON_FUNCTION_UPDATE, function_update_data::vif_id, and function_update_data::vif_id_change_flg.
Referenced by ecore_func_send_cmd().
|
inlinestatic |
Definition at line 6406 of file ecore_sp.c.
References ecore_func_sp_obj::afex_rdata, afex_vif_list_ramrod_data::afex_vif_list_command, ecore_func_state_params::afex_viflists, afex_vif_list_ramrod_data::echo, ECORE_CPU_TO_LE16, ECORE_MEMSET, ECORE_MSG, ecore_sp_post, ecore_func_state_params::f_obj, afex_vif_list_ramrod_data::func_bit_map, afex_vif_list_ramrod_data::func_to_clear, NONE_CONNECTION_TYPE, ecore_func_state_params::params, RAMROD_CMD_ID_COMMON_AFEX_VIF_LISTS, and afex_vif_list_ramrod_data::vif_list_index.
Referenced by ecore_func_send_cmd().
|
static |
Definition at line 6524 of file ecore_sp.c.
References ecore_func_state_params::cmd, ECORE_ERR, ECORE_F_CMD_AFEX_UPDATE, ECORE_F_CMD_AFEX_VIFLISTS, ECORE_F_CMD_HW_INIT, ECORE_F_CMD_HW_RESET, ECORE_F_CMD_SET_TIMESYNC, ECORE_F_CMD_START, ECORE_F_CMD_STOP, ECORE_F_CMD_SWITCH_UPDATE, ECORE_F_CMD_TX_START, ECORE_F_CMD_TX_STOP, ecore_func_hw_init(), ecore_func_hw_reset(), ecore_func_send_afex_update(), ecore_func_send_afex_viflists(), ecore_func_send_set_timesync(), ecore_func_send_start(), ecore_func_send_stop(), ecore_func_send_switch_update(), ecore_func_send_tx_start(), ecore_func_send_tx_stop(), and ECORE_INVAL.
Referenced by ecore_init_func_obj().
|
inlinestatic |
Definition at line 6490 of file ecore_sp.c.
References set_timesync_ramrod_data::add_sub_drift_adjust_value, set_timesync_ramrod_data::drift_adjust_cmd, set_timesync_ramrod_data::drift_adjust_period, set_timesync_ramrod_data::drift_adjust_value, ECORE_CPU_TO_LE32, ECORE_MEMSET, ECORE_MSG, ecore_sp_post, ecore_func_state_params::f_obj, regpair_t::hi, regpair_t::lo, NONE_CONNECTION_TYPE, set_timesync_ramrod_data::offset_cmd, set_timesync_ramrod_data::offset_delta, ecore_func_state_params::params, RAMROD_CMD_ID_COMMON_SET_TIMESYNC, ecore_func_sp_obj::rdata, ecore_func_sp_obj::rdata_mapping, ecore_func_state_params::set_timesync, U64_HI, and U64_LO.
Referenced by ecore_func_send_cmd().
|
inlinestatic |
@@TMP - until FW 7.10.7 (which will introduce an HSI change) ‘sd_vlan_eth_type’ will replace ethertype in SD mode even if it's set to 0; This will probably break SD, so we're setting it to ethertype 0x8100 for now.
Definition at line 6224 of file ecore_sp.c.
References function_start_data::c2s_pri_default, function_start_data::c2s_pri_trans_table, function_start_data::c2s_pri_tt_valid, ECORE_CPU_TO_LE16, ECORE_MEMSET, ECORE_PATH_ID, ecore_sp_post, ecore_func_state_params::f_obj, function_start_data::function_mode, function_start_data::geneve_dst_port, function_start_data::inner_clss_l2geneve, function_start_data::inner_clss_l2gre, function_start_data::inner_clss_vxlan, function_start_data::inner_rss, MAX_VLAN_PRIORITIES, function_start_data::network_cos_mode, function_start_data::no_added_tags, NONE_CONNECTION_TYPE, ecore_func_state_params::params, function_start_data::path_id, RAMROD_CMD_ID_COMMON_FUNCTION_START, ecore_func_sp_obj::rdata, ecore_func_sp_obj::rdata_mapping, function_start_data::sd_accept_mf_clss_fail, function_start_data::sd_accept_mf_clss_fail_ethtype, function_start_data::sd_accept_mf_clss_fail_match_ethtype, function_start_data::sd_vlan_eth_type, function_start_data::sd_vlan_force_pri_flg, function_start_data::sd_vlan_force_pri_val, function_start_data::sd_vlan_tag, ecore_func_state_params::start, c2s_pri_trans_table_entry::val, and function_start_data::vxlan_dst_port.
Referenced by ecore_func_send_cmd().
|
inlinestatic |
Definition at line 6443 of file ecore_sp.c.
References ecore_sp_post, NONE_CONNECTION_TYPE, and RAMROD_CMD_ID_COMMON_FUNCTION_STOP.
Referenced by ecore_func_send_cmd().
|
inlinestatic |
Definition at line 6289 of file ecore_sp.c.
References function_update_data::echo, ECORE_CPU_TO_LE16, ECORE_F_UPDATE_SD_VLAN_ETH_TYPE_CHNG, ECORE_F_UPDATE_SD_VLAN_TAG_CHNG, ECORE_F_UPDATE_TUNNEL_CFG_CHNG, ECORE_F_UPDATE_TUNNEL_INNER_CLSS_L2GENEVE, ECORE_F_UPDATE_TUNNEL_INNER_CLSS_L2GRE, ECORE_F_UPDATE_TUNNEL_INNER_CLSS_VXLAN, ECORE_F_UPDATE_TUNNEL_INNER_RSS, ECORE_F_UPDATE_TX_SWITCH_SUSPEND, ECORE_F_UPDATE_TX_SWITCH_SUSPEND_CHNG, ECORE_F_UPDATE_VLAN_FORCE_PRIO_CHNG, ECORE_F_UPDATE_VLAN_FORCE_PRIO_FLAG, ECORE_MEMSET, ecore_sp_post, ECORE_TEST_BIT, ecore_func_state_params::f_obj, function_update_data::geneve_dst_port, function_update_data::inner_clss_l2geneve, function_update_data::inner_clss_l2gre, function_update_data::inner_clss_vxlan, function_update_data::inner_rss, NONE_CONNECTION_TYPE, ecore_func_state_params::params, RAMROD_CMD_ID_COMMON_FUNCTION_UPDATE, ecore_func_sp_obj::rdata, ecore_func_sp_obj::rdata_mapping, function_update_data::sd_vlan_eth_type, function_update_data::sd_vlan_eth_type_change_flg, function_update_data::sd_vlan_force_pri_change_flg, function_update_data::sd_vlan_force_pri_flg, function_update_data::sd_vlan_tag, function_update_data::sd_vlan_tag_change_flg, SWITCH_UPDATE, ecore_func_state_params::switch_update, function_update_data::tx_switch_suspend, function_update_data::tx_switch_suspend_change_flg, function_update_data::update_tunn_cfg_flg, and function_update_data::vxlan_dst_port.
Referenced by ecore_func_send_cmd().
|
inlinestatic |
Definition at line 6456 of file ecore_sp.c.
References ARRAY_SIZE, flow_control_configuration::dcb_enabled, flow_control_configuration::dcb_outer_pri, flow_control_configuration::dcb_version, flow_control_configuration::dont_add_pri_0, ECORE_MEMSET, ecore_sp_post, ecore_func_state_params::f_obj, MAX_TRAFFIC_TYPES, NONE_CONNECTION_TYPE, ecore_func_state_params::params, RAMROD_CMD_ID_COMMON_START_TRAFFIC, ecore_func_sp_obj::rdata, ecore_func_sp_obj::rdata_mapping, flow_control_configuration::traffic_type_to_priority_cos, and ecore_func_state_params::tx_start.
Referenced by ecore_func_send_cmd().
|
inlinestatic |
Definition at line 6450 of file ecore_sp.c.
References ecore_sp_post, NONE_CONNECTION_TYPE, and RAMROD_CMD_ID_COMMON_STOP_TRAFFIC.
Referenced by ecore_func_send_cmd().
int ecore_func_state_change | ( | struct bxe_softc * | sc, |
struct ecore_func_state_params * | params | ||
) |
ecore_func_state_change - perform Function state change transition
@sc: device handle @params: parameters to perform the transaction
returns 0 in case of successfully completed transition, negative error code in case of failure, positive (EBUSY) value if there is a completion to that is still pending (possible only if RAMROD_COMP_WAIT is not set in params->ramrod_flags for asynchronous commands).
Definition at line 6588 of file ecore_sp.c.
References ecore_func_sp_obj::check_transition, ecore_func_state_params::cmd, ECORE_BUSY, ECORE_CLEAR_BIT, ECORE_ERR, ECORE_F_STATE_MAX, ecore_func_state_change_comp(), ECORE_MSLEEP, ECORE_MUTEX_LOCK, ECORE_MUTEX_UNLOCK, ECORE_RET_PENDING, ECORE_SET_BIT, ECORE_SMP_MB_AFTER_CLEAR_BIT, ECORE_SUCCESS, ECORE_TEST_BIT, ecore_func_state_params::f_obj, ecore_func_sp_obj::next_state, ecore_func_sp_obj::one_pending_mutex, ecore_func_sp_obj::pending, RAMROD_COMP_WAIT, RAMROD_DRV_CLR_ONLY, ecore_func_state_params::ramrod_flags, RAMROD_RETRY, ecore_func_sp_obj::send_cmd, and ecore_func_sp_obj::wait_comp.
Referenced by bxe_func_start(), bxe_func_stop(), bxe_func_wait_started(), bxe_init_hw(), and bxe_reset_hw().
|
inlinestatic |
ecore_func_state_change_comp - complete the state machine transition
@sc: device handle @o: @cmd:
Called on state change transition. Completes the state machine transition only - no HW interaction.
Definition at line 5833 of file ecore_sp.c.
References ECORE_CLEAR_BIT, ECORE_ERR, ECORE_F_STATE_MAX, ECORE_FUNC_ID, ECORE_INVAL, ECORE_MSG, ECORE_SMP_MB_AFTER_CLEAR_BIT, ECORE_SUCCESS, ECORE_TEST_AND_CLEAR_BIT, ecore_func_sp_obj::next_state, and ecore_func_sp_obj::pending.
Referenced by ecore_func_comp_cmd(), and ecore_func_state_change().
|
static |
Definition at line 5816 of file ecore_sp.c.
References ecore_state_wait(), and ecore_func_sp_obj::pending.
Referenced by ecore_init_func_obj().
|
static |
Definition at line 343 of file ecore_sp.c.
References ECORE_DBG_BREAK_IF, ecore_credit_pool_obj::get_entry, ecore_vlan_mac_obj::macs_pool, and offset.
Referenced by ecore_init_mac_obj(), ecore_init_vlan_mac_obj(), and ecore_init_vxlan_fltr_obj().
|
static |
Definition at line 361 of file ecore_sp.c.
References ECORE_DBG_BREAK_IF, ecore_credit_pool_obj::get_entry, offset, and ecore_vlan_mac_obj::vlans_pool.
Referenced by ecore_init_vlan_obj().
|
static |
Definition at line 352 of file ecore_sp.c.
References ECORE_DBG_BREAK_IF, ecore_credit_pool_obj::get, and ecore_vlan_mac_obj::macs_pool.
Referenced by ecore_init_mac_obj().
|
static |
Definition at line 370 of file ecore_sp.c.
References ECORE_DBG_BREAK_IF, ecore_credit_pool_obj::get, and ecore_vlan_mac_obj::vlans_pool.
Referenced by ecore_init_vlan_obj().
|
static |
Definition at line 379 of file ecore_sp.c.
References ecore_credit_pool_obj::get, ecore_vlan_mac_obj::macs_pool, ecore_credit_pool_obj::put, and ecore_vlan_mac_obj::vlans_pool.
Referenced by ecore_init_vlan_mac_obj(), and ecore_init_vxlan_fltr_obj().
|
inlinestatic |
ecore_get_fw_mac_addr - revert the ecore_set_fw_mac_addr().
@fw_hi: @fw_mid: @fw_lo: @mac:
Definition at line 3831 of file ecore_sp.c.
References ecore_mcast_config_data::mac.
Referenced by ecore_mcast_refresh_registry_e1().
|
static |
ecore_vlan_mac_h_read_unlock - unlock the vlan mac head list reader lock
@sc: device handle @o: vlan_mac object
: number of elements to get @base: base address for element placement @stride: stride between elements (in bytes)
Definition at line 652 of file ecore_sp.c.
References ECORE_ERR, ECORE_LIST_FOR_EACH_ENTRY, ECORE_MEMCPY, ECORE_MSG, ECORE_SUCCESS, ecore_vlan_mac_h_read_lock(), ecore_vlan_mac_h_read_unlock(), ETH_ALEN, ecore_vlan_mac_obj::head, ecore_vlan_mac_registry_elem::link, size, and ecore_vlan_mac_registry_elem::u.
Referenced by ecore_init_mac_obj(), and ecore_init_vlan_obj().
int ecore_get_q_logical_state | ( | struct bxe_softc * | sc, |
struct ecore_queue_sp_obj * | obj | ||
) |
Definition at line 5780 of file ecore_sp.c.
References ECORE_INVAL, ECORE_Q_LOGICAL_STATE_ACTIVE, ECORE_Q_LOGICAL_STATE_STOPPED, ECORE_Q_STATE_ACTIVE, ECORE_Q_STATE_FLRED, ECORE_Q_STATE_INACTIVE, ECORE_Q_STATE_INITIALIZED, ECORE_Q_STATE_MCOS_TERMINATED, ECORE_Q_STATE_MULTI_COS, ECORE_Q_STATE_RESET, ECORE_Q_STATE_STOPPED, and ECORE_Q_STATE_TERMINATED.
void ecore_get_rss_ind_table | ( | struct ecore_rss_config_obj * | rss_obj, |
uint8_t * | ind_table | ||
) |
ecore_get_rss_ind_table - Return the current ind_table configuration.
@ind_table: buffer to fill with the current indirection table content. Should be at least T_ETH_INDIRECTION_TABLE_SIZE bytes long.
Definition at line 4581 of file ecore_sp.c.
References ECORE_MEMCPY, and ecore_rss_config_obj::ind_table.
void ecore_init_credit_pool | ( | struct ecore_credit_pool_obj * | p, |
int | base, | ||
int | credit | ||
) |
ecore_init_credit_pool - initialize credit pool internals.
: @base: Base entry in the CAM to use. @credit: pool size.
If base is negative no CAM entries handling will be performed. If credit is negative pool operations will always succeed (unlimited pool).
Definition at line 4349 of file ecore_sp.c.
References ecore_credit_pool_obj::base_pool_offset, ecore_credit_pool_obj::check, ecore_credit_pool_obj::credit, ECORE_ATOMIC_SET, ecore_credit_pool_always_TRUE(), ecore_credit_pool_check(), ecore_credit_pool_get(), ecore_credit_pool_get_entry(), ecore_credit_pool_get_entry_always_TRUE(), ecore_credit_pool_put(), ecore_credit_pool_put_entry(), ecore_credit_pool_put_entry_always_TRUE(), ECORE_MEMSET, ECORE_SMP_MB, ecore_credit_pool_obj::get, ecore_credit_pool_obj::get_entry, ecore_credit_pool_obj::pool_mirror, ecore_credit_pool_obj::pool_sz, ecore_credit_pool_obj::put, and ecore_credit_pool_obj::put_entry.
Referenced by ecore_init_mac_credit_pool(), and ecore_init_vlan_credit_pool().
void ecore_init_func_obj | ( | struct bxe_softc * | sc, |
struct ecore_func_sp_obj * | obj, | ||
void * | rdata, | ||
ecore_dma_addr_t | rdata_mapping, | ||
void * | afex_rdata, | ||
ecore_dma_addr_t | afex_rdata_mapping, | ||
struct ecore_func_sp_drv_ops * | drv_iface | ||
) |
Definition at line 6554 of file ecore_sp.c.
References ecore_func_sp_obj::afex_rdata, ecore_func_sp_obj::afex_rdata_mapping, ecore_func_sp_obj::check_transition, ecore_func_sp_obj::complete_cmd, ecore_func_sp_obj::drv, ecore_func_chk_transition(), ecore_func_comp_cmd(), ecore_func_send_cmd(), ecore_func_wait_comp(), ECORE_MEMSET, ECORE_MUTEX_INIT, ecore_func_sp_obj::one_pending_mutex, ecore_func_sp_obj::rdata, ecore_func_sp_obj::rdata_mapping, ecore_func_sp_obj::send_cmd, and ecore_func_sp_obj::wait_comp.
Referenced by bxe_init_func_obj().
void ecore_init_mac_credit_pool | ( | struct bxe_softc * | sc, |
struct ecore_credit_pool_obj * | p, | ||
uint8_t | func_id, | ||
uint8_t | func_num | ||
) |
Definition at line 4391 of file ecore_sp.c.
References CHIP_IS_E1, CHIP_IS_E1H, CHIP_REV_IS_SLOW, ECORE_CAM_SIZE_EMUL, ecore_init_credit_pool(), ECORE_MAX_EMUL_MULTI, ECORE_MAX_MULTICAST, ecore_raw_obj::func_id, MAX_MAC_CREDIT_E1, MAX_MAC_CREDIT_E1H, and PF_MAC_CREDIT_E2.
Referenced by bxe_init_objs().
void ecore_init_mac_obj | ( | struct bxe_softc * | sc, |
struct ecore_vlan_mac_obj * | mac_obj, | ||
uint8_t | cl_id, | ||
uint32_t | cid, | ||
uint8_t | func_id, | ||
void * | rdata, | ||
ecore_dma_addr_t | rdata_mapping, | ||
int | state, | ||
unsigned long * | pstate, | ||
ecore_obj_type | type, | ||
struct ecore_credit_pool_obj * | macs_pool | ||
) |
Definition at line 2321 of file ecore_sp.c.
References ecore_vlan_mac_obj::check_add, ecore_vlan_mac_obj::check_del, ecore_vlan_mac_obj::check_move, CHIP_IS_E1x, CLASSIFY_RULES_COUNT, ecore_check_mac_add(), ecore_check_mac_del(), ecore_check_move(), ecore_check_move_always_err(), ecore_exe_queue_init(), ecore_execute_vlan_mac(), ecore_exeq_get_mac(), ecore_get_cam_offset_mac(), ecore_get_credit_mac(), ecore_get_n_elements(), ecore_init_vlan_mac_common(), ecore_optimize_vlan_mac(), ecore_put_cam_offset_mac(), ecore_put_credit_mac(), ecore_remove_vlan_mac(), ecore_set_one_mac_e1x(), ecore_set_one_mac_e2(), ecore_validate_vlan_mac(), ecore_vlan_mac_obj::exe_queue, ecore_vlan_mac_obj::get_cam_offset, ecore_vlan_mac_obj::get_credit, ecore_vlan_mac_obj::get_n_elements, ecore_vlan_mac_obj::put_cam_offset, ecore_vlan_mac_obj::put_credit, ecore_vlan_mac_obj::ramrod_cmd, RAMROD_CMD_ID_ETH_CLASSIFICATION_RULES, RAMROD_CMD_ID_ETH_SET_MAC, and ecore_vlan_mac_obj::set_one_rule.
Referenced by bxe_init_eth_fp().
void ecore_init_mcast_obj | ( | struct bxe_softc * | sc, |
struct ecore_mcast_obj * | mcast_obj, | ||
uint8_t | mcast_cl_id, | ||
uint32_t | mcast_cid, | ||
uint8_t | func_id, | ||
uint8_t | engine_id, | ||
void * | rdata, | ||
ecore_dma_addr_t | rdata_mapping, | ||
int | state, | ||
unsigned long * | pstate, | ||
ecore_obj_type | type | ||
) |
Definition at line 4093 of file ecore_sp.c.
References ecore_mcast_obj::check_pending, ecore_mcast_obj::check_sched, CHIP_IS_E1, CHIP_IS_E1H, CHIP_REV_IS_SLOW, ecore_mcast_obj::clear_sched, ecore_mcast_obj::config_mcast, ECORE_FILTER_MCAST_SCHED, ecore_init_raw_obj(), ECORE_LIST_INIT, ECORE_MAX_EMUL_MULTI, ECORE_MAX_MULTICAST, ecore_mcast_check_pending(), ecore_mcast_check_sched(), ecore_mcast_clear_sched(), ecore_mcast_enqueue_cmd(), ecore_mcast_get_registry_size_aprox(), ecore_mcast_get_registry_size_exact(), ecore_mcast_handle_restore_cmd_e1(), ecore_mcast_handle_restore_cmd_e2(), ecore_mcast_revert_e1(), ecore_mcast_revert_e1h(), ecore_mcast_revert_e2(), ecore_mcast_set_one_rule_e1(), ecore_mcast_set_one_rule_e2(), ecore_mcast_set_registry_size_aprox(), ecore_mcast_set_registry_size_exact(), ecore_mcast_set_sched(), ecore_mcast_setup_e1(), ecore_mcast_setup_e1h(), ecore_mcast_setup_e2(), ecore_mcast_validate_e1(), ecore_mcast_validate_e1h(), ecore_mcast_validate_e2(), ecore_mcast_wait(), ECORE_MEMSET, ecore_mcast_obj::engine_id, ecore_mcast_obj::enqueue_cmd, ecore_mcast_obj::exact_match, ecore_raw_obj::func_id, ecore_mcast_obj::get_registry_size, ecore_mcast_obj::hdl_restore, ecore_mcast_obj::macs, ecore_mcast_obj::max_cmd_len, ecore_mcast_obj::pending_cmds_head, ecore_raw_obj::pstate, ecore_mcast_obj::raw, ecore_raw_obj::rdata, ecore_raw_obj::rdata_mapping, ecore_mcast_obj::registry, ecore_mcast_obj::revert, ecore_mcast_obj::sched_state, ecore_mcast_obj::set_one_rule, ecore_mcast_obj::set_registry_size, ecore_mcast_obj::set_sched, ecore_raw_obj::state, ecore_mcast_obj::validate, and ecore_mcast_obj::wait_comp.
Referenced by bxe_init_objs().
void ecore_init_queue_obj | ( | struct bxe_softc * | sc, |
struct ecore_queue_sp_obj * | obj, | ||
uint8_t | cl_id, | ||
uint32_t * | cids, | ||
uint8_t | cid_cnt, | ||
uint8_t | func_id, | ||
void * | rdata, | ||
ecore_dma_addr_t | rdata_mapping, | ||
unsigned long | type | ||
) |
Definition at line 5744 of file ecore_sp.c.
References ecore_queue_sp_obj::check_transition, CHIP_IS_E1x, ecore_queue_sp_obj::cids, ecore_queue_sp_obj::cl_id, ecore_queue_sp_obj::complete_cmd, ECORE_BUG_ON, ECORE_MEMSET, ECORE_MULTI_TX_COS, ECORE_Q_STATE_MAX, ECORE_Q_TYPE_FWD, ecore_queue_chk_fwd_transition(), ecore_queue_chk_transition(), ecore_queue_comp_cmd(), ecore_queue_send_cmd_e1x(), ecore_queue_send_cmd_e2(), ecore_queue_set_pending(), ecore_queue_wait_comp(), ECORE_TEST_BIT, ecore_queue_sp_obj::func_id, ecore_queue_sp_obj::max_cos, ecore_queue_sp_obj::next_state, ecore_queue_sp_obj::rdata, ecore_queue_sp_obj::rdata_mapping, ecore_queue_sp_obj::send_cmd, ecore_queue_sp_obj::set_pending, ecore_queue_sp_obj::type, and ecore_queue_sp_obj::wait_comp.
Referenced by bxe_init_eth_fp().
|
inlinestatic |
Definition at line 2280 of file ecore_sp.c.
References ecore_raw_obj::check_pending, ecore_raw_obj::cid, ecore_raw_obj::cl_id, ecore_raw_obj::clear_pending, ecore_raw_check_pending(), ecore_raw_clear_pending(), ecore_raw_set_pending(), ecore_raw_wait(), ecore_raw_obj::func_id, ecore_raw_obj::obj_type, ecore_raw_obj::pstate, ecore_raw_obj::rdata, ecore_raw_obj::rdata_mapping, ecore_raw_obj::set_pending, ecore_raw_obj::state, and ecore_raw_obj::wait_comp.
Referenced by ecore_init_mcast_obj(), ecore_init_rss_config_obj(), and ecore_init_vlan_mac_common().
void ecore_init_rss_config_obj | ( | struct bxe_softc * | sc, |
struct ecore_rss_config_obj * | rss_obj, | ||
uint8_t | cl_id, | ||
uint32_t | cid, | ||
uint8_t | func_id, | ||
uint8_t | engine_id, | ||
void * | rdata, | ||
ecore_dma_addr_t | rdata_mapping, | ||
int | state, | ||
unsigned long * | pstate, | ||
ecore_obj_type | type | ||
) |
Definition at line 4615 of file ecore_sp.c.
References ecore_raw_obj::cid, ecore_raw_obj::cl_id, ecore_rss_config_obj::config_rss, ecore_init_raw_obj(), ecore_setup_rss(), ecore_rss_config_obj::engine_id, ecore_raw_obj::func_id, ecore_raw_obj::pstate, ecore_rss_config_obj::raw, ecore_raw_obj::rdata, ecore_raw_obj::rdata_mapping, and ecore_raw_obj::state.
Referenced by bxe_init_objs().
void ecore_init_rx_mode_obj | ( | struct bxe_softc * | sc, |
struct ecore_rx_mode_obj * | o | ||
) |
Definition at line 2813 of file ecore_sp.c.
References CHIP_IS_E1x, ecore_rx_mode_obj::config_rx_mode, ecore_empty_rx_mode_wait(), ecore_set_rx_mode_e1x(), ecore_set_rx_mode_e2(), ecore_wait_rx_mode_comp_e2(), and ecore_rx_mode_obj::wait_comp.
Referenced by bxe_init_objs().
void ecore_init_vlan_credit_pool | ( | struct bxe_softc * | sc, |
struct ecore_credit_pool_obj * | p, | ||
uint8_t | func_id, | ||
uint8_t | func_num | ||
) |
Definition at line 4445 of file ecore_sp.c.
References CHIP_IS_E1x, ecore_init_credit_pool(), and PF_VLAN_CREDIT_E2.
Referenced by bxe_init_objs().
|
inlinestatic |
Definition at line 2298 of file ecore_sp.c.
References ecore_vlan_mac_obj::complete, ecore_vlan_mac_obj::delete_all, ecore_complete_vlan_mac(), ecore_init_raw_obj(), ECORE_LIST_INIT, ecore_vlan_mac_del_all(), ecore_vlan_mac_restore(), ecore_wait_vlan_mac(), ecore_vlan_mac_obj::head, ecore_vlan_mac_obj::head_exe_request, ecore_vlan_mac_obj::head_reader, ecore_vlan_mac_obj::macs_pool, ecore_vlan_mac_obj::raw, ecore_vlan_mac_obj::restore, ecore_vlan_mac_obj::saved_ramrod_flags, ecore_vlan_mac_obj::vlans_pool, and ecore_vlan_mac_obj::wait.
Referenced by ecore_init_mac_obj(), ecore_init_vlan_mac_obj(), ecore_init_vlan_obj(), and ecore_init_vxlan_fltr_obj().
void ecore_init_vlan_mac_obj | ( | struct bxe_softc * | sc, |
struct ecore_vlan_mac_obj * | vlan_mac_obj, | ||
uint8_t | cl_id, | ||
uint32_t | cid, | ||
uint8_t | func_id, | ||
void * | rdata, | ||
ecore_dma_addr_t | rdata_mapping, | ||
int | state, | ||
unsigned long * | pstate, | ||
ecore_obj_type | type, | ||
struct ecore_credit_pool_obj * | macs_pool, | ||
struct ecore_credit_pool_obj * | vlans_pool | ||
) |
Definition at line 2416 of file ecore_sp.c.
References ecore_vlan_mac_obj::check_add, ecore_vlan_mac_obj::check_del, ecore_vlan_mac_obj::check_move, CHIP_IS_E1, CHIP_IS_E1H, CLASSIFY_RULES_COUNT, ECORE_BUG, ecore_check_move(), ecore_check_move_always_err(), ecore_check_vlan_mac_add(), ecore_check_vlan_mac_del(), ECORE_ERR, ecore_exe_queue_init(), ecore_execute_vlan_mac(), ecore_exeq_get_vlan_mac(), ecore_get_cam_offset_mac(), ecore_get_credit_vlan_mac(), ecore_init_vlan_mac_common(), ecore_optimize_vlan_mac(), ecore_put_cam_offset_mac(), ecore_put_credit_vlan_mac(), ecore_remove_vlan_mac(), ecore_set_one_vlan_mac_e1h(), ecore_set_one_vlan_mac_e2(), ecore_validate_vlan_mac(), ecore_vlan_mac_obj::exe_queue, ecore_vlan_mac_obj::get_cam_offset, ecore_vlan_mac_obj::get_credit, ecore_vlan_mac_obj::put_cam_offset, ecore_vlan_mac_obj::put_credit, ecore_vlan_mac_obj::ramrod_cmd, RAMROD_CMD_ID_ETH_CLASSIFICATION_RULES, RAMROD_CMD_ID_ETH_SET_MAC, and ecore_vlan_mac_obj::set_one_rule.
void ecore_init_vlan_obj | ( | struct bxe_softc * | sc, |
struct ecore_vlan_mac_obj * | vlan_obj, | ||
uint8_t | cl_id, | ||
uint32_t | cid, | ||
uint8_t | func_id, | ||
void * | rdata, | ||
ecore_dma_addr_t | rdata_mapping, | ||
int | state, | ||
unsigned long * | pstate, | ||
ecore_obj_type | type, | ||
struct ecore_credit_pool_obj * | vlans_pool | ||
) |
Definition at line 2375 of file ecore_sp.c.
References ecore_vlan_mac_obj::check_add, ecore_vlan_mac_obj::check_del, ecore_vlan_mac_obj::check_move, CHIP_IS_E1x, CLASSIFY_RULES_COUNT, ECORE_BUG, ecore_check_move(), ecore_check_vlan_add(), ecore_check_vlan_del(), ECORE_ERR, ecore_exe_queue_init(), ecore_execute_vlan_mac(), ecore_exeq_get_vlan(), ecore_get_cam_offset_vlan(), ecore_get_credit_vlan(), ecore_get_n_elements(), ecore_init_vlan_mac_common(), ecore_optimize_vlan_mac(), ecore_put_cam_offset_vlan(), ecore_put_credit_vlan(), ecore_remove_vlan_mac(), ecore_set_one_vlan_e2(), ecore_validate_vlan_mac(), ecore_vlan_mac_obj::exe_queue, ecore_vlan_mac_obj::get_cam_offset, ecore_vlan_mac_obj::get_credit, ecore_vlan_mac_obj::get_n_elements, ecore_vlan_mac_obj::put_cam_offset, ecore_vlan_mac_obj::put_credit, ecore_vlan_mac_obj::ramrod_cmd, RAMROD_CMD_ID_ETH_CLASSIFICATION_RULES, and ecore_vlan_mac_obj::set_one_rule.
void ecore_init_vxlan_fltr_obj | ( | struct bxe_softc * | sc, |
struct ecore_vlan_mac_obj * | vlan_mac_obj, | ||
uint8_t | cl_id, | ||
uint32_t | cid, | ||
uint8_t | func_id, | ||
void * | rdata, | ||
ecore_dma_addr_t | rdata_mapping, | ||
int | state, | ||
unsigned long * | pstate, | ||
ecore_obj_type | type, | ||
struct ecore_credit_pool_obj * | macs_pool, | ||
struct ecore_credit_pool_obj * | vlans_pool | ||
) |
Definition at line 2479 of file ecore_sp.c.
References ecore_vlan_mac_obj::check_add, ecore_vlan_mac_obj::check_del, ecore_vlan_mac_obj::check_move, CHIP_IS_E1x, CLASSIFY_RULES_COUNT, ECORE_BUG, ecore_check_move(), ecore_check_vxlan_fltr_add(), ecore_check_vxlan_fltr_del(), ECORE_ERR, ecore_exe_queue_init(), ecore_execute_vlan_mac(), ecore_exeq_get_vxlan_fltr(), ecore_get_cam_offset_mac(), ecore_get_credit_vlan_mac(), ecore_init_vlan_mac_common(), ecore_optimize_vlan_mac(), ecore_put_cam_offset_mac(), ecore_put_credit_vlan_mac(), ecore_remove_vlan_mac(), ecore_set_one_vxlan_fltr_e2(), ecore_validate_vlan_mac(), ecore_vlan_mac_obj::exe_queue, ecore_vlan_mac_obj::get_cam_offset, ecore_vlan_mac_obj::get_credit, ecore_vlan_mac_obj::put_cam_offset, ecore_vlan_mac_obj::put_credit, ecore_vlan_mac_obj::ramrod_cmd, RAMROD_CMD_ID_ETH_CLASSIFICATION_RULES, and ecore_vlan_mac_obj::set_one_rule.
|
inlinestatic |
Definition at line 2826 of file ecore_sp.c.
References ECORE_CRC32_LE(), and ETH_ALEN.
Referenced by ecore_mcast_hdl_add_e1h(), and ecore_mcast_set_one_rule_e2().
|
static |
Definition at line 4088 of file ecore_sp.c.
References ecore_raw_obj::check_pending, ecore_mcast_obj::check_sched, and ecore_mcast_obj::raw.
Referenced by ecore_init_mcast_obj().
|
static |
Definition at line 4083 of file ecore_sp.c.
References ECORE_TEST_BIT, ecore_raw_obj::pstate, ecore_mcast_obj::raw, and ecore_mcast_obj::sched_state.
Referenced by ecore_init_mcast_obj().
|
inlinestatic |
ecore_mcast_clear_first_bin - find the first set bin and clear it
@o:
returns the index of the found bin or -1 if none is found
Definition at line 2972 of file ecore_sp.c.
References ecore_mcast_obj::aprox_match, BIT_VEC64_CLEAR_BIT, ecore_mcast_get_next_bin(), ecore_mcast_obj::registry, and ecore_mcast_obj::vec.
Referenced by ecore_mcast_set_one_rule_e2().
|
static |
Definition at line 4069 of file ecore_sp.c.
References ECORE_CLEAR_BIT, ECORE_SMP_MB_AFTER_CLEAR_BIT, ECORE_SMP_MB_BEFORE_CLEAR_BIT, ecore_raw_obj::pstate, ecore_mcast_obj::raw, and ecore_mcast_obj::sched_state.
Referenced by ecore_init_mcast_obj().
|
static |
Definition at line 2864 of file ecore_sp.c.
References ecore_pending_mcast_cmd::data, ecore_pending_mcast_cmd::done, ECORE_ERR, ECORE_FREE, ECORE_INVAL, ECORE_LIST_FOR_EACH_ENTRY, ECORE_LIST_INIT, ECORE_LIST_PUSH_TAIL, ECORE_MCAST_CMD_ADD, ECORE_MCAST_CMD_DEL, ECORE_MCAST_CMD_RESTORE, ECORE_MEMCPY, ECORE_MSG, ECORE_NOMEM, ECORE_PENDING, ECORE_SUCCESS, ECORE_ZALLOC, ETH_ALEN, ecore_mcast_mac_elem::link, ecore_pending_mcast_cmd::link, ecore_mcast_mac_elem::mac, ecore_mcast_list_elem::mac, ecore_pending_mcast_cmd::macs_head, ecore_pending_mcast_cmd::macs_num, ecore_mcast_ramrod_params::mcast_list, ecore_mcast_ramrod_params::mcast_list_len, ecore_pending_mcast_cmd::next_bin, ecore_mcast_obj::pending_cmds_head, ecore_mcast_obj::set_sched, and ecore_pending_mcast_cmd::type.
Referenced by ecore_init_mcast_obj().
|
inlinestatic |
ecore_mcast_get_next_bin - get the next set bin (index)
@o: @last: index to start looking from (including)
returns the next found (set) bin or a negative value if none is found.
Definition at line 2945 of file ecore_sp.c.
References ecore_mcast_obj::aprox_match, BIT_VEC64_ELEM_SZ, BIT_VEC64_TEST_BIT, ECORE_MCAST_VEC_SZ, ecore_mcast_obj::registry, and ecore_mcast_obj::vec.
Referenced by ecore_mcast_clear_first_bin(), ecore_mcast_handle_restore_cmd_e2(), and ecore_mcast_hdl_restore_e1h().
|
static |
Definition at line 3986 of file ecore_sp.c.
References ecore_mcast_obj::aprox_match, ecore_mcast_obj::num_bins_set, and ecore_mcast_obj::registry.
Referenced by ecore_init_mcast_obj().
|
static |
Definition at line 3981 of file ecore_sp.c.
References ecore_mcast_obj::exact_match, ecore_mcast_obj::num_macs_set, and ecore_mcast_obj::registry.
Referenced by ecore_init_mcast_obj().
|
inlinestatic |
Definition at line 2982 of file ecore_sp.c.
References ECORE_OBJ_TYPE_RX, ECORE_OBJ_TYPE_RX_TX, ECORE_OBJ_TYPE_TX, ETH_MULTICAST_RULES_CMD_RX_CMD, ETH_MULTICAST_RULES_CMD_TX_CMD, ecore_raw_obj::obj_type, and ecore_mcast_obj::raw.
Referenced by ecore_mcast_set_one_rule_e2().
|
inlinestatic |
ecore_mcast_handle_current_cmd -
@sc: device handle : @cmd: @start_cnt: first line in the ramrod data that may be used
This function is called iff there is enough place for the current command in the ramrod data. Returns number of lines filled in the ramrod data in total.
Definition at line 3269 of file ecore_sp.c.
References ECORE_ERR, ECORE_INVAL, ECORE_MCAST_CMD_ADD, ECORE_MCAST_CMD_DEL, ECORE_MCAST_CMD_RESTORE, ecore_mcast_hdl_add(), ecore_mcast_hdl_del(), ECORE_MSG, ecore_mcast_obj::hdl_restore, ecore_mcast_ramrod_params::mcast_list_len, and ecore_mcast_ramrod_params::mcast_obj.
Referenced by ecore_mcast_setup_e1(), and ecore_mcast_setup_e2().
|
inlinestatic |
Definition at line 3772 of file ecore_sp.c.
References ecore_pending_mcast_cmd::data, ECORE_ERR, ECORE_FREE, ECORE_INVAL, ECORE_LIST_FIRST_ENTRY, ECORE_LIST_FOR_EACH_ENTRY, ECORE_LIST_IS_EMPTY, ECORE_LIST_REMOVE_ENTRY, ECORE_MCAST_CMD_ADD, ECORE_MCAST_CMD_DEL, ECORE_MCAST_CMD_RESTORE, ECORE_MSG, ecore_mcast_obj::hdl_restore, ecore_pending_mcast_cmd::link, ecore_mcast_mac_elem::mac, ecore_mcast_config_data::mac, ecore_pending_mcast_cmd::macs_head, ecore_pending_mcast_cmd::macs_num, ecore_mcast_ramrod_params::mcast_obj, ecore_mcast_obj::pending_cmds_head, ecore_mcast_obj::set_one_rule, and ecore_pending_mcast_cmd::type.
Referenced by ecore_mcast_setup_e1().
|
inlinestatic |
Definition at line 3172 of file ecore_sp.c.
References ecore_pending_mcast_cmd::done, ECORE_ERR, ECORE_FREE, ECORE_INVAL, ECORE_LIST_FOR_EACH_ENTRY_SAFE, ECORE_LIST_REMOVE_ENTRY, ECORE_MCAST_CMD_ADD, ECORE_MCAST_CMD_DEL, ECORE_MCAST_CMD_RESTORE, ecore_mcast_hdl_pending_add_e2(), ecore_mcast_hdl_pending_del_e2(), ecore_mcast_hdl_pending_restore_e2(), ecore_pending_mcast_cmd::link, ecore_mcast_obj::max_cmd_len, ecore_mcast_ramrod_params::mcast_obj, ecore_mcast_obj::pending_cmds_head, and ecore_pending_mcast_cmd::type.
Referenced by ecore_mcast_setup_e2().
|
inlinestatic |
ecore_mcast_handle_restore_cmd_e1 - restore command for 57710
@sc: device handle @o: @start_idx: index in the registry to start from @rdata_idx: index in the ramrod data to start from
restore command for 57710 is like all other commands - always a stand alone command - start_idx and rdata_idx will always be 0. This function will always succeed. returns -1 to comply with 57712 variant.
Definition at line 3747 of file ecore_sp.c.
References ECORE_LIST_FOR_EACH_ENTRY, ECORE_MCAST_CMD_RESTORE, ECORE_MSG, ecore_mcast_obj::exact_match, ecore_mcast_mac_elem::mac, ecore_mcast_config_data::mac, ecore_mcast_obj::macs, ecore_mcast_obj::registry, and ecore_mcast_obj::set_one_rule.
Referenced by ecore_init_mcast_obj().
|
inlinestatic |
ecore_mcast_handle_restore_cmd_e2 - restore configuration from the registry
@sc: device handle @o: @start_bin: index in the registry to start from (including) @rdata_idx: index in the ramrod data to start from
returns last handled bin index or -1 if all bins have been handled
Definition at line 3060 of file ecore_sp.c.
References ecore_mcast_config_data::bin, ECORE_MCAST_CMD_RESTORE, ecore_mcast_get_next_bin(), ECORE_MSG, ecore_mcast_obj::max_cmd_len, and ecore_mcast_obj::set_one_rule.
Referenced by ecore_init_mcast_obj().
|
inlinestatic |
Definition at line 3217 of file ecore_sp.c.
References ECORE_LIST_FOR_EACH_ENTRY, ECORE_MCAST_CMD_ADD, ECORE_MSG, ecore_mcast_list_elem::mac, ecore_mcast_config_data::mac, ecore_mcast_ramrod_params::mcast_list, and ecore_mcast_obj::set_one_rule.
Referenced by ecore_mcast_handle_current_cmd().
|
inlinestatic |
Definition at line 3515 of file ecore_sp.c.
References ecore_mcast_obj::aprox_match, BIT_VEC64_SET_BIT, ECORE_57711_SET_MC_FILTER, ECORE_LIST_FOR_EACH_ENTRY, ecore_mcast_bin_from_mac(), ECORE_MSG, ecore_mcast_list_elem::link, ecore_mcast_list_elem::mac, ecore_mcast_ramrod_params::mcast_list, ecore_mcast_obj::registry, and ecore_mcast_obj::vec.
Referenced by ecore_mcast_setup_e1h().
|
inlinestatic |
Definition at line 3239 of file ecore_sp.c.
References ECORE_MCAST_CMD_DEL, ECORE_MSG, ecore_mcast_ramrod_params::mcast_list_len, and ecore_mcast_obj::set_one_rule.
Referenced by ecore_mcast_handle_current_cmd().
|
inlinestatic |
Definition at line 3091 of file ecore_sp.c.
References ecore_pending_mcast_cmd::data, ecore_pending_mcast_cmd::done, ECORE_LIST_FOR_EACH_ENTRY_SAFE, ECORE_LIST_IS_EMPTY, ECORE_LIST_REMOVE_ENTRY, ECORE_MSG, ecore_mcast_mac_elem::link, ecore_mcast_mac_elem::mac, ecore_mcast_config_data::mac, ecore_pending_mcast_cmd::macs_head, ecore_mcast_obj::max_cmd_len, ecore_mcast_obj::set_one_rule, and ecore_pending_mcast_cmd::type.
Referenced by ecore_mcast_handle_pending_cmds_e2().
|
inlinestatic |
Definition at line 3127 of file ecore_sp.c.
References ecore_pending_mcast_cmd::data, ecore_pending_mcast_cmd::done, ECORE_MSG, ecore_pending_mcast_cmd::macs_num, ecore_mcast_obj::max_cmd_len, ecore_mcast_obj::set_one_rule, and ecore_pending_mcast_cmd::type.
Referenced by ecore_mcast_handle_pending_cmds_e2().
|
inlinestatic |
Definition at line 3157 of file ecore_sp.c.
References ecore_pending_mcast_cmd::data, ecore_pending_mcast_cmd::done, ecore_mcast_obj::hdl_restore, and ecore_pending_mcast_cmd::next_bin.
Referenced by ecore_mcast_handle_pending_cmds_e2().
|
inlinestatic |
Definition at line 3537 of file ecore_sp.c.
References ECORE_57711_SET_MC_FILTER, ecore_mcast_get_next_bin(), and ECORE_MSG.
Referenced by ecore_mcast_setup_e1h().
|
inlinestatic |
ecore_mcast_refresh_registry_e1 -
@sc: device handle @cnt:
Check the ramrod data first entry flag to see if it's a DELETE or ADD command and update the registry correspondingly: if ADD - allocate a memory and add the entries to the registry (list), if DELETE - clear the registry and free the memory.
Definition at line 3853 of file ecore_sp.c.
References mac_configuration_cmd::config_table, ECORE_CALLOC, ECORE_ERR, ECORE_FREE, ECORE_GET_FLAG, ecore_get_fw_mac_addr(), ECORE_LIST_FIRST_ENTRY, ECORE_LIST_INIT, ECORE_LIST_IS_EMPTY, ECORE_LIST_PUSH_TAIL, ECORE_MSG, ECORE_NOMEM, ECORE_SUCCESS, ecore_mcast_obj::exact_match, mac_configuration_entry::flags, mac_configuration_cmd::hdr, mac_configuration_hdr::length, ecore_mcast_mac_elem::link, mac_configuration_entry::lsb_mac_addr, ecore_mcast_mac_elem::mac, MAC_CONFIGURATION_ENTRY_ACTION_TYPE, ecore_mcast_obj::macs, mac_configuration_entry::middle_mac_addr, mac_configuration_entry::msb_mac_addr, ecore_mcast_obj::raw, ecore_raw_obj::rdata, and ecore_mcast_obj::registry.
Referenced by ecore_mcast_setup_e1().
|
inlinestatic |
ecore_mcast_refresh_registry_e2 - recalculate the actual number of set bins
@sc: device handle @o:
Recalculate the actual number of set bins in the registry using Brian Kernighan's algorithm: it's execution complexity is as a number of set bins.
returns 0 for the compliance with ecore_mcast_refresh_registry_e1().
Definition at line 3390 of file ecore_sp.c.
References ecore_mcast_obj::aprox_match, ECORE_MCAST_VEC_SZ, ECORE_SUCCESS, ecore_mcast_obj::registry, ecore_mcast_obj::set_registry_size, and ecore_mcast_obj::vec.
Referenced by ecore_mcast_setup_e2().
|
static |
Definition at line 3664 of file ecore_sp.c.
References ecore_mcast_obj::max_cmd_len, ecore_mcast_ramrod_params::mcast_list_len, ecore_mcast_ramrod_params::mcast_obj, ecore_mcast_obj::set_registry_size, and ecore_mcast_obj::total_pending_num.
Referenced by ecore_init_mcast_obj().
|
static |
Definition at line 3503 of file ecore_sp.c.
Referenced by ecore_init_mcast_obj().
|
static |
Definition at line 3348 of file ecore_sp.c.
References ecore_mcast_ramrod_params::mcast_list_len, ecore_mcast_ramrod_params::mcast_obj, ecore_mcast_obj::set_registry_size, and ecore_mcast_obj::total_pending_num.
Referenced by ecore_init_mcast_obj().
|
static |
Definition at line 3680 of file ecore_sp.c.
References ecore_raw_obj::cl_id, mac_configuration_entry::clients_bit_vector, mac_configuration_cmd::config_table, ECORE_CPU_TO_LE32, ECORE_MCAST_CMD_ADD, ECORE_MCAST_CMD_RESTORE, ECORE_SET_FLAG, ecore_set_fw_mac_addr(), mac_configuration_entry::flags, ecore_raw_obj::func_id, mac_configuration_entry::lsb_mac_addr, ecore_mcast_config_data::mac, MAC_CONFIGURATION_ENTRY_ACTION_TYPE, mac_configuration_entry::middle_mac_addr, mac_configuration_entry::msb_mac_addr, mac_configuration_entry::pf_id, ecore_mcast_obj::raw, ecore_raw_obj::rdata, T_ETH_MAC_COMMAND_SET, and mac_configuration_entry::vlan_id.
Referenced by ecore_init_mcast_obj().
|
static |
Definition at line 2998 of file ecore_sp.c.
References ecore_mcast_obj::aprox_match, ecore_mcast_config_data::bin, eth_multicast_rules_cmd::bin_id, BIT_VEC64_SET_BIT, eth_multicast_rules_cmd::cmd_general_data, ECORE_ERR, ecore_mcast_bin_from_mac(), ecore_mcast_clear_first_bin(), ECORE_MCAST_CMD_ADD, ECORE_MCAST_CMD_DEL, ECORE_MCAST_CMD_RESTORE, ecore_mcast_get_rx_tx_flag(), ECORE_MSG, eth_multicast_rules_cmd::engine_id, ecore_mcast_obj::engine_id, ETH_MULTICAST_RULES_CMD_IS_ADD, eth_multicast_rules_cmd::func_id, ecore_raw_obj::func_id, ecore_mcast_config_data::mac, ecore_mcast_obj::raw, ecore_raw_obj::rdata, ecore_mcast_obj::registry, eth_multicast_rules_ramrod_data::rules, and ecore_mcast_obj::vec.
Referenced by ecore_init_mcast_obj().
|
inlinestatic |
ecore_mcast_set_rdata_hdr_e1 - set header values in mac_configuration_cmd
@sc: device handle : @len: number of rules to handle
Definition at line 3714 of file ecore_sp.c.
References CHIP_REV_IS_SLOW, ecore_raw_obj::cid, mac_configuration_hdr::client_id, mac_configuration_hdr::echo, ECORE_CPU_TO_LE16, ECORE_CPU_TO_LE32, ECORE_FILTER_MCAST_PENDING, ECORE_MAX_EMUL_MULTI, ECORE_MAX_MULTICAST, ECORE_SWCID_MASK, ECORE_SWCID_SHIFT, ecore_raw_obj::func_id, mac_configuration_cmd::hdr, mac_configuration_hdr::length, ecore_mcast_ramrod_params::mcast_obj, offset, mac_configuration_hdr::offset, ecore_mcast_obj::raw, and ecore_raw_obj::rdata.
Referenced by ecore_mcast_setup_e1().
|
inlinestatic |
ecore_mcast_set_rdata_hdr_e2 - sets a header values
@sc: device handle : @len: number of rules to handle
Definition at line 3365 of file ecore_sp.c.
References ecore_raw_obj::cid, eth_classify_header::echo, ECORE_CPU_TO_LE32, ECORE_FILTER_MCAST_PENDING, ECORE_SWCID_MASK, ECORE_SWCID_SHIFT, eth_multicast_rules_ramrod_data::header, ecore_mcast_ramrod_params::mcast_obj, ecore_mcast_obj::raw, ecore_raw_obj::rdata, and eth_classify_header::rule_cnt.
Referenced by ecore_mcast_setup_e2().
|
static |
Definition at line 3997 of file ecore_sp.c.
References ecore_mcast_obj::aprox_match, ecore_mcast_obj::num_bins_set, and ecore_mcast_obj::registry.
Referenced by ecore_init_mcast_obj().
|
static |
Definition at line 3991 of file ecore_sp.c.
References ecore_mcast_obj::exact_match, ecore_mcast_obj::num_macs_set, and ecore_mcast_obj::registry.
Referenced by ecore_init_mcast_obj().
|
static |
Definition at line 4076 of file ecore_sp.c.
References ECORE_SET_BIT, ECORE_SMP_MB_AFTER_CLEAR_BIT, ECORE_SMP_MB_BEFORE_CLEAR_BIT, ecore_raw_obj::pstate, ecore_mcast_obj::raw, and ecore_mcast_obj::sched_state.
Referenced by ecore_init_mcast_obj().
|
static |
Definition at line 3901 of file ecore_sp.c.
References ecore_raw_obj::cid, ecore_raw_obj::clear_pending, ecore_mcast_obj::clear_sched, mac_configuration_cmd::config_table, ECORE_DBG_BREAK_IF, ECORE_LIST_IS_EMPTY, ecore_mcast_handle_current_cmd(), ecore_mcast_handle_pending_cmds_e1(), ecore_mcast_refresh_registry_e1(), ecore_mcast_set_rdata_hdr_e1(), ECORE_MEMSET, ECORE_PENDING, ECORE_SET_FLAG, ecore_sp_post, ECORE_SUCCESS, ECORE_TEST_BIT, ETH_CONNECTION_TYPE, mac_configuration_entry::flags, MAC_CONFIGURATION_ENTRY_ACTION_TYPE, ecore_mcast_obj::max_cmd_len, ecore_mcast_ramrod_params::mcast_obj, ecore_mcast_obj::pending_cmds_head, RAMROD_CMD_ID_ETH_SET_MAC, RAMROD_DRV_CLR_ONLY, ecore_mcast_ramrod_params::ramrod_flags, ecore_mcast_obj::raw, ecore_raw_obj::rdata, ecore_raw_obj::rdata_mapping, T_ETH_MAC_COMMAND_INVALIDATE, and ecore_mcast_obj::total_pending_num.
Referenced by ecore_init_mcast_obj().
|
static |
Definition at line 3555 of file ecore_sp.c.
References ecore_mcast_obj::aprox_match, ecore_raw_obj::clear_pending, ECORE_ERR, ECORE_INVAL, ECORE_MC_HASH_OFFSET, ECORE_MC_HASH_SIZE, ECORE_MCAST_CMD_ADD, ECORE_MCAST_CMD_DEL, ECORE_MCAST_CMD_RESTORE, ecore_mcast_hdl_add_e1h(), ecore_mcast_hdl_restore_e1h(), ECORE_MEMSET, ECORE_MSG, ECORE_SUCCESS, ECORE_TEST_BIT, ecore_mcast_ramrod_params::mcast_obj, RAMROD_DRV_CLR_ONLY, ecore_mcast_ramrod_params::ramrod_flags, ecore_mcast_obj::raw, REG_WR, ecore_mcast_obj::registry, and ecore_mcast_obj::vec.
Referenced by ecore_init_mcast_obj().
|
static |
Definition at line 3407 of file ecore_sp.c.
References ecore_raw_obj::cid, ecore_raw_obj::clear_pending, ecore_mcast_obj::clear_sched, ECORE_DBG_BREAK_IF, ECORE_LIST_IS_EMPTY, ecore_mcast_handle_current_cmd(), ecore_mcast_handle_pending_cmds_e2(), ecore_mcast_refresh_registry_e2(), ecore_mcast_set_rdata_hdr_e2(), ECORE_MEMSET, ECORE_PENDING, ecore_sp_post, ECORE_SUCCESS, ECORE_TEST_BIT, ETH_CONNECTION_TYPE, ecore_mcast_obj::max_cmd_len, ecore_mcast_ramrod_params::mcast_list_len, ecore_mcast_ramrod_params::mcast_obj, ecore_mcast_obj::pending_cmds_head, RAMROD_CMD_ID_ETH_MULTICAST_RULES, RAMROD_DRV_CLR_ONLY, ecore_mcast_ramrod_params::ramrod_flags, ecore_mcast_obj::raw, ecore_raw_obj::rdata, ecore_raw_obj::rdata_mapping, and ecore_mcast_obj::total_pending_num.
Referenced by ecore_init_mcast_obj().
|
static |
Definition at line 3609 of file ecore_sp.c.
References ECORE_ERR, ECORE_INVAL, ECORE_MCAST_CMD_ADD, ECORE_MCAST_CMD_CONT, ECORE_MCAST_CMD_DEL, ECORE_MCAST_CMD_RESTORE, ECORE_MSG, ECORE_SUCCESS, ecore_mcast_obj::get_registry_size, ecore_mcast_obj::max_cmd_len, ecore_mcast_ramrod_params::mcast_list_len, ecore_mcast_ramrod_params::mcast_obj, ecore_mcast_obj::set_registry_size, and ecore_mcast_obj::total_pending_num.
Referenced by ecore_init_mcast_obj().
|
static |
Definition at line 3492 of file ecore_sp.c.
References ECORE_MCAST_CMD_DEL, ECORE_MCAST_CMD_RESTORE, ECORE_SUCCESS, and ecore_mcast_ramrod_params::mcast_list_len.
Referenced by ecore_init_mcast_obj().
|
static |
Definition at line 3303 of file ecore_sp.c.
References ECORE_ERR, ECORE_INVAL, ECORE_MCAST_CMD_ADD, ECORE_MCAST_CMD_CONT, ECORE_MCAST_CMD_DEL, ECORE_MCAST_CMD_RESTORE, ECORE_SUCCESS, ecore_mcast_obj::get_registry_size, ecore_mcast_ramrod_params::mcast_list_len, ecore_mcast_ramrod_params::mcast_obj, ecore_mcast_obj::set_registry_size, and ecore_mcast_obj::total_pending_num.
Referenced by ecore_init_mcast_obj().
|
static |
Definition at line 2854 of file ecore_sp.c.
References ecore_state_wait(), ECORE_SUCCESS, ECORE_TIMEOUT, ecore_raw_obj::pstate, ecore_mcast_obj::raw, ecore_mcast_obj::sched_state, and ecore_raw_obj::wait_comp.
Referenced by ecore_init_mcast_obj().
|
static |
ecore_optimize_vlan_mac - optimize ADD and DEL commands.
@sc: device handle @o: ecore_qable_obj @elem: ecore_exeq_elem
Definition at line 1841 of file ecore_sp.c.
References ecore_vlan_mac_data::cmd, ecore_exeq_elem::cmd_data, ECORE_DONT_CONSUME_CAM_CREDIT, ECORE_ERR, ecore_exe_queue_free_elem(), ECORE_INVAL, ECORE_LIST_REMOVE_ENTRY, ECORE_MEMCPY, ECORE_MSG, ECORE_TEST_BIT, ECORE_VLAN_MAC_ADD, ECORE_VLAN_MAC_DEL, ecore_exe_queue_obj::exe_queue, ecore_vlan_mac_obj::exe_queue, ecore_exe_queue_obj::get, ecore_vlan_mac_obj::get_credit, ecore_exeq_elem::link, ecore_vlan_mac_obj::put_credit, ecore_exe_queue_cmd_data::vlan_mac, ecore_qable_obj::vlan_mac, and ecore_vlan_mac_data::vlan_mac_flags.
Referenced by ecore_init_mac_obj(), ecore_init_vlan_mac_obj(), ecore_init_vlan_obj(), and ecore_init_vxlan_fltr_obj().
|
static |
Definition at line 395 of file ecore_sp.c.
References ecore_vlan_mac_obj::macs_pool, offset, and ecore_credit_pool_obj::put_entry.
Referenced by ecore_init_mac_obj(), ecore_init_vlan_mac_obj(), and ecore_init_vxlan_fltr_obj().
|
static |
Definition at line 409 of file ecore_sp.c.
References offset, ecore_credit_pool_obj::put_entry, and ecore_vlan_mac_obj::vlans_pool.
Referenced by ecore_init_vlan_obj().
|
static |
Definition at line 402 of file ecore_sp.c.
References ecore_vlan_mac_obj::macs_pool, and ecore_credit_pool_obj::put.
Referenced by ecore_init_mac_obj().
|
static |
Definition at line 416 of file ecore_sp.c.
References ecore_credit_pool_obj::put, and ecore_vlan_mac_obj::vlans_pool.
Referenced by ecore_init_vlan_obj().
|
static |
Definition at line 423 of file ecore_sp.c.
References ecore_credit_pool_obj::get, ecore_vlan_mac_obj::macs_pool, ecore_credit_pool_obj::put, and ecore_vlan_mac_obj::vlans_pool.
Referenced by ecore_init_vlan_mac_obj(), and ecore_init_vxlan_fltr_obj().
|
static |
Definition at line 4779 of file ecore_sp.c.
References client_init_general_data::activate_flg, ecore_queue_sp_obj::cl_id, client_init_general_data::client_id, client_init_general_data::cos, ecore_general_setup_params::cos, DISABLE_STATISTIC_COUNTER_ID_VALUE, ECORE_CPU_TO_LE16, ECORE_MSG, ECORE_Q_FLG_ACTIVE, ECORE_Q_FLG_FCOE, ECORE_Q_FLG_STATS, ECORE_Q_FLG_ZERO_STATS, ECORE_TEST_BIT, flags, ecore_general_setup_params::fp_hsi, client_init_general_data::fp_hsi_ver, client_init_general_data::func_id, ecore_queue_sp_obj::func_id, client_init_general_data::is_fcoe_flg, LLFC_TRAFFIC_TYPE_FCOE, LLFC_TRAFFIC_TYPE_NW, client_init_general_data::mtu, ecore_general_setup_params::mtu, client_init_general_data::sp_client_id, ecore_general_setup_params::spcl_id, ecore_general_setup_params::stat_id, client_init_general_data::statistics_counter_id, client_init_general_data::statistics_en_flg, client_init_general_data::statistics_zero_flg, and client_init_general_data::traffic_type.
Referenced by ecore_q_fill_setup_data_cmn(), and ecore_q_fill_setup_tx_only().
|
static |
Definition at line 4855 of file ecore_sp.c.
References client_init_rx_data::bd_pause_thr_high, client_init_rx_data::bd_pause_thr_low, rxq_pause_params::bd_th_hi, rxq_pause_params::bd_th_lo, client_init_rx_data::cqe_pause_thr_high, client_init_rx_data::cqe_pause_thr_low, ECORE_CPU_TO_LE16, rxq_pause_params::pri_map, rxq_pause_params::rcq_th_hi, rxq_pause_params::rcq_th_lo, client_init_rx_data::rx_cos_mask, client_init_rx_data::sge_pause_thr_high, client_init_rx_data::sge_pause_thr_low, rxq_pause_params::sge_th_hi, and rxq_pause_params::sge_th_lo.
Referenced by ecore_q_fill_setup_data_cmn().
|
static |
Definition at line 4869 of file ecore_sp.c.
References client_init_rx_data::approx_mcast_engine_id, client_init_rx_data::bd_page_base, ecore_rxq_setup_params::buf_sz, client_init_rx_data::cache_line_alignment_log_size, ecore_rxq_setup_params::cache_line_log, ecore_rxq_setup_params::cl_qzone_id, CLIENT_INIT_RX_DATA_MCAST_DROP_ALL, CLIENT_INIT_RX_DATA_TPA_EN_IPV4, CLIENT_INIT_RX_DATA_TPA_MODE, CLIENT_INIT_RX_DATA_UCAST_DROP_ALL, client_init_rx_data::client_qzone_id, client_init_rx_data::cqe_page_base, client_init_rx_data::drop_ip_cs_err_flg, client_init_rx_data::drop_tcp_cs_err_flg, client_init_rx_data::drop_ttl0_flg, client_init_rx_data::drop_udp_cs_err_flg, ecore_rxq_setup_params::dscr_map, ECORE_CPU_TO_LE16, ECORE_CPU_TO_LE32, ECORE_Q_FLG_DHC, ECORE_Q_FLG_LEADING_RSS, ECORE_Q_FLG_MCAST, ECORE_Q_FLG_OOO, ECORE_Q_FLG_OV, ECORE_Q_FLG_SILENT_VLAN_REM, ECORE_Q_FLG_TPA, ECORE_Q_FLG_TPA_GRO, ECORE_Q_FLG_VLAN, ECORE_TEST_BIT, client_init_rx_data::enable_dynamic_hc, client_init_rx_data::extra_data_over_sgl_en_flg, flags, ecore_rxq_setup_params::fw_sb_id, regpair_t::hi, client_init_rx_data::inner_vlan_removal_enable_flg, client_init_rx_data::is_approx_mcast, client_init_rx_data::is_leading_rss, regpair_t::lo, client_init_rx_data::max_agg_size, client_init_rx_data::max_bytes_on_bd, client_init_rx_data::max_sges_for_packet, ecore_rxq_setup_params::max_sges_pkt, client_init_rx_data::max_tpa_queues, ecore_rxq_setup_params::max_tpa_queues, ecore_rxq_setup_params::mcast_engine_id, client_init_rx_data::outer_vlan_removal_enable_flg, ecore_rxq_setup_params::rcq_map, client_init_rx_data::rss_engine_id, ecore_rxq_setup_params::rss_engine_id, client_init_rx_data::rx_sb_index_number, ecore_rxq_setup_params::sb_cq_index, ecore_rxq_setup_params::sge_buf_sz, client_init_rx_data::sge_buff_size, ecore_rxq_setup_params::sge_map, client_init_rx_data::sge_page_base, ecore_rxq_setup_params::silent_removal_mask, ecore_rxq_setup_params::silent_removal_value, client_init_rx_data::silent_vlan_mask, client_init_rx_data::silent_vlan_removal_flg, client_init_rx_data::silent_vlan_value, client_init_rx_data::state, client_init_rx_data::status_block_id, ecore_rxq_setup_params::tpa_agg_sz, client_init_rx_data::tpa_en, U64_HI, U64_LO, and client_init_rx_data::vmqueue_mode_en_flg.
Referenced by ecore_q_fill_setup_data_cmn().
|
static |
Definition at line 4817 of file ecore_sp.c.
References client_init_tx_data::anti_spoofing_flg, CSUM_ON_BD, CSUM_ON_PKT, client_init_tx_data::default_vlan, ecore_txq_setup_params::default_vlan, client_init_tx_data::default_vlan_flg, ecore_txq_setup_params::dscr_map, ECORE_CPU_TO_LE16, ECORE_CPU_TO_LE32, ECORE_Q_FLG_ANTI_SPOOF, ECORE_Q_FLG_DEF_VLAN, ECORE_Q_FLG_FORCE_DEFAULT_PRI, ECORE_Q_FLG_PCSUM_ON_PKT, ECORE_Q_FLG_REFUSE_OUTBAND_VLAN, ECORE_Q_FLG_TUN_INC_INNER_IP_ID, ECORE_Q_FLG_TX_SEC, ECORE_Q_FLG_TX_SWITCH, ECORE_TEST_BIT, client_init_tx_data::enforce_security_flg, flags, client_init_tx_data::force_default_pri_flg, ecore_txq_setup_params::fw_sb_id, regpair_t::hi, regpair_t::lo, client_init_tx_data::refuse_outband_vlan_flg, ecore_txq_setup_params::sb_cq_index, client_init_tx_data::state, ecore_txq_setup_params::tss_leading_cl_id, client_init_tx_data::tss_leading_client_id, client_init_tx_data::tunnel_lso_inc_ip_id, client_init_tx_data::tunnel_non_lso_pcsum_location, client_init_tx_data::tx_bd_page_base, client_init_tx_data::tx_sb_index_number, client_init_tx_data::tx_status_block_id, client_init_tx_data::tx_switching_flg, U64_HI, and U64_LO.
Referenced by ecore_q_fill_setup_data_cmn(), and ecore_q_fill_setup_tx_only().
|
static |
Definition at line 4940 of file ecore_sp.c.
References ecore_q_fill_init_general_data(), ecore_q_fill_init_pause_data(), ecore_q_fill_init_rx_data(), ecore_q_fill_init_tx_data(), ecore_queue_setup_params::flags, ecore_queue_setup_params::gen_params, client_init_ramrod_data::general, ecore_queue_state_params::params, ecore_queue_setup_params::pause_params, ecore_queue_state_params::q_obj, client_init_ramrod_data::rx, ecore_queue_setup_params::rxq_params, ecore_queue_state_params::setup, client_init_ramrod_data::tx, and ecore_queue_setup_params::txq_params.
Referenced by ecore_q_send_setup_e1x(), and ecore_q_send_setup_e2().
|
static |
Definition at line 4765 of file ecore_sp.c.
References CLIENT_INIT_RX_DATA_TPA_EN_IPV6, ECORE_Q_FLG_TPA_IPV6, ECORE_TEST_BIT, ecore_queue_setup_params::flags, ecore_queue_state_params::params, client_init_ramrod_data::rx, ecore_queue_state_params::setup, and client_init_rx_data::tpa_en.
Referenced by ecore_q_send_setup_e2().
|
static |
Definition at line 4965 of file ecore_sp.c.
References ecore_queue_sp_obj::cids, ECORE_MSG, ecore_q_fill_init_general_data(), ecore_q_fill_init_tx_data(), ecore_queue_setup_tx_only_params::flags, ecore_queue_setup_tx_only_params::gen_params, tx_queue_init_ramrod_data::general, regpair_t::hi, regpair_t::lo, ecore_queue_state_params::params, ecore_queue_state_params::q_obj, tx_queue_init_ramrod_data::tx, client_init_tx_data::tx_bd_page_base, ecore_queue_state_params::tx_only, and ecore_queue_setup_tx_only_params::txq_params.
Referenced by ecore_q_send_setup_tx_only().
|
static |
Definition at line 5146 of file ecore_sp.c.
References client_update_ramrod_data::activate_change_flg, client_update_ramrod_data::activate_flg, client_update_ramrod_data::anti_spoofing_change_flg, client_update_ramrod_data::anti_spoofing_enable_flg, ecore_queue_sp_obj::cl_id, client_update_ramrod_data::client_id, ecore_queue_update_params::def_vlan, client_update_ramrod_data::default_vlan, client_update_ramrod_data::default_vlan_change_flg, client_update_ramrod_data::default_vlan_enable_flg, ECORE_CPU_TO_LE16, ECORE_Q_UPDATE_ACTIVATE, ECORE_Q_UPDATE_ACTIVATE_CHNG, ECORE_Q_UPDATE_ANTI_SPOOF, ECORE_Q_UPDATE_ANTI_SPOOF_CHNG, ECORE_Q_UPDATE_DEF_VLAN_EN, ECORE_Q_UPDATE_DEF_VLAN_EN_CHNG, ECORE_Q_UPDATE_IN_VLAN_REM, ECORE_Q_UPDATE_IN_VLAN_REM_CHNG, ECORE_Q_UPDATE_OUT_VLAN_REM, ECORE_Q_UPDATE_OUT_VLAN_REM_CHNG, ECORE_Q_UPDATE_PTP_PKTS, ECORE_Q_UPDATE_PTP_PKTS_CHNG, ECORE_Q_UPDATE_SILENT_VLAN_REM, ECORE_Q_UPDATE_SILENT_VLAN_REM_CHNG, ECORE_Q_UPDATE_TX_SWITCHING, ECORE_Q_UPDATE_TX_SWITCHING_CHNG, ECORE_TEST_BIT, client_update_ramrod_data::func_id, ecore_queue_sp_obj::func_id, client_update_ramrod_data::handle_ptp_pkts_change_flg, client_update_ramrod_data::handle_ptp_pkts_flg, client_update_ramrod_data::inner_vlan_removal_change_flg, client_update_ramrod_data::inner_vlan_removal_enable_flg, client_update_ramrod_data::outer_vlan_removal_change_flg, client_update_ramrod_data::outer_vlan_removal_enable_flg, ecore_queue_update_params::silent_removal_mask, ecore_queue_update_params::silent_removal_value, client_update_ramrod_data::silent_vlan_change_flg, client_update_ramrod_data::silent_vlan_mask, client_update_ramrod_data::silent_vlan_removal_flg, client_update_ramrod_data::silent_vlan_value, client_update_ramrod_data::tx_switching_change_flg, client_update_ramrod_data::tx_switching_flg, and ecore_queue_update_params::update_flags.
Referenced by ecore_q_send_update().
|
static |
Definition at line 5303 of file ecore_sp.c.
References ecore_queue_sp_obj::cl_id, tpa_update_ramrod_data::client_id, tpa_update_ramrod_data::complete_on_both_clients, ecore_queue_update_tpa_params::complete_on_both_clients, tpa_update_ramrod_data::dont_verify_rings_pause_thr_flg, ecore_queue_update_tpa_params::dont_verify_thr, ECORE_CPU_TO_LE16, ECORE_CPU_TO_LE32, tpa_update_ramrod_data::max_agg_size, ecore_queue_update_tpa_params::max_agg_sz, tpa_update_ramrod_data::max_sges_for_packet, ecore_queue_update_tpa_params::max_sges_pkt, tpa_update_ramrod_data::max_tpa_queues, ecore_queue_update_tpa_params::max_tpa_queues, tpa_update_ramrod_data::sge_buff_size, ecore_queue_update_tpa_params::sge_buff_sz, ecore_queue_update_tpa_params::sge_map, tpa_update_ramrod_data::sge_page_base_hi, tpa_update_ramrod_data::sge_page_base_lo, tpa_update_ramrod_data::sge_pause_thr_high, ecore_queue_update_tpa_params::sge_pause_thr_high, tpa_update_ramrod_data::sge_pause_thr_low, ecore_queue_update_tpa_params::sge_pause_thr_low, tpa_update_ramrod_data::tpa_mode, ecore_queue_update_tpa_params::tpa_mode, U64_HI, U64_LO, tpa_update_ramrod_data::update_ipv4, ecore_queue_update_tpa_params::update_ipv4, tpa_update_ramrod_data::update_ipv6, and ecore_queue_update_tpa_params::update_ipv6.
Referenced by ecore_q_send_update_tpa().
|
inlinestatic |
ecore_q_init - init HW/FW queue
@sc: device handle @params:
HW/FW initial Queue configuration:
Definition at line 4996 of file ecore_sp.c.
References ecore_queue_sp_obj::cids, ecore_queue_sp_obj::complete_cmd, ecore_queue_init_params::cxts, ECORE_MMIOWB, ECORE_MSG, ECORE_Q_CMD_INIT, ECORE_Q_FLG_HC, ECORE_Q_FLG_HC_EN, ECORE_Q_TYPE_HAS_RX, ECORE_Q_TYPE_HAS_TX, ECORE_SET_CTX_VALIDATION, ECORE_SMP_MB, ECORE_SUCCESS, ECORE_TEST_BIT, ECORE_UPDATE_COALESCE_SB_INDEX, ecore_queue_init_params::flags, ecore_queue_init_params::fw_sb_id, ecore_queue_init_params::hc_rate, ecore_queue_state_params::init, ecore_queue_sp_obj::max_cos, ecore_queue_state_params::params, ecore_queue_state_params::q_obj, ecore_queue_init_params::rx, ecore_queue_init_params::sb_cq_index, ecore_queue_init_params::tx, and ecore_queue_sp_obj::type.
Referenced by ecore_queue_send_cmd_cmn().
|
inlinestatic |
ecore_q_send_activate - send ACTIVATE command
@sc: device handle @params:
implemented using the UPDATE command.
Definition at line 5290 of file ecore_sp.c.
References ECORE_MEMSET, ecore_q_send_update(), ECORE_Q_UPDATE_ACTIVATE, ECORE_Q_UPDATE_ACTIVATE_CHNG, ECORE_SET_BIT_NA, ecore_queue_state_params::params, ecore_queue_state_params::update, and ecore_queue_update_params::update_flags.
Referenced by ecore_queue_send_cmd_cmn().
|
inlinestatic |
Definition at line 5382 of file ecore_sp.c.
References ecore_queue_state_params::cfc_del, ecore_queue_cfc_del_params::cid_index, ecore_queue_sp_obj::cids, ecore_queue_sp_obj::cl_id, ECORE_ERR, ECORE_INVAL, ecore_sp_post, ecore_queue_sp_obj::max_cos, NONE_CONNECTION_TYPE, ecore_queue_state_params::params, ecore_queue_state_params::q_obj, and RAMROD_CMD_ID_COMMON_CFC_DEL.
Referenced by ecore_queue_send_cmd_cmn().
|
inlinestatic |
ecore_q_send_deactivate - send DEACTIVATE command
@sc: device handle @params:
implemented using the UPDATE command.
Definition at line 5270 of file ecore_sp.c.
References ECORE_MEMSET, ecore_q_send_update(), ECORE_Q_UPDATE_ACTIVATE_CHNG, ECORE_SET_BIT_NA, ecore_queue_state_params::params, ecore_queue_state_params::update, and ecore_queue_update_params::update_flags.
Referenced by ecore_queue_send_cmd_cmn().
|
inlinestatic |
Definition at line 5416 of file ecore_sp.c.
References ecore_queue_sp_obj::cids, ECORE_PRIMARY_CID_INDEX, ecore_sp_post, ETH_CONNECTION_TYPE, ecore_queue_state_params::q_obj, and RAMROD_CMD_ID_ETH_EMPTY.
Referenced by ecore_queue_send_cmd_cmn().
|
inlinestatic |
Definition at line 5360 of file ecore_sp.c.
References ecore_queue_sp_obj::cids, ecore_queue_sp_obj::cl_id, ECORE_PRIMARY_CID_INDEX, ecore_sp_post, ETH_CONNECTION_TYPE, ecore_queue_state_params::q_obj, and RAMROD_CMD_ID_ETH_HALT.
Referenced by ecore_queue_send_cmd_cmn().
|
inlinestatic |
Definition at line 5043 of file ecore_sp.c.
References ecore_queue_sp_obj::cids, ECORE_MEMSET, ECORE_PRIMARY_CID_INDEX, ecore_q_fill_setup_data_cmn(), ecore_sp_post, ETH_CONNECTION_TYPE, ecore_queue_state_params::q_obj, RAMROD_CMD_ID_ETH_CLIENT_SETUP, ecore_queue_sp_obj::rdata, and ecore_queue_sp_obj::rdata_mapping.
Referenced by ecore_queue_send_cmd_e1x().
|
inlinestatic |
Definition at line 5071 of file ecore_sp.c.
References ecore_queue_sp_obj::cids, ECORE_MEMSET, ECORE_PRIMARY_CID_INDEX, ecore_q_fill_setup_data_cmn(), ecore_q_fill_setup_data_e2(), ecore_sp_post, ETH_CONNECTION_TYPE, ecore_queue_state_params::q_obj, RAMROD_CMD_ID_ETH_CLIENT_SETUP, ecore_queue_sp_obj::rdata, and ecore_queue_sp_obj::rdata_mapping.
Referenced by ecore_queue_send_cmd_e2().
|
inlinestatic |
Definition at line 5100 of file ecore_sp.c.
References ecore_queue_setup_tx_only_params::cid_index, ecore_queue_sp_obj::cids, ecore_queue_sp_obj::cl_id, client_init_general_data::client_id, client_init_general_data::cos, ECORE_ERR, ECORE_INVAL, ECORE_MEMSET, ECORE_MSG, ecore_q_fill_setup_tx_only(), ECORE_Q_TYPE_FWD, ecore_sp_post, ECORE_TEST_BIT, ETH_CONNECTION_TYPE, tx_queue_init_ramrod_data::general, ecore_queue_sp_obj::max_cos, ecore_queue_state_params::params, ecore_queue_state_params::q_obj, RAMROD_CMD_ID_ETH_FORWARD_SETUP, RAMROD_CMD_ID_ETH_TX_QUEUE_SETUP, ecore_queue_sp_obj::rdata, ecore_queue_sp_obj::rdata_mapping, client_init_general_data::sp_client_id, ecore_queue_state_params::tx_only, and ecore_queue_sp_obj::type.
Referenced by ecore_queue_send_cmd_cmn().
|
inlinestatic |
Definition at line 5399 of file ecore_sp.c.
References ecore_queue_terminate_params::cid_index, ecore_queue_sp_obj::cids, ecore_queue_sp_obj::cl_id, ECORE_ERR, ECORE_INVAL, ecore_sp_post, ETH_CONNECTION_TYPE, ecore_queue_sp_obj::max_cos, ecore_queue_state_params::params, ecore_queue_state_params::q_obj, RAMROD_CMD_ID_ETH_TERMINATE, and ecore_queue_state_params::terminate.
Referenced by ecore_queue_send_cmd_cmn().
|
inlinestatic |
Definition at line 5228 of file ecore_sp.c.
References ecore_queue_update_params::cid_index, ecore_queue_sp_obj::cids, ecore_queue_sp_obj::cl_id, ECORE_ERR, ECORE_INVAL, ECORE_MEMSET, ecore_q_fill_update_data(), ecore_sp_post, ETH_CONNECTION_TYPE, ecore_queue_sp_obj::max_cos, ecore_queue_state_params::params, ecore_queue_state_params::q_obj, RAMROD_CMD_ID_ETH_CLIENT_UPDATE, ecore_queue_sp_obj::rdata, ecore_queue_sp_obj::rdata_mapping, and ecore_queue_state_params::update.
Referenced by ecore_q_send_activate(), ecore_q_send_deactivate(), and ecore_queue_send_cmd_cmn().
|
inlinestatic |
Definition at line 5325 of file ecore_sp.c.
References ecore_queue_sp_obj::cids, ECORE_MEMSET, ECORE_PRIMARY_CID_INDEX, ecore_q_fill_update_tpa_data(), ecore_sp_post, ETH_CONNECTION_TYPE, ecore_queue_sp_obj::func_id, ecore_queue_state_params::params, ecore_queue_state_params::q_obj, RAMROD_CMD_ID_ETH_TPA_UPDATE, ecore_queue_sp_obj::rdata, ecore_queue_sp_obj::rdata_mapping, SPE_HDR_T_FUNCTION_ID_SHIFT, and ecore_queue_state_params::update_tpa.
Referenced by ecore_queue_send_cmd_cmn().
|
static |
ecore_queue_chk_fwd_transition - check state machine of a Forwarding Queue.
@sc: device handle @o: @params:
It both checks if the requested command is legal in a current state and, if it's legal, sets a ‘next_state’ in the object that will be used in the completion flow to set the ‘state’ of the object.
returns 0 if a requested command is a legal transition, ECORE_INVAL otherwise.
Definition at line 5699 of file ecore_sp.c.
References ecore_queue_state_params::cmd, ECORE_ERR, ECORE_INVAL, ECORE_MSG, ECORE_Q_CMD_CFC_DEL, ECORE_Q_CMD_INIT, ECORE_Q_CMD_SETUP_TX_ONLY, ECORE_Q_FLG_ACTIVE, ECORE_Q_STATE_ACTIVE, ECORE_Q_STATE_INACTIVE, ECORE_Q_STATE_INITIALIZED, ECORE_Q_STATE_MAX, ECORE_Q_STATE_RESET, ECORE_SUCCESS, ECORE_TEST_BIT, ecore_queue_setup_tx_only_params::flags, next_state, ecore_queue_sp_obj::next_state, ecore_queue_state_params::params, and ecore_queue_state_params::tx_only.
Referenced by ecore_init_queue_obj().
|
static |
ecore_queue_chk_transition - check state machine of a regular Queue
@sc: device handle @o: @params:
(not Forwarding) It both checks if the requested command is legal in a current state and, if it's legal, sets a ‘next_state’ in the object that will be used in the completion flow to set the ‘state’ of the object.
returns 0 if a requested command is a legal transition, ECORE_INVAL otherwise.
Definition at line 5518 of file ecore_sp.c.
References ecore_queue_state_params::cmd, ECORE_BUSY, ECORE_ERR, ECORE_INVAL, ECORE_MSG, ECORE_Q_CMD_ACTIVATE, ECORE_Q_CMD_CFC_DEL, ECORE_Q_CMD_DEACTIVATE, ECORE_Q_CMD_EMPTY, ECORE_Q_CMD_HALT, ECORE_Q_CMD_INIT, ECORE_Q_CMD_SETUP, ECORE_Q_CMD_SETUP_TX_ONLY, ECORE_Q_CMD_TERMINATE, ECORE_Q_CMD_UPDATE, ECORE_Q_CMD_UPDATE_TPA, ECORE_Q_FLG_ACTIVE, ECORE_Q_STATE_ACTIVE, ECORE_Q_STATE_INACTIVE, ECORE_Q_STATE_INITIALIZED, ECORE_Q_STATE_MAX, ECORE_Q_STATE_MCOS_TERMINATED, ECORE_Q_STATE_MULTI_COS, ECORE_Q_STATE_RESET, ECORE_Q_STATE_STOPPED, ECORE_Q_STATE_TERMINATED, ECORE_Q_UPDATE_ACTIVATE, ECORE_Q_UPDATE_ACTIVATE_CHNG, ECORE_SUCCESS, ECORE_TEST_BIT, ecore_queue_setup_params::flags, next_state, ecore_queue_sp_obj::next_state, ecore_queue_sp_obj::next_tx_only, ecore_queue_sp_obj::num_tx_only, ecore_queue_state_params::params, ecore_queue_sp_obj::pending, RAMROD_DRV_CLR_ONLY, ecore_queue_state_params::ramrod_flags, ecore_queue_state_params::setup, ecore_queue_state_params::update, and ecore_queue_update_params::update_flags.
Referenced by ecore_init_queue_obj().
|
static |
ecore_queue_comp_cmd - complete the state change command.
@sc: device handle @o: @cmd:
Checks that the arrived completion is expected.
Definition at line 4722 of file ecore_sp.c.
References ecore_queue_sp_obj::cids, ECORE_CLEAR_BIT, ECORE_ERR, ECORE_INVAL, ECORE_MSG, ECORE_PRIMARY_CID_INDEX, ECORE_Q_STATE_MAX, ECORE_SMP_MB_AFTER_CLEAR_BIT, ECORE_SUCCESS, ECORE_TEST_AND_CLEAR_BIT, ecore_queue_sp_obj::max_cos, ecore_queue_sp_obj::next_state, ecore_queue_sp_obj::next_tx_only, ecore_queue_sp_obj::num_tx_only, and ecore_queue_sp_obj::pending.
Referenced by ecore_init_queue_obj().
|
inlinestatic |
Definition at line 5426 of file ecore_sp.c.
References ecore_queue_state_params::cmd, ECORE_ERR, ECORE_INVAL, ECORE_Q_CMD_ACTIVATE, ECORE_Q_CMD_CFC_DEL, ECORE_Q_CMD_DEACTIVATE, ECORE_Q_CMD_EMPTY, ECORE_Q_CMD_HALT, ECORE_Q_CMD_INIT, ECORE_Q_CMD_SETUP_TX_ONLY, ECORE_Q_CMD_TERMINATE, ECORE_Q_CMD_UPDATE, ECORE_Q_CMD_UPDATE_TPA, ecore_q_init(), ecore_q_send_activate(), ecore_q_send_cfc_del(), ecore_q_send_deactivate(), ecore_q_send_empty(), ecore_q_send_halt(), ecore_q_send_setup_tx_only(), ecore_q_send_terminate(), ecore_q_send_update(), and ecore_q_send_update_tpa().
Referenced by ecore_queue_send_cmd_e1x(), and ecore_queue_send_cmd_e2().
|
static |
Definition at line 5456 of file ecore_sp.c.
References ecore_queue_state_params::cmd, ECORE_ERR, ECORE_INVAL, ECORE_Q_CMD_ACTIVATE, ECORE_Q_CMD_CFC_DEL, ECORE_Q_CMD_DEACTIVATE, ECORE_Q_CMD_EMPTY, ECORE_Q_CMD_HALT, ECORE_Q_CMD_INIT, ECORE_Q_CMD_SETUP, ECORE_Q_CMD_SETUP_TX_ONLY, ECORE_Q_CMD_TERMINATE, ECORE_Q_CMD_UPDATE, ECORE_Q_CMD_UPDATE_TPA, ecore_q_send_setup_e1x(), and ecore_queue_send_cmd_cmn().
Referenced by ecore_init_queue_obj().
|
static |
Definition at line 5479 of file ecore_sp.c.
References ecore_queue_state_params::cmd, ECORE_ERR, ECORE_INVAL, ECORE_Q_CMD_ACTIVATE, ECORE_Q_CMD_CFC_DEL, ECORE_Q_CMD_DEACTIVATE, ECORE_Q_CMD_EMPTY, ECORE_Q_CMD_HALT, ECORE_Q_CMD_INIT, ECORE_Q_CMD_SETUP, ECORE_Q_CMD_SETUP_TX_ONLY, ECORE_Q_CMD_TERMINATE, ECORE_Q_CMD_UPDATE, ECORE_Q_CMD_UPDATE_TPA, ecore_q_send_setup_e2(), and ecore_queue_send_cmd_cmn().
Referenced by ecore_init_queue_obj().
|
static |
Definition at line 4688 of file ecore_sp.c.
References ecore_queue_state_params::cmd, ECORE_Q_CMD_ACTIVATE, ECORE_Q_CMD_DEACTIVATE, ECORE_Q_CMD_UPDATE, ECORE_SET_BIT, and ecore_queue_sp_obj::pending.
Referenced by ecore_init_queue_obj().
int ecore_queue_state_change | ( | struct bxe_softc * | sc, |
struct ecore_queue_state_params * | params | ||
) |
ecore_queue_state_change - perform Queue state change transition
@sc: device handle @params: parameters to perform the transition
returns 0 in case of successfully completed transition, negative error code in case of failure, positive (EBUSY) value if there is a completion to that is still pending (possible only if RAMROD_COMP_WAIT is not set in params->ramrod_flags for asynchronous commands).
Definition at line 4644 of file ecore_sp.c.
References ecore_queue_sp_obj::check_transition, ecore_queue_sp_obj::complete_cmd, ECORE_CLEAR_BIT, ECORE_ERR, ECORE_INVAL, ECORE_MSG, ECORE_Q_STATE_MAX, ECORE_RET_PENDING, ECORE_SMP_MB_AFTER_CLEAR_BIT, ECORE_SUCCESS, ECORE_TEST_BIT, ecore_queue_sp_obj::next_state, ecore_queue_sp_obj::pending, ecore_queue_state_params::q_obj, RAMROD_COMP_WAIT, RAMROD_DRV_CLR_ONLY, ecore_queue_state_params::ramrod_flags, ecore_queue_sp_obj::send_cmd, ecore_queue_sp_obj::set_pending, and ecore_queue_sp_obj::wait_comp.
Referenced by bxe_setup_queue(), and bxe_stop_queue().
|
static |
Definition at line 4706 of file ecore_sp.c.
References ecore_state_wait(), and ecore_queue_sp_obj::pending.
Referenced by ecore_init_queue_obj().
|
static |
Definition at line 264 of file ecore_sp.c.
References ECORE_TEST_BIT, ecore_raw_obj::pstate, and ecore_raw_obj::state.
Referenced by ecore_init_raw_obj().
|
static |
Definition at line 278 of file ecore_sp.c.
References ECORE_CLEAR_BIT, ECORE_SMP_MB_AFTER_CLEAR_BIT, ECORE_SMP_MB_BEFORE_CLEAR_BIT, ecore_raw_obj::pstate, and ecore_raw_obj::state.
Referenced by ecore_init_raw_obj().
|
static |
Definition at line 285 of file ecore_sp.c.
References ECORE_SET_BIT, ECORE_SMP_MB_AFTER_CLEAR_BIT, ECORE_SMP_MB_BEFORE_CLEAR_BIT, ecore_raw_obj::pstate, and ecore_raw_obj::state.
Referenced by ecore_init_raw_obj().
|
static |
Definition at line 336 of file ecore_sp.c.
References ecore_state_wait(), ecore_raw_obj::pstate, and ecore_raw_obj::state.
Referenced by ecore_init_raw_obj().
|
static |
Definition at line 1701 of file ecore_sp.c.
References ecore_vlan_mac_data::cmd, ecore_exeq_elem::cmd_data, ECORE_DONT_CONSUME_CAM_CREDIT, ECORE_INVAL, ECORE_SUCCESS, ECORE_TEST_BIT, ECORE_VLAN_MAC_ADD, ECORE_VLAN_MAC_DEL, ECORE_VLAN_MAC_MOVE, ecore_vlan_mac_obj::get_credit, ecore_vlan_mac_obj::put_credit, ecore_exe_queue_cmd_data::vlan_mac, ecore_qable_obj::vlan_mac, and ecore_vlan_mac_data::vlan_mac_flags.
Referenced by ecore_init_mac_obj(), ecore_init_vlan_mac_obj(), ecore_init_vlan_obj(), and ecore_init_vxlan_fltr_obj().
|
inlinestatic |
Definition at line 2630 of file ecore_sp.c.
References ECORE_ACCEPT_ALL_MULTICAST, ECORE_ACCEPT_ALL_UNICAST, ECORE_ACCEPT_ANY_VLAN, ECORE_ACCEPT_BROADCAST, ECORE_ACCEPT_MULTICAST, ECORE_ACCEPT_UNICAST, ECORE_ACCEPT_UNMATCHED, ECORE_CPU_TO_LE16, ECORE_TEST_BIT, ETH_FILTER_RULES_CMD_ACCEPT_ANY_VLAN, ETH_FILTER_RULES_CMD_BCAST_ACCEPT_ALL, ETH_FILTER_RULES_CMD_MCAST_ACCEPT_ALL, ETH_FILTER_RULES_CMD_MCAST_DROP_ALL, ETH_FILTER_RULES_CMD_UCAST_ACCEPT_ALL, ETH_FILTER_RULES_CMD_UCAST_ACCEPT_UNMATCHED, ETH_FILTER_RULES_CMD_UCAST_DROP_ALL, and eth_filter_rules_cmd::state.
Referenced by ecore_set_rx_mode_e2().
|
inlinestatic |
Definition at line 2622 of file ecore_sp.c.
References eth_classify_header::echo, ECORE_CPU_TO_LE32, and eth_classify_header::rule_cnt.
Referenced by ecore_set_rx_mode_e2().
Definition at line 895 of file ecore_sp.c.
References ECORE_IS_MF_SI_MODE, ECORE_LLH_CAM_MAX_PF_LINE, ECORE_MSG, ECORE_PORT_ID, ECORE_REG_WR_DMAE_LEN, IS_MF_AFEX, NIG_REG_LLH0_FUNC_MEM, NIG_REG_LLH0_FUNC_MEM_ENABLE, NIG_REG_LLH1_FUNC_MEM, NIG_REG_LLH1_FUNC_MEM_ENABLE, and REG_WR.
Referenced by ecore_set_one_mac_e2().
|
static |
ecore_set_one_mac_e1x - fill a single MAC rule ramrod data
@sc: device handle @o: ecore_vlan_mac_obj @elem: ecore_exeq_elem @rule_idx: rule_idx @cam_offset: cam_offset
Definition at line 1140 of file ecore_sp.c.
References ecore_vlan_mac_data::cmd, ecore_exeq_elem::cmd_data, ECORE_MEMSET, ECORE_VLAN_MAC_ADD, ecore_vlan_mac_set_rdata_e1x(), ETH_VLAN_FILTER_ANY_VLAN, ecore_mac_ramrod_data::mac, ecore_classification_ramrod_data::mac, ecore_vlan_mac_obj::raw, ecore_raw_obj::rdata, ecore_raw_obj::state, ecore_vlan_mac_data::u, and ecore_exe_queue_cmd_data::vlan_mac.
Referenced by ecore_init_mac_obj().
|
static |
Definition at line 976 of file ecore_sp.c.
References ecore_raw_obj::cid, ecore_raw_obj::cl_id, CLASSIFY_RULE_OPCODE_MAC, ecore_vlan_mac_data::cmd, ecore_exeq_elem::cmd_data, ECORE_CPU_TO_LE16, ECORE_ETH_MAC, ECORE_ISCSI_ETH_MAC, ECORE_LLH_CAM_ETH_LINE, ECORE_LLH_CAM_ISCSI_ETH_LINE, ECORE_MEMSET, ECORE_MSG, ecore_set_fw_mac_addr(), ecore_set_mac_in_nig(), ECORE_TEST_BIT, ECORE_VLAN_MAC_ADD, ECORE_VLAN_MAC_MOVE, ecore_vlan_mac_set_cmd_hdr_e2(), ecore_vlan_mac_set_rdata_hdr_e2(), eth_classify_mac_cmd::header, eth_classify_rules_ramrod_data::header, eth_classify_mac_cmd::inner_mac, ecore_mac_ramrod_data::is_inner_mac, eth_classify_rule_cmd::mac, ecore_mac_ramrod_data::mac, ecore_classification_ramrod_data::mac, eth_classify_mac_cmd::mac_lsb, eth_classify_mac_cmd::mac_mid, eth_classify_mac_cmd::mac_msb, ecore_vlan_mac_obj::raw, ecore_raw_obj::rdata, eth_classify_rules_ramrod_data::rules, ecore_raw_obj::state, ecore_vlan_mac_data::target_obj, ecore_vlan_mac_data::u, ecore_exe_queue_cmd_data::vlan_mac, and ecore_vlan_mac_data::vlan_mac_flags.
Referenced by ecore_init_mac_obj().
|
static |
Definition at line 1163 of file ecore_sp.c.
References ecore_raw_obj::cid, CLASSIFY_RULE_OPCODE_VLAN, ecore_vlan_mac_data::cmd, ecore_exeq_elem::cmd_data, ECORE_CPU_TO_LE16, ECORE_MEMSET, ECORE_MSG, ECORE_VLAN_MAC_ADD, ECORE_VLAN_MAC_MOVE, ecore_vlan_mac_set_cmd_hdr_e2(), ecore_vlan_mac_set_rdata_hdr_e2(), eth_classify_vlan_cmd::header, eth_classify_rules_ramrod_data::header, ecore_vlan_mac_obj::raw, ecore_raw_obj::rdata, eth_classify_rules_ramrod_data::rules, ecore_raw_obj::state, ecore_vlan_mac_data::target_obj, ecore_vlan_mac_data::u, eth_classify_vlan_cmd::vlan, eth_classify_rule_cmd::vlan, ecore_vlan_ramrod_data::vlan, ecore_classification_ramrod_data::vlan, and ecore_exe_queue_cmd_data::vlan_mac.
Referenced by ecore_init_vlan_obj().
|
static |
ecore_set_one_vlan_mac_e1h -
@sc: device handle @o: ecore_vlan_mac_obj @elem: ecore_exeq_elem @rule_idx: rule_idx @cam_offset: cam_offset
Definition at line 1335 of file ecore_sp.c.
References ecore_vlan_mac_data::cmd, ecore_exeq_elem::cmd_data, ECORE_FILTER_VLAN_MAC_PENDING, ECORE_MEMSET, ECORE_VLAN_MAC_ADD, ecore_vlan_mac_set_rdata_e1x(), ETH_VLAN_FILTER_CLASSIFY, ecore_vlan_mac_ramrod_data::mac, ecore_vlan_mac_obj::raw, ecore_raw_obj::rdata, ecore_vlan_mac_data::u, ecore_vlan_mac_ramrod_data::vlan, ecore_classification_ramrod_data::vlan_mac, and ecore_exe_queue_cmd_data::vlan_mac.
Referenced by ecore_init_vlan_mac_obj().
|
static |
Definition at line 1213 of file ecore_sp.c.
References ecore_raw_obj::cid, CLASSIFY_RULE_OPCODE_PAIR, ecore_vlan_mac_data::cmd, ecore_exeq_elem::cmd_data, ECORE_CPU_TO_LE16, ECORE_MEMSET, ecore_set_fw_mac_addr(), ECORE_VLAN_MAC_ADD, ECORE_VLAN_MAC_MOVE, ecore_vlan_mac_set_cmd_hdr_e2(), ecore_vlan_mac_set_rdata_hdr_e2(), eth_classify_pair_cmd::header, eth_classify_rules_ramrod_data::header, eth_classify_pair_cmd::inner_mac, ecore_vlan_mac_ramrod_data::is_inner_mac, eth_classify_rule_cmd::mac, ecore_vlan_mac_ramrod_data::mac, eth_classify_pair_cmd::mac_lsb, eth_classify_pair_cmd::mac_mid, eth_classify_pair_cmd::mac_msb, eth_classify_rule_cmd::pair, ecore_vlan_mac_obj::raw, ecore_raw_obj::rdata, eth_classify_rules_ramrod_data::rules, ecore_raw_obj::state, ecore_vlan_mac_data::target_obj, ecore_vlan_mac_data::u, eth_classify_pair_cmd::vlan, eth_classify_rule_cmd::vlan, ecore_vlan_mac_ramrod_data::vlan, ecore_classification_ramrod_data::vlan_mac, and ecore_exe_queue_cmd_data::vlan_mac.
Referenced by ecore_init_vlan_mac_obj().
|
static |
Definition at line 1270 of file ecore_sp.c.
References ecore_raw_obj::cid, CLASSIFY_RULE_OPCODE_IMAC_VNI, ecore_vlan_mac_data::cmd, ecore_exeq_elem::cmd_data, ECORE_MEMSET, ecore_set_fw_mac_addr(), ECORE_VLAN_MAC_ADD, ECORE_VLAN_MAC_MOVE, ecore_vlan_mac_set_cmd_hdr_e2(), ecore_vlan_mac_set_rdata_hdr_e2(), eth_classify_imac_vni_cmd::header, eth_classify_rules_ramrod_data::header, eth_classify_imac_vni_cmd::imac_lsb, eth_classify_imac_vni_cmd::imac_mid, eth_classify_imac_vni_cmd::imac_msb, eth_classify_rule_cmd::imac_vni, ecore_vxlan_fltr_ramrod_data::innermac, eth_classify_rule_cmd::mac, ecore_vlan_mac_obj::raw, ecore_raw_obj::rdata, eth_classify_rules_ramrod_data::rules, ecore_raw_obj::state, ecore_vlan_mac_data::target_obj, ecore_vlan_mac_data::u, ecore_exe_queue_cmd_data::vlan_mac, eth_classify_imac_vni_cmd::vni, ecore_vxlan_fltr_ramrod_data::vni, and ecore_classification_ramrod_data::vxlan_fltr.
Referenced by ecore_init_vxlan_fltr_obj().
|
static |
Definition at line 2540 of file ecore_sp.c.
References __storm_memset_mac_filters(), tstorm_eth_mac_filter_config::bcast_accept_all, ecore_rx_mode_ramrod_params::cl_id, ECORE_ACCEPT_ALL_MULTICAST, ECORE_ACCEPT_ALL_UNICAST, ECORE_ACCEPT_BROADCAST, ECORE_ACCEPT_MULTICAST, ECORE_ACCEPT_UNICAST, ECORE_ACCEPT_UNMATCHED, ECORE_CLEAR_BIT, ECORE_MSG, ECORE_SMP_MB_AFTER_CLEAR_BIT, ECORE_SUCCESS, ECORE_TEST_BIT, ecore_rx_mode_ramrod_params::func_id, tstorm_eth_mac_filter_config::mcast_accept_all, tstorm_eth_mac_filter_config::mcast_drop_all, ecore_rx_mode_ramrod_params::pstate, ecore_rx_mode_ramrod_params::rdata, ecore_rx_mode_ramrod_params::rx_accept_flags, ecore_rx_mode_ramrod_params::state, tstorm_eth_mac_filter_config::ucast_accept_all, tstorm_eth_mac_filter_config::ucast_drop_all, and tstorm_eth_mac_filter_config::unmatched_unicast.
Referenced by ecore_init_rx_mode_obj().
|
static |
Definition at line 2677 of file ecore_sp.c.
References ecore_rx_mode_ramrod_params::cid, ecore_rx_mode_ramrod_params::cl_id, eth_filter_rules_cmd::client_id, eth_filter_rules_cmd::cmd_general_data, ECORE_FCOE_CID, ECORE_MEMSET, ECORE_MSG, ECORE_PENDING, ECORE_RX_MODE_FCOE_ETH, ecore_rx_mode_set_cmd_state_e2(), ecore_rx_mode_set_rdata_hdr_e2(), ecore_sp_post, ECORE_TEST_BIT, ETH_CONNECTION_TYPE, ETH_FILTER_RULES_CMD_RX_CMD, ETH_FILTER_RULES_CMD_TX_CMD, eth_filter_rules_cmd::func_id, ecore_rx_mode_ramrod_params::func_id, eth_filter_rules_ramrod_data::header, RAMROD_CMD_ID_ETH_FILTER_RULES, ecore_rx_mode_ramrod_params::ramrod_flags, RAMROD_RX, RAMROD_TX, ecore_rx_mode_ramrod_params::rdata, ecore_rx_mode_ramrod_params::rdata_mapping, eth_classify_header::rule_cnt, eth_filter_rules_ramrod_data::rules, ecore_rx_mode_ramrod_params::rx_accept_flags, ecore_rx_mode_ramrod_params::rx_mode_flags, and ecore_rx_mode_ramrod_params::tx_accept_flags.
Referenced by ecore_init_rx_mode_obj().
|
static |
ecore_setup_rss - configure RSS
@sc: device handle : rss configuration
sends on UPDATE ramrod for that matter.
Definition at line 4479 of file ecore_sp.c.
References eth_rss_update_ramrod_data::capabilities, ecore_raw_obj::cid, eth_rss_update_ramrod_data::echo, ECORE_CPU_TO_LE16, ECORE_CPU_TO_LE32, ECORE_MEMCPY, ECORE_MEMSET, ECORE_MSG, ECORE_PENDING, ECORE_RSS_IPV4, ECORE_RSS_IPV4_TCP, ECORE_RSS_IPV4_UDP, ECORE_RSS_IPV4_VXLAN, ECORE_RSS_IPV6, ECORE_RSS_IPV6_TCP, ECORE_RSS_IPV6_UDP, ECORE_RSS_IPV6_VXLAN, ECORE_RSS_MODE_DISABLED, ECORE_RSS_MODE_REGULAR, ECORE_RSS_SET_SRCH, ECORE_RSS_TUNN_INNER_HDRS, ecore_sp_post, ECORE_SWCID_MASK, ECORE_SWCID_SHIFT, ECORE_TEST_BIT, ecore_rss_config_obj::engine_id, ETH_CONNECTION_TYPE, ETH_RSS_MODE_DISABLED, ETH_RSS_MODE_REGULAR, ETH_RSS_UPDATE_RAMROD_DATA_IPV4_CAPABILITY, ETH_RSS_UPDATE_RAMROD_DATA_IPV4_TCP_CAPABILITY, ETH_RSS_UPDATE_RAMROD_DATA_IPV4_UDP_CAPABILITY, ETH_RSS_UPDATE_RAMROD_DATA_IPV4_VXLAN_CAPABILITY, ETH_RSS_UPDATE_RAMROD_DATA_IPV6_CAPABILITY, ETH_RSS_UPDATE_RAMROD_DATA_IPV6_TCP_CAPABILITY, ETH_RSS_UPDATE_RAMROD_DATA_IPV6_UDP_CAPABILITY, ETH_RSS_UPDATE_RAMROD_DATA_IPV6_VXLAN_CAPABILITY, ETH_RSS_UPDATE_RAMROD_DATA_TUNN_INNER_HDRS_CAPABILITY, ETH_RSS_UPDATE_RAMROD_DATA_UPDATE_RSS_KEY, ecore_config_rss_params::ind_table, ecore_rss_config_obj::ind_table, eth_rss_update_ramrod_data::indirection_table, RAMROD_CMD_ID_ETH_RSS_UPDATE, ecore_rss_config_obj::raw, ecore_raw_obj::rdata, ecore_raw_obj::rdata_mapping, eth_rss_update_ramrod_data::rss_engine_id, ecore_config_rss_params::rss_flags, ecore_config_rss_params::rss_key, eth_rss_update_ramrod_data::rss_key, eth_rss_update_ramrod_data::rss_mode, ecore_config_rss_params::rss_obj, eth_rss_update_ramrod_data::rss_result_mask, ecore_config_rss_params::rss_result_mask, ecore_raw_obj::state, and T_ETH_INDIRECTION_TABLE_SIZE.
Referenced by ecore_init_rss_config_obj().
|
inlinestatic |
ecore_state_wait - wait until the given bit(state) is cleared
@sc: device handle @state: state which is to be cleared @state_p: state buffer
Definition at line 300 of file ecore_sp.c.
References CHIP_REV_IS_EMUL, ECORE_ERR, ECORE_IO, ECORE_MIGHT_SLEEP, ECORE_MSG, ECORE_SUCCESS, ECORE_TEST_BIT, ECORE_TIMEOUT, ECORE_WAIT, and bxe_softc::panic.
Referenced by ecore_func_wait_comp(), ecore_mcast_wait(), ecore_queue_wait_comp(), ecore_raw_wait(), and ecore_wait_rx_mode_comp_e2().
|
static |
Definition at line 1685 of file ecore_sp.c.
References ecore_vlan_mac_data::cmd, ecore_exeq_elem::cmd_data, ECORE_INVAL, ecore_validate_vlan_mac_add(), ecore_validate_vlan_mac_del(), ecore_validate_vlan_mac_move(), ECORE_VLAN_MAC_ADD, ECORE_VLAN_MAC_DEL, ECORE_VLAN_MAC_MOVE, and ecore_exe_queue_cmd_data::vlan_mac.
Referenced by ecore_init_mac_obj(), ecore_init_vlan_mac_obj(), ecore_init_vlan_obj(), and ecore_init_vxlan_fltr_obj().
|
inlinestatic |
ecore_validate_vlan_mac_add - check if an ADD command can be executed
@sc: device handle @qo: ecore_qable_obj @elem: ecore_exeq_elem
Checks that the requested configuration can be added. If yes and if requested, consume CAM credit.
The 'validate' is run after the 'optimize'.
Definition at line 1516 of file ecore_sp.c.
References ecore_vlan_mac_obj::check_add, ecore_exeq_elem::cmd_data, ECORE_DONT_CONSUME_CAM_CREDIT, ECORE_EXISTS, ECORE_INVAL, ECORE_MSG, ECORE_SUCCESS, ECORE_TEST_BIT, ecore_vlan_mac_obj::exe_queue, ecore_exe_queue_obj::get, ecore_vlan_mac_obj::get_credit, ecore_vlan_mac_data::u, ecore_exe_queue_cmd_data::vlan_mac, ecore_qable_obj::vlan_mac, and ecore_vlan_mac_data::vlan_mac_flags.
Referenced by ecore_validate_vlan_mac().
|
inlinestatic |
ecore_validate_vlan_mac_del - check if the DEL command can be executed
@sc: device handle @qo: quable object to check @elem: element that needs to be deleted
Checks that the requested configuration can be deleted. If yes and if requested, returns a CAM credit.
The 'validate' is run after the 'optimize'.
Definition at line 1564 of file ecore_sp.c.
References ecore_vlan_mac_obj::check_del, ecore_vlan_mac_data::cmd, ecore_exeq_elem::cmd_data, ECORE_DONT_CONSUME_CAM_CREDIT, ECORE_ERR, ECORE_EXISTS, ECORE_INVAL, ECORE_MEMCPY, ECORE_MSG, ECORE_SUCCESS, ECORE_TEST_BIT, ECORE_VLAN_MAC_MOVE, ecore_vlan_mac_obj::exe_queue, ecore_exe_queue_obj::get, ecore_vlan_mac_obj::put_credit, ecore_vlan_mac_data::u, ecore_exe_queue_cmd_data::vlan_mac, ecore_qable_obj::vlan_mac, and ecore_vlan_mac_data::vlan_mac_flags.
Referenced by ecore_validate_vlan_mac().
|
inlinestatic |
ecore_validate_vlan_mac_move - check if the MOVE command can be executed
@sc: device handle @qo: quable object to check (source) @elem: element that needs to be moved
Checks that the requested configuration can be moved. If yes and if requested, returns a CAM credit.
The 'validate' is run after the 'optimize'.
Definition at line 1623 of file ecore_sp.c.
References ecore_vlan_mac_obj::check_move, ecore_vlan_mac_data::cmd, ecore_exeq_elem::cmd_data, ECORE_DONT_CONSUME_CAM_CREDIT, ECORE_DONT_CONSUME_CAM_CREDIT_DEST, ECORE_ERR, ECORE_EXISTS, ECORE_INVAL, ECORE_MEMCPY, ECORE_MSG, ECORE_SUCCESS, ECORE_TEST_BIT, ECORE_VLAN_MAC_ADD, ECORE_VLAN_MAC_DEL, ecore_vlan_mac_obj::exe_queue, ecore_exe_queue_obj::get, ecore_vlan_mac_obj::get_credit, ecore_vlan_mac_obj::put_credit, ecore_vlan_mac_data::target_obj, ecore_vlan_mac_data::u, ecore_exe_queue_cmd_data::vlan_mac, ecore_qable_obj::vlan_mac, and ecore_vlan_mac_data::vlan_mac_flags.
Referenced by ecore_validate_vlan_mac().
|
static |
ecore_vlan_mac_del_all - delete elements with given vlan_mac_flags spec
@sc: device handle @o: @vlan_mac_flags: @ramrod_flags: execution flags to be used for this deletion
if the last operation has completed successfully and there are no more elements left, positive value if the last operation has completed successfully and there are more previously configured elements, negative value is current operation has failed.
Definition at line 2200 of file ecore_sp.c.
References ecore_vlan_mac_data::cmd, ecore_exeq_elem::cmd_data, ECORE_CLEAR_BIT_NA, ecore_config_vlan_mac(), ECORE_ERR, ecore_exe_queue_free_elem(), ECORE_LIST_FOR_EACH_ENTRY, ECORE_LIST_FOR_EACH_ENTRY_SAFE, ECORE_LIST_REMOVE_ENTRY, ECORE_MEMCPY, ECORE_MEMSET, ECORE_MSG, ECORE_SET_BIT_NA, ECORE_SPIN_LOCK_BH, ECORE_SPIN_UNLOCK_BH, ECORE_SUCCESS, ECORE_VLAN_MAC_CMP_FLAGS, ECORE_VLAN_MAC_DEL, ecore_vlan_mac_h_read_lock(), ecore_vlan_mac_h_read_unlock(), ecore_exe_queue_obj::exe_queue, ecore_vlan_mac_obj::exe_queue, flags, ecore_vlan_mac_obj::head, ecore_exeq_elem::link, ecore_exe_queue_obj::lock, ecore_exe_queue_obj::owner, RAMROD_COMP_WAIT, RAMROD_CONT, RAMROD_EXEC, ecore_vlan_mac_ramrod_params::ramrod_flags, ecore_exe_queue_obj::remove, ecore_vlan_mac_data::u, ecore_vlan_mac_registry_elem::u, ecore_vlan_mac_ramrod_params::user_req, ecore_exe_queue_cmd_data::vlan_mac, ecore_vlan_mac_data::vlan_mac_flags, ecore_vlan_mac_registry_elem::vlan_mac_flags, and ecore_vlan_mac_ramrod_params::vlan_mac_obj.
Referenced by ecore_init_vlan_mac_common().
|
inlinestatic |
ecore_vlan_mac_get_registry_elem - prepare a registry element
@sc: device handle @o: @elem: @restore: @re:
prepare a registry element according to the current command request.
Definition at line 1903 of file ecore_sp.c.
References ecore_vlan_mac_registry_elem::cam_offset, ecore_vlan_mac_obj::check_del, ecore_vlan_mac_data::cmd, ecore_exeq_elem::cmd_data, ECORE_DBG_BREAK_IF, ECORE_FREE, ECORE_INVAL, ECORE_MEMCPY, ECORE_MSG, ECORE_NOMEM, ECORE_SUCCESS, ECORE_VLAN_MAC_ADD, ECORE_VLAN_MAC_MOVE, ECORE_ZALLOC, ecore_vlan_mac_obj::get_cam_offset, ecore_vlan_mac_data::u, ecore_vlan_mac_registry_elem::u, ecore_exe_queue_cmd_data::vlan_mac, ecore_vlan_mac_data::vlan_mac_flags, and ecore_vlan_mac_registry_elem::vlan_mac_flags.
Referenced by ecore_execute_vlan_mac().
|
inlinestatic |
Definition at line 879 of file ecore_sp.c.
References ECORE_OBJ_TYPE_RX, ECORE_OBJ_TYPE_RX_TX, ECORE_OBJ_TYPE_TX, ETH_CLASSIFY_CMD_HEADER_RX_CMD, ETH_CLASSIFY_CMD_HEADER_TX_CMD, ecore_raw_obj::obj_type, and ecore_vlan_mac_obj::raw.
Referenced by ecore_vlan_mac_set_cmd_hdr_e2().
int ecore_vlan_mac_h_read_lock | ( | struct bxe_softc * | sc, |
struct ecore_vlan_mac_obj * | o | ||
) |
ecore_vlan_mac_h_read_lock - lock the vlan mac head list reader lock
@sc: device handle @o: vlan_mac object
May sleep. Claims and releases execution queue lock during its run.
Definition at line 578 of file ecore_sp.c.
References __ecore_vlan_mac_h_read_lock(), ECORE_SPIN_LOCK_BH, ECORE_SPIN_UNLOCK_BH, ecore_vlan_mac_obj::exe_queue, and ecore_exe_queue_obj::lock.
Referenced by ecore_get_n_elements(), and ecore_vlan_mac_del_all().
void ecore_vlan_mac_h_read_unlock | ( | struct bxe_softc * | sc, |
struct ecore_vlan_mac_obj * | o | ||
) |
ecore_vlan_mac_h_read_unlock - unlock the vlan mac head list reader lock
@sc: device handle @o: vlan_mac object
Notice if a pending execution exists, it would be performed if this was the last reader. Claims and releases the execution queue lock during its run.
Definition at line 635 of file ecore_sp.c.
References __ecore_vlan_mac_h_read_unlock(), ECORE_SPIN_LOCK_BH, ECORE_SPIN_UNLOCK_BH, ecore_vlan_mac_obj::exe_queue, and ecore_exe_queue_obj::lock.
Referenced by ecore_get_n_elements(), and ecore_vlan_mac_del_all().
void ecore_vlan_mac_h_write_unlock | ( | struct bxe_softc * | sc, |
struct ecore_vlan_mac_obj * | o | ||
) |
ecore_vlan_mac_h_write_unlock - unlock the vlan mac head list writer lock
@sc: device handle @o: vlan_mac object
Notice if a pending execution exists, it would perform it - possibly releasing and reclaiming the execution queue lock.
Definition at line 542 of file ecore_sp.c.
References __ecore_vlan_mac_h_write_unlock(), ECORE_SPIN_LOCK_BH, ECORE_SPIN_UNLOCK_BH, ecore_vlan_mac_obj::exe_queue, and ecore_exe_queue_obj::lock.
|
inlinestatic |
Definition at line 2082 of file ecore_sp.c.
References ecore_vlan_mac_data::cmd, ecore_exeq_elem::cmd_data, ecore_exeq_elem::cmd_len, ecore_exe_queue_add(), ecore_exe_queue_alloc_elem(), ECORE_MEMCPY, ECORE_NOMEM, ECORE_TEST_BIT, ECORE_VLAN_MAC_MOVE, ecore_vlan_mac_obj::exe_queue, ecore_vlan_mac_ramrod_params::ramrod_flags, RAMROD_RESTORE, ecore_vlan_mac_obj::restore, ecore_vlan_mac_ramrod_params::user_req, ecore_exe_queue_cmd_data::vlan_mac, and ecore_vlan_mac_ramrod_params::vlan_mac_obj.
Referenced by ecore_config_vlan_mac().
|
static |
ecore_vlan_mac_restore - reconfigure next MAC/VLAN/VLAN-MAC element
@sc: device handle : command parameters @ppos: pointer to the cookie
reconfigure next MAC/VLAN/VLAN-MAC element from the previously configured elements list.
from command parameters only RAMROD_COMP_WAIT bit in ramrod_flags is taken into an account
pointer to the cookie - that should be given back in the next call to make function handle the next element. If *ppos is set to NULL it will restart the iterator. If returned *ppos == NULL this means that the last element has been handled.
Definition at line 1381 of file ecore_sp.c.
References ecore_vlan_mac_data::cmd, ecore_config_vlan_mac(), ECORE_LIST_FIRST_ENTRY, ECORE_LIST_IS_EMPTY, ECORE_LIST_IS_LAST, ECORE_LIST_NEXT, ECORE_MEMCPY, ECORE_SET_BIT_NA, ECORE_VLAN_MAC_ADD, ecore_vlan_mac_obj::head, ecore_vlan_mac_registry_elem::link, ecore_vlan_mac_ramrod_params::ramrod_flags, RAMROD_RESTORE, ecore_vlan_mac_data::u, ecore_vlan_mac_registry_elem::u, ecore_vlan_mac_ramrod_params::user_req, ecore_vlan_mac_data::vlan_mac_flags, ecore_vlan_mac_registry_elem::vlan_mac_flags, and ecore_vlan_mac_ramrod_params::vlan_mac_obj.
Referenced by ecore_init_vlan_mac_common().
|
inlinestatic |
Definition at line 1085 of file ecore_sp.c.
References ecore_raw_obj::cl_id, mac_configuration_entry::clients_bit_vector, ECORE_CPU_TO_LE16, ECORE_CPU_TO_LE32, ECORE_SET_FLAG, ecore_set_fw_mac_addr(), mac_configuration_entry::flags, ecore_raw_obj::func_id, mac_configuration_entry::lsb_mac_addr, MAC_CONFIGURATION_ENTRY_ACTION_TYPE, MAC_CONFIGURATION_ENTRY_VLAN_FILTERING_MODE, mac_configuration_entry::middle_mac_addr, mac_configuration_entry::msb_mac_addr, mac_configuration_entry::pf_id, ecore_vlan_mac_obj::raw, T_ETH_MAC_COMMAND_INVALIDATE, T_ETH_MAC_COMMAND_SET, and mac_configuration_entry::vlan_id.
Referenced by ecore_vlan_mac_set_rdata_e1x().
|
inlinestatic |
ecore_vlan_mac_set_cmd_hdr_e2 - set a header in a single classify ramrod
@sc: device handle @o: queue for which we want to configure this rule @add: if TRUE the command is an ADD command, DEL otherwise @opcode: CLASSIFY_RULE_OPCODE_XXX @hdr: pointer to a header to setup
Definition at line 936 of file ecore_sp.c.
References ecore_raw_obj::cl_id, eth_classify_cmd_header::client_id, eth_classify_cmd_header::cmd_general_data, ecore_vlan_mac_get_rx_tx_flag(), ETH_CLASSIFY_CMD_HEADER_IS_ADD, ETH_CLASSIFY_CMD_HEADER_OPCODE_SHIFT, eth_classify_cmd_header::func_id, ecore_raw_obj::func_id, and ecore_vlan_mac_obj::raw.
Referenced by ecore_set_one_mac_e2(), ecore_set_one_vlan_e2(), ecore_set_one_vlan_mac_e2(), and ecore_set_one_vxlan_fltr_e2().
|
inlinestatic |
Definition at line 1114 of file ecore_sp.c.
References ecore_raw_obj::cl_id, mac_configuration_cmd::config_table, ECORE_MSG, ecore_vlan_mac_set_cfg_entry_e1x(), ecore_vlan_mac_set_rdata_hdr_e1x(), mac_configuration_cmd::hdr, and ecore_vlan_mac_obj::raw.
Referenced by ecore_set_one_mac_e1x(), and ecore_set_one_vlan_mac_e1h().
|
inlinestatic |
ecore_vlan_mac_set_rdata_hdr_e1x - set a header in a single classify ramrod
@sc: device handle @o: queue @type: @cam_offset: offset in cam memory @hdr: pointer to a header to setup
E1/E1H
Definition at line 1072 of file ecore_sp.c.
References ecore_raw_obj::cid, mac_configuration_hdr::client_id, mac_configuration_hdr::echo, ECORE_CPU_TO_LE16, ECORE_CPU_TO_LE32, ECORE_SWCID_MASK, ECORE_SWCID_SHIFT, mac_configuration_hdr::length, mac_configuration_hdr::offset, and ecore_vlan_mac_obj::raw.
Referenced by ecore_vlan_mac_set_rdata_e1x().
|
inlinestatic |
ecore_vlan_mac_set_rdata_hdr_e2 - set the classify ramrod data header
@cid: connection id @type: ECORE_FILTER_XXX_PENDING @hdr: pointer to header to setup @rule_cnt:
currently we always configure one rule and echo field to contain a CID and an opcode type.
Definition at line 967 of file ecore_sp.c.
References ecore_raw_obj::cid, eth_classify_header::echo, ECORE_CPU_TO_LE32, ECORE_SWCID_MASK, ECORE_SWCID_SHIFT, and eth_classify_header::rule_cnt.
Referenced by ecore_set_one_mac_e2(), ecore_set_one_vlan_e2(), ecore_set_one_vlan_mac_e2(), and ecore_set_one_vxlan_fltr_e2().
|
static |
Definition at line 2780 of file ecore_sp.c.
References ecore_state_wait(), ecore_rx_mode_ramrod_params::pstate, and ecore_rx_mode_ramrod_params::state.
Referenced by ecore_init_rx_mode_obj().
|
static |
ecore_wait_vlan_mac - passively wait for 5 seconds until all work completes.
@sc: device handle @o: ecore_vlan_mac_obj
Definition at line 1737 of file ecore_sp.c.
References ecore_exe_queue_empty(), ECORE_SUCCESS, ECORE_TIMEOUT, ECORE_WAIT, ecore_vlan_mac_obj::exe_queue, ecore_vlan_mac_obj::raw, and ecore_raw_obj::wait_comp.
Referenced by ecore_init_vlan_mac_common().