Hello linux-hams !

It seems to me that there is bug in kernels mkiss module,
at least in kernel 2.2.15.

In /usr/src/linux/drivers/drivers/net/hamradio/mkiss.c
line 350, there is:

                } else if (ax->rbuff[0] & 0x20) {
                        ax->crcmode = CRC_MODE_FLEX;                            

and there is no any other changes to ax->crcmode in code.

PROBLEM #1:
So, if it once detect flexnet crc frame, there is no way back
to get/send non-crc frame.

Usualy there are errors on wire kiss links and such errors can
produce frame that can look like it is flexnet crc, but it is not.
After that it will continue to send flexnet crc frames (with added
two bytes of CRC) and it will make 2 bytes garbage per frame.

On my kiss link (which is not CRC) it switched to flexnet crc after 10min 
to 10hours, and after there are garbage. Then I commented 
/ ax->crcmode = CRC_MODE_FLEX;
and everything works perfectly. 

PROBLEM #2:
Another interesting thing is that after switching to CRC_MODE_FLEX
it contiunue to accept frames from other side that have no CRC bytes,
shouldn't they be ignored ? Is that the idea of CRC ?

There should be a way to go back from flexnet crc mode, shouldn't it ?

Excuse me if I am wrong in something I wrote.

73 de Tihomir, [EMAIL PROTECTED]

Reply via email to