Open Ethernet Networking (OpEN) API Guide and Reference Manual  3.4.4.5
openapi_mfdb.h
Go to the documentation of this file.
1 
9 /********************************************************************************
10 *
11 * Copyright 2016-2018 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,
65 
67 typedef enum
68 {
69  OPEN_MFDB_TYPE_STATIC = 0,
72 
73 /*************************************************************************************************/
91  open_buffdesc * vidMac,
93 
94 /*************************************************************************************************/
114  open_buffdesc * vidMac,
116 
117 /*************************************************************************************************/
137  open_buffdesc * vidMac,
138  OPEN_MFDB_PROTOCOL_TYPE_t * nextProt);
139 
140 /*************************************************************************************************/
176  open_buffdesc * vidMac,
177  OPEN_MFDB_PROTOCOL_TYPE_t nextProt,
178  open_buffdesc * mac,
179  uint32_t * vlanId,
180  OPEN_MFDB_PROTOCOL_TYPE_t * compId,
181  OPEN_MFDB_ENTRY_TYPE_t * type,
182  open_buffdesc * desc,
183  open_buffdesc * frwdIntMask,
184  open_buffdesc * fltIntMask,
185  open_buffdesc * absPortMask);
186 
187 /*************************************************************************************************/
218  open_buffdesc * vidMac,
220  OPEN_MFDB_PROTOCOL_TYPE_t * nextCompId,
221  OPEN_MFDB_ENTRY_TYPE_t * type,
222  open_buffdesc * desc,
223  open_buffdesc * frwdPortMask,
224  open_buffdesc * fltPortMask);
225 
226 /*************************************************************************************************/
243  open_buffdesc * vidMac);
244 
245 /*************************************************************************************************/
270  open_buffdesc * vidMac,
271  uint32_t matchType,
272  open_buffdesc * absMask);
273 
274 /*************************************************************************************************/
299  open_buffdesc * vidMac,
300  uint32_t matchType,
301  open_buffdesc * absMask);
302 
303 /*************************************************************************************************/
318  uint32_t * maxEntries);
319 
320 /*************************************************************************************************/
335  uint32_t * mostEntries);
336 
337 /*************************************************************************************************/
352  uint32_t * currEntries);
353 #endif /* OPENAPI_MFDB_H_INCLUDED */
354