Hi All
?
Last night I was experimenting with someone locally who was trying to connect to my LinBPQ? node and had some software issues their side which revealed some weird behaviour within BPQ. I'm not sure if this is a bug, misconfiguration or misunderstanding.
?
To replicate I'm using LinBPQ as the node (2E0SIP), and for the user / client (M6IJY) I'm using a Kenwood TH-D7 with built in TNC. I've pasted the logs from Dire Wolf to show the raw packets.
?
First off, the user connects to the LinBPQ node and enters INFO. Everything works as expected, the user connects, can enter commands, and receives the expected output:
?
M6IJY audio level = 51(27/17)? ?[NONE]? ?_|||||||_
[0.4 09:44:48] M6IJY>2E0SIP:(SABM cmd, p=1)
[0L 09:44:49] 2E0SIP>M6IJY:(UA res, f=1)
[0L 09:44:49] 2E0SIP>M6IJY:(I cmd, n(s)=0, n(r)=0, p=1, pid=0xf0)Welcome to 2E0SIP's Test Packet Node. <0x0d>Type INFO for information or<0x0d>? for list of available commands.<0x0d>
?
M6IJY audio level = 51(26/18)? ?[NONE]? ?__||||||_
[0.4 09:44:51] M6IJY>2E0SIP:(RR res, n(r)=1, f=1)
?
M6IJY audio level = 50(26/18)? ?[NONE]? ?_||||||__
[0.3 09:44:56] M6IJY>2E0SIP:(I cmd, n(s)=0, n(r)=1, p=1, pid=0xf0)INFO<0x0d>
[0L 09:44:56] 2E0SIP>M6IJY:(RR res, n(r)=1, f=1)
[0L 09:44:56] 2E0SIP>M6IJY:(I cmd, n(s)=1, n(r)=1, p=0, pid=0xf0)2E0SIP} A Test Packet Node. Not much to see here, but type <0x0d>SYSCHAT to enter a 1:1 chat with the SYSOP, 2E0SIP<0x0d><0x0d>Location: IO91SP
[0L 09:44:57] 2E0SIP>M6IJY:(I cmd, n(s)=2, n(r)=1, p=1, pid=0xf0)<0x0d>Contact: matthew@...<0x0d>Web: packet.oarc.uk<0x0d><0x0d>
?
M6IJY audio level = 50(26/18)? ?[NONE]? ?_|||||||_
[0.4 09:44:59] M6IJY>2E0SIP:(RR res, n(r)=3, f=1)
?
?
Then if I force the user to think it has disconnected without actually sending a disconnect command to the node, then connect again, things go haywire. In my case I simulate this by resetting the user side TNC so it forgets its in a connected state. Then connect again.
?
When the user connects the node responds with its CTEXT, but all subsequent commands are acknowledged(?) with an RR response, but don't otherwise respond as expected:
?
M6IJY audio level = 50(26/18)? ?[NONE]? ?__||||||_
[0.4 09:46:15] M6IJY>2E0SIP:(SABM cmd, p=1)
[0L 09:46:16] 2E0SIP>M6IJY:(UA res, f=1)
[0L 09:46:16] 2E0SIP>M6IJY:(I cmd, n(s)=0, n(r)=0, p=1, pid=0xf0)Welcome to 2E0SIP's Test Packet Node. <0x0d>Type INFO for information or<0x0d>? for list of available commands.<0x0d>
?
M6IJY audio level = 51(26/18)? ?[NONE]? ?__|||||__
[0.4 09:46:18] M6IJY>2E0SIP:(RR res, n(r)=1, f=1)
?
M6IJY audio level = 50(26/18)? ?[NONE]? ?_|||||||_
[0.4 09:46:28] M6IJY>2E0SIP:(I cmd, n(s)=0, n(r)=1, p=1, pid=0xf0)INFO<0x0d>
[0L 09:46:28] 2E0SIP>M6IJY:(RR res, n(r)=1, f=1)
?
M6IJY audio level = 50(26/18)? ?[NONE]? ?_|||||||_
[0.4 09:46:34] M6IJY>2E0SIP:(I cmd, n(s)=1, n(r)=1, p=1, pid=0xf0)?<0x0d>
[0L 09:46:35] 2E0SIP>M6IJY:(RR res, n(r)=2, f=1)
?
M6IJY audio level = 51(27/18)? ?[NONE]? ?_|||||||_
[0.4 09:46:40] M6IJY>2E0SIP:(I cmd, n(s)=2, n(r)=1, p=1, pid=0xf0)INFO<0x0d>
[0L 09:46:41] 2E0SIP>M6IJY:(RR res, n(r)=3, f=1
?
Things then remain in this broken state until I issue a DISCONNECT command. Subsequent reconnects then work as expected, assuming they're cleanly disconnected.
?
Does anyone have any ideas or suggestions?
?
Thanks
Matthew