brintos

brintos / linux-shallow public Read only

0
0
Text · 2.9 KiB · 20ce32d Raw
106 lines · c
1/* SPDX-License-Identifier: GPL-2.0 */2/* Copyright (C) 2019-2021, Intel Corporation. */3 4#ifndef _ICE_ESWITCH_H_5#define _ICE_ESWITCH_H_6 7#include <net/devlink.h>8#include "devlink/devlink_port.h"9 10#ifdef CONFIG_ICE_SWITCHDEV11void ice_eswitch_detach_vf(struct ice_pf *pf, struct ice_vf *vf);12void ice_eswitch_detach_sf(struct ice_pf *pf, struct ice_dynamic_port *sf);13int ice_eswitch_attach_vf(struct ice_pf *pf, struct ice_vf *vf);14int ice_eswitch_attach_sf(struct ice_pf *pf, struct ice_dynamic_port *sf);15 16int ice_eswitch_mode_get(struct devlink *devlink, u16 *mode);17int18ice_eswitch_mode_set(struct devlink *devlink, u16 mode,19		     struct netlink_ext_ack *extack);20bool ice_is_eswitch_mode_switchdev(struct ice_pf *pf);21 22void ice_eswitch_update_repr(unsigned long *repr_id, struct ice_vsi *vsi);23 24void ice_eswitch_stop_all_tx_queues(struct ice_pf *pf);25 26void ice_eswitch_set_target_vsi(struct sk_buff *skb,27				struct ice_tx_offload_params *off);28netdev_tx_t29ice_eswitch_port_start_xmit(struct sk_buff *skb, struct net_device *netdev);30struct net_device *ice_eswitch_get_target(struct ice_rx_ring *rx_ring,31					  union ice_32b_rx_flex_desc *rx_desc);32 33int ice_eswitch_cfg_vsi(struct ice_vsi *vsi, const u8 *mac);34void ice_eswitch_decfg_vsi(struct ice_vsi *vsi, const u8 *mac);35#else /* CONFIG_ICE_SWITCHDEV */36static inline void37ice_eswitch_detach_vf(struct ice_pf *pf, struct ice_vf *vf) { }38 39static inline void40ice_eswitch_detach_sf(struct ice_pf *pf, struct ice_dynamic_port *sf) { }41 42static inline int43ice_eswitch_attach_vf(struct ice_pf *pf, struct ice_vf *vf)44{45	return -EOPNOTSUPP;46}47 48static inline int49ice_eswitch_attach_sf(struct ice_pf *pf, struct ice_dynamic_port *sf)50{51	return -EOPNOTSUPP;52}53 54static inline void ice_eswitch_stop_all_tx_queues(struct ice_pf *pf) { }55 56static inline void57ice_eswitch_set_target_vsi(struct sk_buff *skb,58			   struct ice_tx_offload_params *off) { }59 60static inline void61ice_eswitch_update_repr(unsigned long *repr_id, struct ice_vsi *vsi) { }62 63static inline int ice_eswitch_configure(struct ice_pf *pf)64{65	return 0;66}67 68static inline int ice_eswitch_mode_get(struct devlink *devlink, u16 *mode)69{70	return DEVLINK_ESWITCH_MODE_LEGACY;71}72 73static inline int74ice_eswitch_mode_set(struct devlink *devlink, u16 mode,75		     struct netlink_ext_ack *extack)76{77	return -EOPNOTSUPP;78}79 80static inline bool ice_is_eswitch_mode_switchdev(struct ice_pf *pf)81{82	return false;83}84 85static inline netdev_tx_t86ice_eswitch_port_start_xmit(struct sk_buff *skb, struct net_device *netdev)87{88	return NETDEV_TX_BUSY;89}90 91static inline struct net_device *92ice_eswitch_get_target(struct ice_rx_ring *rx_ring,93		       union ice_32b_rx_flex_desc *rx_desc)94{95	return rx_ring->netdev;96}97 98static inline int ice_eswitch_cfg_vsi(struct ice_vsi *vsi, const u8 *mac)99{100	return -EOPNOTSUPP;101}102 103static inline void ice_eswitch_decfg_vsi(struct ice_vsi *vsi, const u8 *mac) { }104#endif /* CONFIG_ICE_SWITCHDEV */105#endif /* _ICE_ESWITCH_H_ */106