APPENDIX A IDT77252ioctl.h................................................................................................................ 35
ConfidentialPage 206/21/01
Chapter 1 Introduction
The purpose of this manual is to introduce the Windows 95/NT drivers and SARWIN II suite of
applications for the IDT77252/IDT77222 ABR SAR.. Figure 1.0 shows where the driver and applications fit into
the overall system environment.
Application 1
(ie SARWIN II)
Operating System – Windows 95/NT
At the application level; applications can be developed that will act as traffic generators, diagnostics,
timing analysis, statistical analysis, class of service selection and custom applications to deal with a particular
application. An application that runs on 95 will work on NT and the other way around. The driver presents the
same interface in either Windows environment.
Application 2
(ie DRVTEST)
IDT77252 Driver
IDT77252 - NIC
Figure 1.0
Application 3
(ie ATMMON)
Application API
1.1 Driver Application Programming Interface
The driver provides the following
•
Open Connection
•
Close Connection
•
Read IDT77252/IDT77222 Internal Register
•
Write IDT77252/IDT77222 Internal Register
•
Read Utility Bus
•
Write Utility Bus
•
Read SRAM
•
Write SRAM
•
Retrieve List of Open Connections
•
Query Connection Parameters
•
Write Data to Connection
•
Read Data from Connection
•
Set Connection Mode
•
Read PCI Configuration Space
ConfidentialPage 306/21/01
device i/o control
calls to the application interface
•
Write PCI Configuration Space
•
Get Device Type, Revision and NIC SRAM size
1.2 Driver Parameters
This ABRSAR driver supports both the IDT77252 and IDT 77222 devices. When the driver starts it
dynamically determines the device type and configures the internal data structures correctly. It also checks the
revision level and determines if it is revision one or two. The number of simultaneous connections, the number of
connections and the number and size of the rate tables are effected by the device type and revision. The following
sections give the parameters for each configuration.
1.2.1 IDT77252 Revision 01
•
Number of Connections1024
•
VPI Range0-1
•
VCI Range0-511
•
Number of Si mul taneous Connections:16
•
Number of Rate tables16
1.2.2 IDT77252 Revision 02
•
Number of Connections1024
•
VPI Range0-1
•
VCI Range0-511
•
Number of Simultaneous Connections:128
•
Number of Rate tables16
1.2.3 IDT77222 Revision 02
•
Number of Connections512
•
VPI Range0
•
VCI Range0-511
•
Number of Simultaneous Connections:128
•
Number of Rate tables4
NOTE:
Revision 01 = Revision A
Revision 02 = Revision B
ConfidentialPage 406/21/01
1.3 Software Installation
The applications and driver are contained in a single self-extracting ‘ZIP’ file. Create a folder called
‘sarwin’ on your hard drive. Put the file called ‘sarwin.exe’ in this folder. Double click sarwin.exe. This will
extract all of the SARWINII files.
1. Abrsar_reg.exe
2. Abrsar_sram.exe
3. Atmmon.exe
4. Cellgen.exe
5. Cellrecv.exe
6. Drvtest.exe
7. Idt77252.sys
8. Idt77252.vxd
9. Mfc42.dll
10. Monitor.exe
11. Msvcrt.dll
12. Vxdload.exe
The SARWINII suite of applications is:
1 Abrsar_reg.exe
2 Abrsar_sram.exe
3 Atmmon.exe
4 Cellgen.exe
5 Cellrecv.exe
6 Drvtest.exe
The device drivers for the IDT77252/IDT77222 NIC are:
1 Idt77252.sys – Windows NT 4.0 driver.
2 Idt77252.vxd – Windows 95 driver.
The device driver loaders are:
1 Monitor.exe – Windows NT 4.0.
2 Vxdload.exe – Windows 95.
The remaining two files are required
not already in your
them to either
1.4 Driver Installation
This driver is configured to be loaded and unloaded manually. This means the driver will be loaded after
the operating system (either Windows 95 or Windows NT 4.0) has booted. The procedure for loading and
unloading is slightly different between Windows 95 and Windows NT. B efore installing the dr iver it is necessary
to install the NIC. To do this, first turn off your PC and verify that there is a free PCI slot. If there is, insert the
NIC into the free PCI slot and reboot your PC. You may run the NIC in loop back mode by looping the receive to
the transmit. If the NIC has a fiber transceiver, then just run a cable from receive to transmit. If the transceiver is
twisted pair then you will need a special loop back cable.
Windows\system
Windows\system
dll’s
(Windows 95) or
(Windows 95) or
SARWINII
for the
Winnt\system32
suite of applications. If theses two
Winnt\system32
(Windows NT) directory, then copy
(Windows NT).
dll’s
are
ConfidentialPage 506/21/01
1.4.1 Driver Installation – Windows 95
On Windows 95 the plug and play mechanism should find the new card and inform you with a dialog box
saying it found a new PCI card. Continue and indicate that you will install the driver later. Later versions of
Windows 95 will show a window with ‘NEXT’ and ‘Cancel’ buttons. In this case the correct thing is to hit
‘NEXT’ and then in the next window click the ‘Finish’ button. To verify that the plug and play mechanism has
registered the newly installed NIC; reboot your PC and this time there should be no message stating that a new
PCI card was found. Use the program
and double click on the
Use the browse button or type in the directory path to the folder that contains the driver. If you created a
sarwin
directory and put the driver in it, then the VxD Name should look as shown below.
Vxdload.exe
Vxdload.exe
icon. This will bring up the dialog shown below.
to load the driver. To invoke
Vxdload
go to directory
sarwin
Click the
displayed.
Click
you are using a loop back cable you will be able to send and receive cells. The driver may be stopped and
unloaded by bringing up
You can not stop the driver if there are any of the SARWINII suite of applications open. It is necessary to stop all
activity with the NIC and close the applications prior to stopping the driver.
ConfidentialPage 606/21/01
load
button to load the driver. If the driver loaded successfully, then the message below will be
OK
and dismiss the message box. You are now ready to run the
VxDload.exe,
selecting C:\sarwin\IDT77252.vxd and clicking the
SARWINII
suite of applications. If
Unload
button.
NOTE
:
1.4.2 Driver Installation – Windows NT 4.0
After inserting the NIC and rebooting and installing the software as outlined in section 1.3 you are ready
to register the driver. Go into the directory C:\sarwin. Double click the Monitor.exe icon. This will bring up the
window shown below.
You do not need Driver::Works installed to register the driver. Click
will be displayed.
Cancel
and the screen shown below
Select the
ConfidentialPage 706/21/01
File
menu item and then select
Open Driver
as shown below.
This selection will display the file selection dialog box sho wn below. The path to the driver should be
entered in the edit box for
correct.
Click open and the driver will be registered and the screen should look as shown below.
File Name
. If you created the
sarwin
directory then the entry as shown below will be
ConfidentialPage 806/21/01
This shows
directions and select File | Start to start the driver now. The preferred method is to just exit monitor.exe by closing
the window, without starting the driver. You can now use the standard NT facilities for starting and stopping the
driver. To do this, open the control panel as shown below.
A new Entry in the service data base has been created for the driver.
You may follow the
ConfidentialPage 906/21/01
Double click the
Devices
icon. This will bring up the following dialog box.
It may be necessar y to scroll down so the
load and start the driver, click the
bringing up the
Devices
ConfidentialPage 1006/21/01
dialog box, selecting
idt77252
Start
button. Once the driver is started you may unload and stop it by again
idt77252
device is visible. Select it by clicking on the line. To
and clicking
Stop. NOTE
: You can not stop the driver if
there are any of the SARWINII suite of applications open. It is necessary to stop all activity with the NIC and
close the applications prior to stopping the driver.
ConfidentialPage 1106/21/01
Chapter 2 SARWINII Suite of Applications
The SARWINII suite of applications allow the user to access all of the internal registers, PCI
configuration space, and associated SRAM. The SARWINII suite of applications are:
1. Abrsar_reg.exe
2. Abrsar_sram.exe
3. Drvtest.exe
4. Cellgen.exe
5. Cellrecv.exe
6. Atmmon.exe
2.1 Abrsar_reg.exe – Internal Register Access of the ABRSAR
Abrsar_reg.exe allows the user to read and write the registers of the IDT77252/IDT77222 ABRSAR. To
launch this application go to the
screen shown below. This application can be launched with or without the driver running. If the driver is not
running then it goes into
demo
\sarwin
directory and double click the abrsar_reg.exe icon. This will bring up the
mode and generates random numbers for the register contents.
NOTE
: If the driver is running then it is recommended that you do
registers. When the driver starts it initializes the ABRSAR and all of the internal registers. Many of these re gisters
point to memory in the host machine that has been allocated out of the system non-paged memory pool. Changing
any of these values could
will bring up dialog boxes that will allow access to the associated item. As an example, lets look at the
ConfidentialPage 1206/21/01
crash
your PC. Clicking on any of the b uttons along the left hand side of the window
NOT
write to any of the internal
configurat ion register of the ABRSAR. Click the
be displayed.
Reg
button at the left-hand edge. The following dialog box will
2.1.1 Abrsar_reg – Register Access
Select the configuration register by clicking the line that starts with
dialog box will be displayed.
0x14
. Click
OK.
The configuration
ConfidentialPage 1306/21/01
With the driver running; the configuration shown above will be set for the 77252 ABRSAR. It is
necessary to click the read button to get the register contents displayed. To access the other register the user should
repeat the above procedure, selecting different registers. To look at all of the internal registers on one screen the
user may select the
dialog box.
0xFF – All Registers
entry in the
77252 Registers
dialog box. This will display the following
Click the
see this behavior then either the driver is not running or there is a problem.
2.1.2 Abrsar_reg – PHY Access
To access the PHY the user should click the
bring up the dialog box shown below.
The PHY on the NicStAR is device 0b01. If the user selects 0b00 then there will be a message displayed
stated that no device exists. The Address range is 0-255.
Read
button repeatedly and you should see the
Phy
button along the left-hand edge of the window. This will
Timer
and
Now
register changing. If you don’t
ConfidentialPage 1406/21/01
2.1.3 Abrsar_reg – Utility Bus Access
To display all of the address space on the utility bus the user should click the
following dialog box will be displayed
Util
button and the
Again the user should select
user checks
This will continue until the user clears the
2.1.4 Abrsar_reg – PCI Configuration Access
window. This will display the dialog box below.
Auto Update
To display the PCI configuration space the user should click the
ConfidentialPage 1506/21/01
then the utility bus will be read approximately once a second and the screen updated.
0b01
and then click read. This will display the entire address space. If the
Auto Update
check box or closes the dialog box..
Phy
button on the left hand side of the
The shaded fields are read only. The rest can be written.
written, the user should exercise great care when changing any of the values. Addresses should
Reference the PCI specification for an in depth description of the fields.
ConfidentialPage 1606/21/01
NOTE:
Even though these registers can be
NOT
be changed.
2.2 Abrsar_sram.exe – SRAM access application
Abrsar_sram.exe allows the user to access the SRAM associated with the NicStAR. To launch this
application; go to the
shown below. This application can be launched with or without the driver running. If the driver is not running then
abrsar_sram.exe goes into
\sarwin
directory and double click the abrsar_sram.exe icon. This will bring up the screen
demo
mode and generates random numbe rs for the SRAM content.
NOTE
: If the driver is running then it is recommended that you do
driver starts it initializes the ABRSAR and all of the associated SRAM. Most of the SRAM is allocated for use
when the driver starts. Changing SRAM could cause the driver to do unexpected operations and could possibly
crash your system. Clicking on any of the buttons along the left-hand side of the window will brin g up dialo g
boxes that will allow access to the associated item. The buttons are:
•
SRAMRead and write SRAM at a specified address.
•
TxCnAccess the Transmit Connection Table.
•
RxCnAccess the Receive Connection table.
•
SSTAccess the Static Schedule Table
•
FIFOAccess the Receive FIFO
•
OtherIn the final release there will be an
Other
The
ConfidentialPage 1706/21/01
button is not useful in this release.
Launcher
NOT
write to the SRAM. When the
associated with this button
2.2.1 Abrsar_sram – SRAM Access
To display SRAM unformatted (raw hex memory dump) the user should click the SRAM button on the
left-hand side of the window. The dialog box below will be displayed.
The user should click read to read the SRAM. The
be used to select and jump to the selected item. The Transmit Connection Table always starts at Address zero(0) in
the NicStAR. The addresses are
The rest of the buttons also access SRAM, however they format the display in the context of the function
the SRAM space is allocated for.
Selecting the
The display would look as shown below.
ConfidentialPage 1806/21/01
TxCn
32 bit word
button and reading connection index 0 will read the data from SRAM locations 0-7.
addresses.
Preset Locations
at the bottom of the dialog box can
The values will be zeros until a connection is opened for the specified VPI/VCI.
though we give you the ability to write to the transmit connection table, it is almost guaranteed to create problems.
The mapping of VPI-VCI to transmit connection table SRAM address depends on the configuration register
settings. In that the driver sets this at initialization time, the following mapping will be true for this driver.
For The IDT77252:
SRAM Word Addr. = VPI*512*8 + VCI*8
Where: VPI can be 0 or 1 and VCI is 0-511
For The IDT77222:
SRAM Word Addr. = VCI*8
Where: VPI can only be zero and VCI is 0-511
Abrsar_sram – Receive Connection Table Access
NOTE:
Again – even
To examine the receive connection table entry for a particular VPI/VCI the user should click the
button and enter the desired VPI/VCI and then click
ConfidentialPage 1906/21/01
Read
. The dialog box will look like this.
RxCn
The mapping of VPI-VCI to transmit connection table SRAM address depends on the configuration
register settings. In that the driver sets this at initialization time, the following mapping will be true for this driver.
For The IDT77252:
SRAM Word Addr. = VPI*512*4 + VCI*4 + 8192
Where: VPI can be 0 or 1 and VCI is 0-511
For The IDT77222:
SRAM Word Addr. = VCI*4 + 4096
Where: VPI can only be zero and VCI is 0-511
How to open a connection with one of the SAWINII apps will be shown later in the document;.
The static schedule table is created and maintained by the driver. To examine the static schedule table the
user should click the
below
SST
button on the left-hand side of the window. This will display the dialog box
The detailed description of the management of the SST is beyond the scope of this user manual. Refer to
the IDT77252/222 User Manual.
2.2.4 Abrsar_sram – Receive FIFO Access
To access the contents of the receive FIFO the user should click the
the window. This will display the following dialog box.
ConfidentialPage 2006/21/01
FIFO
button on the left-hand side of
The user needs to click the
used to scoll through the contents. The receive FIFO is written to as cells are received by the hardware. The
receive FIFO is set at 4k words in length by the driver. As cells come in the Tail pointer is updated and will wrap
when it reaches 4k. As 4k is not divisible by 13 (The size of in incoming cell in words), the cells will appear to
scroll through the cell windows.
Other
The
ConfidentialPage 2106/21/01
button will be activated in a later release.
Read
button to read the contents of the receive FIFO. The scroll bar may be
Drvtest.exe is an application that allows the user to interact with the NicStAR via the driver. It was
initially developed to test the driver and is being released to give the user a simple interface to try some of the
various driver API’s.
The driver provides the following
•
Open Connection
•
Close Connection
•
Read IDT77252/IDT77222 Internal Register
•
Write IDT77252/IDT77222 Internal Register
•
Read Utility Bus
•
Write Utility Bus
•
Read SRAM
•
Write SRAM
•
Retrieve List of Open Connections
•
Query Connection Parameters
•
Write Data to Connection
•
Read Data from Connection
•
Read PCI Configuration Space
•
Write PCI Configuration Space
•
Get Device Type, Revision and NIC SRAM size
Abrsar_reg.exe and Abrsar_sram.exe exercise the following API’s
•
Read IDT77252/IDT77222 Internal Register
•
Write IDT77252/IDT77222 Internal Register
•
Read Utility Bus
•
Write Utility Bus
•
Read SRAM
•
Write SRAM
•
Read PCI Configuration Space
•
Write PCI Configuration Space
device i/o control
calls to the application interface
Drvtest.exe exercises the following API’s
•
Open Connection
•
Close Connection
•
Retrieve List of Open Connections
•
Query Connection Parameters
•
Write Data to Connection
•
Read Data from Connection
•
Read PCI Configuration Space
•
Get Device Type, Revision and NIC SRAM size
To launch Drvtest.exe go to the
shown below will be displayed.
ConfidentialPage 2206/21/01
\sarwin
directory and double click the Drvtest.exe icon. The window
Click on the
Driver I/O Control
menu item and see the drop menu shown below.
ConfidentialPage 2306/21/01
2.3.1 Drvtest – Open Connection
Selecting the
Open Connection
menu item will present the following dialog box.
The above box is set to open an AAL5, CBR connection for VPI 0 and VCI 100. The
is set to
Normal
the low level hardware resources so that the user may gain access and control over the ABRSAR. In doing
so there are combinations of things that applications can do that will create system problems. The
Conn. Mode
opened in the Normal mode. The only time you may select TX Multiple or TX Forever is when there is
one and only one connection open
would normally be used to send and receive cells(data). It means that when an application makes a system
call to the driver with a buffer of data to transmit the driver sends that buffer once and completes the
operation, returning to the application. On read the driver will fill the buffer with data, if any is available
and return the data and a count of the number of bytes read. In this mode due to the overhead in windows
attaining full line rate (155Mbits/Sec) is not possible.
of data. Instead of just sending the buffer of data once and returning it caches the data buffer and enqueues
it to be sent, returning at this time to the application. Back at the driver level as soon as the data has been
sent the driver re-enqueues the buffer to be sent again. This is repeated until the application level makes a
system call to close the connection.
other app must not make another call to send data.
. To open the connection click OK.
IMPORTANT:
The driver is a standard Windows driver (VXD for Win95, SYS for WinNT). We have exposed a lot of
is one such instant.
What are the differences between the modes?
Normal –
TX Multiple
When a connection is opened in
– This will change the behavior of the driver when it receives a system call to send a buffer
When multiple connections are open, all of those connections must be
.
Normal
After the app has issued that first send data system call it or any
mode, as the name would imply this is the mode that
The app may make a system call to query the
Driver Conn. Mode
Driver
ConfidentialPage 2406/21/01
connection status, which will return cell transmission statistics along with other information. The advantage
here is that you do not have the overhead of a Windows system call for each buffer of data transmitted.
This mode still does not get to full line rate (about 90% - on a fast machine).
TX Forever
differs in that it uses a feature of the IDT77252/222 that causes the ABRSAR to send the same buffer of
data over and over again with no software intervention. The buffer length must be a multiple of 48 bytes. In
that the transmission of data is totally controlled by the hardware, the transmission rate will reach line rate.
NOTE: Maximum buffer size in TX Multiple or TX Forever is 4072 bytes.
The peak cell rate(PCR) can range from 10 – 351415 cells per second. In
no guardrails to keep a user from over booking the bandwidth. That is to say you could open 4 connections with a
PCR 0f 100000 cells per second each. If you did that, the results would be unpredictable. This behavior is due to
the algorithm in the driver and not due to the parts allocation of bandwidth.
2.3.2 Drvtest – Fetch Connection
Selecting the
– This mode is like the
Fetch Connection
TX Multiple
menu item will present the following dialog box.
and has all the same limitations to the applicatio n. It
Drvtest
or the driver there are
If the user had opened a connection in the above section and clicked the
above screen should show that a connection is open on VPI/VCI 0x00/0x64 with a service type of CBR and AAL
type of AAL5. To dismiss the dialog box click
ConfidentialPage 2506/21/01
Close
.
Fetch List
button here, then the
2.3.3 Drvtest – Query Connection
Selecting the
Query Connection
menu item will present the following dialog box.
When the user enters the connection VPI-VCI and clicks
may be used on a connection that is in any
information each time. The only fields the user should edit are the VPI-VCI. Click
Driver Conn. Mode
Query
. Clicking
, the above data will be displayed. This
Query
repeatedly will update the
Close
to dismiss the dialog box.
ConfidentialPage 2606/21/01
2.3.4 Drvtest – Send Data
Selecting the
Before invoking this function the user
selected here. Sending data on a closed connection will result in an error return to the system call to send data. The
following message box will be displayed.
Send Data
menu item will present the following dialog box.
must
have opened a connection on t he same VPI-VCI as is
The user may choose either an incrementing data pattern or specify a 4-byte data pattern. The buffer
length may be from 1 – 32k. To send the buffer click OK. This will also close the dialog box. If the transmit is
looped back to the receive then the user may select
ConfidentialPage 2706/21/01
Receive Data
and read the data just sent (see next section).
2.3.5 Drvtest – Receive Data
Selecting the
Receive Data
menu item will present the following dialog box.
The user should enter the VPI-VCI that is to be read from. Throughout
VPI 0, and VCI 100. There is nothing special about this value, it was just convenient. Enter the amount of bytes to
read in the
on that connection. As data is received it is buffered and if no application reads this data and new data continues to
arrive it will eventually wrap and overwrite the oldest data received. When the application makes a system call to
receive data on a connection, the driver will return the number of bytes in the buffer for that connection up to the
number of bytes requested. In other words, if there is more data in the driver’s buffer than requested the driver
returns the number of byte requested. If there is less data in the driver’s buffer than requested, then the driver
returns the number of bytes in the buffer. If the user had send 48 bytes of incrementing data in the previous
section, with the settings in the
dialog box would look as shown below.
Buffer Length
ConfidentialPage 2806/21/01
field. When you open a connection the driver allocates resources to buffer incoming data
Receive Data
dialog box above, and clicks The
Drvtest
the VPI-VCI defaults to
Read From Connections
button the
The 48 bytes of data that was sent earlier is returned by the driver and displayed in the data window. Even
though we asked for 200 bytes, there were only 48 to return. The incrementing data pattern shows we are dealing
with a little endian machine. Clicking the
Since we have sent no more data, the screen will not change. If we had asked for less bytes than was in the
driver’s receive buffer, then repeatedly clicking the
from the driver’s buffer until it was empty.
Read From Connection
Read From Connection
button again will try to read another 200 bytes.
button would continue to extract data
ConfidentialPage 2906/21/01
2.3.6 Drvtest – Get PCI Configuration
Selecting the
Get PCI Configuration
menu item will present the following dialog box.
This same function is available in Abrsar_reg.exe. Abrsar_reg allows you to read and write, while Get
PCI Configura ti on will only let you read.
ConfidentialPage 3006/21/01
2.3.7 Drvtest – Get Device Information
Selecting the
This returns information about the NicStAR card. There are two possible device types: IDT77252 and
IDT77222. Revision will be one(1) or two(2). Memory size depends on how much memory is on the card.
Typically it will be 0x00020000 if the device type is 77252 and 0x00004000 if the device type is 77222.
Get Device Information
menu item will present the following dialog box.
ConfidentialPage 3106/21/01
2.4 Cellgen.exe – Generate Cell Traffic
Cellgen.exe will send cell traffic over an open connection. To launch Cellgen.exe go to the \sarwin
directory and double click the Cellgen.exe icon. The dialog box shown below will be displayed.
The user should enter the VPI-VCI of an open connection (again the default is 0-100). The user may
specify the PDU length in cells (48 bytes) by editing the
we have it set to 100 cells (4800 bytes). This field may range from one (1) cell to 680 cells. If the user clicks
Transmit
Forever
CBR connection at 10000 cells per second (PCR = 10000), the cell rate should be showing approximately 10000.
Due to the asynchronous nature of cellgen’s timer this value will typically range from 9900 to 10100.
not close this application with the
cellgen.exe.
Transmitted Cell Count
the
check box. Now click the
should jump to 100. Click it again and it should be 200. Click the
Transmit
Transmit Forever
button. The cell count should be incrementing. If the connection is a
PDU Length (Num. Of Cells)
check box checked. Clear the check box and then close
field. In the above example
Transmit
NOTE:
do
As an experiment: set
Connection
transmit and receive statistics incrementing. You can bring up multiple instances o f Cel lgen.exe to transmit on
more than one connection (Don’t get carried away).
on the VPI-VCI that you are transmitting on. Click the query button repeatedly and you will see the
ConfidentialPage 3206/21/01
Transmit Forever
and then click
Transmit
. Now bring up Drvtest.exe and do
Query
2.5 Cellrecv.exe - Receive Cell Traffic
Cellrecv.exe will receive cell traffic over an open connection. To launch Cellrecv.exe go to the \sarwin
directory and double click the Cellrecv.exe icon. The dialog box shown below will be displayed.
The user should enter the VPI-VCI of an open connection (again the default is 0-100). The user may
specify the PDU length in cells (48 bytes) by editing the
we have it set to 100 cells (4800 bytes). This field may range from one (1) cell to 680 cells. Start a transmit session
NOTE:
Receive
do not close this application with the
with Cellgen. exe. If the user clicks
should be 200. Click the
incrementing. If the connection is a CBR connection at 10000 cells per second (PCR = 10000), the cell rate should
be showing approximately 10000. Due to the asynchronous nature of cellrecv’s timer this value will typically
range from 9900 to 10100.
Clear the check box and then close cellrecv.exe.
Receive Forever
Received Cell Count
the
check box. Now click the
PDU Length (Num. Of Cells)
should jump to 100. Click it again and it
Receive
button. The cell count should be
Receive Forever
field. In the above example
check box checked.
ConfidentialPage 3306/21/01
2.6 ATMMON.exe ATM Connection Monitor
ATMMON.exe is an application that can monitor the traffic on a user specified connection. To launch
ATMMON.exe go to the
displayed.
\sarwin
directory and double click the ATMMON.exe icon. The dialog box below will be
The user should start
Monitor
opened as an AAL5 connection, then you may see that the rate shown by the monitor is slightly higher than the
rate shown in
100 for each PDU. At the driver level because it is AAL5 the actual number of cells in the PDU will be 101. The
last cell has no data byte in it, just the 8 byte overhead for AAL5.
. The transmit and receive numbers should reflect the current rates on this connection. If this connection is
Cellgen’s
cell rate box. Cellgen is calculating the rate based on the number of payload cells, which is
Cellgen.exe
and start a transfer forever session on VPI-VCI 0-100. Click
Start
ConfidentialPage 3406/21/01
APPENDIX A IDT77252ioctl.h
// idt77252ioctl.h
//
// Define control codes for idt77252 driver
//
#define idt77252_IOCTL_WRTREG CTL_CODE(FILE_DEVICE_UNKNOWN, 0x800, METHOD_BUFFERED, FILE_ANY_ACCESS)
#define idt77252_IOCTL_RDREG CTL_CODE(FILE_DEVICE_UNKNOWN, 0x801, METHOD_BUFFERED, FILE_ANY_ACCESS)
#define idt77252_IOCTL_PARAM CTL_CODE(FILE_DEVICE_UNKNOWN, 0x802, METHOD_BUFFERED, FILE_ANY_ACCESS)
#define idt77252_IOCTL_WRTUTIL CTL_CODE(FILE_DEVICE_UNKNOWN, 0x803, METHOD_BUFFERED, FILE_ANY_ACCESS)
#define idt77252_IOCTL_RDUTIL CTL_CODE(FILE_DEVICE_UNKNOWN, 0x804, METHOD_BUFFERED, FILE_ANY_ACCESS)
#define idt77252_IOCTL_OPEN_CONN CTL_CODE(FILE_DEVICE_UNKNOWN, 0x805, METHOD_BUFFERED, FILE_ANY_ACCESS)
#define idt77252_IOCTL_CLOSE_CONN CTL_CODE(FILE_DEVICE_UNKNOWN, 0x806, METHOD_BUFFERED, FILE_ANY_ACCESS)
#define idt77252_IOCTL_FETCH_CONN CTL_CODE(FILE_DEVICE_UNKNOWN, 0x807, METHOD_BUFFERED, FILE_ANY_ACCESS)
#define idt77252_IOCTL_COUNT_CONN CTL_CODE(FILE_DEVICE_UNKNOWN, 0x808, METHOD_BUFFERED, FILE_ANY_ACCESS)
#define idt77252_IOCTL_QUERY_CONN CTL_CODE(FILE_DEVICE_UNKNOWN, 0x3, METHOD_BUFFERED, FILE_ANY_ACCESS)
#define idt77252_IOCTL_SEND CTL_CODE(FILE_DEVICE_UNKNOWN, 0x80A, METHOD_BUFFERED, FILE_ANY_ACCESS)
#define idt77252_IOCTL_RECEIVE CTL_CODE(FILE_DEVICE_UNKNOWN, 0x80B, METHOD_BUFFERED, FILE_ANY_ACCESS)
#define idt77252_IOCTL_SET_CONN CTL_CODE(FILE_DEVICE_UNKNOWN, 0x80C, METHOD_BUFFERED, FILE_ANY_ACCESS)
#define idt77252_IOCTL_GET_PCI CTL_CODE(FILE_DEVICE_UNKNOWN, 0x80D, METHOD_BUFFERED, FILE_ANY_ACCESS)
#define idt77252_IOCTL_SET_PCI CTL_CODE(FILE_DEVICE_UNKNOWN, 0x80E, METHOD_BUFFERED, FILE_ANY_ACCESS)
#define idt77252_IOCTL_GET_INFO CTL_CODE(FILE_DEVICE_UNKNOWN, 0x80F, METHOD_BUFFERED, FILE_ANY_ACCESS)
//
//Write and read reg (WRTREG and RDREG) Parameters sent:
//buf + 0register number
//buf + 4data sent/received
//
//Write and read utility bus has the following buffer meanings:
//buf + 0Bus device number -- 0x0 to 0x3
//buf + 4Utility bus address 0 - 255
//buf + 8Data sent or received to/from utility bus.
//
//
// when calling DeviceIoControl with an IO control code
// of idt77252_IOCTL_PARM
// the IO input buffer is interpreted as follows:
//buf + 0Opereration code
//buf + 4Sub code field
//buf + 8Size of Data Array
//buf + cStart of data array
//
//Operation code(buf+0) for accessing 77222/252 nicstar sram
#define PARAM_READ_SRAM0x01// sub code field has SRAM address - data returned data array
#define PARAM_WRITE_SRAM0x02// sub code field has SRAM address
// - data array has data
#define TX_NORMAL0// application sends data each time
#define TX_MULTIPLE1// Application sends once - driver send buffer over and over
#define TX_FOREVER2// Application sends once - driver sets hardware tx_forever bit
WORD vpi, vci;
BYTE enable_abr, enable_vbr;
// ABR Fields
WORD init_er;
WORD lmcr;
WORD lacr;
WORD air_table, rdf_table, cdf_table;
WORD norm_age_count;
BYTE use_lose_it, acr_clamp;
WORD crm;
// cbr
DWORD rate;
unsigned long max_idle_cnt,max_token_cnt,pcr_token;
// values -> driver
unsigned short vpi, vci;
// values -> driver
unsigned short vpi, vci;
// values <- driver
unsigned char service_class;
unsigned char aal_type;
unsigned long pcr, mcr, icr, scr, acr, frtt;
unsigned short nrm, crm, mbs, bt;
unsigned char rif, rdf, cdf, adtf;
unsigned char acr_clamp, use_lose_it;
unsigned long tbe, age_cnt;
unsigned long max_idle_cnt,max_token_cnt,pcr_token;
unsigned char locked;
unsigned long owner;
int mode;
// some stuff actually related to status
unsigned long bytes_sent, cells_sent, pdu_sent;
unsigned long bytes_received, cells_received, pdu_received;
unsigned long cells_dropped, pdu_errors, crc_errors;
// values -> driver
unsigned short vpi, vci;
// values <-> driver
unsigned long length;
// values <- driver
unsigned char buffer[1];// an array of data elements of size length
};
// an array of vpi vci pairs of size count
unsigned short vpi, vci;
unsigned char service_class;
unsigned char aal_type;