[dpdk-dev,02/12] pmd/cxgbe: add dev_ptype_info_get implementation
Commit Message
Signed-off-by: Jianfeng Tan <jianfeng.tan@intel.com>
---
drivers/net/cxgbe/cxgbe_ethdev.c | 17 +++++++++++++++++
1 file changed, 17 insertions(+)
Comments
Hi Jianfeng,
On Thursday, December 12/31/15, 2015 at 14:53:09 +0800, Jianfeng Tan wrote:
> Signed-off-by: Jianfeng Tan <jianfeng.tan@intel.com>
> ---
> drivers/net/cxgbe/cxgbe_ethdev.c | 17 +++++++++++++++++
> 1 file changed, 17 insertions(+)
>
> diff --git a/drivers/net/cxgbe/cxgbe_ethdev.c b/drivers/net/cxgbe/cxgbe_ethdev.c
> index 97ef152..f17d5d5 100644
> --- a/drivers/net/cxgbe/cxgbe_ethdev.c
> +++ b/drivers/net/cxgbe/cxgbe_ethdev.c
> @@ -767,6 +767,22 @@ static int cxgbe_flow_ctrl_set(struct rte_eth_dev *eth_dev,
> &pi->link_cfg);
> }
>
> +static int cxgbe_dev_ptype_info_get(struct rte_eth_dev *eth_dev __rte_unused,
> + uint32_t ptype_mask, uint32_t ptypes[])
> +{
No need for the __rte_unused for eth_dev above since it's being used for
if conditional below.
> + int num = 0;
> +
> + if (eth_dev->rx_pkt_burst == cxgbe_recv_pkts) {
> + if ((ptype_mask & RTE_PTYPE_L3_MASK) == RTE_PTYPE_L3_MASK) {
> + ptypes[num++] = RTE_PTYPE_L3_IPV4;
> + ptypes[num++] = RTE_PTYPE_L3_IPV6;
> + }
> + } else
> + num = -ENOTSUP;
> +
> + return num;
> +}
> +
> static struct eth_dev_ops cxgbe_eth_dev_ops = {
> .dev_start = cxgbe_dev_start,
> .dev_stop = cxgbe_dev_stop,
> @@ -777,6 +793,7 @@ static struct eth_dev_ops cxgbe_eth_dev_ops = {
> .allmulticast_disable = cxgbe_dev_allmulticast_disable,
> .dev_configure = cxgbe_dev_configure,
> .dev_infos_get = cxgbe_dev_info_get,
> + .dev_ptype_info_get = cxgbe_dev_ptype_info_get,
> .link_update = cxgbe_dev_link_update,
> .mtu_set = cxgbe_dev_mtu_set,
> .tx_queue_setup = cxgbe_dev_tx_queue_setup,
> --
> 2.1.4
>
Thanks,
Rahul
On 1/6/2016 3:11 PM, Rahul Lakkireddy wrote:
> Hi Jianfeng,
>
> On Thursday, December 12/31/15, 2015 at 14:53:09 +0800, Jianfeng Tan wrote:
>> Signed-off-by: Jianfeng Tan <jianfeng.tan@intel.com>
>> ---
>> drivers/net/cxgbe/cxgbe_ethdev.c | 17 +++++++++++++++++
>> 1 file changed, 17 insertions(+)
>>
>> diff --git a/drivers/net/cxgbe/cxgbe_ethdev.c b/drivers/net/cxgbe/cxgbe_ethdev.c
>> index 97ef152..f17d5d5 100644
>> --- a/drivers/net/cxgbe/cxgbe_ethdev.c
>> +++ b/drivers/net/cxgbe/cxgbe_ethdev.c
>> @@ -767,6 +767,22 @@ static int cxgbe_flow_ctrl_set(struct rte_eth_dev *eth_dev,
>> &pi->link_cfg);
>> }
>>
>> +static int cxgbe_dev_ptype_info_get(struct rte_eth_dev *eth_dev __rte_unused,
>> + uint32_t ptype_mask, uint32_t ptypes[])
>> +{
> No need for the __rte_unused for eth_dev above since it's being used for
> if conditional below.
Hi Rahul,
Thanks! Will fix it in next version.
Jianfeng
@@ -767,6 +767,22 @@ static int cxgbe_flow_ctrl_set(struct rte_eth_dev *eth_dev,
&pi->link_cfg);
}
+static int cxgbe_dev_ptype_info_get(struct rte_eth_dev *eth_dev __rte_unused,
+ uint32_t ptype_mask, uint32_t ptypes[])
+{
+ int num = 0;
+
+ if (eth_dev->rx_pkt_burst == cxgbe_recv_pkts) {
+ if ((ptype_mask & RTE_PTYPE_L3_MASK) == RTE_PTYPE_L3_MASK) {
+ ptypes[num++] = RTE_PTYPE_L3_IPV4;
+ ptypes[num++] = RTE_PTYPE_L3_IPV6;
+ }
+ } else
+ num = -ENOTSUP;
+
+ return num;
+}
+
static struct eth_dev_ops cxgbe_eth_dev_ops = {
.dev_start = cxgbe_dev_start,
.dev_stop = cxgbe_dev_stop,
@@ -777,6 +793,7 @@ static struct eth_dev_ops cxgbe_eth_dev_ops = {
.allmulticast_disable = cxgbe_dev_allmulticast_disable,
.dev_configure = cxgbe_dev_configure,
.dev_infos_get = cxgbe_dev_info_get,
+ .dev_ptype_info_get = cxgbe_dev_ptype_info_get,
.link_update = cxgbe_dev_link_update,
.mtu_set = cxgbe_dev_mtu_set,
.tx_queue_setup = cxgbe_dev_tx_queue_setup,