Lenin writes:
>                 v4hdr->ip_src.s_net = 1;
>                 v4hdr->ip_src.s_host = 1;
>                 v4hdr->ip_src.s_lh = 1;
>                 v4hdr->ip_src.s_impno = 104;

I'm impressed that someone's using an IMP number, but I'd suggest
treating the field as a simple s_addr instead.

>                 /* Total length of the packet. Includes TCP hdr + data too */
>                 v4hdr->ip_len = sizeof(*v4hdr) + sizeof(*tcp);

I would have expected:

        len = sizeof (*v4hdr) + msgsize(m);
        v4hdr->ip_len = htons(len);

>                 v4hdr->ip_tos = 0;

Why not copy the TClass from the v6 header?

>                 v4hdr->ip_id = 0;

Handling v6 fragments is going to be interesting, I think.

>                 /* No fragmentation */
>                 v4hdr->ip_off = 0x04;

This doesn't look right.  Is this on SPARC or x86?  Maybe what was
meant was:

        v4hdr->ip_off = htons(IP_DF);

> Any pointers will really be helpful.

Look at "netstat -s" for errors.  That'd be a fair place to start.

Try using the "mib" dtrace provider to locate where the packets are
dropping.

Read the source associated with the functions that dtrace identifies.

-- 
James Carlson, Solaris Networking              <[EMAIL PROTECTED]>
Sun Microsystems / 1 Network Drive         71.232W   Vox +1 781 442 2084
MS UBUR02-212 / Burlington MA 01803-2757   42.496N   Fax +1 781 442 1677
_______________________________________________
networking-discuss mailing list
networking-discuss@opensolaris.org

Reply via email to