X-Git-Url: http://git.droids-corp.org/?a=blobdiff_plain;f=drivers%2Fnet%2Fice%2Fice_dcf_ethdev.h;h=e7c9d7fe414adb874876abfef6a0e16e14124a5c;hb=3f3fac61bdc207de544b4a54fe8f27f7ce4f6cc1;hp=e60e808d8b06f2f89b5a103450701a99ee3ef475;hpb=0b02c9519432e1d25694d58c023ee03d4e944883;p=dpdk.git diff --git a/drivers/net/ice/ice_dcf_ethdev.h b/drivers/net/ice/ice_dcf_ethdev.h index e60e808d8b..e7c9d7fe41 100644 --- a/drivers/net/ice/ice_dcf_ethdev.h +++ b/drivers/net/ice/ice_dcf_ethdev.h @@ -17,12 +17,39 @@ struct ice_dcf_queue { uint64_t dummy; }; +struct ice_dcf_repr_info { + struct rte_eth_dev *vf_rep_eth_dev; +}; + struct ice_dcf_adapter { struct ice_adapter parent; /* Must be first */ - struct ice_dcf_hw real_hw; - struct ice_dcf_queue rxqs[ICE_DCF_MAX_RINGS]; - struct ice_dcf_queue txqs[ICE_DCF_MAX_RINGS]; + + int num_reprs; + struct ice_dcf_repr_info *repr_infos; +}; + +struct ice_dcf_vf_repr_param { + struct rte_eth_dev *dcf_eth_dev; + uint16_t switch_domain_id; + uint16_t vf_id; +}; + +struct ice_dcf_vlan { + bool port_vlan_ena; + bool stripping_ena; + + uint16_t tpid; + uint16_t vid; +}; + +struct ice_dcf_vf_repr { + struct rte_eth_dev *dcf_eth_dev; + struct rte_ether_addr mac_addr; + uint16_t switch_domain_id; + uint16_t vf_id; + + struct ice_dcf_vlan outer_vlan_info; /* DCF always handle outer VLAN */ }; void ice_dcf_handle_pf_event_msg(struct ice_dcf_hw *dcf_hw, @@ -30,4 +57,9 @@ void ice_dcf_handle_pf_event_msg(struct ice_dcf_hw *dcf_hw, int ice_dcf_init_parent_adapter(struct rte_eth_dev *eth_dev); void ice_dcf_uninit_parent_adapter(struct rte_eth_dev *eth_dev); +int ice_dcf_vf_repr_init(struct rte_eth_dev *vf_rep_eth_dev, void *init_param); +int ice_dcf_vf_repr_uninit(struct rte_eth_dev *vf_rep_eth_dev); +int ice_dcf_vf_repr_init_vlan(struct rte_eth_dev *vf_rep_eth_dev); +void ice_dcf_vf_repr_stop_all(struct ice_dcf_adapter *dcf_adapter); + #endif /* _ICE_DCF_ETHDEV_H_ */