From: Oliver Hartkopp <socketcan@hartkopp.net>
To: Marc Kleine-Budde <mkl@pengutronix.de>
Cc: puneet.sharma@moschip.com, linux-can@vger.kernel.org
Subject: Re: CAN device filterting
Date: Tue, 04 Sep 2012 18:53:25 +0200 [thread overview]
Message-ID: <50463205.8050705@hartkopp.net> (raw)
In-Reply-To: <504608CB.9080709@pengutronix.de>
On 04.09.2012 15:57, Marc Kleine-Budde wrote:
> On 09/04/2012 03:40 PM, Oliver Hartkopp wrote:
>> On 04.09.2012 15:31, Puneet Sharma wrote:
>>
>>> I need some guidance on implementing the CAN filtering of identifier in
>>> the driver code of CAN for atmel AT91SAM9263 board. Please guide me how
>>> to proceed with it..
>>
>>
>> Hm - i wrote that some days ago:
>
> I talked to Puneet in private before, if I understand him correctly he
> wants to implement hardware filtering, although software filtering is
> available.
Ah, ok.
>
> From my point of view it should become a per device callback, which you
> (admin, i.e. the root user) can set when the device is down. You have to
> extend the CAN netlink interface [1].
Good idea.
> Each device should identify what kind and how many hardware filters it
> supports:
> a) mask+id
> b) just id
> c) ...
> Analogue to ctrlmode [2][3].
Yes. Could be ambitious. E.g. a 2048 bit bitfield is an option too :-)
The question is, if the usual mailbox configurations in CAN controller
IP-cores can be stripped down to 2-3 standard types of filters, so that a good
interface can be specified.
>
> The requested filers are transferred into the kernel via netlink, but
> you have to figure out how to encode a variable length list (netfilter
> has probably a solution for this). Then the code in can_changelink() [4]
> should check if the transferred filter is supported on that hardware.
> Then, during open the driver should code the filters into hardware, on
> at91 it should be done in at91_setup_mailboxes [5][6].
Yep. I'm looking forward to a patch :-)
Regards,
Oliver
>
> Marc
>
> [1] http://lxr.free-electrons.com/source/drivers/net/can/dev.c#L585
> [2] http://lxr.free-electrons.com/source/include/linux/can/netlink.h#L81
> [3] http://lxr.free-electrons.com/source/drivers/net/can/dev.c#L691
> [4] http://lxr.free-electrons.com/source/drivers/net/can/dev.c#L600
> [5] http://lxr.free-electrons.com/source/drivers/net/can/at91_can.c#L418
> [6] http://lxr.free-electrons.com/source/drivers/net/can/at91_can.c#L336
next prev parent reply other threads:[~2012-09-04 16:53 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-09-04 13:31 CAN device filterting Puneet Sharma
2012-09-04 13:40 ` Oliver Hartkopp
2012-09-04 13:57 ` Marc Kleine-Budde
2012-09-04 16:53 ` Oliver Hartkopp [this message]
2012-09-04 17:13 ` Marc Kleine-Budde
2012-09-05 9:28 ` Puneet Sharma
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=50463205.8050705@hartkopp.net \
--to=socketcan@hartkopp.net \
--cc=linux-can@vger.kernel.org \
--cc=mkl@pengutronix.de \
--cc=puneet.sharma@moschip.com \
/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.