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