00001
00058
00059
00060
00061
00113 #ifndef IXATMDACC_H
00114 #define IXATMDACC_H
00115
00116 #include "IxAtmTypes.h"
00117
00118
00119
00120
00121
00133 #define IX_ATMDACC_WARNING 2
00134
00148 #define IX_ATMDACC_BUSY 3
00149
00164 #define IX_ATMDACC_RESOURCES_STILL_ALLOCATED 4
00165
00179 #define IX_ATMDACC_DEFAULT_REPLENISH_COUNT 0
00180
00181
00195 #define IX_ATMDACC_OAM_TX_VPI 0
00196
00208 #define IX_ATMDACC_OAM_TX_VCI 0
00209
00210
00220 #define IX_ATMDACC_OAM_RX_PORT IX_UTOPIA_PORT_0
00221
00232 #define IX_ATMDACC_OAM_RX_VPI 0
00233
00244 #define IX_ATMDACC_OAM_RX_VCI 0
00245
00246
00259 typedef enum
00260 {
00261 IX_ATMDACC_AAL0_VALID = 0,
00262 IX_ATMDACC_OAM_VALID,
00263 IX_ATMDACC_AAL2_VALID,
00264 IX_ATMDACC_AAL5_VALID,
00265 IX_ATMDACC_AAL5_PARTIAL,
00266 IX_ATMDACC_AAL5_CRC_ERROR,
00267 IX_ATMDACC_MBUF_RETURN
00268 } IxAtmdAccPduStatus;
00269
00270
00282 typedef enum
00283 {
00284 IX_ATMDACC_AAL5,
00285 IX_ATMDACC_AAL2,
00286 IX_ATMDACC_AAL0_48,
00287 IX_ATMDACC_AAL0_52,
00288 IX_ATMDACC_OAM,
00289 IX_ATMDACC_MAX_SERVICE_TYPE
00290 } IxAtmdAccAalType;
00291
00303 typedef enum
00304 {
00305 IX_ATMDACC_CLP_NOT_SET = 0,
00306 IX_ATMDACC_CLP_SET = 1
00307 } IxAtmdAccClpStatus;
00308
00327 typedef unsigned int IxAtmdAccUserId;
00328
00329
00330
00331
00332
00375 typedef void (*IxAtmdAccRxVcRxCallback) (IxAtmLogicalPort port,
00376 IxAtmdAccUserId userId,
00377 IxAtmdAccPduStatus status,
00378 IxAtmdAccClpStatus clp,
00379 IX_MBUF * mbufPtr);
00380
00413 typedef void (*IxAtmdAccRxVcFreeLowCallback) (IxAtmdAccUserId userId);
00414
00415
00416
00417
00418
00438 typedef void (*IxAtmdAccTxVcBufferReturnCallback) (IxAtmdAccUserId userId,
00439 IX_MBUF * mbufPtr);
00440
00441
00442
00443
00444
00474 PUBLIC IX_STATUS ixAtmdAccInit (void);
00475
00490 PUBLIC void
00491 ixAtmdAccShow (void);
00492
00507 PUBLIC void
00508 ixAtmdAccStatsShow (void);
00509
00523 PUBLIC void
00524 ixAtmdAccStatsReset (void);
00525
00526
00527
00528
00529
00652 PUBLIC IX_STATUS ixAtmdAccRxVcConnect (IxAtmLogicalPort port,
00653 unsigned int vpi,
00654 unsigned int vci,
00655 IxAtmdAccAalType aalServiceType,
00656 IxAtmRxQueueId rxQueueId,
00657 IxAtmdAccUserId userCallbackId,
00658 IxAtmdAccRxVcRxCallback rxCallback,
00659 unsigned int minimumReplenishCount,
00660 IxAtmConnId * connIdPtr,
00661 IxAtmNpeRxVcId * npeVcIdPtr );
00662
00746 PUBLIC IX_STATUS ixAtmdAccRxVcFreeReplenish (IxAtmConnId connId,
00747 IX_MBUF * mbufPtr);
00748
00793 PUBLIC IX_STATUS ixAtmdAccRxVcFreeLowCallbackRegister (IxAtmConnId connId,
00794 unsigned int numberOfMbufs,
00795 IxAtmdAccRxVcFreeLowCallback callback);
00796
00830 PUBLIC IX_STATUS ixAtmdAccRxVcFreeEntriesQuery (IxAtmConnId connId,
00831 unsigned int *numberOfMbufsPtr);
00832
00878 PUBLIC IX_STATUS ixAtmdAccRxVcEnable (IxAtmConnId connId);
00879
00918 PUBLIC IX_STATUS ixAtmdAccRxVcDisable (IxAtmConnId connId);
00919
00949 PUBLIC IX_STATUS ixAtmdAccRxVcTryDisconnect (IxAtmConnId connId);
00950
00951
00952
00953
00954
01050 PUBLIC IX_STATUS ixAtmdAccTxVcConnect (IxAtmLogicalPort port,
01051 unsigned int vpi,
01052 unsigned int vci,
01053 IxAtmdAccAalType aalServiceType,
01054 IxAtmdAccUserId userId,
01055 IxAtmdAccTxVcBufferReturnCallback bufferFreeCallback,
01056 IxAtmConnId * connIdPtr);
01057
01146 PUBLIC IX_STATUS ixAtmdAccTxVcPduSubmit (IxAtmConnId connId,
01147 IX_MBUF * mbufPtr,
01148 IxAtmdAccClpStatus clp,
01149 unsigned int numberOfCells);
01150
01192 PUBLIC IX_STATUS ixAtmdAccTxVcTryDisconnect (IxAtmConnId connId);
01193
01194 #endif
01195