According to SAE-J1939-82 2015 (A.3.6 Row 2), a receiver should never
send TP.CM_CTS to the global address, so we can add a check in
j1939_can_recv() to drop messages with invalid source address.
Fixes: 9d71dd0c7009 ("can: add support of SAE J1939 protocol")
Signed-off-by: Zhang Changzhong <redacted>
---
net/can/j1939/main.c | 4 ++++
1 file changed, 4 insertions(+)
@@ -75,6 +75,10 @@ static void j1939_can_recv(struct sk_buff *iskb, void *data)skcb->addr.pgn=(cf->can_id>>8)&J1939_PGN_MAX;/* set default message type */skcb->addr.type=J1939_TP;+if(!j1939_address_is_valid(skcb->addr.sa))+/* ignore messages whose sa is broadcast address */+gotodone;+if(j1939_pgn_is_pdu1(skcb->addr.pgn)){/* Type 1: with destination address */skcb->addr.da=skcb->addr.pgn;
The TP.CM_BAM message must be sent to the global address [1], so add a
check to drop TP.CM_BAM sent to a non-global address.
Without this patch, the receiver will treat the following packets as
normal RTS/CTS tranport:
18EC0102#20090002FF002301
18EB0102#0100000000000000
18EB0102#020000FFFFFFFFFF
[1] SAE-J1939-82 2015 A.3.3 Row 1.
Fixes: 9d71dd0c7009 ("can: add support of SAE J1939 protocol")
Signed-off-by: Zhang Changzhong <redacted>
---
net/can/j1939/transport.c | 2 ++
1 file changed, 2 insertions(+)
This patch prevents BAM transport from being closed by receiving abort
message, as specified in SAE-J1939-82 2015 (A.3.3 Row 4).
Fixes: 9d71dd0c7009 ("can: add support of SAE J1939 protocol")
Signed-off-by: Zhang Changzhong <redacted>
---
net/can/j1939/transport.c | 3 +++
1 file changed, 3 insertions(+)
On Thu, Oct 21, 2021 at 10:04:15PM +0800, Zhang Changzhong wrote:
This patch prevents BAM transport from being closed by receiving abort
message, as specified in SAE-J1939-82 2015 (A.3.3 Row 4).
Fixes: 9d71dd0c7009 ("can: add support of SAE J1939 protocol")
Signed-off-by: Zhang Changzhong <redacted>
On Thu, Oct 21, 2021 at 10:04:16PM +0800, Zhang Changzhong wrote:
According to SAE-J1939-82 2015 (A.3.6 Row 2), a receiver should never
send TP.CM_CTS to the global address, so we can add a check in
j1939_can_recv() to drop messages with invalid source address.
Fixes: 9d71dd0c7009 ("can: add support of SAE J1939 protocol")
Signed-off-by: Zhang Changzhong <redacted>
NACK. This will break Address Claiming, where first message is SA == 0xff
@@ -75,6 +75,10 @@ static void j1939_can_recv(struct sk_buff *iskb, void *data)skcb->addr.pgn=(cf->can_id>>8)&J1939_PGN_MAX;/* set default message type */skcb->addr.type=J1939_TP;+if(!j1939_address_is_valid(skcb->addr.sa))+/* ignore messages whose sa is broadcast address */+gotodone;+if(j1939_pgn_is_pdu1(skcb->addr.pgn)){/* Type 1: with destination address */skcb->addr.da=skcb->addr.pgn;
On Thu, Oct 21, 2021 at 10:04:17PM +0800, Zhang Changzhong wrote:
quoted hunk
The TP.CM_BAM message must be sent to the global address [1], so add a
check to drop TP.CM_BAM sent to a non-global address.
Without this patch, the receiver will treat the following packets as
normal RTS/CTS tranport:
18EC0102#20090002FF002301
18EB0102#0100000000000000
18EB0102#020000FFFFFFFFFF
[1] SAE-J1939-82 2015 A.3.3 Row 1.
Fixes: 9d71dd0c7009 ("can: add support of SAE J1939 protocol")
Signed-off-by: Zhang Changzhong <redacted>
---
net/can/j1939/transport.c | 2 ++
1 file changed, 2 insertions(+)
On Thu, Oct 21, 2021 at 10:04:15PM +0800, Zhang Changzhong wrote:
quoted hunk
This patch prevents BAM transport from being closed by receiving abort
message, as specified in SAE-J1939-82 2015 (A.3.3 Row 4).
Fixes: 9d71dd0c7009 ("can: add support of SAE J1939 protocol")
Signed-off-by: Zhang Changzhong <redacted>
---
net/can/j1939/transport.c | 3 +++
1 file changed, 3 insertions(+)
On Thu, Oct 21, 2021 at 10:04:17PM +0800, Zhang Changzhong wrote:
quoted
The TP.CM_BAM message must be sent to the global address [1], so add a
check to drop TP.CM_BAM sent to a non-global address.
Without this patch, the receiver will treat the following packets as
normal RTS/CTS tranport:
18EC0102#20090002FF002301
18EB0102#0100000000000000
18EB0102#020000FFFFFFFFFF
[1] SAE-J1939-82 2015 A.3.3 Row 1.
Fixes: 9d71dd0c7009 ("can: add support of SAE J1939 protocol")
Signed-off-by: Zhang Changzhong <redacted>
---
net/can/j1939/transport.c | 2 ++
1 file changed, 2 insertions(+)
On Thu, Oct 21, 2021 at 10:04:16PM +0800, Zhang Changzhong wrote:
quoted
According to SAE-J1939-82 2015 (A.3.6 Row 2), a receiver should never
send TP.CM_CTS to the global address, so we can add a check in
j1939_can_recv() to drop messages with invalid source address.
Fixes: 9d71dd0c7009 ("can: add support of SAE J1939 protocol")
Signed-off-by: Zhang Changzhong <redacted>
NACK. This will break Address Claiming, where first message is SA == 0xff
I know that 0xfe can be used as a source address, but which message has a source
address of 0xff?
According to SAE-J1939-81 2017 4.2.2.8:
The network address 255, also known as the Global address, is permitted in the
Destination Address field of the SAE J1939 message identifier but never in the
Source Address field.
@@ -75,6 +75,10 @@ static void j1939_can_recv(struct sk_buff *iskb, void *data)skcb->addr.pgn=(cf->can_id>>8)&J1939_PGN_MAX;/* set default message type */skcb->addr.type=J1939_TP;+if(!j1939_address_is_valid(skcb->addr.sa))+/* ignore messages whose sa is broadcast address */+gotodone;+if(j1939_pgn_is_pdu1(skcb->addr.pgn)){/* Type 1: with destination address */skcb->addr.da=skcb->addr.pgn;
Hi,
On Mon, Oct 25, 2021 at 03:30:57PM +0800, Zhang Changzhong wrote:
On 2021/10/22 18:23, Oleksij Rempel wrote:
quoted
On Thu, Oct 21, 2021 at 10:04:16PM +0800, Zhang Changzhong wrote:
quoted
According to SAE-J1939-82 2015 (A.3.6 Row 2), a receiver should never
send TP.CM_CTS to the global address, so we can add a check in
j1939_can_recv() to drop messages with invalid source address.
Fixes: 9d71dd0c7009 ("can: add support of SAE J1939 protocol")
Signed-off-by: Zhang Changzhong <redacted>
NACK. This will break Address Claiming, where first message is SA == 0xff
I know that 0xfe can be used as a source address, but which message has a source
address of 0xff?
According to SAE-J1939-81 2017 4.2.2.8:
The network address 255, also known as the Global address, is permitted in the
Destination Address field of the SAE J1939 message identifier but never in the
Source Address field.
Hi,
On Mon, Oct 25, 2021 at 03:30:57PM +0800, Zhang Changzhong wrote:
quoted
On 2021/10/22 18:23, Oleksij Rempel wrote:
quoted
On Thu, Oct 21, 2021 at 10:04:16PM +0800, Zhang Changzhong wrote:
quoted
According to SAE-J1939-82 2015 (A.3.6 Row 2), a receiver should never
send TP.CM_CTS to the global address, so we can add a check in
j1939_can_recv() to drop messages with invalid source address.
Fixes: 9d71dd0c7009 ("can: add support of SAE J1939 protocol")
Signed-off-by: Zhang Changzhong <redacted>
NACK. This will break Address Claiming, where first message is SA == 0xff
I know that 0xfe can be used as a source address, but which message has a source
address of 0xff?
According to SAE-J1939-81 2017 4.2.2.8:
The network address 255, also known as the Global address, is permitted in the
Destination Address field of the SAE J1939 message identifier but never in the
Source Address field.
On Thu, Oct 28, 2021 at 03:33:21PM +0800, Zhang Changzhong wrote:
On 2021/10/28 14:51, Oleksij Rempel wrote:
quoted
Hi,
On Mon, Oct 25, 2021 at 03:30:57PM +0800, Zhang Changzhong wrote:
quoted
On 2021/10/22 18:23, Oleksij Rempel wrote:
quoted
On Thu, Oct 21, 2021 at 10:04:16PM +0800, Zhang Changzhong wrote:
quoted
According to SAE-J1939-82 2015 (A.3.6 Row 2), a receiver should never
send TP.CM_CTS to the global address, so we can add a check in
j1939_can_recv() to drop messages with invalid source address.
Fixes: 9d71dd0c7009 ("can: add support of SAE J1939 protocol")
Signed-off-by: Zhang Changzhong <redacted>
NACK. This will break Address Claiming, where first message is SA == 0xff
I know that 0xfe can be used as a source address, but which message has a source
address of 0xff?
According to SAE-J1939-81 2017 4.2.2.8:
The network address 255, also known as the Global address, is permitted in the
Destination Address field of the SAE J1939 message identifier but never in the
Source Address field.