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

IxAtmCodelet_p.h

Go to the documentation of this file.
00001 
00049 #ifndef IXATMCODELET_P_H
00050 #define IXATMCODELET_P_H
00051 
00052 /*
00053  * System defined includes
00054  */
00055 
00056 /*
00057  * User defined includes
00058  */
00059 #include "ix_ossl.h"
00060 #include "IxAtmTypes.h"
00061 #include "IxAtmdAcc.h"
00062 #include "IxTypes.h"
00063 #include "IxAtmdAcc.h"
00064 #include "IxAtmm.h"
00065 #include "IxNpeDl.h"
00066 #include "IxOsServicesMemAccess.h"
00067 
00068 /*
00069  * #defines and macros used in this file.
00070  */
00071 
00075 #define IX_ATMCODELET_MBUF_SIZE               (2000)  
00076 
00080 #define IX_ATMCODELET_RX_FREE_Q_LOW_THRESHOLD (8) 
00081 
00085 #define IX_ATMCODELET_DEFAULT_CLP             (0)
00086 
00090 #define IX_ATMCODELET_LOG printf
00091 
00095 #define IX_OAM_ITU610_F4_SEG_VCI     3
00096 #define IX_OAM_ITU610_F4_ETE_VCI     4
00097 
00101 #define IX_OAM_ITU610_F5_SEG_PTI                    4
00102 #define IX_OAM_ITU610_F5_ETE_PTI                    5
00103 
00107 #define IX_OAM_ITU610_LB_CORRELATION_TAG_LEN 4
00108 
00112 #define IX_OAM_ITU610_LOCATION_ID_LEN 16
00113 
00117 #define IX_OAM_ITU610_RESERVED_BYTE_VALUE         0x6a
00118 #define IX_OAM_ITU610_GENERIC_PAYLOAD_RESERVED_BYTES_LEN   45
00119 #define IX_OAM_ITU610_LB_RESERVED_BYTES_LEN                 8
00120 
00124 #define IX_OAM_ITU610_RESERVED_AND_CRC10_LEN 2
00125 
00129 #define IX_OAM_ITU610_LB_TIMEOUT_PERIOD_MSECS   5000
00130 
00134 #define IX_OAM_ITU610_TYPE_FAULT_MAN_LB     0x18
00135 
00139 #define IX_OAM_ITU610_LB_INDICATION_PARENT  1
00140 #define IX_OAM_ITU610_LB_INDICATION_CHILD   0
00141 
00142 /*
00143  * Typedefs
00144  */
00145 
00149 typedef UINT32 atmCellHeader;
00150 
00154 typedef struct
00155 {
00156     UINT32 txPdus;
00157     UINT32 txBytes;
00158     UINT32 rxPdus;
00159     UINT32 rxBytes;
00160     UINT32 txDonePdus;
00161     UINT32 rxFreeBuffers;
00162     UINT32 txPdusSubmitFail;
00163     UINT32 txPdusSubmitBusy;
00164     UINT32 rxPdusInvalid;
00165 } IxAtmCodeletStats;
00166 
00170 typedef enum
00171 {
00172     IX_ATMCODELET_UTOPIA_LOOPBACK = 0, 
00177     IX_ATMCODELET_SOFTWARE_LOOPBACK,   
00179     IX_ATMCODELET_REMOTE_LOOPBACK,     
00182     IX_ATMCODELET_UTOPIA_LOOPBACK_PERFORM_OAM_PING_F4F5,
00185     IX_ATMCODELET_SOFTWARE_LOOPBACK_PERFORM_OAM_PING_F4F5 
00188 } IxAtmCodeletMode;
00189 
00193 typedef enum
00194 {
00195     ixAtmCodeletAalTypeInvalid = 0, 
00196     ixAtmCodeletAalType5,           
00197     ixAtmCodeletAalType0_48,        
00198     ixAtmCodeletAalType0_52,        
00199     ixAtmCodeletAalTypeMax          
00200 } IxAtmCodeletAalType; 
00201 
00205 typedef struct
00206 {
00207     UINT8 oamTypeAndFunction;
00208     UINT8 loopbackIndication;
00209     UINT8 correlationTag[IX_OAM_ITU610_LB_CORRELATION_TAG_LEN];
00210     UINT8 llid[IX_OAM_ITU610_LOCATION_ID_LEN];
00211     UINT8 sourceId[IX_OAM_ITU610_LOCATION_ID_LEN];
00212     UINT8 reserved[IX_OAM_ITU610_LB_RESERVED_BYTES_LEN];
00213     UINT8 reservedAndCrc10[IX_OAM_ITU610_RESERVED_AND_CRC10_LEN];
00214 } IxOamITU610LbPayload;
00215 
00220 typedef struct
00221 {
00222     UINT8 oamTypeAndFunction;    
00223     UINT8 reserved[IX_OAM_ITU610_GENERIC_PAYLOAD_RESERVED_BYTES_LEN];
00224     UINT8 reservedAndCrc10[IX_OAM_ITU610_RESERVED_AND_CRC10_LEN];
00225 } IxOamITU610GenericPayload;
00226 
00230 typedef union
00231 {
00232     IxOamITU610LbPayload lbPayload;
00233     IxOamITU610GenericPayload genericPayload;
00234     /* Other payload types could be defined here, e.g. Fault Management etc.*/
00235 } IxOamITU610Payload;
00236 
00240 typedef struct
00241 {
00242     atmCellHeader header;
00243     IxOamITU610Payload payload;
00244 } IxOamITU610Cell;
00245 
00246 /*
00247  * Function declarations
00248  */
00249 
00275 PUBLIC IX_STATUS
00276 ixAtmCodeletSystemInit (UINT32 numPorts,
00277             IxAtmCodeletMode mode);
00278 
00321 PUBLIC IX_STATUS
00322 ixAtmCodeletInit (UINT32 numPorts, 
00323           UINT32 rxToTxRatio);
00324 
00393 PUBLIC IX_STATUS
00394 ixAtmCodeletUbrChannelsProvision (UINT32 numPorts,
00395                   UINT32 numChannels,
00396                   IxAtmdAccAalType aalType);
00397 
00441 PUBLIC IX_STATUS
00442 ixAtmCodeletUbrChannelsRemove (void);
00443 
00444 
00488 PUBLIC IX_STATUS
00489 ixAtmCodeletAal0PacketsSend (UINT32 cellsPerPacket,
00490                  UINT32 numPackets);
00491 
00513 PUBLIC IX_STATUS
00514 ixAtmCodeletAal5CpcsSdusSend (UINT32 sduSize,
00515                   UINT32 numSdus);
00516 
00535 PUBLIC IX_STATUS
00536 ixAtmCodeletPortRateModify (IxAtmLogicalPort port,
00537                 UINT32 portRate);
00538 
00546 PUBLIC void
00547 ixAtmCodeletPortQuery (void);
00548 
00559 PUBLIC void
00560 ixAtmCodeletShow (void);
00561 
00565 IX_STATUS
00566 ixAtmRxTxInit (IxAtmCodeletStats *stats);
00567 
00568 
00569 
00573 IX_STATUS
00574 ixAtmRxTxChannelsProvision (UINT32 numPorts,
00575                 UINT32 numChannels,
00576                 IxAtmdAccAalType aalType);
00577 
00581 IX_STATUS
00582 ixAtmRxTxChannelsRemove ( void );
00583 
00584 
00588 void
00589 ixAtmRxTxStatsGet (IxAtmCodeletStats *stats);
00590 
00594 void
00595 ixAtmRxTxRxFreeLowReplenish (IxAtmdAccUserId userId);
00596 
00600 IX_STATUS
00601 ixAtmRxTxAal5CpcsSdusSend (UINT32 sduSize,
00602                UINT32 numSdus);
00603 
00611 IX_STATUS
00612 ixAtmRxTxAal0PacketsSend (UINT32 cellsPerPacket,
00613               UINT32 numPackets);
00614 
00618 IX_STATUS
00619 ixAtmSwLbInit (IxAtmCodeletStats *stats, UINT32 rxToTxRatio);
00620 
00624 IX_STATUS
00625 ixAtmSwLbChannelsProvision (UINT32 numPorts,
00626                 UINT32 numChannels,
00627                 IxAtmdAccAalType aalType);
00628 
00632 IX_STATUS
00633 ixAtmSwLbChannelsRemove ( void );
00634 
00635 
00636 /*
00637  * Replenish buffers to the RxFree queue. Buffers are taken from
00638  *  the software queue.
00639  */
00640 void
00641 ixAtmSwLbRxFreeLowReplenish (IxAtmdAccUserId userId);
00642 
00643 /*
00644  * @brief Get transport stats
00645  */
00646 void
00647 ixAtmSwLbStatsGet (IxAtmCodeletStats *stats);
00648 
00664 IX_STATUS
00665 ixOamCodeletInit (UINT32 numPorts);
00666 
00700 IX_STATUS
00701 ixOamCodeletOamF5EtePing (IxAtmLogicalPort port,
00702               UINT32 vpi,
00703               UINT32 vci,
00704               UINT32 numCells);
00705 
00739 IX_STATUS
00740 ixOamCodeletOamF5SegPing (IxAtmLogicalPort port,
00741               UINT32 vpi,
00742               UINT32 vci,
00743               UINT32 numCells);
00744 
00776 IX_STATUS
00777 ixOamCodeletOamF4EtePing (IxAtmLogicalPort port,
00778               UINT32 vpi,
00779               UINT32 numCells);
00780 
00812 IX_STATUS
00813 ixOamCodeletOamF4SegPing (IxAtmLogicalPort port,
00814               UINT32 vpi,
00815               UINT32 numCells);
00816 
00825 void
00826 ixOamCodeletShow (void);
00827 
00861 PUBLIC IX_STATUS
00862 ixAtmUtilsAtmVcRegisterConnect (IxAtmLogicalPort port,
00863                  unsigned vpi,
00864                  unsigned vci,
00865                  IxAtmdAccAalType aalType,
00866                  IxAtmServiceCategory atmService,
00867                  IxAtmRxQueueId rxQueueId,
00868                  IxAtmdAccRxVcRxCallback rxCallback,
00869                  UINT32 minimumReplenishCount,
00870                  IxAtmdAccTxVcBufferReturnCallback bufferFreeCallback,
00871                  IxAtmdAccRxVcFreeLowCallback rxFreeLowCallback,
00872                  IxAtmdAccUserId userId,
00873                  IxAtmConnId *rxConnId,
00874                  IxAtmConnId *txConnId);
00875 
00888 PUBLIC IX_STATUS
00889 ixAtmUtilsAtmVcUnregisterDisconnect (IxAtmConnId rxConnId, IxAtmConnId txConnId);
00890 
00891 
00903 PUBLIC IX_STATUS
00904 ixAtmUtilsAtmAllVcsDisconnect (void);
00905 
00925 PUBLIC IX_STATUS
00926 ixAtmUtilsAtmImageDownload (unsigned numPorts,
00927                  IxAtmmPhyMode *phyMode);
00928 
00940 PUBLIC BOOL
00941 ixAtmUtilsUtopiaFpgaStimulusAsMasterSet(void);
00942 
00954 IX_STATUS
00955 ixAtmUtilsMbufPoolInit (void);
00956 
00957 
00958 
00973 void
00974 ixAtmUtilsMbufGet (UINT32 bufSize, IX_MBUF **buf);
00975 
00988 void
00989 ixAtmUtilsMbufFree (IX_MBUF *buf);
00990 
00997 void
00998 ixAtmUtilsMbufShow (void);
00999 
01000 #endif
01001 /* IXATMCODELET_P_H */
Automatically generated from sources. © Intel Corp. 2003