| /* |
| * Copyright (c) 2009 Mindspeed Technologies, Inc. |
| * |
| * This program is free software; you can redistribute it and/or |
| * modify it under the terms of the GNU General Public License |
| * as published by the Free Software Foundation; either version 2 |
| * of the License, or (at your option) any later version. |
| |
| * This program is distributed in the hope that it will be useful, |
| * but WITHOUT ANY WARRANTY; without even the implied warranty of |
| * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
| * GNU General Public License for more details. |
| |
| * You should have received a copy of the GNU General Public License |
| * along with this program; if not, write to the Free Software |
| * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. |
| * |
| * |
| */ |
| |
| |
| #ifndef _MODULE_EXPT_H_ |
| #define _MODULE_EXPT_H_ |
| |
| #include "types.h" |
| #include "channels.h" |
| #include "modules.h" |
| #include "module_Rx.h" |
| #include "module_qm.h" |
| |
| #define SMI_EXPT0_BASE 0x0A000420 |
| #define SMI_EXPT1_BASE 0x0A000440 |
| |
| #define FPP_SMI_CTRL 0x00 |
| #define FPP_SMI_RXBASE 0x04 |
| #define FPP_SMI_TXBASE 0x08 |
| #define FPP_SMI_TXEXTBASE 0x0C |
| |
| #define EXPT_BUF_HEADROOM 64 |
| |
| #define EXPT_DEFAULT_TXRATE (100000 / 1000) |
| #define EXPT_TX_QMAX 64 |
| |
| #define EXPT_Q0 0 |
| #define EXPT_MAX_QUEUE 3 |
| #define EXPT_ARP_QUEUE 4 |
| |
| #define DSCP_MAX_VALUE 63 |
| |
| #define EXPT_WEIGTH 8 |
| #define EXPT_BUDGET 16 |
| |
| #define EXPT_RX_EXT_DESC_MASK (\ |
| RX_STA_L4_CKSUM |\ |
| RX_STA_L4_GOOD |\ |
| RX_STA_L3_CKSUM |\ |
| RX_STA_L3_GOOD |\ |
| RX_STA_TCP |\ |
| RX_STA_UDP |\ |
| RX_STA_IPV6 |\ |
| RX_STA_IPV4 |\ |
| RX_STA_PPPOE |\ |
| 0) |
| |
| |
| typedef struct _tExptQueueDSCPCommand { |
| unsigned short queue ; |
| unsigned short num_dscp; |
| unsigned char dscp[64]; |
| }ExptQueueDSCPCommand, *PExptQueueDSCPCommand; |
| |
| typedef struct _tExptQueueCTRLCommand { |
| unsigned short queue; |
| unsigned short reserved; |
| }ExptQueueCTRLCommand, *PExptQueueCTRLCommand; |
| |
| //extern volatile U8 Expt_tx_go[MAX_PORTS]; |
| |
| void M_EXPT_process_packet(struct tMetadata *mtd); |
| void M_EXPT_rx_process_packet(struct tMetadata *mtd); |
| U16 M_expt_cmdproc(U16 cmd_code, U16 cmd_len, U16 *pcmd); |
| int M_expt_updateL2(struct tMetadata *mtd, U16 family, U8* itf_flags); |
| int M_expt_queue_reset(void); |
| void pfe_expt_queue_init(void); |
| |
| void M_expt_tx_enable(U8 portid); |
| void M_expt_tx_disable(U8 portid); |
| void M_expt_rx_enable(U8 portid); |
| void M_expt_rx_disable(U8 portid); |
| |
| #if defined(COMCERTO_2000_CLASS) |
| void M_EXPT_process_from_util(struct tMetadata *mtd, lmem_trailer_t *trailer); |
| #endif |
| |
| #endif /* _MODULE_EXPT_H_ */ |