Question on WAN and PPP in NT

Hi all,

the WAN documentation in both NT4 and w2k DDK does not provide any
explanation on what piece of code is responsible for PPP logon/handshake
sequence
(PAP, CHAP, compression/encryption type negotiation etc).
Is it done as a part of TAPI call making or after it? Must the TAPI
connection establishment precede the PPP handshake or must it include PPP
handshake in it?
Am I right that the logon information is passed via TAPI as UserUserData
or this is wrong?
Is NDIS_WAN_LINE_UP indication done after the PPP handshake or before
it?
Who does the PPP handshake? NDISWAN or user-mode code? If second - then
the user-mode code must have some means of accessing the raw bytes on the
line - who provides such means?
Am I right that the line exists as a file handle suitable for
Read/WriteFile and the user-mode PPP handshake code just reads and writes
bytes to it?
Or there are special NDISWAN IOCTLs for it?
What is the WAN miniport role in all of this? What WAN miniport’s
routines will be called during the PPP handshake?
What about the connection-oriented miniports? What if establishing a
media-level connection involves some kind of logon authentication? Who must
do the logon sequence over the incomplete line? The call manager?

Another question - am I right that NDISTAPI/NDPROXY is not used for
usual modem dialup connections, that the “TAPI part” of this is Unimodem and
not NDISTAPI, and that the established connection is passed to the
NDISWAN/AsyncMac by some undocumented proprietary IOCTLs?
In UNIX, it is done exactly so, the user-mode app dials the modem, then
does the handshake (using the line as an open file), after the PPP handshake
the line control is passed to the kernel’s PPP driver by special IOCTL
(which sets PPP as a “line discipline” for the port instead of the terminal
layer) and then TCP/IP is notified on the new interface being up.
Is it so in NT too?

Max


You are currently subscribed to ntdev as: $subst(‘Recip.EmailAddr’)
To unsubscribe send a blank email to leave-ntdev-$subst(‘Recip.MemberIDChar’)@lists.osr.com

Umm, the following is all AFAIK…

PPP Handshake is done by NDISWAN talking to the WAN miniport.
The TAPI (NDISTAPI) stuff happens first, and when NDISWAS sees the
NDIS_WAN_LINE_UP message, it knows the line is ready to move data back
and forth, and proceeds to do PPP negotiation.

So no, no logon info in UUData. In fact, a WAN Miniport doesn’t get any info
about the user at all. It just gets dial commands, then receives data to
move
across the link.

Umm, I think NDISTAPI is used for normal serial lines, and the WAN Miniport
is provided my Unimodem, called AsyncMac. But I’m less sure about that than
I was about the stuff above.

=========================================================
Paul “TBBle” Hampson
xxxxx@Pobox.Com

Even a mosquito doesn’t get a slap
on the back until it starts to work.

Random signature generator 2.0 by TBBle

-----Original Message-----
From: xxxxx@lists.osr.com
[mailto:xxxxx@lists.osr.com]On Behalf Of Maxim S. Shatskih
Sent: Tuesday, 8 May 2001 2:11
To: NT Developers Interest List
Subject: [ntdev] Question on WAN and PPP in NT

Hi all,

the WAN documentation in both NT4 and w2k DDK does not provide any
explanation on what piece of code is responsible for PPP logon/handshake
sequence
(PAP, CHAP, compression/encryption type negotiation etc).
Is it done as a part of TAPI call making or after it? Must the TAPI
connection establishment precede the PPP handshake or must it include PPP
handshake in it?
Am I right that the logon information is passed via TAPI as
UserUserData
or this is wrong?
Is NDIS_WAN_LINE_UP indication done after the PPP handshake or before
it?
Who does the PPP handshake? NDISWAN or user-mode code? If second - then
the user-mode code must have some means of accessing the raw bytes on the
line - who provides such means?
Am I right that the line exists as a file handle suitable for
Read/WriteFile and the user-mode PPP handshake code just reads and writes
bytes to it?
Or there are special NDISWAN IOCTLs for it?
What is the WAN miniport role in all of this? What WAN miniport’s
routines will be called during the PPP handshake?
What about the connection-oriented miniports? What if establishing a
media-level connection involves some kind of logon authentication? Who must
do the logon sequence over the incomplete line? The call manager?

Another question - am I right that NDISTAPI/NDPROXY is not used for
usual modem dialup connections, that the “TAPI part” of this is
Unimodem and
not NDISTAPI, and that the established connection is passed to the
NDISWAN/AsyncMac by some undocumented proprietary IOCTLs?
In UNIX, it is done exactly so, the user-mode app dials the modem, then
does the handshake (using the line as an open file), after the PPP
handshake
the line control is passed to the kernel’s PPP driver by special IOCTL
(which sets PPP as a “line discipline” for the port instead of the terminal
layer) and then TCP/IP is notified on the new interface being up.
Is it so in NT too?

Max


You are currently subscribed to ntdev as: xxxxx@Pobox.Com
To unsubscribe send a blank email to leave-ntdev-$subst(‘Recip.MemberIDChar’)@lists.osr.com


You are currently subscribed to ntdev as: $subst(‘Recip.EmailAddr’)
To unsubscribe send a blank email to leave-ntdev-$subst(‘Recip.MemberIDChar’)@lists.osr.com

Hello,

the WAN documentation in both NT4 and w2k DDK does not provide any
explanation on what piece of code is responsible for PPP logon/handshake
sequence
(PAP, CHAP, compression/encryption type negotiation etc).
Is it done as a part of TAPI call making or after it? Must the TAPI
connection establishment precede the PPP handshake or must it include PPP
handshake in it?
Am I right that the logon information is passed via TAPI as UserUserData
or this is wrong?

The RAS use the TAPI user mode interface for connection handling.
The TAPI server provider for NDIS talk with the ndistapi.sys and the
ndistapi.sys translate all call in NdisQuery with OID_TAPI_xxx

ndiswan.sys is responsoible for PPP handling, compression/encryption …

TAPI is only for the pure call management.

Is NDIS_WAN_LINE_UP indication done after the PPP handshake or before
it?
This indication is before. Now the connection is established and the
the PPP protocol can start with the LCP protocol. When the LCP
protocol is establishes the autenthication protocols (CHAP,PAP)
starts.

Who does the PPP handshake? NDISWAN or user-mode code? If second - then
the user-mode code must have some means of accessing the raw bytes on the
line - who provides such means?

NDISWAN is
Am I right that the line exists as a file handle suitable for
Read/WriteFile and the user-mode PPP handshake code just reads and writes
bytes to it?
Or there are special NDISWAN IOCTLs for it?

What is the WAN miniport role in all of this? What WAN miniport’s
routines will be called during the PPP handshake?

The WAN Miniport is only a modem and

  • setup a call or wait for call via OID_TAPI request
  • when the connection is established the miniport send and receive
    data
  • hangup a call via OID_TAPI request’s

What about the connection-oriented miniports? What if establishing a
media-level connection involves some kind of logon authentication? Who must
do the logon sequence over the incomplete line? The call manager?

No the NDIS 5 CoWan Driver do the same job. Connection handling and
data transfer. Only the interface is different.

elli


You are currently subscribed to ntdev as: $subst(‘Recip.EmailAddr’)
To unsubscribe send a blank email to leave-ntdev-$subst(‘Recip.MemberIDChar’)@lists.osr.com

I can add some points noted when wrote NDIS IM driver layered above NdisWan.
Please take into account it is some time before and I already forgot some
details and could confuse others… Everything is for NT4 and standard RAS,
there are some differences at w2k and steelhead.


From: Maxim S. Shatskih[SMTP:xxxxx@storagecraft.com]
Reply To: NT Developers Interest List
Sent: Monday, May 07, 2001 6:10 PM
To: NT Developers Interest List
Subject: [ntdev] Question on WAN and PPP in NT

Hi all,

the WAN documentation in both NT4 and w2k DDK does not provide any
explanation on what piece of code is responsible for PPP logon/handshake
sequence
(PAP, CHAP, compression/encryption type negotiation etc).

You’re right, no docs. There are several RAS*.DLLs which contain PPP control
protocols implemetation. See HKLM\System\CCS\Services\RasMan\PPP subkeys for
the list. RasMan service is responsible for PPP handshake and calls these
DLLs as necessary.

Is it done as a part of TAPI call making or after it? Must the
TAPI
connection establishment precede the PPP handshake or must it include PPP
handshake in it?
Am I right that the logon information is passed via TAPI as
UserUserData
or this is wrong?

Yes, user mode data.

Is NDIS_WAN_LINE_UP indication done after the PPP handshake or before
it?

Which one do you mean? Correct me if I’m wrong; I think it is indicated
twice. The first time from WAN miniport to NdisWan which is before PPP
handshake and the second time from NdisWan to bound protocols which is after
PPP handshake (note it is different on w9x toysystems).

Who does the PPP handshake? NDISWAN or user-mode code? If second -
then
the user-mode code must have some means of accessing the raw bytes on the
line - who provides such means?

RasMan has opened \Device\NdisWan and communicates via IOCTLS with it. I
don’t know if it send CP bytes via IOCTLs or as read/write; it should be
easy to find.

Am I right that the line exists as a file handle suitable for
Read/WriteFile and the user-mode PPP handshake code just reads and writes
bytes to it?

In principle yes but CP protocol interface is a bit different. See EAP docs
(platform SDK) for details, CP interface is undocumented but similar.

Or there are special NDISWAN IOCTLs for it?

Yes, there are special NdisWan undocumented IOCTLs. One of them selects NDIS
adapter which should be used for communication. Whole RAS design is very
fragile and there are totally insane parts. NT4 steelhead is better and w2k
one seems almost reasonable.

What is the WAN miniport role in all of this? What WAN miniport’s
routines will be called during the PPP handshake?

Probably only send and receive packet.

Best regards,

Michal Vodicka
Veridicom
(RKK - Skytale)
[WWW: http://www.veridicom.com , http://www.skytale.com]


You are currently subscribed to ntdev as: $subst(‘Recip.EmailAddr’)
To unsubscribe send a blank email to leave-ntdev-$subst(‘Recip.MemberIDChar’)@lists.osr.com

> fragile and there are totally insane parts. NT4 steelhead is better and
w2k

Sorry, but what is Steelhead? Is it connection-oriented WAN support?

Max


You are currently subscribed to ntdev as: $subst(‘Recip.EmailAddr’)
To unsubscribe send a blank email to leave-ntdev-$subst(‘Recip.MemberIDChar’)@lists.osr.com

> ----------

From: Maxim S. Shatskih[SMTP:xxxxx@storagecraft.com]
Reply To: NT Developers Interest List
Sent: Friday, May 11, 2001 3:37 AM
To: NT Developers Interest List
Subject: [ntdev] RE: Question on WAN and PPP in NT

> fragile and there are totally insane parts. NT4 steelhead is better and
w2k

Sorry, but what is Steelhead? Is it connection-oriented WAN support?

It is Routing and Remote Access Service – standard part of w2k server and
also available for NT4. I prefer shorter original name, sorry :slight_smile:

Best regards,

Michal Vodicka
Veridicom
(RKK - Skytale)
[WWW: http://www.veridicom.com , http://www.skytale.com]


You are currently subscribed to ntdev as: $subst(‘Recip.EmailAddr’)
To unsubscribe send a blank email to leave-ntdev-$subst(‘Recip.MemberIDChar’)@lists.osr.com

> > Sorry, but what is Steelhead? Is it connection-oriented WAN support?

>
It is Routing and Remote Access Service – standard part of w2k server and
also available for NT4. I prefer shorter original name, sorry :slight_smile:

Am I right that the whole RAS architecture was reworked for it including
NdisWan and AsyncMac?

Max


You are currently subscribed to ntdev as: $subst(‘Recip.EmailAddr’)
To unsubscribe send a blank email to leave-ntdev-$subst(‘Recip.MemberIDChar’)@lists.osr.com

> ----------

From: Maxim S. Shatskih[SMTP:xxxxx@storagecraft.com]
Reply To: NT Developers Interest List
Sent: Friday, May 11, 2001 7:03 PM
To: NT Developers Interest List
Subject: [ntdev] RE: Question on WAN and PPP in NT

> It is Routing and Remote Access Service – standard part of w2k server
and
> also available for NT4. I prefer shorter original name, sorry :slight_smile:

Am I right that the whole RAS architecture was reworked for it including
NdisWan and AsyncMac?

I’m not sure about AsyncMac but all other drivers were changed including
ndiswan.sys, ndis.sys, tcpip.sys and pptp miniports. There were changes in
the way how NdisWan uses its virtual adapters. User more part contains quite
different modules. Note that w2k contains only steelhead code (even WS), old
RAS was fortunately abandoned.

Best regards,

Michal Vodicka
Veridicom
(RKK - Skytale)
[WWW: http://www.veridicom.com , http://www.skytale.com]


You are currently subscribed to ntdev as: $subst(‘Recip.EmailAddr’)
To unsubscribe send a blank email to leave-ntdev-$subst(‘Recip.MemberIDChar’)@lists.osr.com

> I’m not sure about AsyncMac but all other drivers were changed including

ndiswan.sys, ndis.sys, tcpip.sys and pptp miniports.

Was PPTP supported before SteelHead?

Max


You are currently subscribed to ntdev as: $subst(‘Recip.EmailAddr’)
To unsubscribe send a blank email to leave-ntdev-$subst(‘Recip.MemberIDChar’)@lists.osr.com

> ----------

From: Maxim S. Shatskih[SMTP:xxxxx@storagecraft.com]
Reply To: NT Developers Interest List
Sent: Saturday, May 12, 2001 1:01 AM
To: NT Developers Interest List
Subject: [ntdev] RE: Question on WAN and PPP in NT

Was PPTP supported before SteelHead?

Yes, NT4 standard RAS supports it. I’m not quite sure about NT 3.51,
probably no.

Best regards,

Michal Vodicka
Veridicom
(RKK - Skytale)
[WWW: http://www.veridicom.com , http://www.skytale.com]


You are currently subscribed to ntdev as: $subst(‘Recip.EmailAddr’)
To unsubscribe send a blank email to leave-ntdev-$subst(‘Recip.MemberIDChar’)@lists.osr.com