ice_eswitch.h (2362B)
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 9#ifdef CONFIG_ICE_SWITCHDEV 10void ice_eswitch_release(struct ice_pf *pf); 11int ice_eswitch_configure(struct ice_pf *pf); 12int ice_eswitch_rebuild(struct ice_pf *pf); 13 14int ice_eswitch_mode_get(struct devlink *devlink, u16 *mode); 15int 16ice_eswitch_mode_set(struct devlink *devlink, u16 mode, 17 struct netlink_ext_ack *extack); 18bool ice_is_eswitch_mode_switchdev(struct ice_pf *pf); 19 20void ice_eswitch_update_repr(struct ice_vsi *vsi); 21 22void ice_eswitch_stop_all_tx_queues(struct ice_pf *pf); 23int 24ice_eswitch_add_vf_mac_rule(struct ice_pf *pf, struct ice_vf *vf, 25 const u8 *mac); 26void ice_eswitch_replay_vf_mac_rule(struct ice_vf *vf); 27void ice_eswitch_del_vf_mac_rule(struct ice_vf *vf); 28 29void ice_eswitch_set_target_vsi(struct sk_buff *skb, 30 struct ice_tx_offload_params *off); 31netdev_tx_t 32ice_eswitch_port_start_xmit(struct sk_buff *skb, struct net_device *netdev); 33#else /* CONFIG_ICE_SWITCHDEV */ 34static inline void ice_eswitch_release(struct ice_pf *pf) { } 35 36static inline void ice_eswitch_stop_all_tx_queues(struct ice_pf *pf) { } 37static inline void ice_eswitch_replay_vf_mac_rule(struct ice_vf *vf) { } 38static inline void ice_eswitch_del_vf_mac_rule(struct ice_vf *vf) { } 39 40static inline int 41ice_eswitch_add_vf_mac_rule(struct ice_pf *pf, struct ice_vf *vf, 42 const u8 *mac) 43{ 44 return -EOPNOTSUPP; 45} 46 47static inline void 48ice_eswitch_set_target_vsi(struct sk_buff *skb, 49 struct ice_tx_offload_params *off) { } 50 51static inline void ice_eswitch_update_repr(struct ice_vsi *vsi) { } 52 53static inline int ice_eswitch_configure(struct ice_pf *pf) 54{ 55 return 0; 56} 57 58static inline int ice_eswitch_rebuild(struct ice_pf *pf) 59{ 60 return -EOPNOTSUPP; 61} 62 63static inline int ice_eswitch_mode_get(struct devlink *devlink, u16 *mode) 64{ 65 return DEVLINK_ESWITCH_MODE_LEGACY; 66} 67 68static inline int 69ice_eswitch_mode_set(struct devlink *devlink, u16 mode, 70 struct netlink_ext_ack *extack) 71{ 72 return -EOPNOTSUPP; 73} 74 75static inline bool ice_is_eswitch_mode_switchdev(struct ice_pf *pf) 76{ 77 return false; 78} 79 80static inline netdev_tx_t 81ice_eswitch_port_start_xmit(struct sk_buff *skb, struct net_device *netdev) 82{ 83 return NETDEV_TX_BUSY; 84} 85#endif /* CONFIG_ICE_SWITCHDEV */ 86#endif /* _ICE_ESWITCH_H_ */