All of lore.kernel.org
 help / color / mirror / Atom feed
From: Kurt Van Dijck <kurt.van.dijck@eia.be>
To: Sebastian Haas <dev@sebastianhaas.info>
Cc: Oliver Hartkopp <oliver.hartkopp@volkswagen.de>,
	linux-can Mailing List <linux-can@vger.kernel.org>
Subject: RFC: (optional) software filtering in candump
Date: Thu, 30 May 2013 12:17:19 +0200	[thread overview]
Message-ID: <20130530101719.GB427@vandijck-laurijssen.be> (raw)
In-Reply-To: <51A71696.8030609@sebastianhaas.info>

On Thu, May 30, 2013 at 11:06:30AM +0200, Sebastian Haas wrote:
> Am 30.05.2013 10:49, schrieb Oliver Hartkopp:
> >>>On 29.05.2013 22:55, Sebastian Haas wrote:
> >>>>If I start candump this way:
> >>>>sh@helios:~/workspace/node-can$ candump vcan0,100~7ff,101~7ff
> >>>>  I want to receive any messages except 100h and 101h.
> >>>>
> >>>>When I send a message which matches the filter, it is received twice:
> >>>>sh@helios:~/workspace/node-can$ cansend vcan0 1ff#22
> >>>>   vcan0  1FF   [1]  22
> >>>>   vcan0  1FF   [1]  22
> >>>>
> >>>>When I send a message which should not received at all, it is received:
> >>>>sh@helios:~/workspace/node-can$ cansend vcan0 100#22
> >>>>   vcan0  100   [1]  22
> >>>>
> >>>>Did I misunderstood the filter here?
> >>>
> >>>The filters are independent and therefore "logical OR".
> >>Ok. That explain why received 100h even though I tried to filter it
> >>out. But
> >>why receive a message twice while it was only sent once?
> >
> >You have defined two(!) filters that let pass the CAN-ID 0x1FF.
> >
> >So what else would you expect?
> This is actually the way it meant to be? Why? Honestly this is a bug
> for me! The filter should stop when it matched and not going further
> generating ghost messages which were never sent?

I had initially the same feeling. The problem here IMHO is
what the user expects is different from what the kernel does.

What the user expects is a 'socket' based filter.
The kernel implements an optimised, socket-agnostic filter.
This is even more generic, but the kernel expects a CAN_RAW program
to set 'rough' filters and have the fine control in the program.

This actually works very good, and is a clever thing to do.

However, candump does expose this kernel behaviour to the user. The user,
as said, expects something different that what he gets.
So the user thinks it is a bug.

How to solve this: I think the correct way is to let candump
expose the filtering that a user expects, whether in userspace
or in kernelspace.
Is such approach efficient? no. Does that matter? probably not.
candump is, IMO, not an automation tool. It's an administrator/diagnostic tool.

Although I have no real code in mind yet, I think the expected
filtering is much easier to implement within a single program,
than it would be in kernelspace.

On the other hand, I have found candump's exposure of kernel work
a true friend during development.
So I'd vote to have an extra control on candump which filtering to use.

Any thoughts?

Kurt

  reply	other threads:[~2013-05-30 10:17 UTC|newest]

Thread overview: 27+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-05-29 20:55 RxFilter issues vcan Sebastian Haas
2013-05-30  4:58 ` Oliver Hartkopp
2013-05-30  8:34   ` Sebastian Haas
2013-05-30  8:49     ` Oliver Hartkopp
2013-05-30  9:06       ` Sebastian Haas
2013-05-30 10:17         ` Kurt Van Dijck [this message]
2013-05-30 12:07           ` RFC: (optional) software filtering in candump Oliver Hartkopp
2013-05-30 12:35             ` Kurt Van Dijck
2013-05-30 15:37               ` Sebastian Haas
2013-05-30 15:55                 ` Oliver Hartkopp
2013-05-31 20:40                   ` Sebastian Haas
2013-06-01 14:15                 ` Oliver Hartkopp
2013-06-01 18:35                   ` Sebastian Haas
2013-06-02  9:59                     ` RFC SFF bitfield filter - was " Oliver Hartkopp
2013-06-02 11:17                       ` Kurt Van Dijck
2013-06-02 12:23                         ` Sebastian Haas
2013-06-02 11:23                   ` Kurt Van Dijck
2013-06-04  8:22                     ` AW: " Sandro Anders | CarMedialab
2015-03-17 10:44                   ` Marc Kleine-Budde
2015-03-17 11:34                   ` Marc Kleine-Budde
2015-03-17 12:04                     ` Oliver Hartkopp
2015-03-17 13:02                       ` Oliver Hartkopp
2015-03-17 13:33                         ` Marc Kleine-Budde
2013-06-14  8:42 Janusz Uzycki
     [not found] <190D92B052C049F4B059DCFE8F841940@laptop2>
2013-06-14 18:05 ` Oliver Hartkopp
2013-06-17 11:27   ` Janusz Uzycki
2013-06-19 16:59     ` Oliver Hartkopp

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=20130530101719.GB427@vandijck-laurijssen.be \
    --to=kurt.van.dijck@eia.be \
    --cc=dev@sebastianhaas.info \
    --cc=linux-can@vger.kernel.org \
    --cc=oliver.hartkopp@volkswagen.de \
    /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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.