* candump -x: brs esi is set on non-canfd interfaces
@ 2013-01-22 7:55 Alexander Stein
2013-01-22 8:44 ` Oliver Hartkopp
0 siblings, 1 reply; 4+ messages in thread
From: Alexander Stein @ 2013-01-22 7:55 UTC (permalink / raw)
To: linux-can
Hello,
a student noticed that during his CANopen SDO transfer traffic candump sometimes shows e.g.
> (000.000124) can0 TX B E 641 [8] 00 32 33 34 35 36 37 38
while on a non-canfd interfaces. It seem to occur at some time and disappears again for one SDO transfer and it occurs for another transfer and stays forever. I see that candump always uses struct canfd_frame, but AFAICS the flags member should not be set at all, as alloc_can_skb does a memset on struct can_frame. So the padding bytes in can_frame are zero which are used for flags in canfd_frame.
When printing flags directly it is set to 0x7F. Has anybody an idea what could cause this? I could find any position which would manipulate the flags byte.
Best regards,
Alexander
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: candump -x: brs esi is set on non-canfd interfaces
2013-01-22 7:55 candump -x: brs esi is set on non-canfd interfaces Alexander Stein
@ 2013-01-22 8:44 ` Oliver Hartkopp
2013-01-22 8:58 ` Alexander Stein
0 siblings, 1 reply; 4+ messages in thread
From: Oliver Hartkopp @ 2013-01-22 8:44 UTC (permalink / raw)
To: Alexander Stein; +Cc: linux-can
Am 22.01.2013 08:55, schrieb Alexander Stein:
> a student noticed that during his CANopen SDO transfer traffic candump sometimes shows e.g.
>> (000.000124) can0 TX B E 641 [8] 00 32 33 34 35 36 37 38
> while on a non-canfd interfaces. It seem to occur at some time and disappears again for one SDO transfer and it occurs for another transfer and stays forever. I see that candump always uses struct canfd_frame, but AFAICS the flags member should not be set at all, as alloc_can_skb does a memset on struct can_frame. So the padding bytes in can_frame are zero which are used for flags in canfd_frame.
> When printing flags directly it is set to 0x7F. Has anybody an idea what could cause this? I could find any position which would manipulate the flags byte.
>
Is it possible that you generate that CAN frame on the local host?
If you do not zero the struct CAN frame before sending it e.g. via CAN_RAW
socket this could be an idea where it comes from.
Because as you already pointed out alloc_can_skb() initializes the struct
properly. But this only is relevant from CAN frames from 'the outside'.
Best regards,
Oliver
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: candump -x: brs esi is set on non-canfd interfaces
2013-01-22 8:44 ` Oliver Hartkopp
@ 2013-01-22 8:58 ` Alexander Stein
2013-01-24 9:01 ` Alexander Stein
0 siblings, 1 reply; 4+ messages in thread
From: Alexander Stein @ 2013-01-22 8:58 UTC (permalink / raw)
To: Oliver Hartkopp; +Cc: linux-can
Hello Oliver,
On Tuesday 22 January 2013 09:44:09, Oliver Hartkopp wrote:
> Am 22.01.2013 08:55, schrieb Alexander Stein:
>
> > a student noticed that during his CANopen SDO transfer traffic candump sometimes shows e.g.
> >> (000.000124) can0 TX B E 641 [8] 00 32 33 34 35 36 37 38
> > while on a non-canfd interfaces. It seem to occur at some time and disappears again for one SDO transfer and it occurs for another transfer and stays forever. I see that candump always uses struct canfd_frame, but AFAICS the flags member should not be set at all, as alloc_can_skb does a memset on struct can_frame. So the padding bytes in can_frame are zero which are used for flags in canfd_frame.
> > When printing flags directly it is set to 0x7F. Has anybody an idea what could cause this? I could find any position which would manipulate the flags byte.
> >
>
> Is it possible that you generate that CAN frame on the local host?
> If you do not zero the struct CAN frame before sending it e.g. via CAN_RAW
> socket this could be an idea where it comes from.
>
> Because as you already pointed out alloc_can_skb() initializes the struct
> properly. But this only is relevant from CAN frames from 'the outside'.
I don't know about the details that much, but you actually might be right. I will forward your suggestion and reply with the response.
Thanks so far.
Alexander
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: candump -x: brs esi is set on non-canfd interfaces
2013-01-22 8:58 ` Alexander Stein
@ 2013-01-24 9:01 ` Alexander Stein
0 siblings, 0 replies; 4+ messages in thread
From: Alexander Stein @ 2013-01-24 9:01 UTC (permalink / raw)
To: Oliver Hartkopp; +Cc: linux-can
On Tuesday 22 January 2013 09:58:54, Alexander Stein wrote:
> Hello Oliver,
>
> On Tuesday 22 January 2013 09:44:09, Oliver Hartkopp wrote:
> > Am 22.01.2013 08:55, schrieb Alexander Stein:
> >
> > > a student noticed that during his CANopen SDO transfer traffic candump sometimes shows e.g.
> > >> (000.000124) can0 TX B E 641 [8] 00 32 33 34 35 36 37 38
> > > while on a non-canfd interfaces. It seem to occur at some time and disappears again for one SDO transfer and it occurs for another transfer and stays forever. I see that candump always uses struct canfd_frame, but AFAICS the flags member should not be set at all, as alloc_can_skb does a memset on struct can_frame. So the padding bytes in can_frame are zero which are used for flags in canfd_frame.
> > > When printing flags directly it is set to 0x7F. Has anybody an idea what could cause this? I could find any position which would manipulate the flags byte.
> > >
> >
> > Is it possible that you generate that CAN frame on the local host?
> > If you do not zero the struct CAN frame before sending it e.g. via CAN_RAW
> > socket this could be an idea where it comes from.
> >
> > Because as you already pointed out alloc_can_skb() initializes the struct
> > properly. But this only is relevant from CAN frames from 'the outside'.
>
> I don't know about the details that much, but you actually might be right. I will forward your suggestion and reply with the response.
Oliver, you were right. This issue was raised by local CAN frames and a memset on the struct solves this annoyance. Thanks for the hint.
Regards,
Alexander
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2013-01-24 9:01 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2013-01-22 7:55 candump -x: brs esi is set on non-canfd interfaces Alexander Stein
2013-01-22 8:44 ` Oliver Hartkopp
2013-01-22 8:58 ` Alexander Stein
2013-01-24 9:01 ` Alexander Stein
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).