From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-la0-f67.google.com (mail-la0-f67.google.com [209.85.215.67]) by dpdk.org (Postfix) with ESMTP id 922407E0B for ; Thu, 30 Oct 2014 16:09:09 +0100 (CET) Received: by mail-la0-f67.google.com with SMTP id q1so1080670lam.10 for ; Thu, 30 Oct 2014 08:18:05 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:date:message-id:subject:from:to:content-type; bh=2Y9I06NpS2hvzcdgqRfR05DlSLmhMHMTqHS/bWwrRGY=; b=SF3XTsvgTNdp3OkFX63bkKj9PUIlBbUW2GW9HSK4IN0yBWoOTIh3IC3IL4Ha1gEo01 e7mOFMXbpP+Jyb1/wOrs++Jp3f0dqM/CfwnL2wJ3gOCu49vwt7hIiyx5JAAr8Drxpb70 uZzrBbNMiyTThHl+4bVmghZ4kXyR40etMumveAHlSZDAjNcq0W4rDWbORHMUYCtSiwZ3 T3N2t/+/C6hThnMnT2+/+u1namQBHgan+Q6MMZNweBZVHZxK5EUQdMr6KHqVFgJc4vcP 0S/Raba5FDimsI05LqBA0gfldi66Kbb4Gtg7fzPeT2bf983LkvNe4m+Ix2y949fqGz52 TU0A== MIME-Version: 1.0 X-Received: by 10.152.203.164 with SMTP id kr4mr16334248lac.31.1414682285773; Thu, 30 Oct 2014 08:18:05 -0700 (PDT) Received: by 10.25.216.212 with HTTP; Thu, 30 Oct 2014 08:18:05 -0700 (PDT) Date: Thu, 30 Oct 2014 16:18:05 +0100 Message-ID: From: Newman Poborsky To: dev@dpdk.org Content-Type: text/plain; charset=UTF-8 X-Content-Filtered-By: Mailman/MimeDel 2.1.15 Subject: [dpdk-dev] flow director - perfect match filter X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: patches and discussions about DPDK List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 30 Oct 2014 15:09:09 -0000 Hi, I'm not sure this is the right place to post a question like this, but I've been stuck with the same problem for days now. I'm trying to use flow director perfect match filters and so far I haven't been able to get it working. I have tried writing my own simple app (based on given examples) and I tried adding filter using something as simple as: //setting the mask to watch for src IP memset(&fdir_masks, 0x00, sizeof(struct rte_fdir_masks)); fdir_masks.src_ipv4_mask = 0xFFFFFFFF; ret = rte_eth_dev_fdir_set_masks(portid, &fdir_masks); //adding filter memset(&filter, 0, sizeof(struct rte_fdir_filter)); filter.ip_src.ipv4_addr = htonl(ipv4_src); filter.l4type = RTE_FDIR_L4TYPE_NONE; filter.iptype = RTE_FDIR_IPTYPE_IPV4; ret = rte_eth_dev_fdir_add_perfect_filter(portid,&filter,3,queue,0); ... After running this code and using using tcpreplay to push traffic to interface, I get all the misses in the stats and no matches. As far as I understand, to match only on src IP, all rte_fdir_filter elements should be set to 0, and only src_ip should be masked (with 1's). After this I tried running testpmd application but also no luck. The commands I used are: set_masks_filter 0 only_ip_flow 0 src_mask 0xFFFFFFFF 0x0000 dst_mask 0x00000000 0x0000 flexbytes 0 vlan_id 0 vlan_prio 0 add_perfect_filter 0 ip src 10.10.10.10 0 dst 0.0.0.0 0 flexbytes 0 vlan 0 queue 1 soft 3 Filter is added but after sending packets to this interface, I only see misses in stats. What I am doing wrong? I've read the docs and looked at API reference but didn't find anything that could help me. Configuring flow director filter using ethtool and sending same packets results in matches, so packets I'm sending should be matched. Thank you for any help! Newman P.