Hi,

    I have been testing *flow-fanout* (v. 0.67) with spoofing (-s) for
Solaris, and I think I have found a bug.
I think the UDP checksum is miscalulated because when a packet is sent
by flow-fanout to a server running in Solaris 8/9 the call "recvfrom"
doesn't get the packet, and when you execute in that server

$ netstat -an | grep -i udp

you can see that variable udpInCksumErrs has increase in 1.

After force the Udp-checksum to 0 (no checksum), everthings works right:

**** function pdu_xmit  in flow-fanout.c****
(...)
      udp_hdr->uh_sum = 0;
/*
      sum = fte->d_sum;
      sum += udp_cksum(ip_hdr, udp_hdr, fte->buf_size+8);

      sum = (sum >> 16) + (sum & 0xffff);
      sum += (sum >> 16);
      udp_hdr->uh_sum = ~sum;
*/
(...)

I have tested in Linux and everthing works right without this workaround

I'm sending a packet, in order to debug the problem

itaim.hi.inet -> osasuna      UDP D=40001 S=61696 LEN=80

           0: 0003 ba09 4205 0003 ba38 3ef8 0800 4500
....B....8>...E.
          16: 0064 e74c 4000 ff11 6399 0a5f 1717 0a5f
[EMAIL PROTECTED]
          32: 04ce f100 9c41 0050 335e 0005 0001 0000
.....A.P3^......
          48: 0000 0000 0000 0000 0000 0000 0000 0000
................
          64: 0000 0000 0000 ffff 0000 0000 0000 0000
................
          80: ff00 0000 0001 0000 0001 0000 0000 ffff
................
          96: 0000 0000 ff00 0000 1100 0000 ff00 0000
................
         112: 0000                                       ..

Thanks
_______________________________________________
Flow-tools mailing list
[EMAIL PROTECTED]
http://mailman.splintered.net/mailman/listinfo/flow-tools

Reply via email to