On Sat, 28 Jun 2003, Edouard Gomez wrote:

> > The little omission in atm.c (regarding the congestion-bit) is still there,
> > and I can tell you: I get tons of 'em, leading to tons of CRC-errors.
> > And the length-error in pppoa3 is still there..............
> 
> Just post them, i'll update them if needed. 
> 

Here are the changes to atm.c. I need to spend some more time looking at
the changes for pppoa3.

The only critical bit is the hunk at line 366, the rest is debugging changes.

(The lines might wrap - beware - I'll send direct as an attachment if required.)

Regards,

Tim.


--- atm.c       Thu May 15 20:17:49 2003
+++ atm.c.new   Sat Jun 28 13:01:29 2003
@@ -325,6 +325,7 @@
                                break;
                        }
                }
+               if (i > 0) report(0, REPORT_ERROR|REPORT_DATE, "Junk bytes....\n");
        }
 
 
@@ -339,7 +340,7 @@
 
                /* Skip cells that don't use the same vpi, vci as ours */
                if( vpi != atm_header_get_vpi(src) || vci != atm_header_get_vci(src)) {
-                       report(1, REPORT_INFO|REPORT_DATE, "Cell had wrong 
VPI(%d)/VCI(%d) (OAM?) PTI=0x%.2x\n",
+                       report(0, REPORT_INFO|REPORT_DATE, "Cell had wrong 
VPI(%d)/VCI(%d) (OAM?) PTI=0x%.2x\n",
                                atm_header_get_vpi(src),
                                atm_header_get_vci(src),
                                atm_header_get_pti(src));
@@ -350,6 +351,10 @@
                        continue;
                }
 
+               pti = atm_header_get_clp(src);
+               if (pti > 0) {
+                       report(0, REPORT_ERROR|REPORT_DATE, "Clp bit is ON\n");
+               }
                pti = atm_header_get_pti(src);
 
                /* 
@@ -366,6 +371,11 @@
                        continue;
                }
 
+               /* deal with the congestion bit in user-data cell: take it out; data 
is OK */
+
+               if (pti == 2)  pti = 0;
+               if (pti == 3)  pti = 1;
+
                atm_cell_read(dst, src);
 
                src      += ATM_CELL_TOTAL_SIZE;
@@ -418,7 +428,7 @@
 
        /* If real > expected length, This is most likely a deliberate crack attempt */
        if(real_length > length)
-               return(-1);
+               return(-2);
 
        /* Copy the data */
        if(data != frame)



-- 
God said, "div D = rho, div B = 0, curl E = - @B/@t, curl H = J + @D/@t," 
and there was light.

     http://tjw.hn.org/      http://www.locofungus.btinternet.co.uk/



Liste de diffusion modem ALCATEL SpeedTouch USB
Pour se d�sinscrire : mailto:[EMAIL PROTECTED]

        

Reply via email to