Open Ethernet Networking (OpEN) API Guide and Reference Manual  3.10.0.3
openapi_mfdb.h
Go to the documentation of this file.
1 
9 /********************************************************************************
10 *
11 * Copyright 2016-2022 Broadcom.
12 *
13 * Licensed under the Apache License, Version 2.0 (the "License");
14 * you may not use this file except in compliance with the License.
15 * You may obtain a copy of the License at
16 *
17 * http://www.apache.org/licenses/LICENSE-2.0
18 *
19 * Unless required by applicable law or agreed to in writing, software
20 * distributed under the License is distributed on an "AS IS" BASIS,
21 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
22 * See the License for the specific language governing permissions and
23 * limitations under the License.
24 *
25 ********************************************************************************
26 *
27 * @filename openapi_mfdb.h
28 *
29 * @purpose Provide interface to Switch MFDB
30 *
31 * @component OpEN
32 *
33 * @create 06/18/2015
34 *
35 * @end
36 *
37 ********************************************************************************/
38 #ifndef OPENAPI_MFDB_H_INCLUDED
39 #define OPENAPI_MFDB_H_INCLUDED
40 
41 #include "openapi_common.h"
42 
43 #define OPEN_MATCH_EXACT 1
44 #define OPEN_MATCH_GETNEXT 2
45 #define OPEN_MATCH_FREE 3
46 
47 #define OPEN_MFDB_INTF_LIST_LENGTH 4096
48 #define OPEN_MFDB_VIDMAC_LENGTH 24
49 #define OPEN_MFDB_MAC_LENGTH 18
50 #define OPENAPI_MFDB_DESCR_LEN 16
51 
53 typedef enum
54 {
55  OPEN_MFDB_PROTOCOL_STATIC = 1,
63  OPEN_MFDB_PROTOCOL_RESERVED_MCAST = 9,
67 
69 typedef enum
70 {
71  OPEN_MFDB_TYPE_STATIC = 0,
74 
75 /*************************************************************************************************/
93  open_buffdesc * vidMac,
95 
96 /*************************************************************************************************/
116  open_buffdesc * vidMac,
118 
119 /*************************************************************************************************/
139  open_buffdesc * vidMac,
140  OPEN_MFDB_PROTOCOL_TYPE_t * nextProt);
141 
142 /*************************************************************************************************/
178  open_buffdesc * vidMac,
179  OPEN_MFDB_PROTOCOL_TYPE_t nextProt,
180  open_buffdesc * mac,
181  uint32_t * vlanId,
182  OPEN_MFDB_PROTOCOL_TYPE_t * compId,
183  OPEN_MFDB_ENTRY_TYPE_t * type,
184  open_buffdesc * desc,
185  open_buffdesc * frwdIntMask,
186  open_buffdesc * fltIntMask,
187  open_buffdesc * absPortMask);
188 
189 /*************************************************************************************************/
220  open_buffdesc * vidMac,
222  OPEN_MFDB_PROTOCOL_TYPE_t * nextCompId,
223  OPEN_MFDB_ENTRY_TYPE_t * type,
224  open_buffdesc * desc,
225  open_buffdesc * frwdPortMask,
226  open_buffdesc * fltPortMask);
227 
228 /*************************************************************************************************/
245  open_buffdesc * vidMac);
246 
247 /*************************************************************************************************/
272  open_buffdesc * vidMac,
273  uint32_t matchType,
274  open_buffdesc * absMask);
275 
276 /*************************************************************************************************/
301  open_buffdesc * vidMac,
302  uint32_t matchType,
303  open_buffdesc * absMask);
304 
305 /*************************************************************************************************/
320  uint32_t * maxEntries);
321 
322 /*************************************************************************************************/
337  uint32_t * mostEntries);
338 
339 /*************************************************************************************************/
354  uint32_t * currEntries);
355 #endif /* OPENAPI_MFDB_H_INCLUDED */
356