[dpdk-dev,v1,2/5] app/testpmd: use ixgbe public functions
Checks
Commit Message
Use the the following ixgbe public functions:
rte_pmd_ixgbe_set_vf_rate_limit
rte_pmd_ixgbe_set_vf_rx
rte_pmd_ixgbe_set_vf_rxmode
rte_pmd_ixgbe_set_vf_tx
rte_pmd_ixgbe_set_vf_vlan_filter
Signed-off-by: Bernard Iremonger <bernard.iremonger@intel.com>
---
app/test-pmd/cmdline.c | 2 +-
app/test-pmd/config.c | 31 +++++++++++--------------------
2 files changed, 12 insertions(+), 21 deletions(-)
Comments
On 12/9/2016 11:27 AM, Bernard Iremonger wrote:
> Use the the following ixgbe public functions:
>
> rte_pmd_ixgbe_set_vf_rate_limit
> rte_pmd_ixgbe_set_vf_rx
> rte_pmd_ixgbe_set_vf_rxmode
> rte_pmd_ixgbe_set_vf_tx
> rte_pmd_ixgbe_set_vf_vlan_filter
>
> Signed-off-by: Bernard Iremonger <bernard.iremonger@intel.com>
<...>
> @@ -2388,23 +2391,11 @@ int
> set_vf_rate_limit(portid_t port_id, uint16_t vf, uint16_t rate, uint64_t q_msk)
> {
> int diag;
> - struct rte_eth_link link;
> -
> - if (q_msk == 0)
> - return 0;
>
> - if (port_id_is_invalid(port_id, ENABLED_WARN))
> - return 1;
> - rte_eth_link_get_nowait(port_id, &link);
> - if (rate > link.link_speed) {
> - printf("Invalid rate value:%u bigger than link speed: %u\n",
> - rate, link.link_speed);
> - return 1;
> - }
Why these changes required? Isn't only change is location and naming of
the ...set_vf_rate_limit() ?
> - diag = rte_eth_set_vf_rate_limit(port_id, vf, rate, q_msk);
> + diag = rte_pmd_ixgbe_set_vf_rate_limit(port_id, vf, rate, q_msk);
> if (diag == 0)
> return diag;
> - printf("rte_eth_set_vf_rate_limit for port_id=%d failed diag=%d\n",
> + printf("rte_pmd_ixgbe_set_vf_rate_limit for port_id=%d failed diag=%d\n",
> port_id, diag);
> return diag;
> }
>
Hi Ferruh,
> -----Original Message-----
> From: Yigit, Ferruh
> Sent: Friday, December 9, 2016 11:57 AM
> To: Iremonger, Bernard <bernard.iremonger@intel.com>;
> thomas.monjalon@6wind.com; dev@dpdk.org
> Subject: Re: [dpdk-dev] [PATCH v1 2/5] app/testpmd: use ixgbe public
> functions
>
> On 12/9/2016 11:27 AM, Bernard Iremonger wrote:
> > Use the the following ixgbe public functions:
> >
> > rte_pmd_ixgbe_set_vf_rate_limit
> > rte_pmd_ixgbe_set_vf_rx
> > rte_pmd_ixgbe_set_vf_rxmode
> > rte_pmd_ixgbe_set_vf_tx
> > rte_pmd_ixgbe_set_vf_vlan_filter
> >
> > Signed-off-by: Bernard Iremonger <bernard.iremonger@intel.com>
>
> <...>
>
> > @@ -2388,23 +2391,11 @@ int
> > set_vf_rate_limit(portid_t port_id, uint16_t vf, uint16_t rate,
> > uint64_t q_msk) {
> > int diag;
> > - struct rte_eth_link link;
> > -
> > - if (q_msk == 0)
> > - return 0;
> >
> > - if (port_id_is_invalid(port_id, ENABLED_WARN))
> > - return 1;
> > - rte_eth_link_get_nowait(port_id, &link);
> > - if (rate > link.link_speed) {
> > - printf("Invalid rate value:%u bigger than link speed: %u\n",
> > - rate, link.link_speed);
> > - return 1;
> > - }
>
> Why these changes required? Isn't only change is location and naming of the
> ...set_vf_rate_limit() ?
This change is a cleanup as the parameter checking is now done in rte_pmd_ixgbe_set_vf_rate_limit().
It was not possible to test the parameter checking in rte_pmd_ixgbe_set_vf_rate_limit() if the parameters were checked in the set_vf_rate_limit() function.
>
> > - diag = rte_eth_set_vf_rate_limit(port_id, vf, rate, q_msk);
> > + diag = rte_pmd_ixgbe_set_vf_rate_limit(port_id, vf, rate, q_msk);
> > if (diag == 0)
> > return diag;
> > - printf("rte_eth_set_vf_rate_limit for port_id=%d failed diag=%d\n",
> > + printf("rte_pmd_ixgbe_set_vf_rate_limit for port_id=%d failed
> > +diag=%d\n",
> > port_id, diag);
> > return diag;
> > }
> >
Regards,
Bernard.
@@ -6708,7 +6708,7 @@ cmd_set_vf_rxmode_parsed(void *parsed_result,
rx_mode |= ETH_VMDQ_ACCEPT_MULTICAST;
}
- ret = rte_eth_dev_set_vf_rxmode(res->port_id,res->vf_id,rx_mode,(uint8_t)is_on);
+ ret = rte_pmd_ixgbe_set_vf_rxmode(res->port_id, res->vf_id, rx_mode, (uint8_t)is_on);
if (ret < 0)
printf("bad VF receive mode parameter, return code = %d \n",
ret);
@@ -92,6 +92,9 @@
#include <rte_ethdev.h>
#include <rte_string_fns.h>
#include <rte_cycles.h>
+#ifdef RTE_LIBRTE_IXGBE_PMD
+#include <rte_pmd_ixgbe.h>
+#endif
#include "testpmd.h"
@@ -2332,16 +2335,16 @@ set_vf_traffic(portid_t port_id, uint8_t is_rx, uint16_t vf, uint8_t on)
if (port_id_is_invalid(port_id, ENABLED_WARN))
return;
if (is_rx)
- diag = rte_eth_dev_set_vf_rx(port_id,vf,on);
+ diag = rte_pmd_ixgbe_set_vf_rx(port_id, vf, on);
else
- diag = rte_eth_dev_set_vf_tx(port_id,vf,on);
+ diag = rte_pmd_ixgbe_set_vf_tx(port_id, vf, on);
if (diag == 0)
return;
if(is_rx)
- printf("rte_eth_dev_set_vf_rx for port_id=%d failed "
+ printf("rte_pmd_ixgbe_set_vf_rx for port_id=%d failed "
"diag=%d\n", port_id, diag);
else
- printf("rte_eth_dev_set_vf_tx for port_id=%d failed "
+ printf("rte_pmd_ixgbe_set_vf_tx for port_id=%d failed "
"diag=%d\n", port_id, diag);
}
@@ -2355,10 +2358,10 @@ set_vf_rx_vlan(portid_t port_id, uint16_t vlan_id, uint64_t vf_mask, uint8_t on)
return;
if (vlan_id_is_invalid(vlan_id))
return;
- diag = rte_eth_dev_set_vf_vlan_filter(port_id, vlan_id, vf_mask, on);
+ diag = rte_pmd_ixgbe_set_vf_vlan_filter(port_id, vlan_id, vf_mask, on);
if (diag == 0)
return;
- printf("rte_eth_dev_set_vf_vlan_filter for port_id=%d failed "
+ printf("rte_pmd_ixgbe_set_vf_vlan_filter for port_id=%d failed "
"diag=%d\n", port_id, diag);
}
@@ -2388,23 +2391,11 @@ int
set_vf_rate_limit(portid_t port_id, uint16_t vf, uint16_t rate, uint64_t q_msk)
{
int diag;
- struct rte_eth_link link;
-
- if (q_msk == 0)
- return 0;
- if (port_id_is_invalid(port_id, ENABLED_WARN))
- return 1;
- rte_eth_link_get_nowait(port_id, &link);
- if (rate > link.link_speed) {
- printf("Invalid rate value:%u bigger than link speed: %u\n",
- rate, link.link_speed);
- return 1;
- }
- diag = rte_eth_set_vf_rate_limit(port_id, vf, rate, q_msk);
+ diag = rte_pmd_ixgbe_set_vf_rate_limit(port_id, vf, rate, q_msk);
if (diag == 0)
return diag;
- printf("rte_eth_set_vf_rate_limit for port_id=%d failed diag=%d\n",
+ printf("rte_pmd_ixgbe_set_vf_rate_limit for port_id=%d failed diag=%d\n",
port_id, diag);
return diag;
}