Hi Jaroslaw,

What driver are you using it wouldn't happen to be DPDK would it?  If so I 
don't believe and of the developers of that driver monitor this list.

I ask since the functions you mentioned below don't exist in the ixgbe (linux 
driver).

Thanks,
-Don

> -----Original Message-----
> From: jk_14 [mailto:jk...@op.pl]
> Sent: Tuesday, July 22, 2014 1:18 AM
> To: e1000-devel@lists.sourceforge.net
> Subject: [E1000-devel] ixgbe, hw filtering, five-tuple issue
> 
> 
> Hi,
> 
> I'm using latest PF_RING software for hardware filtering with Intel 82599
> based NIC (X520 in fact)
> 
> And HW five-tuples filtering - works almost fine. Almost, because it seems I
> have found some problem:
> 
> In my example I use only one, full drop rule:
>         if(1) {
>           memset(&rule, 0, sizeof(rule)), rule.rule_family_type =
> intel_82599_five_tuple_rule;
>           rule.rule_id = rule_id++, ft_rule->queue_id = -1;
>           rc = pfring_zc_add_hw_rule(zq, &rule);
>           if(rc != 0) printf("pfring_zc_add_hw_rule(%d) failed [rc=%d]\n",
> rule.rule_id, rc);
>           else printf("pfring_zc_add_hw_rule(%d) succeeded: drop rule\n",
> rule.rule_id); }
> 
>     And in the result we can see some UDP frames, which shouldn't be present
> here:
>     [70:DD:A1:6B:C2:23 -> 01:80:C2:00:00:02] [eth_type=0x8809]
> [caplen=60][len=60][parsed_header_len=0][eth_offset=0][l3_offset=14][l4_
> offset=0][payload_offset=0]
>     [70:DD:A1:6B:C2:23 -> 01:80:C2:00:00:02] [eth_type=0x8809]
> [caplen=60][len=60][parsed_header_len=0][eth_offset=0][l3_offset=14][l4_
> offset=0][payload_offset=0]
>     [70:DD:A1:6B:C2:23 -> 00:22:83:D9:AA:95] [vlan 901] 
> [IPv4][10.194.72.1:4003
> -> 172.18.227.250:49999]
> [l3_proto=UDP][hash=3067478659][tos=56][tcp_seq_num=0]
> [caplen=1518][len=1518][parsed_header_len=0][eth_offset=0][l3_offset=18
> ][l4_offset=38][payload_offset=46]
>     [70:DD:A1:6B:C2:23 -> 00:22:83:D9:AA:95] [vlan 901] [IPv4][10.194.72.1:0 
> ->
> 172.18.227.250:0]
> [l3_proto=UDP][hash=3067424657][tos=56][tcp_seq_num=0]
> [caplen=102][len=102][parsed_header_len=0][eth_offset=0][l3_offset=18][l
> 4_offset=38][payload_offset=0]
>     [70:DD:A1:6B:C2:23 -> 01:80:C2:00:00:02] [eth_type=0x8809]
> [caplen=60][len=60][parsed_header_len=0][eth_offset=0][l3_offset=14][l4_
> offset=0][payload_offset=0]
>     [70:DD:A1:6B:C2:23 -> 01:80:C2:00:00:02] [eth_type=0x8809]
> [caplen=60][len=60][parsed_header_len=0][eth_offset=0][l3_offset=14][l4_
> offset=0][payload_offset=0]
>     [70:DD:A1:6B:C2:23 -> 00:22:83:D9:AA:95] [vlan 901] 
> [IPv4][10.194.72.1:4003
> -> 172.18.227.250:49999]
> [l3_proto=UDP][hash=3067478659][tos=56][tcp_seq_num=0]
> [caplen=1518][len=1518][parsed_header_len=0][eth_offset=0][l3_offset=18
> ][l4_offset=38][payload_offset=46]
>     [70:DD:A1:6B:C2:23 -> 00:22:83:D9:AA:95] [vlan 901] [IPv4][10.194.72.1:0 
> ->
> 172.18.227.250:0]
> [l3_proto=UDP][hash=3067424657][tos=56][tcp_seq_num=0]
> [caplen=102][len=102][parsed_header_len=0][eth_offset=0][l3_offset=18][l
> 4_offset=38][payload_offset=0]
>     ^[[A^CLeaving...
>     =========================
>     Absolute Stats: 81 pkts (15'633'475 drops) - 37'070 bytes
>     =========================
> 
> 
> 
> So, it seems UDP packets above are able to pass the “drop all” rule only if 
> the
> size is equal to 1518 bytes, and then one more (probably next) packet is
> always passed yet, in pair...
> 
> I have Jumbo frames up to ~1550 size, and MTU set for 9000
> - and from my quick tests I see only 1518 bytes size packets are affected, but
> packets more than 1518 bytes are not affected.
> 
> btw: maybe there is an additional shift added in this case to the next packet,
> so one more packet (not Jumbo) is also passing the rule?
> Does it make sense?
> 
> One more example yet:
> 
>     [70:DD:A1:6B:C2:23 -> 01:80:C2:00:00:02] [eth_type=0x8809]
> [caplen=60][len=60][parsed_header_len=0][eth_offset=0][l3_offset=14][l4_
> offset=0][payload_offset=0]
>     [70:DD:A1:6B:C2:23 -> 01:80:C2:00:00:02] [eth_type=0x8809]
> [caplen=60][len=60][parsed_header_len=0][eth_offset=0][l3_offset=14][l4_
> offset=0][payload_offset=0]
>     [70:DD:A1:6B:C2:23 -> 01:80:C2:00:00:02] [eth_type=0x8809]
> [caplen=60][len=60][parsed_header_len=0][eth_offset=0][l3_offset=14][l4_
> offset=0][payload_offset=0]
>     [70:DD:A1:6B:C2:23 -> 01:80:C2:00:00:02] [eth_type=0x8809]
> [caplen=60][len=60][parsed_header_len=0][eth_offset=0][l3_offset=14][l4_
> offset=0][payload_offset=0]
>     [70:DD:A1:6B:C2:23 -> 01:80:C2:00:00:02] [eth_type=0x8809]
> [caplen=60][len=60][parsed_header_len=0][eth_offset=0][l3_offset=14][l4_
> offset=0][payload_offset=0]
>     [70:DD:A1:6B:C2:23 -> 01:80:C2:00:00:02] [eth_type=0x8809]
> [caplen=60][len=60][parsed_header_len=0][eth_offset=0][l3_offset=14][l4_
> offset=0][payload_offset=0]
>     [70:DD:A1:6B:C2:23 -> 00:22:83:D9:AA:95] [vlan 901]
> [IPv4][10.194.74.16:4000 -> 10.2.111.137:60147]
> [l3_proto=UDP][hash=348501954][tos=56][tcp_seq_num=0]
> [caplen=1518][len=1518][parsed_header_len=0][eth_offset=0][l3_offset=18
> ][l4_offset=38][payload_offset=46]
>     [70:DD:A1:6B:C2:23 -> 00:22:83:D9:AA:95] [vlan 901] [IPv4][10.194.74.16:0 
> -
> > 10.2.111.137:0]
> [l3_proto=UDP][hash=348437807][tos=56][tcp_seq_num=0]
> [caplen=60][len=60][parsed_header_len=0][eth_offset=0][l3_offset=18][l4_
> offset=38][payload_offset=0]
>     [70:DD:A1:6B:C2:23 -> 01:80:C2:00:00:02] [eth_type=0x8809]
> [caplen=60][len=60][parsed_header_len=0][eth_offset=0][l3_offset=14][l4_
> offset=0][payload_offset=0]
>     [70:DD:A1:6B:C2:23 -> 01:80:C2:00:00:02] [eth_type=0x8809]
> [caplen=60][len=60][parsed_header_len=0][eth_offset=0][l3_offset=14][l4_
> offset=0][payload_offset=0]
>     [70:DD:A1:6B:C2:23 -> 01:80:C2:00:00:02] [eth_type=0x8809]
> [caplen=60][len=60][parsed_header_len=0][eth_offset=0][l3_offset=14][l4_
> offset=0][payload_offset=0]
>     [70:DD:A1:6B:C2:23 -> 01:80:C2:00:00:02] [eth_type=0x8809]
> [caplen=60][len=60][parsed_header_len=0][eth_offset=0][l3_offset=14][l4_
> offset=0][payload_offset=0]
>     [70:DD:A1:6B:C2:23 -> 01:80:C2:00:00:02] [eth_type=0x8809]
> [caplen=60][len=60][parsed_header_len=0][eth_offset=0][l3_offset=14][l4_
> offset=0][payload_offset=0]
>     [70:DD:A1:6B:C2:23 -> 01:80:C2:00:00:02] [eth_type=0x8809]
> [caplen=60][len=60][parsed_header_len=0][eth_offset=0][l3_offset=14][l4_
> offset=0][payload_offset=0]
>     [70:DD:A1:6B:C2:23 -> 01:80:C2:00:00:02] [eth_type=0x8809]
> [caplen=60][len=60][parsed_header_len=0][eth_offset=0][l3_offset=14][l4_
> offset=0][payload_offset=0]
>     [70:DD:A1:6B:C2:23 -> 01:80:C2:00:00:02] [eth_type=0x8809]
> [caplen=60][len=60][parsed_header_len=0][eth_offset=0][l3_offset=14][l4_
> offset=0][payload_offset=0]
>     [70:DD:A1:6B:C2:23 -> 01:80:C2:00:00:02] [eth_type=0x8809]
> [caplen=60][len=60][parsed_header_len=0][eth_offset=0][l3_offset=14][l4_
> offset=0][payload_offset=0]
>     [70:DD:A1:6B:C2:23 -> 01:80:C2:00:00:02] [eth_type=0x8809]
> [caplen=60][len=60][parsed_header_len=0][eth_offset=0][l3_offset=14][l4_
> offset=0][payload_offset=0]
>     [70:DD:A1:6B:C2:23 -> 01:80:C2:00:00:02] [eth_type=0x8809]
> [caplen=60][len=60][parsed_header_len=0][eth_offset=0][l3_offset=14][l4_
> offset=0][payload_offset=0]
>     [70:DD:A1:6B:C2:23 -> 01:80:C2:00:00:02] [eth_type=0x8809]
> [caplen=60][len=60][parsed_header_len=0][eth_offset=0][l3_offset=14][l4_
> offset=0][payload_offset=0]
>     [70:DD:A1:6B:C2:23 -> 01:80:C2:00:00:02] [eth_type=0x8809]
> [caplen=60][len=60][parsed_header_len=0][eth_offset=0][l3_offset=14][l4_
> offset=0][payload_offset=0]
>     [70:DD:A1:6B:C2:23 -> 01:80:C2:00:00:02] [eth_type=0x8809]
> [caplen=60][len=60][parsed_header_len=0][eth_offset=0][l3_offset=14][l4_
> offset=0][payload_offset=0]
>     [70:DD:A1:6B:C2:23 -> 01:80:C2:00:00:02] [eth_type=0x8809]
> [caplen=60][len=60][parsed_header_len=0][eth_offset=0][l3_offset=14][l4_
> offset=0][payload_offset=0]
>     [70:DD:A1:6B:C2:23 -> 01:80:C2:00:00:02] [eth_type=0x8809]
> [caplen=60][len=60][parsed_header_len=0][eth_offset=0][l3_offset=14][l4_
> offset=0][payload_offset=0]
>     [70:DD:A1:6B:C2:23 -> 00:22:83:D9:AA:95] [vlan 901]
> [IPv4][10.194.72.17:4000 -> 10.2.111.144:60157]
> [l3_proto=UDP][hash=348501460][tos=56][tcp_seq_num=0]
> [caplen=1518][len=1518][parsed_header_len=0][eth_offset=0][l3_offset=18
> ][l4_offset=38][payload_offset=46]
>     [70:DD:A1:6B:C2:23 -> 00:22:83:D9:AA:95] [vlan 901] [IPv4][10.194.72.17:0 
> -
> > 10.2.111.144:0]
> [l3_proto=UDP][hash=348437303][tos=56][tcp_seq_num=0]
> [caplen=103][len=103][parsed_header_len=0][eth_offset=0][l3_offset=18][l
> 4_offset=38][payload_offset=0]
>     [70:DD:A1:6B:C2:23 -> 00:22:83:D9:AA:95] [vlan 901]
> [IPv4][10.194.72.17:4000 -> 10.2.111.144:60157]
> [l3_proto=UDP][hash=348501460][tos=56][tcp_seq_num=0]
> [caplen=1518][len=1518][parsed_header_len=0][eth_offset=0][l3_offset=18
> ][l4_offset=38][payload_offset=46]
>     [70:DD:A1:6B:C2:23 -> 00:22:83:D9:AA:95] [vlan 901] [IPv4][10.194.72.17:0 
> -
> > 10.2.111.144:0]
> [l3_proto=UDP][hash=348437303][tos=56][tcp_seq_num=0]
> [caplen=103][len=103][parsed_header_len=0][eth_offset=0][l3_offset=18][l
> 4_offset=38][payload_offset=0]
>     [70:DD:A1:6B:C2:23 -> 01:80:C2:00:00:02] [eth_type=0x8809]
> [caplen=60][len=60][parsed_header_len=0][eth_offset=0][l3_offset=14][l4_
> offset=0][payload_offset=0]
>     [70:DD:A1:6B:C2:23 -> 01:80:C2:00:00:02] [eth_type=0x8809]
> [caplen=60][len=60][parsed_header_len=0][eth_offset=0][l3_offset=14][l4_
> offset=0][payload_offset=0]
>     [70:DD:A1:6B:C2:23 -> 01:80:C2:00:00:02] [eth_type=0x8809]
> [caplen=60][len=60][parsed_header_len=0][eth_offset=0][l3_offset=14][l4_
> offset=0][payload_offset=0]
>     ^CLeaving...
>     =========================
>     Absolute Stats: 46 pkts (13'576'144 drops) - 8'785 bytes
>     =========================
> 
> 
> Regards,
> Jaroslaw
> 
------------------------------------------------------------------------------
Want fast and easy access to all the code in your enterprise? Index and
search up to 200,000 lines of code with a free copy of Black Duck
Code Sight - the same software that powers the world's largest code
search on Ohloh, the Black Duck Open Hub! Try it now.
http://p.sf.net/sfu/bds
_______________________________________________
E1000-devel mailing list
E1000-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/e1000-devel
To learn more about Intel® Ethernet, visit 
http://communities.intel.com/community/wired

Reply via email to