On di, 16 jul 2019 09:05:18 +0200, Kurt Van Dijck wrote: > On di, 16 jul 2019 06:36:35 +0200, Oleksij Rempel wrote: > > Hi Arthur, > > > > On 15.07.19 16:15, Arthur Guyader wrote: > > >Hello, > > > > > >I encountered a problem when using the claiming address. > > >When an ECU1 with a low name requests an address, it is saved in the kernel cache. > > >If this ECU1 is cut, and we launch our ECU2 which will ask for the same address. > > >He will have no answer from ECU1 and has no trace of him in his cache, so > > >he can consider that the address is free. > > >However, the kernel will consider that the address is busy and generate an > > >error when sending a message. (99 : cannot assign requested address) > > > > > >How would you handle this situation? > > AFAIK, J1939 does not describe a timeout on claimed addresses, so > technically, ECU1 is never really away. > The code will respect the j1939 spec, and will never timeout either on > that. Reading back my own reply, and trying to fix jacd.c, I realize that it is allow to contest an address, and if the remote didn't respond within time, you're the owner. jacd is written like that, so I assume the kernel code is blocking so to avoid unnecessary address claim congestion. It's not nice to put a 'recently seen' notion in kernel to decide if an address claim will problably fail or not, so that justifies to remove the check completely, but it's not nice to allow stupid contests either. I'm undecided wether to add the 'recently seen' or not. The problems you experience would in any case dissapear. Kurt