Integrated Device Technology 5141U User Manual

SARWIN II
SUITE OF APPLICATIONS
PRELIMINARY
USERS MANUAL
MARCH 22, 1999
IDT
Powering What’s Next
1.1 Driver Application Programming Interface .........................................................................................3
1.2 Driver Parameters................................................................................................................................ 4
1.2.1 IDT77252 Revision 01...................................................................................................................4
1.2.2 IDT77252 Revision 02...................................................................................................................4
1.2.3 IDT77222 Revision 02...................................................................................................................4
1.3 Software Installation............................................................................................................................. 5
1.4 Driver Installation................................................................................................................................ 5
1.4.1 Driver Installation – Windows 95.................................................................................................. 6
1.4.2 Driver Installation – Windows NT 4.0 .......................................................................................... 7
Chapter 2 SARWINII Suite of Applications ............................................................................................12
2.1 Abrsar_reg.exe – Internal Register Access of the ABRSAR................................................................ 12
2.1.1 Abrsar_reg – Register Access......................................................................................................13
Abrsar_reg – PHY Access.................................................................................................................... 14
2.1.3 Abrsar_reg – Utility Bus Access..................................................................................................15
2.1.4 Abrsar_reg – PCI Configuration Access...................................................................................... 15
2.2 Abrsar_sram.exe – SRAM access application.................................................................................... 17
2.2.1 Abrsar_sram – SRAM Access..................................................................................................... 18
2.2.2 Abrsar_sram – Transmit Connection Table Access.....................................................................18
Abrsar_sram – Receive Connection Table Access............................................................................... 19
2.2.3 Abrsar_sram – Static Schedule Table(SST) Access.................................................................... 20
2.2.4 Abrsar_sram – Receive FIFO Access..........................................................................................20
2.3 Drvtest.exe - Demonstrate Driver Functionality ................................................................................22
2.3.1 Drvtest – Open Connection..........................................................................................................24
2.3.2 Drvtest – Fetch Connection .........................................................................................................25
2.3.3 Drvtest – Query Connection........................................................................................................ 26
2.3.4 Drvtest – Send Data..................................................................................................................... 27
2.3.5 Drvtest – Receive Data................................................................................................................ 28
2.3.6 Drvtest – Get PCI Configuration................................................................................................. 30
2.3.7 Drvtest – Get Device Information................................................................................................31
2.4 Cellgen.exe – Generate Cell Traffic ...................................................................................................32
2.5 Cellrecv.exe - Receive Cell Traffic ..................................................................................................... 33
2.6 ATMMON.exe ATM Connection Monitor...........................................................................................34
APPENDIX A IDT77252ioctl.h................................................................................................................ 35
Confidential Page 2 06/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
Confidential Page 3 06/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 Connections 1024
VPI Range 0-1
VCI Range 0-511
Number of Si mul taneous Connections: 16
Number of Rate tables 16
1.2.2 IDT77252 Revision 02
Number of Connections 1024
VPI Range 0-1
VCI Range 0-511
Number of Simultaneous Connections: 128
Number of Rate tables 16
1.2.3 IDT77222 Revision 02
Number of Connections 512
VPI Range 0
VCI Range 0-511
Number of Simultaneous Connections: 128
Number of Rate tables 4
NOTE:
Revision 01 = Revision A
Revision 02 = Revision B
Confidential Page 4 06/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
Confidential Page 5 06/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.
Confidential Page 6 06/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
Confidential Page 7 06/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
Confidential Page 8 06/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
Confidential Page 9 06/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
Confidential Page 10 06/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.
Confidential Page 11 06/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
Confidential Page 12 06/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
Confidential Page 13 06/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
Confidential Page 14 06/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
Confidential Page 15 06/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.
Confidential Page 16 06/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:
SRAM Read and write SRAM at a specified address.
TxCn Access the Transmit Connection Table.
RxCn Access the Receive Connection table.
SST Access the Static Schedule Table
FIFO Access the Receive FIFO
Other In the final release there will be an
Other
The
Confidential Page 17 06/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.
2.2.2 Abrsar_sram – Transmit Connection Table Access
Selecting the The display would look as shown below.
Confidential Page 18 06/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
Confidential Page 19 06/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;.
2.2.3 Abrsar_sram – Static Schedule Table(SST) Access
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.
Confidential Page 20 06/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
Confidential Page 21 06/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
2.3 Drvtest.exe - Demonstrate Driver Functionality
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.
Confidential Page 22 06/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.
Confidential Page 23 06/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
Confidential Page 24 06/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
Confidential Page 25 06/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.
Confidential Page 26 06/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
Confidential Page 27 06/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
Confidential Page 28 06/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
Confidential Page 29 06/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.
Confidential Page 30 06/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.
Confidential Page 31 06/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
Confidential Page 32 06/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.
Confidential Page 33 06/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
Confidential Page 34 06/21/01
APPENDIX A IDT77252ioctl.h
// idt77252ioctl.h // // Define control codes for idt77252 driver //
#ifndef __idt77252ioctl__h_ #define __idt77252ioctl__h_ #ifndef BASE_TYPES_INC #include "base_types.h" #endif
#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 + 0 register number // buf + 4 data sent/received // // Write and read utility bus has the following buffer meanings: // buf + 0 Bus device number -- 0x0 to 0x3 // buf + 4 Utility bus address 0 - 255 // buf + 8 Data 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 + 0 Opereration code // buf + 4 Sub code field // buf + 8 Size of Data Array // buf + c Start of data array // // Operation code(buf+0) for accessing 77222/252 nicstar sram #define PARAM_READ_SRAM 0x01 // sub code field has SRAM address - data returned data array #define PARAM_WRITE_SRAM 0x02 // sub code field has SRAM address
// - data array has data
#define TX_NORMAL 0 // application sends data each time #define TX_MULTIPLE 1 // Application sends once - driver send buffer over and over #define TX_FOREVER 2 // Application sends once - driver sets hardware tx_forever bit
#ifdef __cplusplus extern "C" { #endif
#pragma pack(1)
typedef struct _t_IoctlBuf IoctlBuf, *PIoctlBuf; struct _t_IoctlBuf
{ unsigned long ioctlCode; unsigned long ioctlSubCode;
Confidential Page 35 06/21/01
unsigned long ioctlDataSize; unsigned long ioctlData; };
typedef struct t_open_conn_param t_open_conn_param; struct t_open_conn_param {
};
typedef struct t_set_conn_param t_set_conn_param; struct t_set_conn_param {
};
// values -> driver unsigned short vpi, vci; 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_clmp, 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;
// values -> driver unsigned short vpi, vci; int mode; DWORD count;
typedef struct t_txconn_rec {
} t_txconn_rec;
typedef struct t_close_conn_param t_close_conn_param; struct t_close_conn_param {
};
typedef struct t_query_conn_param t_query_conn_param; struct t_query_conn_param {
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;
Confidential Page 36 06/21/01
// parameters for driver bookkeeping
};
typedef struct t_count_conn_param t_count_conn_param; struct t_count_conn_param {
};
t_txconn_rec drvr_param;
// values <- driver unsigned long count;
typedef struct t_vpi_list {
} VPI_LIST;
typedef struct t_fetch_conn_param t_fetch_conn_param; struct t_fetch_conn_param {
// values -> driver unsigned long count; // values <- driver VPI_LIST list[1];
};
typedef struct t_send_conn_param t_send_conn_param; struct t_send_conn_param {
// values -> driver unsigned short vpi, vci; unsigned long length; unsigned char buffer[1]; // an array of data elements of size length
};
typedef struct t_receive_conn_param t_receive_conn_param; struct t_receive_conn_param {
// 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;
typedef struct t_pci_config t_pci_config; struct t_pci_config { unsigned short VendorID; unsigned short DeviceID; unsigned short Command; unsigned short Status; unsigned char RevisionID; unsigned char ProgIf; unsigned char SubClass; unsigned char BaseClass; unsigned char CacheLineSize; unsigned char LatencyTimer; unsigned char HeaderType; unsigned char BIST; unsigned long BaseAddresses[6]; unsigned long CardBusCISPtr; unsigned short SubsystemVendorID; unsigned short SubsystemID; unsigned long ROMBaseAddress; unsigned char Cap_Ptr; unsigned char Reserved1; unsigned short Reserved2A; unsigned long Reserved3; unsigned char InterruptLine; unsigned char InterruptPin; unsigned char MinimumGrant; unsigned char MaximumLatency; unsigned char TrdyTimeout;
Confidential Page 37 06/21/01
unsigned char RetryTimeout; unsigned short Reserved4; unsigned char Cap_ID; unsigned char Next_Item; unsigned short PMC; unsigned short PMCSR;
};
typedef struct t_get_info t_get_info; struct t_get_info {
};
#ifdef __cplusplus }; #endif
#pragma pack()
#endif
unsigned short Reserved5;
unsigned long mem_size; // in 32 bit words unsigned char device_type; // 0 = 77252, 1 = 77222 unsigned char revision; unsigned char param1; unsigned char param2; unsigned long param3; unsigned long param4;
Confidential Page 38 06/21/01
Loading...