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

IxHssAcc.h File Reference

This file contains the public API of the IXP425 HSS Access component. More...

Go to the source code of this file.

Data Structures

struct  IxHssAccConfigParams
 Structure containing HSS configuration parameters. More...

struct  IxHssAccHdlcMode
 This structure contains 56Kbps, HDLC-mode configuration parameters. More...

struct  IxHssAccPktHdlcFraming
 This structure contains information required by the NPE to configure the HDLC co-processor. More...

struct  IxHssAccPortConfig
 Structure containing HSS port configuration parameters. More...


Defines

#define IX_HSSACC_TSLOTS_PER_HSS_PORT
 The max number of TDM timeslots supported per HSS port - 4E1's = 32x4 = 128.

#define IX_HSSACC_PARAM_ERR
 HssAccess function return value for a parameter error.

#define IX_HSSACC_RESOURCE_ERR
 HssAccess function return value for a resource error.

#define IX_HSSACC_PKT_DISCONNECTING
 Indicates that a disconnect call is progressing and will disconnect soon.

#define IX_HSSACC_Q_WRITE_OVERFLOW
 Indicates that an attempt to Tx or to replenish an RxFree Q failed due to Q overflow.

#define IX_HSSACC_NO_ERROR
 HSS port no error present.

#define IX_HSSACC_TX_FRM_SYNC_ERR
 HSS port TX Frame Sync error.

#define IX_HSSACC_TX_OVER_RUN_ERR
 HSS port TX over-run error.

#define IX_HSSACC_CHANNELISED_SW_TX_ERR
 NPE software error in channelised TX.

#define IX_HSSACC_PACKETISED_SW_TX_ERR
 NPE software error in packetised TX.

#define IX_HSSACC_RX_FRM_SYNC_ERR
 HSS port RX Frame Sync error.

#define IX_HSSACC_RX_OVER_RUN_ERR
 HSS port RX over-run error.

#define IX_HSSACC_CHANNELISED_SW_RX_ERR
 NPE software error in channelised RX.

#define IX_HSSACC_PACKETISED_SW_RX_ERR
 NPE software error in packetised TX.

#define IX_HSSACC_PKT_MIN_RX_MBUF_SIZE
 Minimum size of the Rx mbuf in bytes which the client must supply to the component.


Typedefs

typedef UINT32 IxHssAccPktUserId
 The client supplied value which will be supplied as a parameter with a given callback.

typedef void(* IxHssAccLastErrorCallback )(unsigned lastHssError, unsigned servicePort)
 Prototype of the clients function to accept notification of the last error.

typedef void(* IxHssAccPktRxCallback )(IX_MBUF *buffer, unsigned numHssErrs, IxHssAccPktStatus pktStatus, IxHssAccPktUserId rxUserId)
 Prototype of the clients function to accept notification of packetised rx.

typedef void(* IxHssAccPktRxFreeLowCallback )(IxHssAccPktUserId rxFreeLowUserId)
 Prototype of the clients function to accept notification of requirement of more Rx Free buffers.

typedef void(* IxHssAccPktTxDoneCallback )(IX_MBUF *buffer, unsigned numHssErrs, IxHssAccPktStatus pktStatus, IxHssAccPktUserId txDoneUserId)
 Prototype of the clients function to accept notification of completion with Tx buffers.

typedef void(* IxHssAccChanRxCallback )(IxHssAccHssPort hssPortId, unsigned rxOffset, unsigned txOffset, unsigned numHssErrs)
 Prototype of the clients function to accept notification of channelised rx.


Enumerations

enum  IxHssAccHssPort {
  IX_HSSACC_HSS_PORT_0,
  IX_HSSACC_HSS_PORT_1,
  IX_HSSACC_HSS_PORT_MAX
}
 The HSS port ID - There are two identical ports (0-1). More...

enum  IxHssAccHdlcPort {
  IX_HSSACC_HDLC_PORT_0,
  IX_HSSACC_HDLC_PORT_1,
  IX_HSSACC_HDLC_PORT_2,
  IX_HSSACC_HDLC_PORT_3,
  IX_HSSACC_HDLC_PORT_MAX
}
 The HDLC port ID - There are four identical HDLC ports (0-3) per HSS port and they correspond to the 4 E1/T1 trunks. More...

enum  IxHssAccTdmSlotUsage {
  IX_HSSACC_TDMMAP_UNASSIGNED,
  IX_HSSACC_TDMMAP_HDLC,
  IX_HSSACC_TDMMAP_VOICE56K,
  IX_HSSACC_TDMMAP_VOICE64K,
  IX_HSSACC_TDMMAP_MAX
}
 The HSS TDM stream timeslot assignment types. More...

enum  IxHssAccFrmSyncType {
  IX_HSSACC_FRM_SYNC_ACTIVE_LOW,
  IX_HSSACC_FRM_SYNC_ACTIVE_HIGH,
  IX_HSSACC_FRM_SYNC_FALLINGEDGE,
  IX_HSSACC_FRM_SYNC_RISINGEDGE,
  IX_HSSACC_FRM_SYNC_TYPE_MAX
}
 The HSS frame sync pulse type. More...

enum  IxHssAccFrmSyncEnable {
  IX_HSSACC_FRM_SYNC_INPUT,
  IX_HSSACC_FRM_SYNC_INVALID_VALUE,
  IX_HSSACC_FRM_SYNC_OUTPUT_FALLING,
  IX_HSSACC_FRM_SYNC_OUTPUT_RISING,
  IX_HSSACC_FRM_SYNC_ENABLE_MAX
}
 The IxHssAccFrmSyncEnable determines how the frame sync pulse is used. More...

enum  IxHssAccClkEdge {
  IX_HSSACC_CLK_EDGE_FALLING,
  IX_HSSACC_CLK_EDGE_RISING,
  IX_HSSACC_CLK_EDGE_MAX
}
 IxHssAccClkEdge is used to determine the clk edge to use for framing and data. More...

enum  IxHssAccClkDir {
  IX_HSSACC_SYNC_CLK_DIR_INPUT,
  IX_HSSACC_SYNC_CLK_DIR_OUTPUT,
  IX_HSSACC_SYNC_CLK_DIR_MAX
}
 The HSS clock direction. More...

enum  IxHssAccFrmPulseUsage {
  IX_HSSACC_FRM_PULSE_ENABLED,
  IX_HSSACC_FRM_PULSE_DISABLED,
  IX_HSSACC_FRM_PULSE_MAX
}
 The HSS frame pulse usage. More...

enum  IxHssAccDataRate {
  IX_HSSACC_CLK_RATE,
  IX_HSSACC_HALF_CLK_RATE,
  IX_HSSACC_DATA_RATE_MAX
}
 The HSS Data rate in relation to the clock. More...

enum  IxHssAccDataPolarity {
  IX_HSSACC_DATA_POLARITY_SAME,
  IX_HSSACC_DATA_POLARITY_INVERT,
  IX_HSSACC_DATA_POLARITY_MAX
}
 The HSS data polarity type. More...

enum  IxHssAccBitEndian {
  IX_HSSACC_LSB_ENDIAN,
  IX_HSSACC_MSB_ENDIAN,
  IX_HSSACC_ENDIAN_MAX
}
 HSS Data endianness. More...

enum  IxHssAccDrainMode {
  IX_HSSACC_TX_PINS_NORMAL,
  IX_HSSACC_TX_PINS_OPEN_DRAIN,
  IX_HSSACC_TX_PINS_MAX
}
 Tx pin open drain mode. More...

enum  IxHssAccSOFType {
  IX_HSSACC_SOF_FBIT,
  IX_HSSACC_SOF_DATA,
  IX_HSSACC_SOF_MAX
}
 HSS start of frame types. More...

enum  IxHssAccDataEnable {
  IX_HSSACC_DE_TRI_STATE,
  IX_HSSACC_DE_DATA,
  IX_HSSACC_DE_MAX
}
 IxHssAccDataEnable is used to determine whether or not to drive the data pins. More...

enum  IxHssAccTxSigType {
  IX_HSSACC_TXSIG_LOW,
  IX_HSSACC_TXSIG_HIGH,
  IX_HSSACC_TXSIG_HIGH_IMP,
  IX_HSSACC_TXSIG_MAX
}
 IxHssAccTxSigType is used to determine how to drive the data pins. More...

enum  IxHssAccFbType {
  IX_HSSACC_FB_FIFO,
  IX_HSSACC_FB_HIGH_IMP,
  IX_HSSACC_FB_MAX
}
 IxHssAccFbType determines how to drive the Fbit. More...

enum  IxHssAcc56kEndianness {
  IX_HSSACC_56KE_BIT_7_UNUSED,
  IX_HSSACC_56KE_BIT_0_UNUSED,
  IX_HSSACC_56KE_MAX
}
 56k data endianness when using the 56k type More...

enum  IxHssAcc56kSel {
  IX_HSSACC_56KS_32_8_DATA,
  IX_HSSACC_56KS_56K_DATA,
  IX_HSSACC_56KS_MAX
}
 56k data transmission type when using the 56k type More...

enum  IxHssAccClkSpeed {
  IX_HSSACC_CLK_SPEED_512KHZ,
  IX_HSSACC_CLK_SPEED_1536KHZ,
  IX_HSSACC_CLK_SPEED_1544KHZ,
  IX_HSSACC_CLK_SPEED_1568KHZ,
  IX_HSSACC_CLK_SPEED_2048KHZ,
  IX_HSSACC_CLK_SPEED_4096KHZ,
  IX_HSSACC_CLK_SPEED_8192KHZ,
  IX_HSSACC_CLK_SPEED_MAX
}
 IxHssAccClkSpeed represents the HSS clock speeds available. More...

enum  IxHssAccPktStatus {
  IX_HSSACC_PKT_OK,
  IX_HSSACC_STOP_SHUTDOWN_ERROR,
  IX_HSSACC_HDLC_ALN_ERROR,
  IX_HSSACC_HDLC_FCS_ERROR,
  IX_HSSACC_RXFREE_Q_EMPTY_ERROR,
  IX_HSSACC_HDLC_MAX_FRAME_SIZE_EXCEEDED,
  IX_HSSACC_HDLC_ABORT_ERROR,
  IX_HSSACC_DISCONNECT_IN_PROGRESS
}
 Indicates the status of packets passed to the client. More...

enum  IxHssAccPktCrcType {
  IX_HSSACC_PKT_16_BIT_CRC,
  IX_HSSACC_PKT_32_BIT_CRC
}
 HDLC CRC type. More...

enum  IxHssAccPktHdlcIdleType {
  IX_HSSACC_HDLC_IDLE_ONES,
  IX_HSSACC_HDLC_IDLE_FLAGS
}
 HDLC idle transmission type. More...


Functions

PUBLIC IX_STATUS ixHssAccPortInit (IxHssAccHssPort hssPortId, IxHssAccConfigParams *configParams, IxHssAccTdmSlotUsage *tdmMap, IxHssAccLastErrorCallback lastHssErrorCallback)
 Initialise a HSS port. No channelised or packetised connections should exist in the HssAccess layer while this interface is being called.

PUBLIC IX_STATUS ixHssAccLastErrorRetrievalInitiate (IxHssAccHssPort hssPortId)
 Initiate the retrieval of the last HSS error. The HSS port should be configured before attempting to call this interface.

PUBLIC IX_STATUS ixHssAccInit (void)
 This function is responsible for initialising resources for use by the packetised and channelised clients. It should be called before any other HssAccess interface is called. No other HssAccPacketised interface should be called while this interface is being processed.

PUBLIC IX_STATUS ixHssAccPktPortConnect (IxHssAccHssPort hssPortId, IxHssAccHdlcPort hdlcPortId, BOOL hdlcFraming, IxHssAccHdlcMode hdlcMode, BOOL hdlcBitInvert, unsigned blockSizeInWords, UINT32 rawIdleBlockPattern, IxHssAccPktHdlcFraming hdlcTxFraming, IxHssAccPktHdlcFraming hdlcRxFraming, unsigned frmFlagStart, IxHssAccPktRxCallback rxCallback, IxHssAccPktUserId rxUserId, IxHssAccPktRxFreeLowCallback rxFreeLowCallback, IxHssAccPktUserId rxFreeLowUserId, IxHssAccPktTxDoneCallback txDoneCallback, IxHssAccPktUserId txDoneUserId)
 This function is responsible for connecting a client to one of the 4 available HDLC ports. The HSS port should be configured before attempting a connect. No other HssAccPacketised interface should be called while this connect is being processed.

PUBLIC IX_STATUS ixHssAccPktPortEnable (IxHssAccHssPort hssPortId, IxHssAccHdlcPort hdlcPortId)
 This function is responsible for enabling a packetised service for the specified HSS/HDLC port combination. It enables the RX flow. The client must have already connected to a packetised service and is responsible for ensuring an adequate amount of RX mbufs have been supplied to the access component before enabling the packetised service. This function must be called on a given port before any call to ixHssAccPktPortTx on the same port. No other HssAccPacketised interface should be called while this interface is being processed.

PUBLIC IX_STATUS ixHssAccPktPortDisable (IxHssAccHssPort hssPortId, IxHssAccHdlcPort hdlcPortId)
 This function is responsible for disabling a packetised service for the specified HSS/HDLC port combination. It disables the RX flow. The client must have already connected to and enabled a packetised service for the specified HDLC port. This disable interface can be called before a disconnect, but is not required to.

PUBLIC IX_STATUS ixHssAccPktPortDisconnect (IxHssAccHssPort hssPortId, IxHssAccHdlcPort hdlcPortId)
 This function is responsible for disconnecting a client from one of the 4 available HDLC ports. It is not required that the Rx Flow has been disabled before calling this function. If the RX Flow has not been disabled, the disconnect will disable it before proceeding with the disconnect. No other HssAccPacketised interface should be called while this interface is being processed.

PUBLIC BOOL ixHssAccPktPortIsDisconnectComplete (IxHssAccHssPort hssPortId, IxHssAccHdlcPort hdlcPortId)
 This function is called to check if a given HSS/HDLC port combination is in a connected state or not. This function may be called at any time to determine a ports state. No other HssAccPacketised interface should be called while this interface is being processed.

PUBLIC IX_STATUS ixHssAccPktPortRxFreeReplenish (IxHssAccHssPort hssPortId, IxHssAccHdlcPort hdlcPortId, IX_MBUF *buffer)
 Function which the client calls at regular intervals to provide mbufs to the access component for RX. A connection should exist for the specified hssPortId/hdlcPortId combination before attempting to call this interface. Also, the connection should not be in a disconnecting state.

PUBLIC IX_STATUS ixHssAccPktPortTx (IxHssAccHssPort hssPortId, IxHssAccHdlcPort hdlcPortId, IX_MBUF *buffer)
 Function which the client calls when it wants to transmit packetised data. An enabled connection should exist on the specified hssPortId/hdlcPortId combination before attempting to call this interface. No other HssAccPacketised interface should be called while this interface is being processed.

PUBLIC IX_STATUS ixHssAccChanConnect (IxHssAccHssPort hssPortId, unsigned bytesPerTSTrigger, UINT8 *rxCircular, unsigned numRxBytesPerTS, UINT32 *txPtrList, unsigned numTxPtrLists, unsigned numTxBytesPerBlk, IxHssAccChanRxCallback rxCallback)
 This function allows the client to connect to the Tx/Rx NPE Channelised Service. There can only be one client per HSS port. The client is responsible for ensuring that the HSS port is configured appropriately before its connect request. No other HssAccChannelised interface should be called while this interface is being processed.

PUBLIC IX_STATUS ixHssAccChanPortEnable (IxHssAccHssPort hssPortId)
 This function is responsible for enabling a channelised service for the specified HSS port. It enables the NPE RX flow. The client must have already connected to a channelised service before enabling the channelised service. No other HssAccChannelised interface should be called while this interface is being processed.

PUBLIC IX_STATUS ixHssAccChanPortDisable (IxHssAccHssPort hssPortId)
 This function is responsible for disabling a channelised service for the specified HSS port. It disables the NPE RX flow. The client must have already connected to and enabled a channelised service for the specified HSS port. This disable interface can be called before a disconnect, but is not required to. No other HssAccChannelised interface should be called while this interface is being processed.

PUBLIC IX_STATUS ixHssAccChanDisconnect (IxHssAccHssPort hssPortId)
 This function allows the client to Disconnect from a channelised service. If the NPE RX Flow has not been disabled, the disconnect will disable it before proceeding with other disconnect functionality. No other HssAccChannelised interface should be called while this interface is being processed.

PUBLIC IX_STATUS ixHssAccChanStatusQuery (IxHssAccHssPort hssPortId, BOOL *dataRecvd, unsigned *rxOffset, unsigned *txOffset, unsigned *numHssErrs)
 This function is called by the client to query whether or not channelised data has been received. If there is, hssChanAcc will return the details in the output parameters. An enabled connection should exist on the specified hssPortId before attempting to call this interface. No other HssAccChannelised interface should be called while this interface is being processed.

PUBLIC void ixHssAccShow (void)
 This function will display the current state of the IxHssAcc component. The output is sent to stdout.

PUBLIC void ixHssAccStatsInit (void)
 This function will reset the IxHssAcc statistics.


Detailed Description

This file contains the public API of the IXP425 HSS Access component.

Date:
07-DEC-2001

Version:
Revision
1.54
-- Intel Copyright Notice --
Copyright 2001-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 IxHssAcc.h.

Automatically generated from sources. © Intel Corp. 2003