X-Git-Url: http://git.rot13.org/?a=blobdiff_plain;f=bcmdrivers%2Fbroadcom%2Finclude%2Fbcm963xx%2Fbcmatmapi.h;fp=bcmdrivers%2Fbroadcom%2Finclude%2Fbcm963xx%2Fbcmatmapi.h;h=751aa512eaa3538d8bc87b5c5a9230dbb2e4f8e8;hb=6adeba4d92a546ebbadde2562283ee6b984b22c1;hp=703dd4971a84c6fad1c57aac88abc10ef03d6cdd;hpb=dacd86d83a9fb430cca42cb78a67f9d46e289f5c;p=bcm963xx.git diff --git a/bcmdrivers/broadcom/include/bcm963xx/bcmatmapi.h b/bcmdrivers/broadcom/include/bcm963xx/bcmatmapi.h index 703dd497..751aa512 100755 --- a/bcmdrivers/broadcom/include/bcm963xx/bcmatmapi.h +++ b/bcmdrivers/broadcom/include/bcm963xx/bcmatmapi.h @@ -26,6 +26,8 @@ #if !defined(_BCMATMAPI_H_) #define _BCMATMAPI_H_ +//define CONFIG_ATM_EOP_MONITORING + #if defined(__cplusplus) extern "C" { #endif @@ -34,6 +36,10 @@ extern "C" { // Constant Definitions //************************************************************************** +/* Values for traffic type */ +#define ATM_TRAFFIC 0 +#define PTM_TRAFFIC 1 + // ATM physical port constants. #define PHY_NUM_PORTS 4 #define PHY_0 0 @@ -55,10 +61,18 @@ extern "C" { #define PT_ADSL_INTERLEAVED 4 // [BCM6345 Only] #define PT_ADSL_FAST 5 // [BCM6345 Only] +// Values for ATM_PORT_CFG ucPortFlags. +#define PF_UTOPIA_LEVEL_2 0x01 +#define PF_UTOPIA_NEG_EDGE_SEL 0x02 + // Wildcard definitions. #define ALL_INTERFACES 0xffffffff #define ANY_PRIORITY 0xff +// Values for priority packet groups. +#define NUM_PRI_PKT_GROUPS 16 +#define NUM_ENTRIES_PER_PRI_PKT_GROUP 6 + // Values for ATM_TRAFFIC_DESCR_PARM_ENTRY ulTrafficDescrType. #define TDT_ATM_NO_TRAFFIC_DESCRIPTOR 1 #define TDT_ATM_NO_CLP_NO_SCR 2 @@ -263,7 +277,7 @@ typedef struct AtmPortCfg { UINT32 ulInterfaceId; UINT8 ucPortType; - UINT8 ucPortAddr; + UINT8 ucPortFlags; UINT8 ucReserved[2]; } ATM_PORT_CFG, *PATM_PORT_CFG; @@ -281,11 +295,26 @@ typedef struct AtmInitialization UINT16 usReceiveCellQSize; UINT16 usReceivePktQSize; UINT8 ucTransmitFifoPriority; // [BCM635x Only] - UINT8 ucReserved; + UINT8 ucPrioritizeReceivePkts; UINT16 usAal5CpcsMaxSduLength; UINT16 usAal2SscsMaxSsarSduLength; // [BCM635x Only] ATM_PORT_CFG PortCfg[PHY_NUM_PORTS]; } ATM_INITIALIZATION_PARMS, *PATM_INITIALIZATION_PARMS; +// USR9109/9113 +typedef struct +{ + unsigned char* ucMacAddr; +} ATM_MAC_PARMS, *PATM_MAC_PARMS; + +// ATM_PRIORITY_PACKET_ENTRY contains fields for identifying a received packet. +#define ID_ATM_PRIORITY_PACKET_ENTRY 1 +typedef struct AtmPriorityPacketEntry +{ + UINT32 ulStructureId; + UINT32 ulPacketOffset; + UINT16 usPacketValue; + UINT16 usValueMask; +} ATM_PRIORITY_PACKET_ENTRY, *PATM_PRIORITY_PACKET_ENTRY; // ATM_TRAFFIC_DESCR_PARM_ENTRY contains the fields needed to create a Traffic @@ -308,7 +337,7 @@ typedef struct AtmTrafficDescrParmEntry // ATM_INTERFACE_CFG contains configuration fields for an ATM interface. -#define ID_ATM_INTERFACE_CFG 3 +#define ID_ATM_INTERFACE_CFG 4 typedef struct AtmInterfaceCfg { UINT32 ulStructureId; @@ -322,8 +351,9 @@ typedef struct AtmInterfaceCfg UINT32 ulIfOperStatus; // read-only UINT32 ulSendNullCells; UINT32 ulTcScramble; - UINT32 ulPortType; // read-only + UINT32 ulPortType; UINT32 ulIfLastChange; + UINT32 ulPortFlags; } ATM_INTERFACE_CFG, *PATM_INTERFACE_CFG; @@ -372,7 +402,7 @@ typedef struct AtmAal0VccCfg // ATM_VCC_CFG contains configuration fields for an ATM Virtual Channel // Connection (VCC). -#define ID_ATM_VCC_CFG 2 +#define ID_ATM_VCC_CFG 3 #define TX_Q_PARM_SIZE 8 typedef struct AtmVccCfg { @@ -384,6 +414,7 @@ typedef struct AtmVccCfg UINT32 ulAtmVclReceiveTrafficDescrIndex; UINT32 ulAtmVclTransmitTrafficDescrIndex; UINT32 ulTransmitQParmsSize; + UINT32 ulPriorityPacketGroupNumbers[NUM_PRI_PKT_GROUPS]; ATM_VCC_TRANSMIT_QUEUE_PARMS TransmitQParms[TX_Q_PARM_SIZE]; union { @@ -440,6 +471,7 @@ typedef struct AtmIntfAal5Aal0Stats UINT32 ulIfOutErrors; UINT32 ulIfInDiscards; UINT32 ulIfOutDiscards; + UINT32 ulIfInPriPkts; } ATM_INTF_AAL5_AAL0_STATS, *PATM_INTF_AAL5_AAL0_STATS; @@ -459,7 +491,7 @@ typedef struct AtmIntfAal2Stats // ATM_INTERFACE_STATS contains statistics for an ATM interface. -#define ID_ATM_INTERFACE_STATS 1 +#define ID_ATM_INTERFACE_STATS 2 typedef struct AtmInterfaceStats { UINT32 ulStructureId; @@ -653,6 +685,10 @@ typedef struct AtmVccDataParms BCMATM_STATUS BcmAtm_Initialize( PATM_INITIALIZATION_PARMS pInitValues ); BCMATM_STATUS BcmAtm_Uninitialize( void ); BCMATM_STATUS BcmAtm_GetInterfaceId( UINT8 ucPhyPort, UINT32 *pulInterfaceId ); +BCMATM_STATUS BcmAtm_GetPriorityPacketGroup(UINT32 ulGroupNumber, + PATM_PRIORITY_PACKET_ENTRY pPriorityPackets, UINT32 *pulPriorityPacketsSize); +BCMATM_STATUS BcmAtm_SetPriorityPacketGroup(UINT32 ulGroupNumber, + PATM_PRIORITY_PACKET_ENTRY pPriorityPackets, UINT32 ulPriorityPacketsSize); BCMATM_STATUS BcmAtm_GetTrafficDescrTableSize(UINT32 *pulTrafficDescrTableSize); BCMATM_STATUS BcmAtm_GetTrafficDescrTable( PATM_TRAFFIC_DESCR_PARM_ENTRY pTrafficDescTable, UINT32 ulTrafficDescrTableSize ); @@ -690,6 +726,7 @@ BCMATM_STATUS BcmAtm_SendMgmtData( UINT32 ulHandle, PATM_VCC_ADDR pVccAddr, PATM_VCC_DATA_PARMS pDataParms ); BCMATM_STATUS BcmAtm_SendTransparentData( UINT32 ulHandle, UINT32 ulInterfaceId, PATM_VCC_DATA_PARMS pDataParms ); +BCMATM_STATUS BcmAtm_Mac( PATM_MAC_PARMS pMacParms ); // USR9109/9113 #if defined(__cplusplus) }