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