Re: PPPoE and PPPoA as Modem Driver
Re: PPPoE and PPPoA as Modem Driver
- Subject: Re: PPPoE and PPPoA as Modem Driver
- From: Quinn <email@hidden>
- Date: Thu, 31 Jan 2002 17:11:31 +0000
At 11:02 -0500 31/1/02, email@hidden wrote:
If you could provide a simple explanatation of
exactly what DLPI functionality we need to use in converting from TPI,
that would help a whole bunch.
DLPI is not my speciality, but I'll give it a go. Remember, you're
the client and the Ethernet driver is acting as the provider. As a
rule STREAMS protocols are driven by the client, so you're in charge.
To a large extent this means that if you don't send a particular type
of message you don't have to deal with the possibility of a response.
o DL_INFO_REQ -- You probably want to send one of these to make sure
that the driver meets your requirements, ie it's connection less
service with 6 byte hardware addresses. The driver will respond with
a DL_INFO_ACK.
o DL_ATTACH_REQ -- If the driver is style 2 (which you determine from
the DL_INFO_ACK), you should send an DL_ATTACH_REQ with a PPA of 0
before you attempt to bind.
o DL_DETACH_REQ -- If you attached, you should detach after unbinding.
o DL_BIND_REQ -- You probably want to bind to the driver when *your*
client (ie PPP) connects. The dl_sap field corresponds to the
Ethernet protocol type you want to bind to. The driver will respond
with a DL_BIND_ACK.
o DL_UNBIND_REQ -- Unbind when you're done.
o DL_OK_ACK,
DL_ERROR_ACK -- These come back from the driver in response to various
o DL_UNITDATA_REQ -- Use this to send data to the Ethernet driver.
o DL_UNITDATA_IND -- The Ethernet driver will send you data using this.
o DL_UDERROR_IND -- You probably want to ignore these.
o DL_SUBS_BIND_REQ,
DL_SUBS_BIND_ACK,
DL_SUBS_UNBIND_REQ -- These are only relevant if you want to bind
to 802-style addresses, for example AppleTalk. PPPoE uses a real
Ethernet protocol, so you shouldn't need to do this.
o DL_ENABMULTI_REQ,
DL_DISABMULTI_REQ -- Multicast stuff, which you're probably not
interested in.
o DL_PROMISCON_REQ,
DL_PROMISCOFF_REQ -- Promiscuous mode stuff, which you're
definitely not interested in.
o DL_UDQOS_REQ,
DL_CONNECT_REQ,
DL_CONNECT_IND,
DL_CONNECT_RES,
DL_CONNECT_CON,
DL_TOKEN_REQ,
DL_TOKEN_ACK,
DL_DISCONNECT_REQ,
DL_DISCONNECT_IND,
DL_RESET_REQ,
DL_RESET_IND,
DL_RESET_RES,
DL_RESET_CON,
DL_DATA_ACK_REQ,
DL_DATA_ACK_IND,
DL_DATA_ACK_STATUS_IND,
DL_REPLY_REQ,
DL_REPLY_IND,
DL_REPLY_STATUS_IND,
DL_REPLY_UPDATE_REQ,
DL_REPLY_UPDATE_STATUS_IND,
DL_XID_REQ,
DL_XID_IND,
DL_XID_RES,
DL_XID_CON,
DL_TEST_REQ,
DL_TEST_IND,
DL_TEST_RES,
DL_TEST_CON,
DL_PHYS_ADDR_REQ,
DL_PHYS_ADDR_ACK,
DL_SET_PHYS_ADDR_REQ,
DL_GET_STATISTICS_REQ,
DL_GET_STATISTICS_ACK -- I believe that you can ignore all of these.
S+E
--
Quinn "The Eskimo!" <
http://www.apple.com/developer/>
Apple Developer Technical Support * Networking, Communications, Hardware