blob: 60308e480a2d74cb4743dbcaef4ef36c7a4bafd0 [file] [log] [blame]
Shad Ansari2f7f9be2017-06-07 13:34:53 -07001/*
2<:copyright-BRCM:2016:proprietary:standard
3
4 Broadcom Proprietary and Confidential.(c) 2016 Broadcom
5 All Rights Reserved
6
7This program is the proprietary software of Broadcom Corporation and/or its
8licensors, and may only be used, duplicated, modified or distributed pursuant
9to the terms and conditions of a separate, written license agreement executed
10between you and Broadcom (an "Authorized License"). Except as set forth in
11an Authorized License, Broadcom grants no license (express or implied), right
12to use, or waiver of any kind with respect to the Software, and Broadcom
13expressly reserves all rights in and to the Software and all intellectual
14property rights therein. IF YOU HAVE NO AUTHORIZED LICENSE, THEN YOU HAVE
15NO RIGHT TO USE THIS SOFTWARE IN ANY WAY, AND SHOULD IMMEDIATELY NOTIFY
16BROADCOM AND DISCONTINUE ALL USE OF THE SOFTWARE.
17
18Except as expressly set forth in the Authorized License,
19
201. This program, including its structure, sequence and organization,
21 constitutes the valuable trade secrets of Broadcom, and you shall use
22 all reasonable efforts to protect the confidentiality thereof, and to
23 use this information only in connection with your use of Broadcom
24 integrated circuit products.
25
262. TO THE MAXIMUM EXTENT PERMITTED BY LAW, THE SOFTWARE IS PROVIDED "AS IS"
27 AND WITH ALL FAULTS AND BROADCOM MAKES NO PROMISES, REPRESENTATIONS OR
28 WARRANTIES, EITHER EXPRESS, IMPLIED, STATUTORY, OR OTHERWISE, WITH
29 RESPECT TO THE SOFTWARE. BROADCOM SPECIFICALLY DISCLAIMS ANY AND
30 ALL IMPLIED WARRANTIES OF TITLE, MERCHANTABILITY, NONINFRINGEMENT,
31 FITNESS FOR A PARTICULAR PURPOSE, LACK OF VIRUSES, ACCURACY OR
32 COMPLETENESS, QUIET ENJOYMENT, QUIET POSSESSION OR CORRESPONDENCE
33 TO DESCRIPTION. YOU ASSUME THE ENTIRE RISK ARISING OUT OF USE OR
34 PERFORMANCE OF THE SOFTWARE.
35
363. TO THE MAXIMUM EXTENT PERMITTED BY LAW, IN NO EVENT SHALL BROADCOM OR
37 ITS LICENSORS BE LIABLE FOR (i) CONSEQUENTIAL, INCIDENTAL, SPECIAL,
38 INDIRECT, OR EXEMPLARY DAMAGES WHATSOEVER ARISING OUT OF OR IN ANY
39 WAY RELATING TO YOUR USE OF OR INABILITY TO USE THE SOFTWARE EVEN
40 IF BROADCOM HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES;
41 OR (ii) ANY AMOUNT IN EXCESS OF THE AMOUNT ACTUALLY PAID FOR THE
42 SOFTWARE ITSELF OR U.S. $1, WHICHEVER IS GREATER. THESE LIMITATIONS
43 SHALL APPLY NOTWITHSTANDING ANY FAILURE OF ESSENTIAL PURPOSE OF ANY
44 LIMITED REMEDY.
45:>
46*/
47#ifndef _BCM_COMMON_GPON_CONSTANTS_H_
48#define _BCM_COMMON_GPON_CONSTANTS_H_
49
50#include "bcmolt_model_data.h"
51
52/* maximum number of PONs for any supported PON mode */
53#define MAX_NUM_OF_PONS 16
54
55/** Generic "PON mode" used to simplify logic when specific "system mode" is too complex. */
56typedef enum
57{
58 BCMOLT_PON_MODE_GPON,
59 BCMOLT_PON_MODE_XGPON,
60 BCMOLT_PON_MODE_XGS,
61 BCMOLT_PON_MODE_NGPON2,
62} bcmolt_pon_mode;
63
64/** Object type used by the API layer for provisioning each PON mode. */
65typedef enum
66{
67 BCMOLT_PON_API_TYPE_GPON,
68 BCMOLT_PON_API_TYPE_XGPON,
69} bcmolt_pon_api_type;
70
71typedef enum
72{
73 BCMOLT_PON_US_RATE_1G,
74 BCMOLT_PON_US_RATE_2P5G,
75 BCMOLT_PON_US_RATE_10G,
76} bcmolt_pon_us_rate;
77
78/* Number of PON NIs per PON mode */
79#define GPON_MAX_NUM_OF_PONS 16
80#define XGPON_MAX_NUM_OF_PONS 8
81#define XGPON_HALF_CHIP_MAX_NUM_OF_PONS 4
82#define XGS_2X_NUM_OF_PONS 2
83#define NGPON2_2X_NUM_OF_PONS 2
84#define NGPON2_8X_NUM_OF_PONS 8
85
86/* ONU's per PON */
87#define GPON_NUM_OF_ONUS 128
88#define XGPON_NUM_OF_ONUS 256
89#define XGPON_MAX_NUM_OF_ONUS 510
90
91/* Alloc ID's per PON */
92#define GPON_NUM_OF_DYNAMIC_ALLOC_INDICES 640
93#define GPON_NUM_OF_ALLOC_IDS 1024
94#define XGPON_NUM_OF_DYNAMIC_ALLOC_INDICES 1280
95#define XGPON_NUM_OF_ALLOC_IDS 2048
96
97/* Alloc ID's per ONU */
98#define GPON_NUM_OF_ALLOC_IDS_PER_ONU 32
99#define XGPON_NUM_OF_ALLOC_IDS_PER_ONU 32
100#define NUM_OF_ALLOC_IDS_PER_ONU (MAX(GPON_NUM_OF_ALLOC_IDS_PER_ONU, XGPON_NUM_OF_ALLOC_IDS_PER_ONU))
101
102#define GPON_ONU_ID_BROADCAST ((bcmolt_pon_onu_id)0xFF)
103#define XGPON_ONU_ID_BROADCAST ((bcmolt_pon_onu_id)0x3FF)
104#define GPON_ONU_ID_UNASSIGNED GPON_ONU_ID_BROADCAST
105#define XGPON_ONU_ID_UNASSIGNED XGPON_ONU_ID_BROADCAST
106#define XGPON_DUMMY_ONU_ID ((bcmolt_pon_onu_id)511)
107
108#define GPON_ALLOC_ID_BROADCAST ((bcmolt_pon_alloc_id)0xFE)
109#define XGPON_ALLOC_ID_BROADCAST ((bcmolt_pon_alloc_id)0x3FF) /* Used for 2.5G upstream in XGPON/XGS/NGPON2 */
110#define TEN_GIG_ALLOC_ID_BROADCAST ((bcmolt_pon_alloc_id)0x3FE) /* Used for 10G upstream in XGS/NGPON2 */
111#define TEN_OR_2P5_GIG_ALLOC_ID_BROADCAST ((bcmolt_pon_alloc_id)0x3FD) /* Used for either 2.5G/10G upstream in XGS/NGPON2 */
112#define GPON_ALLOC_ID_UNASSIGNED ((bcmolt_pon_alloc_id)0xFF)
113#define XGPON_ALLOC_ID_UNASSIGNED ((bcmolt_pon_alloc_id)512) /* In XGPON we have up to 512 ONU's, and alloc ID is unused for sure. */
114#define XGPON_DUMMY_ALLOC_ID ((bcmolt_pon_alloc_id)511)
115
116/* GEM PORT ID's per PON */
117#define GPON_NUM_OF_GEM_PORT_IDS_PER_PON 4096
118#define XGPON_NUM_OF_GEM_PORT_IDS_PER_PON 8192
119/* GEM PORT ID's per ONU */
120#define MAX_NUM_OF_GEM_PORT_IDS_PER_ONU 256
121
122/* OMCI/CPU packets */
123#define OMCI_CRC_LEN 4
124
125/* Packet sizes - all values in bytes resolution */
126#define OMCI_MIN_PKT_SIZE_WITH_CRC 14
127#define OMCI_MIN_PKT_SIZE_WO_CRC 10
128#define OMCI_MAX_PKT_SIZE_WITH_CRC 1980
129#define OMCI_MAX_PKT_SIZE_WO_CRC 1976
130#define OMCI_BASELINE_PKT_SIZE_WO_CRC 44
131#define OMCI_EXTENDED_PKT_SIZE_WO_CRC OMCI_MAX_PKT_SIZE_WO_CRC
132#define CPU_MIN_PKT_SIZE_WITH_CRC 64
133#define CPU_MIN_PKT_SIZE_WO_CRC 60
134#define CPU_MAX_PKT_SIZE_WITH_CRC 2048
135#define CPU_MAX_PKT_SIZE_WO_CRC 2044
136
137#endif
138