X-Git-Url: http://git.droids-corp.org/?a=blobdiff_plain;f=drivers%2Fnet%2Fipn3ke%2Fipn3ke_representor.c;h=b673c49149a6efbba9de9b36384cdb60a0d8bb1d;hb=486d29fda54c362ec3a96ab13327064458de0b03;hp=476d5e52bdb3e86216d22c216a03f9e30a71f418;hpb=bdad90d12ec8eea8c9552880d715f10b0af93cc6;p=dpdk.git diff --git a/drivers/net/ipn3ke/ipn3ke_representor.c b/drivers/net/ipn3ke/ipn3ke_representor.c index 476d5e52bd..b673c49149 100644 --- a/drivers/net/ipn3ke/ipn3ke_representor.c +++ b/drivers/net/ipn3ke/ipn3ke_representor.c @@ -701,7 +701,7 @@ struct ipn3ke_rpst_hw_port_stats *hw_stats) &tmp, IPN3KE_25G_TX_STATISTICS_STATUS, port_id, - 1); + 0); if (tmp & IPN3KE_25G_TX_STATISTICS_STATUS_SHADOW_REQUEST_MASK) { tmp = 0x00000000; (*hw->f_mac_read)(hw, @@ -2047,7 +2047,7 @@ uint16_t port_id) 0); } -static void +static int ipn3ke_rpst_stats_reset(struct rte_eth_dev *ethdev) { uint16_t port_id = 0; @@ -2058,18 +2058,18 @@ ipn3ke_rpst_stats_reset(struct rte_eth_dev *ethdev) if (!ethdev) { IPN3KE_AFU_PMD_ERR("ethernet device to reset is NULL!"); - return; + return -EINVAL; } afu_dev = RTE_ETH_DEV_TO_AFU(ethdev); if (!afu_dev) { IPN3KE_AFU_PMD_ERR("afu device to reset is NULL!"); - return; + return -EINVAL; } if (!afu_dev->shared.data) { IPN3KE_AFU_PMD_ERR("hardware data to reset is NULL!"); - return; + return -EINVAL; } hw = afu_dev->shared.data; @@ -2077,7 +2077,7 @@ ipn3ke_rpst_stats_reset(struct rte_eth_dev *ethdev) ch = ethdev->data->name; if (!ch) { IPN3KE_AFU_PMD_ERR("ethdev name is NULL!"); - return; + return -EINVAL; } while (ch) { if (*ch == '_') @@ -2088,7 +2088,7 @@ ipn3ke_rpst_stats_reset(struct rte_eth_dev *ethdev) } if (!ch) { IPN3KE_AFU_PMD_ERR("Can not get port_id from ethdev name!"); - return; + return -EINVAL; } port_id = atoi(ch); @@ -2104,6 +2104,8 @@ ipn3ke_rpst_stats_reset(struct rte_eth_dev *ethdev) ipn3ke_rpst_10g_lineside_tx_stats_reset(hw, port_id); ipn3ke_rpst_10g_lineside_rx_stats_reset(hw, port_id); } + + return 0; } static int @@ -2596,7 +2598,8 @@ ipn3ke_rpst_scan_check(void) int ret; if (ipn3ke_rpst_scan_num == 1) { - ret = pthread_create(&ipn3ke_rpst_scan_thread, + ret = rte_ctrl_thread_create(&ipn3ke_rpst_scan_thread, + "ipn3ke scanner", NULL, ipn3ke_rpst_scan_handle_request, NULL); if (ret) { @@ -2618,7 +2621,7 @@ ipn3ke_rpst_scan_check(void) return 0; } -void +int ipn3ke_rpst_promiscuous_enable(struct rte_eth_dev *ethdev) { struct ipn3ke_hw *hw = IPN3KE_DEV_PRIVATE_TO_HW(ethdev); @@ -2641,9 +2644,11 @@ ipn3ke_rpst_promiscuous_enable(struct rte_eth_dev *ethdev) rpst->port_id, 0); } + + return 0; } -void +int ipn3ke_rpst_promiscuous_disable(struct rte_eth_dev *ethdev) { struct ipn3ke_hw *hw = IPN3KE_DEV_PRIVATE_TO_HW(ethdev); @@ -2666,9 +2671,11 @@ ipn3ke_rpst_promiscuous_disable(struct rte_eth_dev *ethdev) rpst->port_id, 0); } + + return 0; } -void +int ipn3ke_rpst_allmulticast_enable(struct rte_eth_dev *ethdev) { struct ipn3ke_hw *hw = IPN3KE_DEV_PRIVATE_TO_HW(ethdev); @@ -2692,9 +2699,11 @@ ipn3ke_rpst_allmulticast_enable(struct rte_eth_dev *ethdev) rpst->port_id, 0); } + + return 0; } -void +int ipn3ke_rpst_allmulticast_disable(struct rte_eth_dev *ethdev) { struct ipn3ke_hw *hw = IPN3KE_DEV_PRIVATE_TO_HW(ethdev); @@ -2718,6 +2727,8 @@ ipn3ke_rpst_allmulticast_disable(struct rte_eth_dev *ethdev) rpst->port_id, 0); } + + return 0; } int @@ -2904,12 +2915,18 @@ ipn3ke_rpst_init(struct rte_eth_dev *ethdev, void *init_params) if (representor_param->port_id >= representor_param->hw->port_num) return -ENODEV; + if (ipn3ke_bridge_func.set_i40e_sw_dev == NULL) + return -ENOMEM; + rpst->ethdev = ethdev; rpst->switch_domain_id = representor_param->switch_domain_id; rpst->port_id = representor_param->port_id; rpst->hw = representor_param->hw; - rpst->i40e_pf_eth = NULL; - rpst->i40e_pf_eth_port_id = 0xFFFF; + rpst->i40e_pf_eth = representor_param->i40e_pf_eth; + rpst->i40e_pf_eth_port_id = representor_param->i40e_pf_eth_port_id; + if (rpst->i40e_pf_eth) + ipn3ke_bridge_func.set_i40e_sw_dev(rpst->i40e_pf_eth_port_id, + rpst->ethdev); ethdev->data->mac_addrs = rte_zmalloc("ipn3ke", RTE_ETHER_ADDR_LEN, 0); if (!ethdev->data->mac_addrs) {