lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite for Android: free password hash cracker in your pocket
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <5b3df9d5-3e65-1114-4b51-9dcc329cbc31@theobroma-systems.com>
Date:   Wed, 14 Mar 2018 10:48:04 +0100
From:   Jakob Unterwurzacher <jakob.unterwurzacher@...obroma-systems.com>
To:     Wolfgang Grandegger <wg@...ndegger.com>
Cc:     Martin Elshuber <martin.elshuber@...obroma-systems.com>,
        Philipp Tomsich <philipp.tomsich@...obroma-systems.com>,
        Marc Kleine-Budde <mkl@...gutronix.de>,
        linux-can@...r.kernel.org, linux-kernel@...r.kernel.org
Subject: Re: [PATCH v2 1/1] can: ucan: add driver for Theobroma Systems UCAN
 devices

On 14.03.18 10:25, Wolfgang Grandegger wrote:
>> Counting the state changes is one thing but you should also generate 
>> error messages for them.
> 
> The usual test here is:
> 
> $ candump -td -e any,0:0,#FFFFFFFF
> 
> should report proper state changes, if you send messages with
> 
> 1. no cable connected
> 2. CAN high and low short-circuited
> 
> Also downwards if the hardware error is gone and you continue to send 
> messages.
Yes, we do, the hardware does it. Testcases:

(1) no cable connected

> root@...399-q7:~# candump -td -e any,0:0,#FFFFFFFF | head -n 1000
>  (000.000000)  can0  178   [0]
>  (000.000410)  can0  20000030   [8]  00 00 00 00 00 00 08 00   ERRORFRAME
> 	transceiver-status
> 	no-acknowledgement-on-tx
> 	error-counter-tx-rx{{8}{0}}
>  (000.000445)  can0  20000030   [8]  00 00 00 00 00 00 10 00   ERRORFRAME
> 	transceiver-status
> 	no-acknowledgement-on-tx
> 	error-counter-tx-rx{{16}{0}}
>  (000.000425)  can0  20000030   [8]  00 00 00 00 00 00 18 00   ERRORFRAME
> 	transceiver-status
> 	no-acknowledgement-on-tx
> 	error-counter-tx-rx{{24}{0}}
>  (000.000451)  can0  20000030   [8]  00 00 00 00 00 00 20 00   ERRORFRAME
> 	transceiver-status
> 	no-acknowledgement-on-tx
> 	error-counter-tx-rx{{32}{0}}
>  (000.000429)  can0  20000030   [8]  00 00 00 00 00 00 28 00   ERRORFRAME
> 	transceiver-status
> 	no-acknowledgement-on-tx
> 	error-counter-tx-rx{{40}{0}}
>  (000.000448)  can0  20000030   [8]  00 00 00 00 00 00 30 00   ERRORFRAME
> 	transceiver-status
> 	no-acknowledgement-on-tx
> 	error-counter-tx-rx{{48}{0}}
>  (000.000433)  can0  20000030   [8]  00 00 00 00 00 00 38 00   ERRORFRAME
> 	transceiver-status
> 	no-acknowledgement-on-tx
> 	error-counter-tx-rx{{56}{0}}
>  (000.000437)  can0  20000030   [8]  00 00 00 00 00 00 40 00   ERRORFRAME
> 	transceiver-status
> 	no-acknowledgement-on-tx
> 	error-counter-tx-rx{{64}{0}}
>  (000.000443)  can0  20000030   [8]  00 00 00 00 00 00 48 00   ERRORFRAME
> 	transceiver-status
> 	no-acknowledgement-on-tx
> 	error-counter-tx-rx{{72}{0}}
>  (000.000437)  can0  20000030   [8]  00 00 00 00 00 00 50 00   ERRORFRAME
> 	transceiver-status
> 	no-acknowledgement-on-tx
> 	error-counter-tx-rx{{80}{0}}
>  (000.000498)  can0  20000030   [8]  00 00 00 00 00 00 58 00   ERRORFRAME
> 	transceiver-status
> 	no-acknowledgement-on-tx
> 	error-counter-tx-rx{{88}{0}}
>  (000.000394)  can0  20000034   [8]  00 0C 00 00 00 00 60 00   ERRORFRAME
> 	controller-problem{rx-error-warning,tx-error-warning}
> 	transceiver-status
> 	no-acknowledgement-on-tx
> 	error-counter-tx-rx{{96}{0}}
>  (000.000433)  can0  20000034   [8]  00 0C 00 00 00 00 68 00   ERRORFRAME
> 	controller-problem{rx-error-warning,tx-error-warning}
> 	transceiver-status
> 	no-acknowledgement-on-tx
> 	error-counter-tx-rx{{104}{0}}
>  (000.000437)  can0  20000034   [8]  00 0C 00 00 00 00 70 00   ERRORFRAME
> 	controller-problem{rx-error-warning,tx-error-warning}
> 	transceiver-status
> 	no-acknowledgement-on-tx
> 	error-counter-tx-rx{{112}{0}}
>  (000.000443)  can0  20000034   [8]  00 0C 00 00 00 00 78 00   ERRORFRAME
> 	controller-problem{rx-error-warning,tx-error-warning}
> 	transceiver-status
> 	no-acknowledgement-on-tx
> 	error-counter-tx-rx{{120}{0}}
>  (000.000444)  can0  20000034   [8]  00 3C 00 00 00 00 80 00   ERRORFRAME
> 	controller-problem{rx-error-warning,tx-error-warning,rx-error-passive,tx-error-passive}
> 	transceiver-status
> 	no-acknowledgement-on-tx
> 	error-counter-tx-rx{{128}{0}}
>  (000.000495)  can0  20000024   [8]  00 3C 00 00 00 00 80 00   ERRORFRAME
> 	controller-problem{rx-error-warning,tx-error-warning,rx-error-passive,tx-error-passive}
> 	no-acknowledgement-on-tx
> 	error-counter-tx-rx{{128}{0}}

Repeats ad infinitum...


(1b) cable gets connected:

>  (000.000883)  can0  20000034   [8]  00 3C 00 00 00 00 80 00   ERRORFRAME
> 	controller-problem{rx-error-warning,tx-error-warning,rx-error-passive,tx-error-passive}
> 	transceiver-status
> 	no-acknowledgement-on-tx
> 	error-counter-tx-rx{{128}{0}}
>  (000.000996)  can0  20000004   [8]  00 0C 00 00 00 00 7F 00   ERRORFRAME
> 	controller-problem{rx-error-warning,tx-error-warning}
> 	error-counter-tx-rx{{127}{0}}


(2) short circuit

> root@...399-q7:~# candump -td -e any,0:0,#FFFFFFFF | head -n 1000
>  (000.000000)  can0  6AB   [7]  33 39 62 29 00 F5 31
>  (000.000201)  can0  20000018   [8]  00 00 08 00 00 00 18 00   ERRORFRAME
> 	protocol-violation{{tx-dominant-bit-error}{}}
> 	transceiver-status
> 	error-counter-tx-rx{{24}{0}}
>  (000.000141)  can0  2000000C   [8]  00 3C 08 00 00 00 88 00   ERRORFRAME
> 	controller-problem{rx-error-warning,tx-error-warning,rx-error-passive,tx-error-passive}
> 	protocol-violation{{tx-dominant-bit-error}{}}
> 	error-counter-tx-rx{{136}{0}}
>  (000.000202)  can0  2000001C   [8]  00 3C 08 00 00 00 90 00   ERRORFRAME
> 	controller-problem{rx-error-warning,tx-error-warning,rx-error-passive,tx-error-passive}
> 	protocol-violation{{tx-dominant-bit-error}{}}
> 	transceiver-status
> 	error-counter-tx-rx{{144}{0}}
>  (000.000174)  can0  2000001C   [8]  00 3C 08 00 00 00 98 00   ERRORFRAME
> 	controller-problem{rx-error-warning,tx-error-warning,rx-error-passive,tx-error-passive}
> 	protocol-violation{{tx-dominant-bit-error}{}}
> 	transceiver-status
> 	error-counter-tx-rx{{152}{0}}
>  (000.000229)  can0  2000001C   [8]  00 3C 08 00 00 00 A0 00   ERRORFRAME
> 	controller-problem{rx-error-warning,tx-error-warning,rx-error-passive,tx-error-passive}
> 	protocol-violation{{tx-dominant-bit-error}{}}
> 	transceiver-status
> 	error-counter-tx-rx{{160}{0}}
>  (000.000191)  can0  2000001C   [8]  00 3C 08 00 00 00 A8 00   ERRORFRAME
> 	controller-problem{rx-error-warning,tx-error-warning,rx-error-passive,tx-error-passive}
> 	protocol-violation{{tx-dominant-bit-error}{}}
> 	transceiver-status
> 	error-counter-tx-rx{{168}{0}}
>  (000.000227)  can0  2000001C   [8]  00 3C 08 00 00 00 B0 00   ERRORFRAME
> 	controller-problem{rx-error-warning,tx-error-warning,rx-error-passive,tx-error-passive}
> 	protocol-violation{{tx-dominant-bit-error}{}}
> 	transceiver-status
> 	error-counter-tx-rx{{176}{0}}
>  (000.000204)  can0  2000001C   [8]  00 3C 08 00 00 00 B8 00   ERRORFRAME
> 	controller-problem{rx-error-warning,tx-error-warning,rx-error-passive,tx-error-passive}
> 	protocol-violation{{tx-dominant-bit-error}{}}
> 	transceiver-status
> 	error-counter-tx-rx{{184}{0}}
>  (000.000200)  can0  2000001C   [8]  00 3C 08 00 00 00 C0 00   ERRORFRAME
> 	controller-problem{rx-error-warning,tx-error-warning,rx-error-passive,tx-error-passive}
> 	protocol-violation{{tx-dominant-bit-error}{}}
> 	transceiver-status
> 	error-counter-tx-rx{{192}{0}}
>  (000.000216)  can0  2000001C   [8]  00 3C 08 00 00 00 C8 00   ERRORFRAME
> 	controller-problem{rx-error-warning,tx-error-warning,rx-error-passive,tx-error-passive}
> 	protocol-violation{{tx-dominant-bit-error}{}}
> 	transceiver-status
> 	error-counter-tx-rx{{200}{0}}
>  (000.000214)  can0  2000001C   [8]  00 3C 08 00 00 00 D0 00   ERRORFRAME
> 	controller-problem{rx-error-warning,tx-error-warning,rx-error-passive,tx-error-passive}
> 	protocol-violation{{tx-dominant-bit-error}{}}
> 	transceiver-status
> 	error-counter-tx-rx{{208}{0}}
>  (000.000188)  can0  2000001C   [8]  00 3C 08 00 00 00 D8 00   ERRORFRAME
> 	controller-problem{rx-error-warning,tx-error-warning,rx-error-passive,tx-error-passive}
> 	protocol-violation{{tx-dominant-bit-error}{}}
> 	transceiver-status
> 	error-counter-tx-rx{{216}{0}}
>  (000.000206)  can0  2000001C   [8]  00 3C 08 00 00 00 E0 00   ERRORFRAME
> 	controller-problem{rx-error-warning,tx-error-warning,rx-error-passive,tx-error-passive}
> 	protocol-violation{{tx-dominant-bit-error}{}}
> 	transceiver-status
> 	error-counter-tx-rx{{224}{0}}
>  (000.000202)  can0  2000001C   [8]  00 3C 08 00 00 00 E8 00   ERRORFRAME
> 	controller-problem{rx-error-warning,tx-error-warning,rx-error-passive,tx-error-passive}
> 	protocol-violation{{tx-dominant-bit-error}{}}
> 	transceiver-status
> 	error-counter-tx-rx{{232}{0}}
>  (000.000218)  can0  2000001C   [8]  00 3C 08 00 00 00 F0 00   ERRORFRAME
> 	controller-problem{rx-error-warning,tx-error-warning,rx-error-passive,tx-error-passive}
> 	protocol-violation{{tx-dominant-bit-error}{}}
> 	transceiver-status
> 	error-counter-tx-rx{{240}{0}}
>  (000.000203)  can0  2000001C   [8]  00 3C 08 00 00 00 F8 00   ERRORFRAME
> 	controller-problem{rx-error-warning,tx-error-warning,rx-error-passive,tx-error-passive}
> 	protocol-violation{{tx-dominant-bit-error}{}}
> 	transceiver-status
> 	error-counter-tx-rx{{248}{0}}
>  (000.007153)  can0  2000004C   [8]  00 3C 08 00 00 00 F8 00   ERRORFRAME
> 	controller-problem{rx-error-warning,tx-error-warning,rx-error-passive,tx-error-passive}
> 	protocol-violation{{tx-dominant-bit-error}{}}
> 	bus-off
> 	error-counter-tx-rx{{248}{0}}

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ