Documentation Archive Developer
Search

ADC Home > Reference Library > Technical Q&As > Networking > Carbon >

Not Recommended Documentclose button

Important: The information in this document is Not Recommended and should not be used for new development.

Current information on this Reference Library topic can be found here:

Raw IP and Open Transport 2.5.x


Q: My application sends raw IP packets using an Open Transport "rawip" endpoint in IP_HDRINCL mode. Under Open Transport 2.5.x (Mac OS 9.0), the packets never make it to the wire. What's up?

A: Open Transport 2.5 includes a significant upgrade to both the STREAMS infrastructure (Mentat Portable Streams 3.3) and the TCP/IP stack (Mentat TCP/IP 3.5). While we worked hard to ensure compatibility with previously releases of Open Transport, a few things have changed:

  • The original behavior of a raw IP endpoint in IP_HDRINCL mode is defined in the Limitations of the Header-Included Mode section of Inside Macintosh: Networking with Open Transport. Open Transport 2.5.x and beyond change this definition in one minor but significant aspect. The text "Version. This field is forced to a value of 4 to reflect the fact that you're using IP version 4." should now read "Version. You must set this field 4 to reflect the fact that you're using IP version 4."

  • Open Transport now checks that the Total Length field of the IP header is the same as the length of the data supplied to OTSndUData (i.e. udata->udata.len). If they are not the same, OT discards the IP packet without sending it. The debug version of OT will report this event to the STREAMS log driver, which you can view using OTStreamLogViewer.

[Oct 25 1999]