Main Page   Modules   Alphabetical List   Data Structures   File List   Data Fields   Globals  

IXP425 USB RNDIS Codelet (IxUSBRNDIS) API
[IXP425 Codelets]

IXP425 codelet USB RNDIS API. More...


Modules

IXP425 USB RNDIS End Driver Codelet (IxUSBRNDIS) API
 IXP425 codelet for RNDIS End API.

IXP425 USB RNDIS Vendor Codelet (IxUSBRNDIS)
 IXP425 codelet for RNDIS Vendor information.


Functions

PUBLIC IX_STATUS ixUSBRNDISSignalEncapsulatedCommand (void)
 Function prototype for signalling encapsulation command.

PUBLIC IX_STATUS ixUSBRNDISProcessEncapsulatedCommand (IX_USB_MBLK *)
 Function prototype for processing encapsulation command.

PUBLIC IX_STATUS ixUSBRNDISProcessDataPacket (IX_USB_MBLK *)
 Function prototype for processing data packet.

PUBLIC IX_STATUS ixUSBRNDISLayerInit (void *pDrvCtrl)
 Function prototype for layer initialization.

PUBLIC IX_STATUS ixUSBRNDISInit (void)
 Function prototype for initializing RNDIS.

PUBLIC void ixUSBRNDISUnload (void)
 Function prototype for releasing the I/O memory and disconnecting the interrupt.

PUBLIC IX_USB_MBLK * ixUSBRNDISCreateMBuf (UINT8 *buffer, UINT32 len)
 Function prototype for creating MBufs.

PUBLIC IX_STATUS ixUSBRNDISSendDataPacket (RNDIS_BUF *packet)
 Function prototype for sending data packet. It is the hook for the RNDIS END.

void ixUSBRNDISIpHdrDump (const char *const mData)
const char * ixUSBRNDISIpProtoStrGet (const UINT8 ipProto)
const char * ixUSBRNDISEthernetTypeStrGet (const UINT16 etherType)
void ixUSBRNDISEthernetHdrDump (const char *const mData, BOOL *nonIpHdrDetected)

Detailed Description

IXP425 codelet USB RNDIS API.

How to use the USB RNDIS codelet:

  • build a loadable object and load it into vxWorks
  • start the codelet by typing ixUSBRNDISStart

You should see the "usb" network interface in the output generated by the ifShow command.

Plug the board into the USB port of a Windows 98/ME/2000 machine and selected the driver provided with the codelet when queried for it.

Note:

  • the IP and MAC addresses of the END driver (therefore the board side of the link) are defined in ixUSBRNDISEnd.h
  • the MAC address of the RNDIS driver (which will be used by Windows as its own MAC address) is defined in ixUSBRNDIS.h

Currently the END MAC address is 00:00:00:00:00:02 and the RNDIS MAC address is 00:00:00:00:00:01. The IP address of the END is 192.168.1.1, therefore you should use a compatible address for the RNDIS controller on the Windows side (such as 192.168.1.2) and set the END IP address as gateway address for the RNDIS network device, or change them to suitable values.

The codelet was tested with Windows 2000 only, and telnet and ftp traffic was passed by routing the PC through the IXP425 into a network.

Warning: this codelet is for demonstration purposes only, it should not be considered a fully working application.


Function Documentation

PUBLIC IX_USB_MBLK * ixUSBRNDISCreateMBuf UINT8 *  buffer,
UINT32  len
 

Function prototype for creating MBufs.

Parameters:
UINT8 *buffer - Pointer to a buffer
UINT32 len - Length of buffer
Returns:
  • IX_USB_MBLK - Successfully create MBUF

  • NULL - Failed to create MBUF

PUBLIC IX_STATUS ixUSBRNDISInit void   ) 
 

Function prototype for initializing RNDIS.

Parameters:
None 
Returns:
  • IX_SUCCESS - Successfully initalized RNDIS

  • IX_FAIL - Failed to initialize RNDIS

PUBLIC IX_STATUS ixUSBRNDISLayerInit void *  pDrvCtrl  ) 
 

Function prototype for layer initialization.

Parameters:
pDrvCtrl - Pointer to the device to be initialized
Returns:
  • IX_SUCCESS - Successfully initalized

  • IX_FAIL - Failed to initialize

PUBLIC IX_STATUS ixUSBRNDISProcessDataPacket IX_USB_MBLK *   ) 
 

Function prototype for processing data packet.

Parameters:
IX_USB_MBLK - data packet to be processed
Returns:
  • IX_SUCCESS - Data packet successfully processed

  • IX_FAIL - Failed to process data packet

PUBLIC IX_STATUS ixUSBRNDISProcessEncapsulatedCommand IX_USB_MBLK *   ) 
 

Function prototype for processing encapsulation command.

Parameters:
IX_USB_MBLK - memory buffer to be encapsulated
Returns:
  • IX_SUCCESS - Succesfully processing encapsulation command

  • IX_FAIL - Failed to process encapsulation command for some internal reason

PUBLIC IX_STATUS ixUSBRNDISSendDataPacket RNDIS_BUF *  packet  ) 
 

Function prototype for sending data packet. It is the hook for the RNDIS END.

Parameters:
RNDIS *packet - Pointer to a data packet to be transmitted
Returns:
  • IX_SUCCESS - Successfully send a data packet

  • IX_FAIL - Failed to send a data packet

PUBLIC IX_STATUS ixUSBRNDISSignalEncapsulatedCommand void   ) 
 

Function prototype for signalling encapsulation command.

Parameters:
None 
Returns:
  • IX_SUCCESS - Succesfully signalling encapsulation command

  • IX_FAIL - Failed to signal encapsulation command for some internal reason

PUBLIC void ixUSBRNDISUnload void   ) 
 

Function prototype for releasing the I/O memory and disconnecting the interrupt.

Parameters:
None 
Returns:
None

Automatically generated from sources. © Intel Corp. 2003