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

IxAtmCodelet_p.h File Reference

Private header file for the IXP425 Atm codelet. More...

Go to the source code of this file.

Data Structures

struct  IxAtmCodeletStats
 Codelet statistics. More...

struct  IxOamITU610Cell
 OAM ITU610 Cell. More...

struct  IxOamITU610GenericPayload
 Generic payload isn't a real payload but is used for checking which payload type a received OAM cell is. More...

struct  IxOamITU610LbPayload
 Oam cells payload typedefs. More...

union  IxOamITU610Payload
 OAM ITU610 Payload. More...


Defines

#define IX_ATMCODELET_MBUF_SIZE
 Mbuf cluster block size.

#define IX_ATMCODELET_RX_FREE_Q_LOW_THRESHOLD
 Notification trigger threshold value.

#define IX_ATMCODELET_DEFAULT_CLP
 Default Cell Loss Priority value for ATM cell.

#define IX_ATMCODELET_LOG
 ATM Codelet log.

#define IX_OAM_ITU610_F4_SEG_VCI
 VCI values.

#define IX_OAM_ITU610_F4_ETE_VCI
#define IX_OAM_ITU610_F5_SEG_PTI
 PTI values.

#define IX_OAM_ITU610_F5_ETE_PTI
#define IX_OAM_ITU610_LB_CORRELATION_TAG_LEN
 Length of correlation tag bytes in LB cell.

#define IX_OAM_ITU610_LOCATION_ID_LEN
 Size of all location ID attributes in bytes.

#define IX_OAM_ITU610_RESERVED_BYTE_VALUE
 Reserved bytes in OAM cells.

#define IX_OAM_ITU610_GENERIC_PAYLOAD_RESERVED_BYTES_LEN
#define IX_OAM_ITU610_LB_RESERVED_BYTES_LEN
#define IX_OAM_ITU610_RESERVED_AND_CRC10_LEN
 Reserved and CRC10 length.

#define IX_OAM_ITU610_LB_TIMEOUT_PERIOD_MSECS
 Loopback timeout.

#define IX_OAM_ITU610_TYPE_FAULT_MAN_LB
 OAM Function Types.

#define IX_OAM_ITU610_LB_INDICATION_PARENT
 Values for Loopback Indication field.

#define IX_OAM_ITU610_LB_INDICATION_CHILD

Typedefs

typedef UINT32 atmCellHeader
 atm cell header


Enumerations

enum  IxAtmCodeletMode {
  IX_ATMCODELET_UTOPIA_LOOPBACK,
  IX_ATMCODELET_SOFTWARE_LOOPBACK,
  IX_ATMCODELET_REMOTE_LOOPBACK,
  IX_ATMCODELET_UTOPIA_LOOPBACK_PERFORM_OAM_PING_F4F5,
  IX_ATMCODELET_SOFTWARE_LOOPBACK_PERFORM_OAM_PING_F4F5
}
 Mode of operation of the Atmd Access Codelet. More...

enum  IxAtmCodeletAalType {
  ixAtmCodeletAalTypeInvalid,
  ixAtmCodeletAalType5,
  ixAtmCodeletAalType0_48,
  ixAtmCodeletAalType0_52,
  ixAtmCodeletAalTypeMax
}
 The type of AAL that the user is allowed to use. More...


Functions

PUBLIC IX_STATUS ixAtmCodeletSystemInit (UINT32 numPorts, IxAtmCodeletMode mode)
 This function is used to initialize the lower level system component used by the IxAtmCodelet. It should be called before any other IxAtmCodelet API function UNLESS the system initialisation is done elsewhere.

PUBLIC IX_STATUS ixAtmCodeletInit (UINT32 numPorts, UINT32 rxToTxRatio)
 This function is used to initialize the IxAtmCodelet. It should be called before any other IxAtmCodelet API function. This function can be called from the VxWorks windSh.

PUBLIC IX_STATUS ixAtmCodeletUbrChannelsProvision (UINT32 numPorts, UINT32 numChannels, IxAtmdAccAalType aalType)
 This function is used to provision a number of bidirectional Atm UBR channels on the specified number of ports. This function may be called a number of times for different Aal types until all of the available 32 channels are used.

PUBLIC IX_STATUS ixAtmCodeletUbrChannelsRemove (void)
 This function is provided to remove all channels provisioned earlier in a call to ixAtmCodeletUbrChannelsProvision().

PUBLIC IX_STATUS ixAtmCodeletAal0PacketsSend (UINT32 cellsPerPacket, UINT32 numPackets)
 This function is used to send the specified number of Aal0 packets, with the number of cells per packet specified. The packets are multiplexed across all provisioned Aal0 48/52 channels. This function will block until the transmission is complete.

PUBLIC IX_STATUS ixAtmCodeletAal5CpcsSdusSend (UINT32 sduSize, UINT32 numSdus)
 This function is used to send the specified number of Aal5 CPCS SDUs of specified SDU size multiplexed accross all Aal5 provisioned channels. This function will block until the transmission is complete.

PUBLIC IX_STATUS ixAtmCodeletPortRateModify (IxAtmLogicalPort port, UINT32 portRate)
 This function is called to modify the portRate on a previously initialized port.

PUBLIC void ixAtmCodeletPortQuery (void)
 Display some statistics about each port configured.

PUBLIC void ixAtmCodeletShow (void)
 This function is used to dump VC configuration and sdu send and receive counters.

IX_STATUS ixAtmRxTxInit (IxAtmCodeletStats *stats)
 This function initializes Atm codelet transport subcomponent.

IX_STATUS ixAtmRxTxChannelsProvision (UINT32 numPorts, UINT32 numChannels, IxAtmdAccAalType aalType)
 This function is used to provision a number of Atm transport channels.

IX_STATUS ixAtmRxTxChannelsRemove (void)
 This function is used to remove all provsioned channels.

void ixAtmRxTxStatsGet (IxAtmCodeletStats *stats)
 Get transport stats.

void ixAtmRxTxRxFreeLowReplenish (IxAtmdAccUserId userId)
 Replenish buffers to the RxFree queue. Buffers are taken from the mbuf pool.

IX_STATUS ixAtmRxTxAal5CpcsSdusSend (UINT32 sduSize, UINT32 numSdus)
 Send Aal5 CPCS SDUs.

IX_STATUS ixAtmRxTxAal0PacketsSend (UINT32 cellsPerPacket, UINT32 numPackets)
 Send Aal0 packets, where a packet is a number of cells.

IX_STATUS ixAtmSwLbInit (IxAtmCodeletStats *stats, UINT32 rxToTxRatio)
 This function initializes Atm codelet transport subcomponent.

IX_STATUS ixAtmSwLbChannelsProvision (UINT32 numPorts, UINT32 numChannels, IxAtmdAccAalType aalType)
 function is used to provision a number of SW loopback Atm transport channels

IX_STATUS ixAtmSwLbChannelsRemove (void)
 This function is used to remove all provsioned channels.

void ixAtmSwLbRxFreeLowReplenish (IxAtmdAccUserId userId)
void ixAtmSwLbStatsGet (IxAtmCodeletStats *stats)
IX_STATUS ixOamCodeletInit (UINT32 numPorts)
 This function is used to configure OAM accross a number of previously configured ports. N.B. IxQmgr, IxNpeMh, IxAtmSch, IxAtmdAcc, IxAtmm must be initialized before calling this API, e.g. see AtmCodelet:ixAtmCodeletSystemInit().

IX_STATUS ixOamCodeletOamF5EtePing (IxAtmLogicalPort port, UINT32 vpi, UINT32 vci, UINT32 numCells)
 This function is used to initiate an OAM F5 ETE loopback, i.e. OAM ping, on the specified Port, VPI and VCI for a number of cells. ixOamCodeletInit must be called before calling this function.

IX_STATUS ixOamCodeletOamF5SegPing (IxAtmLogicalPort port, UINT32 vpi, UINT32 vci, UINT32 numCells)
 This function is used to initiate an OAM F5 Segment loopback, i.e. OAM ping, on the specified Port, VPI and VCI for a number of cells. ixOamCodeletInit must be called before calling this function.

IX_STATUS ixOamCodeletOamF4EtePing (IxAtmLogicalPort port, UINT32 vpi, UINT32 numCells)
 This function is used to initiate an OAM F4 ETE loopback, i.e. OAM ping, on the specified Port, VPI for a number of cells. F4 flows are VPC based and as such don't require a VCI. ixOamCodeletInit must be called before calling this function.

IX_STATUS ixOamCodeletOamF4SegPing (IxAtmLogicalPort port, UINT32 vpi, UINT32 numCells)
 This function is used to initiate an OAM F4 Segment loopback, i.e. OAM ping, on the specified Port, VPI for a number of cells. F4 flows are VPC based and as such don't require a VCI. ixOamCodeletInit must be called before calling this function.

void ixOamCodeletShow (void)
 This function is used to dump OAM statistics, i.e. parent and child cell receive and transmit counts etc.

PUBLIC IX_STATUS ixAtmUtilsAtmVcRegisterConnect (IxAtmLogicalPort port, unsigned vpi, unsigned vci, IxAtmdAccAalType aalType, IxAtmServiceCategory atmService, IxAtmRxQueueId rxQueueId, IxAtmdAccRxVcRxCallback rxCallback, UINT32 minimumReplenishCount, IxAtmdAccTxVcBufferReturnCallback bufferFreeCallback, IxAtmdAccRxVcFreeLowCallback rxFreeLowCallback, IxAtmdAccUserId userId, IxAtmConnId *rxConnId, IxAtmConnId *txConnId)
 Register and connect an Aal Pdu receive and transmit VC for a particular port/vpi/vci.

PUBLIC IX_STATUS ixAtmUtilsAtmVcUnregisterDisconnect (IxAtmConnId rxConnId, IxAtmConnId txConnId)
 Disconnect and unregister an Aal transmit and receive VC.

PUBLIC IX_STATUS ixAtmUtilsAtmAllVcsDisconnect (void)
 Disconnect and unregister all registered VCs.

PUBLIC IX_STATUS ixAtmUtilsAtmImageDownload (unsigned numPorts, IxAtmmPhyMode *phyMode)
 Download an ATM image to the NPEA.

PUBLIC BOOL ixAtmUtilsUtopiaFpgaStimulusAsMasterSet (void)
 Configure test test and stimulus FPGA clocks for IXP425 as ATM master.

IX_STATUS ixAtmUtilsMbufPoolInit (void)
 Initialize the utilities buffer pool.

void ixAtmUtilsMbufGet (UINT32 bufSize, IX_MBUF **buf)
 Get an unchained buffer.

void ixAtmUtilsMbufFree (IX_MBUF *buf)
 Free a buffer chain.

void ixAtmUtilsMbufShow (void)
 Show statistics for the buffer pool; free, used buffer counts etc.


Detailed Description

Private header file for the IXP425 Atm codelet.

Date:
31-May-2002

Version:
Revision
1.11
-- Intel Copyright Notice --
Copyright 2002-2003 Intel Corporation All Rights Reserved.
The source code contained or described herein and all documents related to the source code ("Material") are owned by Intel Corporation or its suppliers or licensors. Title to the Material remains with Intel Corporation or its suppliers and licensors.
The Material is protected by worldwide copyright and trade secret laws and treaty provisions. No part of the Material may be used, copied, reproduced, modified, published, uploaded, posted, transmitted, distributed, or disclosed in any way except in accordance with the applicable license agreement .
No license under any patent, copyright, trade secret or other intellectual property right is granted to or conferred upon you by disclosure or delivery of the Materials, either expressly, by implication, inducement, estoppel, except in accordance with the applicable license agreement.
Unless otherwise agreed by Intel in writing, you may not remove or alter this notice or any other notice embedded in Materials by Intel or Intel's suppliers or licensors in any way.
For further details, please see the file README.TXT distributed with this software.
-- End Intel Copyright Notice --

Definition in file IxAtmCodelet_p.h.


Define Documentation

#define IX_ATMCODELET_DEFAULT_CLP
 

Default Cell Loss Priority value for ATM cell.

Definition at line 85 of file IxAtmCodelet_p.h.

#define IX_ATMCODELET_LOG
 

ATM Codelet log.

Definition at line 90 of file IxAtmCodelet_p.h.

#define IX_ATMCODELET_MBUF_SIZE
 

Mbuf cluster block size.

Definition at line 75 of file IxAtmCodelet_p.h.

#define IX_ATMCODELET_RX_FREE_Q_LOW_THRESHOLD
 

Notification trigger threshold value.

Definition at line 80 of file IxAtmCodelet_p.h.

#define IX_OAM_ITU610_F4_SEG_VCI
 

VCI values.

Definition at line 95 of file IxAtmCodelet_p.h.

#define IX_OAM_ITU610_F5_SEG_PTI
 

PTI values.

Definition at line 101 of file IxAtmCodelet_p.h.

#define IX_OAM_ITU610_LB_CORRELATION_TAG_LEN
 

Length of correlation tag bytes in LB cell.

Definition at line 107 of file IxAtmCodelet_p.h.

#define IX_OAM_ITU610_LB_INDICATION_PARENT
 

Values for Loopback Indication field.

Definition at line 139 of file IxAtmCodelet_p.h.

#define IX_OAM_ITU610_LB_TIMEOUT_PERIOD_MSECS
 

Loopback timeout.

Definition at line 129 of file IxAtmCodelet_p.h.

#define IX_OAM_ITU610_LOCATION_ID_LEN
 

Size of all location ID attributes in bytes.

Definition at line 112 of file IxAtmCodelet_p.h.

#define IX_OAM_ITU610_RESERVED_AND_CRC10_LEN
 

Reserved and CRC10 length.

Definition at line 124 of file IxAtmCodelet_p.h.

#define IX_OAM_ITU610_RESERVED_BYTE_VALUE
 

Reserved bytes in OAM cells.

Definition at line 117 of file IxAtmCodelet_p.h.

#define IX_OAM_ITU610_TYPE_FAULT_MAN_LB
 

OAM Function Types.

Definition at line 134 of file IxAtmCodelet_p.h.


Typedef Documentation

typedef UINT32 atmCellHeader
 

atm cell header

Definition at line 149 of file IxAtmCodelet_p.h.


Enumeration Type Documentation

enum IxAtmCodeletAalType
 

The type of AAL that the user is allowed to use.

Enumeration values:
ixAtmCodeletAalTypeInvalid  Invalid AAL.
ixAtmCodeletAalType5  AAL 5.
ixAtmCodeletAalType0_48  AAL 0 48bytes.
ixAtmCodeletAalType0_52  AAL0 52bytes.
ixAtmCodeletAalTypeMax  Max AAL type that is available here.

Definition at line 193 of file IxAtmCodelet_p.h.

enum IxAtmCodeletMode
 

Mode of operation of the Atmd Access Codelet.

Enumeration values:
IX_ATMCODELET_UTOPIA_LOOPBACK  All cells sent out are looped back in by the UTOPIA hardware.

Useful for demonstrating traffic on a board with no ADSL PHY or external test equipment

IX_ATMCODELET_SOFTWARE_LOOPBACK  All cells received are looped back out again by the software.
IX_ATMCODELET_REMOTE_LOOPBACK  All cells sent are anticipated to be loopbed back by external equipment.
IX_ATMCODELET_UTOPIA_LOOPBACK_PERFORM_OAM_PING_F4F5  Mode type for OAM Utopia Loopback Ping.
IX_ATMCODELET_SOFTWARE_LOOPBACK_PERFORM_OAM_PING_F4F5  Mode type for OAM Software Loopback Ping.

Definition at line 170 of file IxAtmCodelet_p.h.


Function Documentation

PUBLIC IX_STATUS ixAtmCodeletAal0PacketsSend UINT32  cellsPerPacket,
UINT32  numPackets
 

This function is used to send the specified number of Aal0 packets, with the number of cells per packet specified. The packets are multiplexed across all provisioned Aal0 48/52 channels. This function will block until the transmission is complete.

It is responsible to transmit a number of Aal0 packets each containing cellsPerPacket cells.

This function will call ixAtmRxTxAal0PacketsSend (in ixAtmCodeletRxTx.c). (See Figure 3)

(AAL0 Packets) (AAL5 Packets) ixAtmRxTxAal0PacketsSend() ixAtmRxTxAal5CpcsSdusSend() | | v v PRIVATE ixAtmRxTxAal0Tx() PRIVATE ixAtmRxTxAal5CpcsTx() | | | | +--------->PRIVATE ixAtmRxTxWithRetiesSend()<-----------+ | | IxAtmCodeletRxTx ---------------------------------------------------------------------------- | IxAtmdAcc v PUBLIC ixAtmdAccTxVcPduSubmit()

Figure 3

Parameters:
UINT32 cellsPerPacket The number of cells per packet to send.
UINT32 numPackets The total number of packets to send.
Returns:
IX_SUCCESS Indicates tha the Atm Codelet has successfully sent all of the packets.
IX_FAIL Some internal error has prevented the Atm Codelet from sending the packets successfully.

PUBLIC IX_STATUS ixAtmCodeletAal5CpcsSdusSend UINT32  sduSize,
UINT32  numSdus
 

This function is used to send the specified number of Aal5 CPCS SDUs of specified SDU size multiplexed accross all Aal5 provisioned channels. This function will block until the transmission is complete.

It is responsible to transmit a number of Aal5 CPCS SDUs of length sduLength. This function will call ixAtmRxTxAal5CpcsSdusSend (in ixAtmCodeletRxTx.c). (See Figure 3 for ixAtmRxTxAal5CpcsSdusSend)

Parameters:
UINT32 sduSize The SDU size of the sdus to send in bytes. The Atm trailer + padding will be appended to this.
UINT32 numsdus The total number of sdus to send.
Returns:
IX_SUCCESS Indicates tha the Atm Codelet has successfully sent all of the sdus.
IX_FAIL Some internal error has prevented the Atm Codelet from sending the sdus successfully.

PUBLIC IX_STATUS ixAtmCodeletInit UINT32  numPorts,
UINT32  rxToTxRatio
 

This function is used to initialize the IxAtmCodelet. It should be called before any other IxAtmCodelet API function. This function can be called from the VxWorks windSh.

This function does the following sequence:
a) Enabled up either UTOPIA, Software or Remote loopback mode

b) Sets up the UTOPIA Phy port addresss for each port. These addresses need to be defined as per the Physical interface used.

c) Initialize the following component:

d) Enable the ports using ixAtmmPortEnable()

e) Depending on the Loopback mode, this function will initialize

  • IxAtmCodeletRxTx subcomponent by using ixAtmTxRxInit() function
    IF UTOPIA_LOOPBACK or REMOTE_LOOPBACK mode is set
  • IxAtmCodeletSwLoopback subcomponent by using ixAtmSwLbInit() function
    IF SOFTWARE_LOOPBACK mode is set f) Initialize OAM Codelet using ixOamCodeletInit()

g) Sets the initialized flag - i.e. ixAtmCodeletInitialized = TRUE

Parameters:
UINT32 numPorts The number of ATM ports to configure. Valid values range from 1 to 12.
UINT32 rxToTxRatio Ratio of PDUs received to attempted PDU sends when softwareLoopbackEnabled := TRUE. e.g. if rxToTxRatio is 6 then 1 PDU will be sent for every 6 PDUs received.
Returns:
IX_SUCCESS Indicates tha the Atm Codelet has been successfully initialized.
IX_FAIL Some internal error has prevented the Atm Codelet from initialising.

PUBLIC void ixAtmCodeletPortQuery void   ) 
 

Display some statistics about each port configured.

Parameters:
none 
Returns:
void

PUBLIC IX_STATUS ixAtmCodeletPortRateModify IxAtmLogicalPort  port,
UINT32  portRate
 

This function is called to modify the portRate on a previously initialized port.

Parameters:
IxAtmLogicalPort port Specifies the ATM port which is to be modified.
It is used to modify the transmit port rate. The transmit port rate is done by calling ixAtmSchPortRateModify() function (IxAtmSch component) to perform traffic shaping.

Returns:
IX_SUCCESS The port rate has been successfully modified.
IX_FAIL The port rate could not be modified, either because the input data was invalid, or the new port rate is insufficient to support established ATM VC contracts on this port.

PUBLIC void ixAtmCodeletShow void   ) 
 

This function is used to dump VC configuration and sdu send and receive counters.

It displays some statistics about the transmit and receive streams

Parameters:
none 
Returns:
void

PUBLIC IX_STATUS ixAtmCodeletSystemInit UINT32  numPorts,
IxAtmCodeletMode  mode
 

This function is used to initialize the lower level system component used by the IxAtmCodelet. It should be called before any other IxAtmCodelet API function UNLESS the system initialisation is done elsewhere.

This function initializes QMgr using ixQMgrInit() function in order to provide interfaces for configuring and accessing the IXP425 AQM hardware queues to facilitate communication of data between the NPEs and the XScale.

It also sets up how the QMgr is being called i.e. interrupt or poll mode. In addition, this function initializes the NPE Message Handler (ixNpeMhInitialize()), download NPE image (ixAtmUtilsAtmImageDownload()), and starts the NPE (ixNpeDlNpeExecutionStart()).

Parameters:
UINT32 numPorts The number of ATM ports to configure. Valid values range from 1 to 12.
IxAtmCodeletMode mode This indicates the codelet mode.
Returns:
IX_SUCCESS Indicates that the Atm Codelet system init successfull.
IX_FAIL Some internal error has prevented the Atm Codelet sstem components from initialising.

PUBLIC IX_STATUS ixAtmCodeletUbrChannelsProvision UINT32  numPorts,
UINT32  numChannels,
IxAtmdAccAalType  aalType
 

This function is used to provision a number of bidirectional Atm UBR channels on the specified number of ports. This function may be called a number of times for different Aal types until all of the available 32 channels are used.

It is responsible to create the specified number of ports and channels. The number of ports provisioned must be <= the number of ports specified to ixAtmCodeletInit(). There are two functions to be called depending on the Loopback mode: i) ixAtmSwLbChannelsProvision (in ixAtmCodeletSwLoopback.c). This is for Software Loopback mode (See Figure 1)
ii) ixAtmRxTxChannelsProvision (in ixAtmCodeletRxTx.c). This is for Utopia and Remote Loopback mode (See Figure 1)

ixAtmSwLbChannelsProvision() or ixAtmRxTxChannelsProvision() | v IxAtmSwLoopback --------------------------------------------------------------------------- | IxAtmUtilsAtm v PUBLIC ixAtmUtilsAtmVcRegisterConnect() / \ / \ / \ ------------------------------ ---------------------------------------- | IxAtmm | IxAtmd v v 1. PUBLIC ixAtmmVcRegister(), 2. PUBLIC ixAtmdAccTxVcConnect() (To setup Tx and Rx VC) (Connect Tx to the VC)

3. PUBLIC ixAtmdAccRxVcConnect() (Connect Rx to the VC)

4. PUBLIC ixAtmdAccRxVcFreeEntriesQuery() (Get the number of entries in rx free queue)

5. PUBLIC ixAtmdAccRxVcFreeLowCallbackRegister() (Replenish Rx buffers if callback is not NULL)

6. PUBLIC ixAtmdAccRxVcEnable() (Start the Rx service on a VC)

Figure 1

Parameters:
UINT32 numPorts The number of ATM ports to configure channels on. This must be less than or equal to the number of ports configured in the call to ixAtmCodeletInit().
UINT32 numChannels The number of bidirectional Atm channels to provision. Channels are provisioned accross numPorts in the following manner, for 2 ports, 4 VCs, Channel 0 on port 0, channel 1 on port 1, channel 2 on port 0, channel 3 on port 1. Valid values range from 1 to 32. Subsequent calls will assign channel and port numbers in ascending order.
IxAtmdAccAalType aalType The aalType for the channels to provision, i.e. Aal5, Aal0 48 byte mode or Aal0 52 byte cell mode.
Returns:
IX_SUCCESS Indicates tha the Atm Codelet has successfully provisioned the requested number of channels.
IX_FAIL Some internal error has prevented the ATM codelet from from provisioning the channels.

PUBLIC IX_STATUS ixAtmCodeletUbrChannelsRemove void   ) 
 

This function is provided to remove all channels provisioned earlier in a call to ixAtmCodeletUbrChannelsProvision().

It is responsible to remove all VCs registered by ixAtmCodeletUbrChannelsProvision. There are two functions to be called depending on the Loopback mode: i) ixAtmSwLbChannelsRemove (in ixAtmCodeletSwLoopback.c). This is for Software Loopback mode (See Figure 2)
ii) ixAtmRxTxChannelsRemove (in ixAtmCodeletRxTx.c). This is for Utopia and Remote Loopback mode. (See Figure 2)

Both ChannelsRemove function calls in the following manner.

ixAtmRxTxChannelsRemove() or ixAtmSwLbChannelsRemove() | | IxAtmCodeletsRxTx ---------------------------------------------------------- | IxAtmUtilsAtm v PUBLIC ixAtmUtilsAtmAllVcsDisconnect() | v PRIVATE ixAtmUtilsAtmVcUnregisterDisconnect() | | ---------------------------------------------------------- | IxAtmm v PUBLIC ixAtmmVcDeregister() for Tx and Rx

Figure 2

Parameters:
none 
Returns:
IX_SUCCESS Indicates that the Atm Codelet has successfully removed all provisioned channels.
IX_FAIL Some internal error has prevented the Atm Codelet from removing provisioned channels.

IX_STATUS ixAtmRxTxAal0PacketsSend UINT32  cellsPerPacket,
UINT32  numPackets
 

Send Aal0 packets, where a packet is a number of cells.

Parameters:
UINT32 cellsPerPacket The number of cells per packet to send.
UINT32 numPackets The total number of packets to send.

IX_STATUS ixAtmRxTxAal5CpcsSdusSend UINT32  sduSize,
UINT32  numSdus
 

Send Aal5 CPCS SDUs.

IX_STATUS ixAtmRxTxChannelsProvision UINT32  numPorts,
UINT32  numChannels,
IxAtmdAccAalType  aalType
 

This function is used to provision a number of Atm transport channels.

IX_STATUS ixAtmRxTxChannelsRemove void   ) 
 

This function is used to remove all provsioned channels.

IX_STATUS ixAtmRxTxInit IxAtmCodeletStats stats  ) 
 

This function initializes Atm codelet transport subcomponent.

void ixAtmRxTxRxFreeLowReplenish IxAtmdAccUserId  userId  ) 
 

Replenish buffers to the RxFree queue. Buffers are taken from the mbuf pool.

void ixAtmRxTxStatsGet IxAtmCodeletStats stats  ) 
 

Get transport stats.

IX_STATUS ixAtmSwLbChannelsProvision UINT32  numPorts,
UINT32  numChannels,
IxAtmdAccAalType  aalType
 

function is used to provision a number of SW loopback Atm transport channels

IX_STATUS ixAtmSwLbChannelsRemove void   ) 
 

This function is used to remove all provsioned channels.

IX_STATUS ixAtmSwLbInit IxAtmCodeletStats stats,
UINT32  rxToTxRatio
 

This function initializes Atm codelet transport subcomponent.

PUBLIC IX_STATUS ixAtmUtilsAtmAllVcsDisconnect void   ) 
 

Disconnect and unregister all registered VCs.

Parameters:
none 
Returns:
IX_SUCCESS successful call to ixAtmUtilsAtmAllVcsDisconnect
IX_FAIL parameter error, failed to disconnect, not initialised or some other error occurs during processing.

PUBLIC IX_STATUS ixAtmUtilsAtmImageDownload unsigned  numPorts,
IxAtmmPhyMode phyMode
 

Download an ATM image to the NPEA.

Parameters:
numports (in) Number of ports in the system. A value > 1 requires a MPHY_MULTIPORT to NPEA image to be downloaded. A value of 1 can use a SPHY or MPHY NPEA image.
imagePtr (in) Pointer to image file that can contain multiple images.
phyMode (out) This parameter will be set depending on which images is available in imagePtr. See description for numports above.
Returns:
IX_SUCCESS successful call to ixAtmUtilsAtmNpeImagedownload
IX_FAIL parameter error, failed to disconnect, not initialised or some other error occurs during processing.

PUBLIC IX_STATUS ixAtmUtilsAtmVcRegisterConnect IxAtmLogicalPort  port,
unsigned  vpi,
unsigned  vci,
IxAtmdAccAalType  aalType,
IxAtmServiceCategory  atmService,
IxAtmRxQueueId  rxQueueId,
IxAtmdAccRxVcRxCallback  rxCallback,
UINT32  minimumReplenishCount,
IxAtmdAccTxVcBufferReturnCallback  bufferFreeCallback,
IxAtmdAccRxVcFreeLowCallback  rxFreeLowCallback,
IxAtmdAccUserId  userId,
IxAtmConnId rxConnId,
IxAtmConnId txConnId
 

Register and connect an Aal Pdu receive and transmit VC for a particular port/vpi/vci.

This function allows a user to connect to an Aal5 Pdu receive and transmitservice for a particular port/vpi/vci. It registers the callback and allocates internal resources and a Connection Id to be used in further API calls related to this VCC.

Parameters:
port (in) VC identification : logical PHY port [0..7]
vpi (in) VC identification : ATM Vpi [0..255]
vci (in) VC identification : ATM Vci [0..65535]
atmService (in) type of service AAL5 only in ixp425 1.0
rxQueueId (in) this identifieds which of two Qs the VC should use.when icoming traffic is processed
rxCallback (in) function called when mbufs are received. This parameter cannot be a null pointer.
minimumReplenishCount (in) number of free mbufs to be used with this channel. Use a high number when the expected traffic rate on this channel is high, or when the user's mbufs are small, or when the RxVcFreeLow Notification has to be invoked less often.
bufferFreeCallback (in) function to be called to return ownership of buffers to IxAtmAtmUtils user.
userId (in) user Id to use in callback communications
rxConnId (out) Rx Conn Id passed back from IxAtmdAcc
txConnId (out) Tx Conn Id passed back from IxAtmdAcc
Returns:
IX_SUCCESS successful call to ixAtmUtilsAtmVcRegisterConnect
IX_FAIL parameter error, VC already in use or port is not initialised or some other error occurs during processing.

PUBLIC IX_STATUS ixAtmUtilsAtmVcUnregisterDisconnect IxAtmConnId  rxConnId,
IxAtmConnId  txConnId
 

Disconnect and unregister an Aal transmit and receive VC.

Parameters:
rxConnId (in) conn Id of the Rx VC to disconnect and unregister
txConnId (in) conn Id of the Tx VC to disconnect and unregister
Returns:
IX_SUCCESS successful call to ixAtmUtilsAtmVcUnregisterDisconnect
IX_FAIL parameter error, failed to disconnect, not initialised or some other error occurs during processing.

void ixAtmUtilsMbufFree IX_MBUF *  buf  ) 
 

Free a buffer chain.

Parameters:
buf (out) Pointer to buffer to be freed.
Returns:
IX_SUCCESS successful call to ixAtmUtilsMbufGet
IX_FAIL parameter error, failed to get a buffer, or some other error occurs during processing.

void ixAtmUtilsMbufGet UINT32  bufSize,
IX_MBUF **  buf
 

Get an unchained buffer.

Parameters:
bufSize (in) Buffer capacity.
buf (out) Pointer to buffer; will be set the new buffer
Returns:
IX_SUCCESS successful call to ixAtmUtilsMbufGet
IX_FAIL parameter error, failed to get a buffer, or some other error occurs during processing.

IX_STATUS ixAtmUtilsMbufPoolInit void   ) 
 

Initialize the utilities buffer pool.

Parameters:
none 
Returns:
IX_SUCCESS successful call to ixAtmUtilsMbufPoolInit
IX_FAIL parameter error, failed initialize buffer pool or some other error occurs during processing.

void ixAtmUtilsMbufShow void   ) 
 

Show statistics for the buffer pool; free, used buffer counts etc.

Returns:
none

PUBLIC BOOL ixAtmUtilsUtopiaFpgaStimulusAsMasterSet void   ) 
 

Configure test test and stimulus FPGA clocks for IXP425 as ATM master.

Parameters:
none 
Returns:
IX_SUCCESS successful call to ixAtmUtilsUtopiaFpgaStimulusAsMasterSet
IX_FAIL parameter error, failed to configure stimulus FPGA, not initialised or some other error occurs during processing.

IX_STATUS ixOamCodeletInit UINT32  numPorts  ) 
 

This function is used to configure OAM accross a number of previously configured ports. N.B. IxQmgr, IxNpeMh, IxAtmSch, IxAtmdAcc, IxAtmm must be initialized before calling this API, e.g. see AtmCodelet:ixAtmCodeletSystemInit().

Parameters:
UINT32 numPorts The number of ATM ports to configure on. This must be less than or equal to the number of ports configured in e.g. the call to ixAtmCodeletInit().
Returns:
  • IX_SUCCESS : Indicates that the Atm Codelet has successfully provisioned the OAM Tx Port channels and the OAM Rx channel.
  • IX_FAIL : Some internal error has prevented the ATM codelet from from provisioning the channels.

IX_STATUS ixOamCodeletOamF4EtePing IxAtmLogicalPort  port,
UINT32  vpi,
UINT32  numCells
 

This function is used to initiate an OAM F4 ETE loopback, i.e. OAM ping, on the specified Port, VPI for a number of cells. F4 flows are VPC based and as such don't require a VCI. ixOamCodeletInit must be called before calling this function.

OAM F4 ETE Parent Loopback cells are sent to the F4 connection end point (LLID = all one's).

If an OAM F4 ETE Child Loopback cell has been received in response to a Parent cell sent, a message will be displayed at the WindSh prompt.

The loopback is complete and a subsequent loopback is allowed only when all the loopback parent cells have been sent and either A) a child loopback cell has been received in response to the last cell OR B) 5 seconds have passed since the last cell was sent. N.B. the function blocks until the loopback has completed.

Parameters:
IxAtmLogicalPort The port to send the OAM loopback cells on. This port must have been configured previously.
UINT32 VPI The VPI of the channel to send the OAM loopback cells on. An Aal0/Aal5 channel need not be configured previously on the same VPI/VCI.
UINT32 numCells The number of parent loopback cells to send. Not checked against some max value, only limited by size of type.
Returns:
  • IX_SUCCESS : Indicates that the Oam Codelet has successfully performed the OAM ping.
  • IX_FAIL : Some internal error has prevented the Oam Codelet performing the OAM ping.

IX_STATUS ixOamCodeletOamF4SegPing IxAtmLogicalPort  port,
UINT32  vpi,
UINT32  numCells
 

This function is used to initiate an OAM F4 Segment loopback, i.e. OAM ping, on the specified Port, VPI for a number of cells. F4 flows are VPC based and as such don't require a VCI. ixOamCodeletInit must be called before calling this function.

OAM F4 Segment Parent Loopback cells are sent to the F4 connection end point (LLID = all one's).

If an OAM F4 Segment Child Loopback cell has been received in response to a Parent cell sent, a message will be displayed at the WindSh prompt.

The loopback is complete and a subsequent loopback is allowed only when all the loopback parent cells have been sent and either A) a child loopback cell has been received in response to the last cell OR B) 5 seconds have passed since the last cell was sent. N.B. the function blocks until the loopback has completed.

Parameters:
IxAtmLogicalPort The port to send the OAM loopback cells on. This port must have been configured previously.
UINT32 VPI The VPI of the channel to send the OAM loopback cells on. An Aal0/Aal5 channel need not be configured previously on the same VPI/VCI.
UINT32 numCells The number of parent loopback cells to send. Not checked against some max value, only limited by size of type.
Returns:
  • IX_SUCCESS : indicates that the Oam Codelet has successfully performed the OAM ping.
  • IX_FAIL : Some internal error has prevented the Oam Codelet performing the OAM ping.

IX_STATUS ixOamCodeletOamF5EtePing IxAtmLogicalPort  port,
UINT32  vpi,
UINT32  vci,
UINT32  numCells
 

This function is used to initiate an OAM F5 ETE loopback, i.e. OAM ping, on the specified Port, VPI and VCI for a number of cells. ixOamCodeletInit must be called before calling this function.

OAM F5 ETE Parent Loopback cells are sent to the F5 connection end point (LLID = all one's).

If an OAM F5 ETE Child Loopback cell has been received in response to a Parent cell sent, a message will be displayed at the WindSh prompt.

The loopback is complete and a subsequent loopback is allowed only when all the loopback parent cells have been sent and either A) a child loopback cell has been received in response to the last cell OR B) 5 seconds have passed since the last cell was sent. N.B. the function blocks until the loopback has completed.

Parameters:
IxAtmLogicalPort The port to send the OAM loopback cells on. This port must have been configured previously.
UINT32 VPI The VPI of the channel to send the OAM loopback cells on. An Aal0/Aal5 channel need not be configured previously on the same VPI/VCI.
UINT32 VCI The VCI of the channel to send the OAM loopback cells on. An Aal0/Aal5 channel need not be configured previously on the same VPI/VCI.
UINT32 numCells The number of parent loopback cells to send. Not checked against some max value, only limited by size of type.
Returns:
  • IX_SUCCESS : Indicates that the Oam Codelet has successfully performed the OAM ping.
  • IX_FAIL : Some internal error has prevented the Oam Codelet performing the OAM ping.

IX_STATUS ixOamCodeletOamF5SegPing IxAtmLogicalPort  port,
UINT32  vpi,
UINT32  vci,
UINT32  numCells
 

This function is used to initiate an OAM F5 Segment loopback, i.e. OAM ping, on the specified Port, VPI and VCI for a number of cells. ixOamCodeletInit must be called before calling this function.

OAM F5 Segment Parent Loopback cells are sent to the F5 connection end point (LLID = all one's).

If an OAM F5 Segment Child Loopback cell has been received in response to a Parent cell sent, a message will be displayed at the WindSh prompt.

The loopback is complete and a subsequent loopback is allowed only when all the loopback parent cells have been sent and either A) a child loopback cell has been received in response to the last cell OR B) 5 seconds have passed since the last cell was sent. N.B. the function blocks until the loopback has completed.

Parameters:
IxAtmLogicalPort The port to send the OAM loopback cells on. This port must have been configured previously.
UINT32 VPI The VPI of the channel to send the OAM loopback cells on. An Aal0/Aal5 channel need not be configured previously on the same VPI/VCI.
UINT32 VCI The VCI of the channel to send the OAM loopback cells on. An Aal0/Aal5 channel need not be configured previously on the same VPI/VCI.
UINT32 numCells The number of parent loopback cells to send. Not checked against some max value, only limited by size of type.
Returns:
  • IX_SUCCESS : Indicates that the Oam Codelet has successfully performed the OAM ping.
  • IX_FAIL : Some internal error has prevented the Oam Codelet performing the OAM ping.

void ixOamCodeletShow void   ) 
 

This function is used to dump OAM statistics, i.e. parent and child cell receive and transmit counts etc.

Parameters:
none 
Returns:
void

Automatically generated from sources. © Intel Corp. 2003