All of lore.kernel.org
 help / color / mirror / Atom feed
From: Oliver Hartkopp <oliver@hartkopp.net>
To: Patrick McHardy <kaber@trash.net>
Cc: Urs Thuermann <urs@isnogud.escape.de>,
	David Miller <davem@davemloft.net>,
	Oliver Hartkopp <oliver.hartkopp@volkswagen.de>,
	j.hadi123@gmail.com, netdev@vger.kernel.org
Subject: Re: [patch 5/7] CAN: Add virtual CAN netdevice driver
Date: Mon, 16 Jul 2007 18:00:27 +0200	[thread overview]
Message-ID: <469B961B.70309@hartkopp.net> (raw)
In-Reply-To: <469B6D8D.1030809@trash.net>

Patrick McHardy wrote:
> Oliver Hartkopp wrote:
>   
>> the people get the loopback functionality in ANY case. There is indeed
>> no difference from the view of the users, if you change this switch.
>>
>> The possibility to enable the loopback on vcan driver level is only to ...
>>
>> 1. Test the loopback fallback code in af_can.c
>> 2. Show, how a correct loopback handling is to be implemented
>>
>> ... nothing more.
>>     
>
>
> So its the "correct" handling and the other one is only fallback? That
> still sounds like it wants proper configuration. How does loopback work
> without this driver?
>   

As the addressing in CAN consist of a CAN-identifier and a CAN-interface
you always have at least one available CAN-interface you are working on.
In our case we may have several virtual CAN-interfaces.

On the CAN bus there is a CSMA/CA access with arbitration by the
CAN-identifier.
Due to the arbitration on the CAN bus the _transmission_ of a low prio
CAN-ID
may be delayed from the _receipition_ of a high prio CAN frame. To
reflect the correct traffic on the node the loopback of the sent
data has to be performed right _after_ a successful transmission. If
the CAN network interface is not capable to perform the loopback for
some reason the PF_CAN core can do this task as a fallback solution.

There are low cost adapters that are connected via some kind of ASCII
protocol on a serial line. These low cost adapters do not provide any TX
acknowledge that may be used to initiate the loopback receiption for the
sent CAN-frame . They are really dumb.

So you can divide the CAN controller drivers into two classes:

1. With an ACK (e.g. a valid TX interrupt) to trigger the loopback of
the sent frame
2. Without any feedback (the dumb one)

The intelligent ones (1.) do set dev->flags = (IFF_NOARP | IFF_LOOPBACK);
The dumb ones (2.) only set dev->flags = IFF_NOARP;

If a CAN-frame has to be looped back (the default), the function
can_send() in af_can.c looks whether the interface is capable to perform
the loopback or not (by checking the IFF_LOOPBACK flag in dev->flags).
In the case of a dumb interface the CAN-frame is looped back
immediately. In the case of an intelligent interface the CAN core keeps
it's hands off and lets the interface do the loopback. This should be
the usual case.

The loopback module parameter in the vcan driver enables or disables the
loopback on driver level, to test whether the fallback functionality for
'dumb interfaces' in af_can.c is working properly or not. Maybe it
should therefore be renamed to 'testloopback' or it should be removed
completely.

>From the functional side the user is not able to feel any difference
whether the loopback test is enabled in the vcan driver or not.

Thanks very much for your feedback!

Best regards,
Oliver




  reply	other threads:[~2007-07-16 16:00 UTC|newest]

Thread overview: 104+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2007-06-22  3:44 [patch 0/7] CAN: Add new PF_CAN protocol family, try #3 Urs Thuermann
2007-06-22  3:44 ` [patch 1/7] CAN: Allocate protocol numbers for PF_CAN Urs Thuermann
2007-06-22  3:44 ` [patch 2/7] CAN: Add PF_CAN core module Urs Thuermann
2007-06-22  3:44 ` [patch 3/7] CAN: Add raw protocol Urs Thuermann
2007-06-22  3:44 ` [patch 4/7] CAN: Add broadcast manager (bcm) protocol Urs Thuermann
2007-06-22  3:44 ` [patch 5/7] CAN: Add virtual CAN netdevice driver Urs Thuermann
2007-06-22 11:02   ` Patrick McHardy
2007-06-22 12:22     ` Urs Thuermann
2007-06-22 12:38       ` Patrick McHardy
2007-06-23 12:05         ` Oliver Hartkopp
2007-06-23 12:52           ` Patrick McHardy
2007-06-23 15:13             ` Oliver Hartkopp
2007-06-23 16:25               ` Patrick McHardy
2007-06-23 16:42                 ` Oliver Hartkopp
2007-06-23 17:13                   ` Patrick McHardy
2007-07-04 11:37                     ` Urs Thuermann
2007-07-04 14:01                       ` Patrick McHardy
2007-07-09 11:37                         ` Urs Thuermann
2007-07-09 14:18                           ` Patrick McHardy
2007-07-09 15:27                             ` Oliver Hartkopp
2007-07-11 19:41                               ` Oliver Hartkopp
2007-07-11 22:52                                 ` Patrick McHardy
2007-07-16  6:05                                   ` Oliver Hartkopp
2007-07-16  8:37                                     ` David Miller
2007-07-16 13:08                                     ` Patrick McHardy
2007-07-16 16:27                                       ` Oliver Hartkopp
2007-07-16 13:07                               ` Patrick McHardy
2007-07-16 16:00                                 ` Oliver Hartkopp [this message]
2007-06-23 21:01               ` David Miller
2007-06-23 21:44                 ` Oliver Hartkopp
2007-06-24 16:51               ` [CAN] [RFC] skb->iif usage and vcan driver background Oliver Hartkopp
2007-06-25 10:37                 ` Patrick McHardy
2007-06-25 14:50                   ` Oliver Hartkopp
2007-06-23 20:51           ` [patch 5/7] CAN: Add virtual CAN netdevice driver David Miller
2007-06-23 21:49             ` Oliver Hartkopp
2007-06-22  3:44 ` [patch 6/7] CAN: Add maintainer entries Urs Thuermann
2007-06-22  3:44 ` [patch 7/7] CAN: Add documentation Urs Thuermann
2007-06-22 12:34 ` [patch 0/7] CAN: Add new PF_CAN protocol family, try #3 Patrick McHardy
2007-06-22 15:57   ` Oliver Hartkopp
2007-06-22 16:23     ` Patrick McHardy
2007-06-22 17:19       ` Oliver Hartkopp
  -- strict thread matches above, loose matches on Subject: below --
2007-11-16 15:02 [PATCH 0/7] CAN: New PF_CAN protocol family for 2.6.25, update Urs Thuermann
2007-11-16 15:02 ` [PATCH 5/7] CAN: Add virtual CAN netdevice driver Urs Thuermann
2007-11-14 12:13 [PATCH 0/7] CAN: New PF_CAN protocol family for 2.6.25 Urs Thuermann
2007-11-14 12:13 ` [PATCH 5/7] CAN: Add virtual CAN netdevice driver Urs Thuermann
2007-11-14 12:51   ` Patrick McHardy
2007-11-14 13:36     ` Urs Thuermann
2007-11-14 13:45       ` Patrick McHardy
2007-10-05 10:49 [PATCH 0/7] CAN: Add new PF_CAN protocol family, try #10 Urs Thuermann
2007-10-05 10:49 ` [PATCH 5/7] CAN: Add virtual CAN netdevice driver Urs Thuermann
2007-10-02 13:10 [PATCH 0/7] CAN: Add new PF_CAN protocol family, try #9 Urs Thuermann
2007-10-02 13:10 ` [PATCH 5/7] CAN: Add virtual CAN netdevice driver Urs Thuermann
2007-10-02 14:20   ` Arnaldo Carvalho de Melo
2007-10-02 15:07     ` Oliver Hartkopp
2007-10-02 16:46       ` Arnaldo Carvalho de Melo
2007-10-02 21:02     ` Oliver Hartkopp
2007-10-02 21:43       ` Arnaldo Carvalho de Melo
2007-10-02 21:50         ` David Miller
2007-10-03  7:06           ` Oliver Hartkopp
2007-10-02 21:52       ` Stephen Hemminger
2007-10-02 22:04         ` David Miller
2007-10-03 17:47           ` Oliver Hartkopp
2007-10-04 11:52     ` Urs Thuermann
2007-09-25 12:20 [PATCH 0/7] CAN: Add new PF_CAN protocol family, try #8 Urs Thuermann
2007-09-25 12:20 ` [PATCH 5/7] CAN: Add virtual CAN netdevice driver Urs Thuermann
2007-09-25 13:26   ` YOSHIFUJI Hideaki / 吉藤英明
2007-09-25 14:00     ` Urs Thuermann
2007-09-25 14:47       ` Patrick McHardy
2007-09-25 17:55         ` Oliver Hartkopp
2007-09-25 17:53           ` Patrick McHardy
2007-09-25 19:09             ` Oliver Hartkopp
2007-09-20 18:43 [PATCH 0/7] CAN: Add new PF_CAN protocol family, try #7 Urs Thuermann
2007-09-20 18:43 ` [PATCH 5/7] CAN: Add virtual CAN netdevice driver Urs Thuermann
2007-09-27 15:54   ` Eric W. Biederman
2007-09-27 16:16     ` Eric W. Biederman
2007-09-27 19:18       ` David Miller
2007-09-28  8:48     ` Oliver Hartkopp
2007-09-28 16:52       ` Eric W. Biederman
2007-09-28 18:33         ` Oliver Hartkopp
2007-09-17 10:03 [PATCH 0/7] CAN: Add new PF_CAN protocol family, try #6 Urs Thuermann
2007-09-17 10:03 ` [PATCH 5/7] CAN: Add virtual CAN netdevice driver Urs Thuermann
2007-09-18 15:02   ` Patrick McHardy
2007-09-18 22:24     ` Urs Thuermann
2007-09-19  6:26       ` Oliver Hartkopp
2007-09-19  8:41       ` Patrick McHardy
2007-08-04  2:06 [patch 0/7] CAN: Add new PF_CAN protocol family, try #5 Urs Thuermann
2007-08-04  2:07 ` [patch 5/7] CAN: Add virtual CAN netdevice driver Urs Thuermann
2007-05-30 13:11 [patch 0/7] CAN: Add new PF_CAN protocol family, update Urs Thuermann
2007-05-30 13:11 ` [patch 5/7] CAN: Add virtual CAN netdevice driver Urs Thuermann
2007-05-30 17:13   ` Patrick McHardy
2007-05-30 18:39     ` Oliver Hartkopp
2007-05-30 19:16       ` Patrick McHardy
2007-05-30 19:48         ` Oliver Hartkopp
2007-05-30 19:58           ` Patrick McHardy
2007-05-31  5:13             ` Oliver Hartkopp
2007-05-31 20:25     ` Oliver Hartkopp
2007-06-01 14:54       ` Patrick McHardy
2007-06-02  9:51         ` Oliver Hartkopp
2007-06-02 19:58           ` Oliver Hartkopp
2007-06-03 19:16             ` Oliver Hartkopp
2007-06-04 11:53               ` Patrick McHardy
2007-06-04 12:44                 ` Urs Thuermann
2007-06-06 11:39                   ` Patrick McHardy
2007-06-04 12:17               ` Urs Thuermann
2007-06-04 16:32                 ` Oliver Hartkopp
2007-06-04 18:26                   ` Oliver Hartkopp
2007-06-02  8:09     ` Urs Thuermann
2007-06-03 18:27       ` Patrick McHardy
2007-05-30 17:28   ` Stephen Hemminger
2007-05-30 18:57     ` Oliver Hartkopp
2007-05-30 19:01       ` Stephen Hemminger
2007-05-30 19:25         ` Oliver Hartkopp
2007-05-16 14:51 [patch 0/7] CAN: Add new PF_CAN protocol family Urs Thuermann
2007-05-16 14:51 ` [patch 5/7] CAN: Add virtual CAN netdevice driver Urs Thuermann

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=469B961B.70309@hartkopp.net \
    --to=oliver@hartkopp.net \
    --cc=davem@davemloft.net \
    --cc=j.hadi123@gmail.com \
    --cc=kaber@trash.net \
    --cc=netdev@vger.kernel.org \
    --cc=oliver.hartkopp@volkswagen.de \
    --cc=urs@isnogud.escape.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.