DPDK patches and discussions
 help / color / mirror / Atom feed
From: "VERDOUX, Sylvain" <s.verdoux@evs.com>
To: "dev@dpdk.org" <dev@dpdk.org>
Subject: [dpdk-dev] X710 : ntuple or flow director filtering problems
Date: Mon, 7 Sep 2015 07:10:48 +0000	[thread overview]
Message-ID: <294AEAFC4B0A3E498038549EC65E9D1B013F5C94C8@BELGSMBX02.EVS.TV> (raw)

Hello all,

I'm currently trying hardware filtering on an Intel X710 NIC and i face several problems. I will briefly try to present what I want to achieve : I have 2 multicast streams coming on one port of my NIC with 2 different multicast groups/ports, and I want to filter and redirect them to 2 RX queues to be able to retrieve packets into 2 different processes.
To do that, I first tried a simple 2-tuple filter with IP/port. But when using rte_eth_dev_filter_supported(portid, RTE_ETH_FILTER_NTUPLE) I get an error (error=-22 invalid argument ?) which I find strange because when using ethtool -k on the interface, I have ntuple-filters: on, so I guessed it was supported on this NIC.
Then I wanted to try flow director filters (should be supported as stated by the Intel documentation on this NIC). I tried using testpmd app to see what was supported and it seems signature mode is not. Perfect mode is accepted but I can't apply any mask on filters fields. In my own program, I configure the port's fdir_conf as follows :
struct rte_fdir_conf fdir_conf {
        .mode = RTE_FDIR_MODE_PERFECT,
        .pballoc = RTE_FDIR_PBALLOC_64K,
        .status = RTE_FDIR_REPORT_STATUS,
        .drop_queue = 127,
        .mask = {
                .vlan_tci_mask = 0x0,
                .ipv4_mask     = {
                        .src_ip = 0xFFFFFFFF,
                        .dst_ip = 0xFFFFFFFF,
                },
                .ipv6_mask     = {
                        .src_ip = {0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF},
                        .dst_ip = {0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF},
                },
                .src_port_mask = 0xFFFF,
                .dst_port_mask = 0xFFFF,
        },
};

When I then use rte_eth_dev_fdir_set_masks or rte_eth_dev_fdir_add_perfect_filter functions they return an -95 error (unsupported by hardware ?). So I looked into the testpmd code and found that it is using rte_eth_dev_filter_ctrl function. This one using a fdir filter is accepted but I'm unable to set the filter properly. Indeed, I just want to filter on dst_ip and dst_port so I don't really know what to set in filter's other fields (flexbytes, src_ip ...) as I can't apply a mask.

I hope someone could help me on this topic (I know should miss something, but what?).

Thanks a lot,
Best regards,

Sylvain

                 reply	other threads:[~2015-09-07  7:10 UTC|newest]

Thread overview: [no followups] expand[flat|nested]  mbox.gz  Atom feed

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=294AEAFC4B0A3E498038549EC65E9D1B013F5C94C8@BELGSMBX02.EVS.TV \
    --to=s.verdoux@evs.com \
    --cc=dev@dpdk.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).