[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#606338: ax25ipd transmission bug



Am Donnerstag, den 09. Dezember 2010 um 01:47:01 Uhr, schrieb John Goerzen <jgoerzen@complete.org> in <[🔎] 4D002705.2020507@complete.org>:
> On 12/08/2010 06:35 PM, Thomas Osterried wrote:
> > Which kernel version do you use?
> 
> 2.6.32
> 
> > If your way is
> >    kernel-ax25 ->  kissattach ->  pty ->  ax25ipd ->  inet
> > then kiss packets from kernel-ax25 ->  pty never have the kiss byte != \0,
> > except kiss param commands (i.e. setting txdeleay).
> 
> I'm not sure if that's exactly it or not.
> 
> I wrote this script:
> 
> #!/bin/bash
> 
> tmpfile="/tmp/$$.startipd.pts"
> 
> kissnetd -p2 > "$tmpfile" &
> 
> sleep 2
> 
> attachthem () {
> 	read PTS1 PTS2
> 	echo "Starting ipd on $PTS1 and $PTS2"
> 	kissattach -l $PTS1 ipct 44.254.254.20
> 	sleep 1
> 	sed -i "s,device /dev/.*$,device $PTS2," /etc/ax25/ax25ipd.conf
> 	ax25ipd
> }
> 
> tail -n 1 $tmpfile | attachthem
> rm $tmpfile
> 
> Is this not the proper way to go?

Yes. It's the way I described.

> > "if ((*iframe&  0xf) == 0)"
> > is not the correct way. Because:
> > 1. it will discard all kiss frames with kiss byte == 0 (!!!) - these are all ax25 packets. This will break every system except yours.
> 
> I think you have your logic reversed.

Ooops. Yes, you're right.

> If it passes this test, it is 
> processed.  ((0 & 0xf) == 0) is true, after all.  But Ralf probably 
> ought to chime in here.

Yep. Sorry for the confusion. It was me :-S

> > Could you send us a dump what's really coming from the pty?
> 
> I would love to, but I can't seem to reproduce the problem any more.  I 
> tried to reproduce it when I made it log the value of the bytes it was 
> rejecting, but that didn't work.  I can try to recreate my exact steps 
> here and see if I can make it happen again.  I am unsure why it changed. 
>   Does kissnetd or kissattach ever set the port bits?

No. They only tell the kernel to make a device and send data to the given serial port.
Every data frame the kernel leaves has the kiss byte set to 0, regardless how many ports you have attached.

73,
	- Thomas  dl9sau



Reply to: