> On Mar 3, 2017, at 3:46 AM, Pascal Mazon <pascal.ma...@6wind.com> wrote:
> 
> Advertize RTE_PTYPE_UNKNOWN since tap does not report any packet type.
> 
> Signed-off-by: Pascal Mazon <pascal.ma...@6wind.com>
> ---
> doc/guides/nics/features/tap.ini |  1 +
> drivers/net/tap/rte_eth_tap.c    | 15 +++++++++++++++
> 2 files changed, 16 insertions(+)
> 
> diff --git a/doc/guides/nics/features/tap.ini 
> b/doc/guides/nics/features/tap.ini
> index 6aa11874e2bc..7f3f4d661dd7 100644
> --- a/doc/guides/nics/features/tap.ini
> +++ b/doc/guides/nics/features/tap.ini
> @@ -13,6 +13,7 @@ MTU update           = Y
> Multicast MAC filter = Y
> Speed capabilities   = Y
> Unicast MAC filter   = Y
> +Packet type parsing  = Y
> Other kdrv           = Y
> ARMv7                = Y
> ARMv8                = Y
> diff --git a/drivers/net/tap/rte_eth_tap.c b/drivers/net/tap/rte_eth_tap.c
> index 64b84cd76321..e4af36a6d142 100644
> --- a/drivers/net/tap/rte_eth_tap.c
> +++ b/drivers/net/tap/rte_eth_tap.c
> @@ -36,6 +36,7 @@
> #include <rte_malloc.h>
> #include <rte_vdev.h>
> #include <rte_kvargs.h>
> +#include <rte_net.h>
> 
> #include <sys/types.h>
> #include <sys/stat.h>
> @@ -216,6 +217,8 @@ pmd_rx_burst(void *queue, struct rte_mbuf **bufs, 
> uint16_t nb_pkts)
>               mbuf->data_len = len;
>               mbuf->pkt_len = len;
>               mbuf->port = rxq->in_port;
> +             mbuf->packet_type = rte_net_get_ptype(mbuf, NULL,
> +                                                   RTE_PTYPE_ALL_MASK);
> 
>               /* account for the receive frame */
>               bufs[num_rx++] = mbuf;
> @@ -760,6 +763,17 @@ tap_mtu_set(struct rte_eth_dev *dev, uint16_t mtu)
>       return 0;
> }
> 
> +static const uint32_t*
> +tap_dev_supported_ptypes_get(struct rte_eth_dev *dev __rte_unused)
> +{
> +     static const uint32_t ptypes[] = {
> +             RTE_PTYPE_UNKNOWN,
> +
> +     };
> +
> +     return ptypes;
> +}

Can we just add the code to grab the ptype value instead of just saying not 
supported.

The original code would just return an error from ethdev correct, what was 
wrong with that one. I would like to see the tap PMD just return the ptype 
would that not be more useful?

> +
> static const struct eth_dev_ops ops = {
>       .dev_start              = tap_dev_start,
>       .dev_stop               = tap_dev_stop,
> @@ -784,6 +798,7 @@ static const struct eth_dev_ops ops = {
>       .mtu_set                = tap_mtu_set,
>       .stats_get              = tap_stats_get,
>       .stats_reset            = tap_stats_reset,
> +     .dev_supported_ptypes_get = tap_dev_supported_ptypes_get,
> };
> 
> static int
> -- 
> 2.8.0.rc0
> 

Regards,
Keith

Reply via email to