Path: utzoo!utgpu!jarvis.csri.toronto.edu!mailrus!tut.cis.ohio-state.edu!ucbvax!VAX.FTP.COM!jbvb From: jbvb@VAX.FTP.COM (James Van Bokkelen) Newsgroups: comp.protocols.tcp-ip.ibmpc Subject: Re: SLIP Encoding in the packet drivers Message-ID: <8903142217.AA02942@vax.ftp.com> Date: 14 Mar 89 22:17:29 GMT References: <8903140036.AA01197@sun.soe.clarkson.edu> Sender: daemon@ucbvax.BERKELEY.EDU Organization: The Internet Lines: 39 Date: Mon, 13 Mar 89 19:36:09 EST From: Russ Nelson Reply-To: nelson@clutx.clarkson.edu James-- Should the application or the packet driver perform the SLIP encoding? Also, how do you handle the problem of establishing the serial line connection in the first place? I am thinking that a special pair of functions for SLIP drivers would be useful for talking to the modem -- send single character and receive single character. Then, a special 'dial' program could talk to the modem and establish the connection. -russ This seems right to me, but I am going to post it to PCIP and see if anyone finds gross holes in my reasoning. This approach does imply on-the-fly compression of SLIP_ESC, which is easy to do on char-at-a-time ports. Anyone using DMA on asynch? --------------------------------------------------------------------------- I think that the SLIP framing and byte-stuffing can be viewed as functionally identical to the Ethernet preamble and CRC, which are done in the MAC layer. Thus, on send_packet() the SLIP driver should get passed an array of bytes, sans byte-stuffing or SLIP_END characters, and the access_type() upcall should get passed the same thing. When PPP finally standardizes a protocol type (and maybe LAPB addresses, powers that be spare me), then this will be generated by the application, and passed to the upcall, but the packet driver (or the hardware) will do the checksum/CRC and the byte/bit stuffing necessary for transmission. Regarding dialing, would an establish_connection()/terminate_connection() be enough more general to make it worthwhile to add? It could take a fairly large array as an argument, to be interpreted in a way that depended on the MAC layer in use. I don't know enough about X.25 to know if this is enough for that kind of connection-oriented environment, or not. Comments? jbvb