Hi Pavel,

Thanks for your response.
I didn't try it yet, I'll consider trying it, but currently my goal is to
evaluate pf_ring C/C++ package to see if it fits my needs, in comparison to
other packages.
This is since I need to develop a kind of business-logic application using
it.
I really want to be able to add/remove HW filtering rules using pf_ring's
APIs.

Thanks,
Amir

On Wed, Apr 29, 2015 at 10:57 AM, Pavel Odintsov <pavel.odint...@gmail.com>
wrote:

> Hello, Amir!
>
> Have you tried manual configuration of hardware filters for 82599? You
> could try do it with ethtool:
>
> https://github.com/FastVPSEestiOu/fastnetmon/wiki/Traffic-filtration-using-NIC-capabilities-on-wire-speed-(10GE,-14Mpps)
>
> From my point of view ethtool interface is more flexible for hardware
> filter management.  But I can't find any API for C/C++ for it.
>
> On Wed, Apr 29, 2015 at 10:50 AM, Amir Kaduri <akadur...@gmail.com> wrote:
> > Hi,
> >
> > After testing software filtering rules, I've tried hardware filtering
> rules.
> > Unfortunately, it doesn't work for me.
> > First, I tested it using pfring 6.0.1 64bit, and then used pfring 5.6.1
> > 32bit to make sure its not related to the version and the architecture.
> > In both tests, I didn't see that the hardware filters work.
> >
> > The command line I used: ./pfcount_82599 -i eth2 -v -m
> >
> > The NIC details: 06:00.1 Ethernet controller: Intel Corporation 82599EB
> > 10-Gigabit SFI/SFP+ Network Connection (rev 01)
> >
> > I used the following files:
> > 1.
> >
> https://drive.google.com/file/d/0B10Ms5GOXgCxYy1uWHZ2dXJrck0/view?usp=sharing
> >    The tester program pfcount_82599.c with slight changes: enabling 3
> > intel_82599_five_tuple_rule rules:
> >     - One that drops tcp packets
> >     - Second that drops packets with source 10.12.150.231
> >     - Third that drops packets with dest 10.12.150.231
> > 2.
> >
> https://drive.google.com/file/d/0B10Ms5GOXgCxS0dxR3lTZUoyRHZyUlpoemJfT0k2cS1QRGFr/view?usp=sharing
> >     The pcap file containing 344 packets, that should be filtered with
> the
> > tester above.
> >
> > Note that all 3 rules should drop the packets in the attached tester.
> >
> > Any help to prove that hardware rules work, based on the above info,
> will be
> > much appreciated.
> >
> > Thanks,
> > Amir
> >
> >
> > On Thu, Apr 16, 2015 at 12:54 AM, Alfredo Cardigliano <
> cardigli...@ntop.org>
> > wrote:
> >>
> >>
> >> On 15 Apr 2015, at 19:10, Amir Kaduri <akadur...@gmail.com> wrote:
> >>
> >> Hi,
> >>
> >> I would like to update that the problem in the tester program was that I
> >> probably didn't add the vlan_id to rule. Once added, the hash rule
> began to
> >> work.
> >>
> >>
> >> Ok, that was definitely the problem, vlan-id is part of the hash input
> >> (vlan, protocol, src/dst ip, src/dst port).
> >>
> >> Also, I would like to refer to the argument "There is no limit to the
> >> number of software hash rules":
> >> I assume that the meaning is that the algorithm doesn't have any
> >> limitation, though, since the rule_id field type is u_int16_t, there is
> a
> >> limit of 64K hash rules, de-facto.
> >>
> >>
> >> That’s right, we can consider changing the rule_id type if 64K rules is
> >> not enough in some use case.
> >>
> >> Alfredo
> >>
> >>
> >> Thanks,
> >> Amir
> >>
> >> On Tue, Apr 14, 2015 at 12:34 PM, Alfredo Cardigliano
> >> <cardigli...@ntop.org> wrote:
> >>>
> >>> Hi Amir
> >>> yes thank you for the files, I will look at them ASAP.
> >>>
> >>> Alfredo
> >>>
> >>> On 14 Apr 2015, at 11:17, Amir Kaduri <akadur...@gmail.com> wrote:
> >>>
> >>> Hi Alfredo,
> >>>
> >>> I hope you saw what I've sent last week. Any chance that you will take
> a
> >>> look at it soon?
> >>>
> >>> Thanks,
> >>> Amir
> >>>
> >>> On Fri, Apr 10, 2015 at 11:08 AM, Amir Kaduri <akadur...@gmail.com>
> >>> wrote:
> >>>>>
> >>>>> Hi Alfredo,
> >>>>>
> >>>>> Since the original pcap is huge, I sliced a smaller pcap from it,
> >>>>> holding 344 packets.
> >>>>
> >>>> Link to the tester code (based on  pfcount_82599.c):
> >>>>
> >>>>
> https://drive.google.com/file/d/0B10Ms5GOXgCxdXhtRGRoQ1FTYVFDbkFGMkwzVExNRHJXbmt3/view?usp=sharing
> >>>>
> >>>> Link to the pcap file (congtaining 344 packets):
> >>>>
> >>>>
> https://drive.google.com/file/d/0B10Ms5GOXgCxS0dxR3lTZUoyRHZyUlpoemJfT0k2cS1QRGFr/view?usp=sharing
> >>>>
> >>>>>
> >>>>> Thanks a lot,
> >>>>> Amir
> >>>>>
> >>>>
> >>>> On Wed, Apr 8, 2015 at 4:07 PM, Alfredo Cardigliano
> >>>> <cardigli...@ntop.org> wrote:
> >>>>>
> >>>>> Hi Amir
> >>>>> could you provide your patched pfcount and a pcap with the packets
> >>>>> matching your rule?
> >>>>>
> >>>>> Alfredo
> >>>>>
> >>>>> On 08 Apr 2015, at 13:36, Amir Kaduri <akadur...@gmail.com> wrote:
> >>>>>
> >>>>> I'm currently in a situation, that no rules work for me whatsoever
> >>>>> (same configuration I described earlier), and they did work for me a
> few day
> >>>>> ago.
> >>>>> I'm using the pfcount_82599.c tester, and added a single hash rule.
> The
> >>>>> only thing that does work is the default behavior, when using the API
> >>>>> pfring_toggle_filtering_policy(pd, 1) (default to allow - packets
> >>>>> arrive normally) or pfring_toggle_filtering_policy(pd, 0); (default
> to drop,
> >>>>> no packet arrive to the tester).
> >>>>> This is the part of code:
> >>>>>
> >>>>>
> ------------------------------------------------------------------------------------------
> >>>>> :
> >>>>>  rc = pfring_enable_ring(pd);
> >>>>>  if (rc<0)
> >>>>> printf("pfring_enable_ring() failed. rc=%d\n", rc);
> >>>>>
> >>>>>   pfring_toggle_filtering_policy(pd, 1); /* Default to allow */
> >>>>>
> >>>>>   if (1) {
> >>>>> hash_filtering_rule rule;
> >>>>> u_int16_t rule_id = 0;
> >>>>>
> >>>>> memset(&rule, 0, sizeof(hash_filtering_rule));
> >>>>> rule.proto = 6;
> >>>>> rule.rule_id = rule_id++;
> >>>>> rule.rule_action = dont_forward_packet_and_stop_rule_evaluation;
> >>>>> rule.host4_peer_a = ntohl(inet_addr("10.12.150.231"));
> >>>>> rule.port_peer_a = 2489;
> >>>>> rule.host4_peer_b = ntohl(inet_addr("10.61.12.31"));
> >>>>> rule.port_peer_b = 139;
> >>>>> rc = pfring_handle_hash_filtering_rule(pd, &rule, 1);
> >>>>> if(rc<0)
> >>>>> printf("pfring_add_hash_filtering_rule(%d) failed [errno=%d: %s]\n",
> >>>>> rule.rule_id, errno, strerror(errno));
> >>>>> else
> >>>>> printf("pfring_add_hash_filtering_rule(%d) succeeded\n",
> rule.rule_id);
> >>>>>   }
> >>>>>
> >>>>>
> ------------------------------------------------------------------------------------------
> >>>>> I don't get any errors when the following code run, but when I
> bombard
> >>>>> the machine
> >>>>> with a pcap containing more than 600,000 packets of the specified
> >>>>> session that I've expected to be filtered out,
> >>>>> packets of it still received at the tester.
> >>>>>
> >>>>> I'm pretty sure that something goes wrong in pf_ring, but I can't
> tell
> >>>>> what.
> >>>>> What is the best way to get debug information, other than reading
> >>>>> /var/log/messages?
> >>>>>
> >>>>> Thanks,
> >>>>> Amir
> >>>>>
> >>>>>
> >>>>> On Wed, Apr 8, 2015 at 1:08 PM, Alfredo Cardigliano
> >>>>> <cardigli...@ntop.org> wrote:
> >>>>>>
> >>>>>>
> >>>>>> On 05 Apr 2015, at 16:07, Amir Kaduri <akadur...@gmail.com> wrote:
> >>>>>>
> >>>>>> Hi,
> >>>>>>
> >>>>>> I think I've made some progress: AFAIU, the packets that I see
> despite
> >>>>>> the rule that supposed to filter them, are packets the receive
> during the
> >>>>>> time interval from rule-set to rule-apply by pfring.
> >>>>>> I'll appreciate getting some answers about the following:
> >>>>>> 1. If I use the pfring_purge_idle_hash_rules(..) API, is there any
> way
> >>>>>> to know which rules-ids are set and which are vacant?
> >>>>>>     This is because I have to follow the rules-ids when setting
> them,
> >>>>>> but when I purge them, I don't know which of them were removed.
> >>>>>>
> >>>>>>
> >>>>>> No, unfortunately this is not possible with the current API.
> >>>>>>
> >>>>>> 2. Does this API also purges HW rules?
> >>>>>>
> >>>>>>
> >>>>>> No, It doesn’t.
> >>>>>>
> >>>>>> 3. According to the documentation, I know that HW rules have a limit
> >>>>>> of 32,000. What is the limit for hash rules? IS this limit includes
> the
> >>>>>> 32,000 of the HW, or additional to it?
> >>>>>>
> >>>>>>
> >>>>>> There is no limit to the number of software hash rules.
> >>>>>>
> >>>>>> 4. I have a valid rule, but whenever I call
> >>>>>> pfring_get_hash_filtering_rule_stats(..), it fails.Any idea why?
> >>>>>>
> >>>>>>
> >>>>>> pfring_get_hash_filtering_rule_stats() should be used with sw rules
> to
> >>>>>> get stats from kernel plugins (when used), otherwise there is no
> stats per
> >>>>>> rule.
> >>>>>>
> >>>>>> Br
> >>>>>> Alfredo
> >>>>>>
> >>>>>>     - I've add the stats code to the pfcount_82599 tester
> >>>>>>     - In /var/log/messages I see the following message that is
> >>>>>> probably originated from ring_setsockopt(): "kernel: [PF_RING]
> Found rule
> >>>>>> but pluginId 0 is not registered"
> >>>>>>
> >>>>>> Thanks,
> >>>>>> Amir
> >>>>>>
> >>>>>>
> >>>>>> On Thu, Apr 2, 2015 at 5:06 PM, Amir Kaduri <akadur...@gmail.com>
> >>>>>> wrote:
> >>>>>>>
> >>>>>>> Hi Alfredo,
> >>>>>>>
> >>>>>>> Thanks for referring to my question.
> >>>>>>> I hope the following answers:
> >>>>>>>
> >>>>>>> [root@CT10K10G]# cat /etc/pf_ring/pfring.conf
> >>>>>>> min_num_slots=1024 transparent_mode=2 enable_frag_coherence=1
> >>>>>>> enable_ip_defrag=1
> >>>>>>>
> >>>>>>> [root@CT10K10G]# cat /proc/net/pf_ring/info
> >>>>>>> PF_RING Version          : 6.0.1 ($Revision: exported$)
> >>>>>>> Total rings              : 0
> >>>>>>>
> >>>>>>> Standard (non DNA) Options
> >>>>>>> Ring slots               : 1024
> >>>>>>> Slot version             : 15
> >>>>>>> Capture TX               : Yes [RX+TX]
> >>>>>>> IP Defragment            : Yes
> >>>>>>> Socket Mode              : Standard
> >>>>>>> Transparent mode         : No [mode 2]
> >>>>>>> Total plugins            : 0
> >>>>>>> Cluster Fragment Queue   : 0
> >>>>>>> Cluster Fragment Discard : 0
> >>>>>>>
> >>>>>>> Thanks,
> >>>>>>> Amir
> >>>>>>>
> >>>>>>>
> >>>>>>> On Thu, Apr 2, 2015 at 4:10 PM, Alfredo Cardigliano
> >>>>>>> <cardigli...@ntop.org> wrote:
> >>>>>>>>
> >>>>>>>> Hi Amir
> >>>>>>>> how did you load pf_ring.ko? Can I see the command line?
> >>>>>>>> Please also try using latest code from svn, this helps us
> debugging
> >>>>>>>> the issue.
> >>>>>>>>
> >>>>>>>> Br
> >>>>>>>> Alfredo
> >>>>>>>>
> >>>>>>>> On 01 Apr 2015, at 18:22, Amir Kaduri <akadur...@gmail.com>
> wrote:
> >>>>>>>>
> >>>>>>>> Hello,
> >>>>>>>>
> >>>>>>>>
> >>>>>>>>
> >>>>>>>> I’m using PF_RING-6.0.1.
> >>>>>>>>
> >>>>>>>> I’m trying to develop an application that runs some algorithm
> >>>>>>>> consisting on rules.
> >>>>>>>>
> >>>>>>>> I made some tests using the “pfcount” tester, and unfortunately, I
> >>>>>>>> don’t understand the behavior:
> >>>>>>>>
> >>>>>>>> I’m running the following command line: “./pfcount -i eth3 -u 2
> -v 1
> >>>>>>>> -r –m” which AFAIU, adds a wildcard filter for each incoming
> packet.
> >>>>>>>>
> >>>>>>>> If I get it correctly, once a rule was added, I should not expect
> >>>>>>>> other packets of the same session to receive, and this is not
> what I’m
> >>>>>>>> getting.
> >>>>>>>>
> >>>>>>>> For example:
> >>>>>>>>
> >>>>>>>>
> >>>>>>>>
> -----------------------------------------------------------------------
> >>>>>>>>
> >>>>>>>> [root@CT10K10G examples]# ./pfcount -i eth3 -u 2 -v 1 -r -m
> >>>>>>>>
> >>>>>>>> Adding wildcard filtering rules
> >>>>>>>>
> >>>>>>>> Using PF_RING v.6.0.1
> >>>>>>>>
> >>>>>>>> Capturing from eth3 [00:E0:ED:FE:18:19][ifIndex: 11]
> >>>>>>>>
> >>>>>>>> # Device RX channels: 6
> >>>>>>>>
> >>>>>>>> # Polling threads:    1
> >>>>>>>>
> >>>>>>>> Dumping statistics on /proc/net/pf_ring/stats/11993-eth3.1074
> >>>>>>>>
> >>>>>>>> 18:52:35.956295950 [RX][if_index=11][00:08:E3:FF:FC:C8 ->
> >>>>>>>> 00:01:02:03:04:05] [vlan 70] [direction 1] [IPv4][
> 10.61.10.9:52311 ->
> >>>>>>>> 10.70.150.108:60189]
> >>>>>>>> [l3_proto=TCP][hash=344283189][tos=0][tcp_seq_num=596843063]
> >>>>>>>>
> [caplen=128][len=1522][parsed_header_len=0][eth_offset=-14][l3_offset=18][l4_offset=38][payload_offset=58]
> >>>>>>>>
> >>>>>>>> Rule 0 added successfully...
> >>>>>>>>
> >>>>>>>> 18:52:35.956301616 [RX][if_index=11][00:08:E3:FF:FC:C8 ->
> >>>>>>>> 00:01:02:03:04:05] [vlan 70] [direction 1] [IPv4][
> 10.61.10.9:52311 ->
> >>>>>>>> 10.70.150.108:60189]
> >>>>>>>> [l3_proto=TCP][hash=344283189][tos=0][tcp_seq_num=596844523]
> >>>>>>>>
> [caplen=128][len=650][parsed_header_len=0][eth_offset=-14][l3_offset=18][l4_offset=38][payload_offset=58]
> >>>>>>>>
> >>>>>>>> Rule 1 added successfully...
> >>>>>>>>
> >>>>>>>> 18:52:35.956303262 [RX][if_index=11][00:08:E3:FF:FC:C8 ->
> >>>>>>>> 00:01:02:03:04:05] [vlan 70] [direction 1] [IPv4][
> 10.61.10.9:52311 ->
> >>>>>>>> 10.70.150.108:60189]
> >>>>>>>> [l3_proto=TCP][hash=344283189][tos=0][tcp_seq_num=596845111]
> >>>>>>>>
> [caplen=128][len=1086][parsed_header_len=0][eth_offset=-14][l3_offset=18][l4_offset=38][payload_offset=58]
> >>>>>>>>
> >>>>>>>> Rule 2 added successfully...
> >>>>>>>>
> >>>>>>>> :
> >>>>>>>>
> >>>>>>>>
> >>>>>>>>
> -----------------------------------------------------------------------
> >>>>>>>>
> >>>>>>>>
> >>>>>>>>
> >>>>>>>> How come, that once rule #0 was added for [10.61.10.9:52311 ->
> >>>>>>>> 10.70.150.108:60189], I still see such packets in the next
> lines? Shouldn’t
> >>>>>>>> they be filtered by the rule that just as added?
> >>>>>>>>
> >>>>>>>>
> >>>>>>>>
> >>>>>>>> (BTW, when I use the command “./pfcount -i eth3 -u 1 -v 1 -r –m”
> >>>>>>>> (i.e. –u is 1 rather than 2), the tester uses hash filters, and
> in this
> >>>>>>>> case, I get errors:
> >>>>>>>>
> >>>>>>>> 18:53:19.052549112 [RX][if_index=11][00:08:E3:FF:FC:C8 ->
> >>>>>>>> 00:01:02:03:04:05] [vlan 70] [direction 1] [IPv4][
> 10.61.10.9:52311 ->
> >>>>>>>> 10.70.150.108:60189]
> >>>>>>>> [l3_proto=TCP][hash=344283189][tos=0][tcp_seq_num=596847159]
> >>>>>>>>
> [caplen=128][len=1490][parsed_header_len=0][eth_offset=-14][l3_offset=18][l4_offset=38][payload_offset=58]
> >>>>>>>>
> >>>>>>>> pfring_add_hash_filtering_rule(1) failed)
> >>>>>>>>
> >>>>>>>>
> >>>>>>>>
> >>>>>>>> Any help will be appreciated.
> >>>>>>>>
> >>>>>>>>
> >>>>>>>>
> >>>>>>>> Thanks,
> >>>>>>>>
> >>>>>>>> Amir
>
_______________________________________________
Ntop-misc mailing list
Ntop-misc@listgateway.unipi.it
http://listgateway.unipi.it/mailman/listinfo/ntop-misc

Reply via email to