blob: 6dac5c5b5a7dc7dfbecdfe42ca2095407568d578 [file] [log] [blame]
/*
<:copyright-BRCM:2016:proprietary:standard
Broadcom Proprietary and Confidential.(c) 2016 Broadcom
All Rights Reserved
This program is the proprietary software of Broadcom Corporation and/or its
licensors, and may only be used, duplicated, modified or distributed pursuant
to the terms and conditions of a separate, written license agreement executed
between you and Broadcom (an "Authorized License"). Except as set forth in
an Authorized License, Broadcom grants no license (express or implied), right
to use, or waiver of any kind with respect to the Software, and Broadcom
expressly reserves all rights in and to the Software and all intellectual
property rights therein. IF YOU HAVE NO AUTHORIZED LICENSE, THEN YOU HAVE
NO RIGHT TO USE THIS SOFTWARE IN ANY WAY, AND SHOULD IMMEDIATELY NOTIFY
BROADCOM AND DISCONTINUE ALL USE OF THE SOFTWARE.
Except as expressly set forth in the Authorized License,
1. This program, including its structure, sequence and organization,
constitutes the valuable trade secrets of Broadcom, and you shall use
all reasonable efforts to protect the confidentiality thereof, and to
use this information only in connection with your use of Broadcom
integrated circuit products.
2. TO THE MAXIMUM EXTENT PERMITTED BY LAW, THE SOFTWARE IS PROVIDED "AS IS"
AND WITH ALL FAULTS AND BROADCOM MAKES NO PROMISES, REPRESENTATIONS OR
WARRANTIES, EITHER EXPRESS, IMPLIED, STATUTORY, OR OTHERWISE, WITH
RESPECT TO THE SOFTWARE. BROADCOM SPECIFICALLY DISCLAIMS ANY AND
ALL IMPLIED WARRANTIES OF TITLE, MERCHANTABILITY, NONINFRINGEMENT,
FITNESS FOR A PARTICULAR PURPOSE, LACK OF VIRUSES, ACCURACY OR
COMPLETENESS, QUIET ENJOYMENT, QUIET POSSESSION OR CORRESPONDENCE
TO DESCRIPTION. YOU ASSUME THE ENTIRE RISK ARISING OUT OF USE OR
PERFORMANCE OF THE SOFTWARE.
3. TO THE MAXIMUM EXTENT PERMITTED BY LAW, IN NO EVENT SHALL BROADCOM OR
ITS LICENSORS BE LIABLE FOR (i) CONSEQUENTIAL, INCIDENTAL, SPECIAL,
INDIRECT, OR EXEMPLARY DAMAGES WHATSOEVER ARISING OUT OF OR IN ANY
WAY RELATING TO YOUR USE OF OR INABILITY TO USE THE SOFTWARE EVEN
IF BROADCOM HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES;
OR (ii) ANY AMOUNT IN EXCESS OF THE AMOUNT ACTUALLY PAID FOR THE
SOFTWARE ITSELF OR U.S. $1, WHICHEVER IS GREATER. THESE LIMITATIONS
SHALL APPLY NOTWITHSTANDING ANY FAILURE OF ESSENTIAL PURPOSE OF ANY
LIMITED REMEDY.
:>
*/
#ifndef _BCM_COMMON_GPON_FAST_H_
#define _BCM_COMMON_GPON_FAST_H_
#ifndef SIMULATION_BUILD
#include <bcmtr_pcie_sw_queue.h>
#endif
#define BCM_COMMON_GPON_FAST_API_LIST_SIZE 1280
#define BCM_COMMON_GPON_FAST_API_ACCESS_LIST_SIZE 2048
#define URGENT_CHANNEL BCMTR_SWQ_FIRST_URGENT_CHANNEL
typedef enum
{
BCM_COMMON_FAST_MSG_TYPE_GET_ALLOC_STATS,
BCM_COMMON_FAST_MSG_TYPE_SET_ALLOCS,
BCM_COMMON_FAST_MSG_TYPE_SET_BW_ALLOCS
} bcm_common_fast_msg_type;
typedef struct __PACKED_ATTR_START__
{
uint16_t alloc_id;
uint32_t allocated;
uint32_t used;
uint32_t status_report;
} __PACKED_ATTR_END__ bcm_common_fast_get_alloc_stats;
typedef struct __PACKED_ATTR_START__
{
uint8_t pon_ni;
uint32_t cycle_num;
uint32_t available_bw;
uint32_t num_of_allocs;
} __PACKED_ATTR_END__ bcm_common_fast_get_stats_ind_hdr;
typedef struct __PACKED_ATTR_START__
{
bcm_common_fast_get_stats_ind_hdr hdr;
bcm_common_fast_get_alloc_stats alloc_stats_list[BCM_COMMON_GPON_FAST_API_LIST_SIZE];
} __PACKED_ATTR_END__ bcm_common_fast_get_stats_ind;
typedef struct __PACKED_ATTR_START__
{
uint16_t alloc_id;
uint32_t allocation_blocks;
/* uint8_t access_num; - Will be added in the 2nd phase */
} __PACKED_ATTR_END__ bcm_common_fast_set_alloc;
typedef struct __PACKED_ATTR_START__
{
uint32_t cycle_num;
uint32_t num_of_allocs;
} __PACKED_ATTR_END__ bcm_common_fast_msg_hdr;
typedef struct __PACKED_ATTR_START__
{
bcm_common_fast_msg_hdr hdr;
bcm_common_fast_set_alloc set_alloc_list[BCM_COMMON_GPON_FAST_API_LIST_SIZE];
} __PACKED_ATTR_END__ bcm_common_fast_set_allocs_msg;
typedef struct __PACKED_ATTR_START__
{
uint16_t alloc_id;
uint16_t allocation_size;
uint16_t start_time;
uint8_t burst_profile;
struct __PACKED_ATTR_START__
{
bcmos_bool ploam_flag :1;
bcmos_bool dbru_flag :1;
bcmos_bool end_of_frame :1;
bcmos_bool end_of_map :1;
bcmos_bool fwi :1;
uint8_t :3;
} __PACKED_ATTR_END__ alloc_flags;
} __PACKED_ATTR_END__ bcm_common_fast_set_access;
typedef struct __PACKED_ATTR_START__
{
bcm_common_fast_msg_hdr hdr;
bcm_common_fast_set_access set_access_list[BCM_COMMON_GPON_FAST_API_ACCESS_LIST_SIZE];
} __PACKED_ATTR_END__ bcm_common_fast_set_accesses_msg;
#endif