Open Ethernet Networking (OpEN) API Guide and Reference Manual  3.12.0.1
openapi_acl.h
Go to the documentation of this file.
1 
9 /**********************************************************************
10 *
11 * Copyright 2016-2023 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_acl.h
28 *
29 * @purpose Security Access Lists Configuration
30 *
31 * @component OPEN
32 *
33 * @create 09/12/2013
34 *
35 * @end
36 *
37 *********************************************************************/
38 #ifndef OPENAPI_ACL_H_INCLUDED
39 #define OPENAPI_ACL_H_INCLUDED
40 
41 #include <stdbool.h>
42 #include "openapi_common.h"
43 
44 /* ACL Protocol Keyword definitions*/
45 #define OPENAPI_ACL_PROTOCOL_EIGRP 88
46 #define OPENAPI_ACL_PROTOCOL_GRE 47
47 #define OPENAPI_ACL_PROTOCOL_ICMP 1
48 #define OPENAPI_ACL_PROTOCOL_ICMPV6 58
49 #define OPENAPI_ACL_PROTOCOL_IGMP 2
50 #define OPENAPI_ACL_PROTOCOL_IP 255
51 #define OPENAPI_ACL_PROTOCOL_IPV6 255
52 #define OPENAPI_ACL_PROTOCOL_IPINIP 94
53 #define OPENAPI_ACL_PROTOCOL_OSPF 89
54 #define OPENAPI_ACL_PROTOCOL_PIM 103
55 #define OPENAPI_ACL_PROTOCOL_TCP 6
56 #define OPENAPI_ACL_PROTOCOL_UDP 17
58 /* DSCP User Keyword Translations for IP DSCP Values */
59 #define OPENAPI_ACL_IP_DSCP_AF11 10
60 #define OPENAPI_ACL_IP_DSCP_AF12 12
61 #define OPENAPI_ACL_IP_DSCP_AF13 14
62 #define OPENAPI_ACL_IP_DSCP_AF21 18
63 #define OPENAPI_ACL_IP_DSCP_AF22 20
64 #define OPENAPI_ACL_IP_DSCP_AF23 22
65 #define OPENAPI_ACL_IP_DSCP_AF31 26
66 #define OPENAPI_ACL_IP_DSCP_AF32 28
67 #define OPENAPI_ACL_IP_DSCP_AF33 30
68 #define OPENAPI_ACL_IP_DSCP_AF41 34
69 #define OPENAPI_ACL_IP_DSCP_AF42 36
70 #define OPENAPI_ACL_IP_DSCP_AF43 38
71 #define OPENAPI_ACL_IP_DSCP_BE 0
72 #define OPENAPI_ACL_IP_DSCP_CS0 0
73 #define OPENAPI_ACL_IP_DSCP_CS1 8
74 #define OPENAPI_ACL_IP_DSCP_CS2 16
75 #define OPENAPI_ACL_IP_DSCP_CS3 24
76 #define OPENAPI_ACL_IP_DSCP_CS4 32
77 #define OPENAPI_ACL_IP_DSCP_CS5 40
78 #define OPENAPI_ACL_IP_DSCP_CS6 48
79 #define OPENAPI_ACL_IP_DSCP_CS7 56
80 #define OPENAPI_ACL_IP_DSCP_EF 46
82 /* ACL TTL field range definitions */
83 #define OPEN_ACL_MIN_TTL_FIELD_VALUE 0
84 #define OPEN_ACL_MAX_TTL_FIELD_VALUE 255
86 /* ACL L4 Port Keyword definitions*/
87 #define OPENAPI_ACL_L4PORT_DOMAIN 53
88 #define OPENAPI_ACL_L4PORT_ECHO 7
89 #define OPENAPI_ACL_L4PORT_FTP 21
90 #define OPENAPI_ACL_L4PORT_FTPDATA 20
91 #define OPENAPI_ACL_L4PORT_HTTP 80
92 #define OPENAPI_ACL_L4PORT_SMTP 25
93 #define OPENAPI_ACL_L4PORT_SNMP 161
94 #define OPENAPI_ACL_L4PORT_TELNET 23
95 #define OPENAPI_ACL_L4PORT_TFTP 69
96 #define OPENAPI_ACL_L4PORT_BGP 179
97 #define OPENAPI_ACL_L4PORT_POP2 109
98 #define OPENAPI_ACL_L4PORT_POP3 110
99 #define OPENAPI_ACL_L4PORT_NTP 123
100 #define OPENAPI_ACL_L4PORT_RIP 520
101 #define OPENAPI_ACL_L4PORT_TIME 37
102 #define OPENAPI_ACL_L4PORT_WHO 513
104 /* User Keyword Translations for Ethertype Hex Values */
105 #define OPENAPI_ETYPE_ID_APPLETALK 0x809B
106 #define OPENAPI_ETYPE_ID_ARP 0x0806
107 #define OPENAPI_ETYPE_ID_IBMSNA 0x80D5
108 #define OPENAPI_ETYPE_ID_IPV4 0x0800
109 #define OPENAPI_ETYPE_ID_IPV6 0x86DD
110 #define OPENAPI_ETYPE_ID_IPX 0x8037
111 #define OPENAPI_ETYPE_ID_MPLSMCAST 0x8848
112 #define OPENAPI_ETYPE_ID_MPLSUCAST 0x8847
113 #define OPENAPI_ETYPE_ID_NETBIOS 0x8191
114 #define OPENAPI_ETYPE_ID_NOVELL_ID1 0x8137
115 #define OPENAPI_ETYPE_ID_NOVELL_ID2 0x8138
116 #define OPENAPI_ETYPE_ID_PPPOE_ID1 0x8863
117 #define OPENAPI_ETYPE_ID_PPPOE_ID2 0x8864
118 #define OPENAPI_ETYPE_ID_RARP 0x8035
120 /* TCP Filtering flags */
121 #define OPENAPI_ACL_TCP_FLAG_FIN 0
122 #define OPENAPI_ACL_TCP_FLAG_SYN 1
123 #define OPENAPI_ACL_TCP_FLAG_RST 2
124 #define OPENAPI_ACL_TCP_FLAG_PSH 3
125 #define OPENAPI_ACL_TCP_FLAG_ACK 4
126 #define OPENAPI_ACL_TCP_FLAG_URG 5
129 #define OPENAPI_ACL_AGENT_ID_MIN 1
130 #define OPENAPI_ACL_AGENT_ID_MAX 100
133 #define OPEN_NUMBERED_ACL_STANDARD_MIN_ACLID 1
134 #define OPEN_NUMBERED_ACL_STANDARD_MAX_ACLID 99
135 #define OPEN_NUMBERED_ACL_EXTENDED_MIN_ACLID 100
136 #define OPEN_NUMBERED_ACL_EXTENDED_MAX_ACLID 199
138 #define OPEN_ACL_MAX_ICMP_TYPE_NUM 255
139 #define OPEN_ACL_MAX_ICMP_CODE_NUM 255
140 #define OPEN_ACL_MIN_IPV6_PREFIX_LEN 1
141 #define OPEN_ACL_MAX_IPV6_PREFIX_LEN 128
143 #define OPEN_ACL_MAX_LISTS_PER_INTF_DIR_PLAT 1024
144 #define OPEN_ACL_MAX_LISTS_PER_VLAN_DIR_PLAT 1024
147 typedef enum
148 {
154 
156 typedef enum
157 {
162 
164 typedef enum
165 {
169 
171 typedef enum
172 {
177 
179 typedef enum
180 {
187 
189 typedef enum
190 {
194 
196 typedef enum
197 {
202 
204 typedef struct
205 {
206  uint32_t seqNum;
208  uint32_t aclId;
211 
213 typedef struct
214 {
215  uint32_t count;
218 
220 typedef struct
221 {
222  uint32_t seqNum;
224  uint32_t aclId;
226 
228 typedef struct
229 {
230  uint32_t count;
233 
235 typedef struct
236 {
237  uint32_t count;
238  uint32_t intf[1536];
240 
242 typedef struct
243 {
244  uint32_t count;
245  uint32_t vlan[1024];
247 
249 typedef enum
250 {
278  OPEN_MAC_ACL_RULEFIELDS_TOTAL
280 
282 typedef struct
283 {
284  maskValue_t fieldsConfigured[OPEN_MASK_LEN(OPEN_MAC_ACL_RULEFIELDS_TOTAL)];
286 
288 typedef enum
289 {
332  OPEN_IP_ACL_RULEFIELDS_TOTAL
334 
336 typedef struct
337 {
338  maskValue_t fieldsConfigured[OPEN_MASK_LEN(OPEN_IP_ACL_RULEFIELDS_TOTAL)];
340 
341 /*************************************************************************/
374  OPEN_NUMBERED_ACL_TYPE_t aclType,
375  uint32_t aclId);
376 
377 /*************************************************************************/
407  OPEN_ACL_TYPE_t aclType,
408  open_buffdesc *aclName,
409  uint32_t *aclId);
410 
411 /*************************************************************************/
436  uint32_t aclId);
437 
438 /*************************************************************************/
466  OPEN_ACL_TYPE_t aclType,
467  open_buffdesc *aclName);
468 
469 /*************************************************************************/
490  OPEN_ACL_TYPE_t aclType,
491  open_buffdesc *aclName,
492  uint32_t *aclId);
493 
494 /*************************************************************************/
511  OPEN_ACL_TYPE_t aclType,
512  uint32_t *aclId);
513 
514 /*************************************************************************/
532  OPEN_ACL_TYPE_t aclType,
533  uint32_t aclId,
534  uint32_t *nextAclId);
535 
536 /*************************************************************************/
555  uint32_t aclId,
556  open_buffdesc *aclName);
557 
558 /*************************************************************************/
579  uint32_t aclId,
580  open_buffdesc *aclName);
581 
582 /*************************************************************************/
600  uint32_t aclId,
601  uint32_t aclRule,
602  OPEN_ACL_ACTION_t *aclAction);
603 
604 /*************************************************************************/
621  uint32_t aclId,
622  uint32_t *aclRule);
623 
624 /*************************************************************************/
642  uint32_t aclId,
643  uint32_t aclRule,
644  uint32_t *nextAclRule);
645 
646 /*************************************************************************/
669  uint32_t aclId,
670  uint32_t *aclRule,
671  OPEN_ACL_ACTION_t aclAction);
672 
673 /*************************************************************************/
692  uint32_t aclId);
693 
694 /*************************************************************************/
715  uint32_t asic, uint32_t aclId, uint32_t ruleId);
716 
717 /****************************************************************************/
718 /************************* Match rules begin here ***************************/
719 /****************************************************************************/
720 
721 /*************************************************************************/
735  uint32_t *maxQueue);
736 
737 /*************************************************************************/
762  uint32_t aclId,
763  uint32_t aclRule,
764  uint32_t queueId);
765 
766 /*****************************************************************/
787  uint32_t aclId,
788  uint32_t aclRule,
789  uint32_t *queueId);
790 
791 /*************************************************************************/
839  uint32_t aclId,
840  uint32_t aclRule,
841  uint32_t dscp);
842 
843 /*****************************************************************/
887  uint32_t aclId,
888  uint32_t aclRule,
889  uint32_t *dscp);
890 
891 /*************************************************************************/
914  uint32_t aclId,
915  uint32_t aclRule,
916  uint32_t ttlVal);
917 
918 /*****************************************************************/
940  uint32_t aclId,
941  uint32_t aclRule,
942  uint32_t *ttlVal);
943 
944 /*************************************************************************/
969  uint32_t aclId,
970  uint32_t aclRule,
971  bool aclMatch);
972 
973 /*****************************************************************/
994  uint32_t aclId,
995  uint32_t aclRule,
996  bool *aclMatch);
997 
998 /*************************************************************************/
1023  uint32_t aclId,
1024  uint32_t aclRule,
1025  uint32_t label);
1026 
1027 /*****************************************************************/
1048  uint32_t aclId,
1049  uint32_t aclRule,
1050  uint32_t *label);
1051 
1052 /*************************************************************************/
1075  uint32_t aclId,
1076  uint32_t aclRule,
1077  bool fragments);
1078 
1079 /*****************************************************************/
1100  uint32_t aclId,
1101  uint32_t aclRule,
1102  bool *fragments);
1103 
1104 /*****************************************************************/
1138  uint32_t aclId,
1139  uint32_t aclRule,
1140  bool addCode,
1141  uint32_t type,
1142  uint32_t code);
1143 
1144 /*****************************************************************/
1172  uint32_t aclId,
1173  uint32_t aclRule,
1174  bool getCode,
1175  uint32_t *type,
1176  uint32_t *code);
1177 
1178 /*****************************************************************/
1206  uint32_t aclId,
1207  uint32_t aclRule,
1208  uint32_t type);
1209 
1210 /*****************************************************************/
1234  uint32_t aclId,
1235  uint32_t aclRule,
1236  uint32_t *type);
1237 
1238 /*****************************************************************/
1261  uint32_t aclId,
1262  uint32_t aclRule,
1263  bool aclLogging);
1264 
1265 /*****************************************************************/
1286  uint32_t aclId,
1287  uint32_t aclRule,
1288  bool *aclLogging);
1289 
1290 /*****************************************************************/
1314  uint32_t aclId,
1315  uint32_t aclRule,
1316  bool aclSflowSampling);
1317 
1318 /*****************************************************************/
1340  uint32_t aclId,
1341  uint32_t aclRule,
1342  bool *aclSflowSampling);
1343 
1344 /*****************************************************************/
1368  uint32_t aclId,
1369  uint32_t aclRule,
1370  uint32_t cos);
1371 
1372 /*****************************************************************/
1392  uint32_t aclId,
1393  uint32_t aclRule,
1394  uint32_t *cos);
1395 
1396 /*****************************************************************/
1420  uint32_t aclId,
1421  uint32_t aclRule,
1422  uint32_t cos);
1423 
1424 /*****************************************************************/
1444  uint32_t aclId,
1445  uint32_t aclRule,
1446  uint32_t *cos);
1447 
1448 /*****************************************************************/
1487  uint32_t aclId,
1488  uint32_t aclRule,
1489  uint32_t type);
1490 
1491 /*****************************************************************/
1526  uint32_t aclId,
1527  uint32_t aclRule,
1528  uint32_t *type);
1529 
1530 /*****************************************************************/
1560  uint32_t aclId,
1561  uint32_t aclRule,
1562  open_buffdesc *mac,
1563  open_buffdesc *mask);
1564 
1565 /*****************************************************************/
1586  uint32_t aclId,
1587  uint32_t aclRule,
1588  open_buffdesc *mac,
1589  open_buffdesc *mask);
1590 
1591 /*****************************************************************/
1619  uint32_t aclId,
1620  uint32_t aclRule,
1622  uint32_t startId,
1623  uint32_t endId);
1624 
1625 /*****************************************************************/
1647  uint32_t aclId,
1648  uint32_t aclRule,
1650  uint32_t *startId,
1651  uint32_t *endId);
1652 
1653 /*****************************************************************/
1681  uint32_t aclId,
1682  uint32_t aclRule,
1684  uint32_t startId,
1685  uint32_t endId);
1686 
1687 /*****************************************************************/
1709  uint32_t aclId,
1710  uint32_t aclRule,
1712  uint32_t *startId,
1713  uint32_t *endId);
1714 
1715 /*****************************************************************/
1743  uint32_t aclId,
1744  uint32_t aclRule,
1745  open_buffdesc *mac,
1746  open_buffdesc *mask);
1747 
1748 /*****************************************************************/
1769  uint32_t aclId,
1770  uint32_t aclRule,
1771  open_buffdesc *mac,
1772  open_buffdesc *mask);
1773 
1774 /*****************************************************************/
1789  uint32_t *aclCount);
1790 
1791 /*****************************************************************/
1806  uint32_t *aclCount);
1807 
1808 /*****************************************************************/
1823  uint32_t *maxACL);
1824 
1825 /*****************************************************************/
1840  uint32_t *maxIntf);
1841 
1842 /*****************************************************************/
1857  uint32_t *maxACL);
1858 
1859 /*****************************************************************/
1874  uint32_t *maxACL);
1875 
1876 /*****************************************************************/
1891  uint32_t *maxIntf);
1892 
1893 /*****************************************************************/
1908  uint32_t *maxVlan);
1909 
1910 /*****************************************************************/
1937  uint32_t aclId,
1938  uint32_t aclRule,
1939  open_inet_addr_t addr,
1940  open_inet_addr_t mask);
1941 
1942 /*****************************************************************/
1963  uint32_t aclId,
1964  uint32_t aclRule,
1965  open_inet_addr_t *addr,
1966  open_inet_addr_t *mask);
1967 
1968 /*****************************************************************/
1995  uint32_t aclId,
1996  uint32_t aclRule,
1997  open_inet_addr_t addr,
1998  open_inet_addr_t mask);
1999 
2000 /*****************************************************************/
2021  uint32_t aclId,
2022  uint32_t aclRule,
2023  open_inet_addr_t *addr,
2024  open_inet_addr_t *mask);
2025 
2026 /*****************************************************************/
2049  uint32_t aclId,
2050  uint32_t aclRule,
2051  open_inet_addr_t addr,
2052  uint32_t pfxLen);
2053 
2054 /*****************************************************************/
2075  uint32_t aclId,
2076  uint32_t aclRule,
2077  open_inet_addr_t *addr,
2078  uint32_t *pfxLen);
2079 
2080 /*****************************************************************/
2103  uint32_t aclId,
2104  uint32_t aclRule,
2105  open_inet_addr_t addr,
2106  uint32_t pfxLen);
2107 
2108 /*****************************************************************/
2129  uint32_t aclId,
2130  uint32_t aclRule,
2131  open_inet_addr_t *addr,
2132  uint32_t *pfxLen);
2133 
2134 /*****************************************************************/
2184  uint32_t aclId,
2185  uint32_t aclRule,
2187  uint32_t startPort,
2188  uint32_t endPort);
2189 
2190 /*****************************************************************/
2233  uint32_t aclId,
2234  uint32_t aclRule,
2236  uint32_t *startPort,
2237  uint32_t *endPort);
2238 
2239 /*****************************************************************/
2289  uint32_t aclId,
2290  uint32_t aclRule,
2292  uint32_t startPort,
2293  uint32_t endPort);
2294 
2295 /*****************************************************************/
2338  uint32_t aclId,
2339  uint32_t aclRule,
2341  uint32_t *startPort,
2342  uint32_t *endPort);
2343 
2344 /*****************************************************************/
2371  uint32_t aclId,
2372  uint32_t aclRule,
2373  uint32_t intf);
2374 
2375 /*****************************************************************/
2395  uint32_t aclId,
2396  uint32_t aclRule,
2397  uint32_t *intf);
2398 
2399 /*************************************************************************/
2424  uint32_t aclId,
2425  uint32_t aclRule,
2426  uint32_t precedence);
2427 
2428 /*****************************************************************/
2449  uint32_t aclId,
2450  uint32_t aclRule,
2451  uint32_t *precedence);
2452 
2453 /*****************************************************************/
2491  uint32_t aclId,
2492  uint32_t aclRule,
2493  uint32_t aclProtocol);
2494 
2495 /*****************************************************************/
2529  uint32_t aclId,
2530  uint32_t aclRule,
2531  uint32_t *aclProtocol);
2532 
2533 /*****************************************************************/
2560  uint32_t aclId,
2561  uint32_t aclRule,
2562  uint32_t dataRate,
2563  uint32_t burstSize);
2564 
2565 /*****************************************************************/
2586  uint32_t aclId,
2587  uint32_t aclRule,
2588  uint32_t *dataRate,
2589  uint32_t *burstSize);
2590 
2591 /*************************************************************************/
2605  uint32_t *maxIntf);
2606 
2607 /*****************************************************************/
2634  uint32_t aclId,
2635  uint32_t aclRule,
2636  uint32_t intf);
2637 
2638 /*****************************************************************/
2658  uint32_t aclId,
2659  uint32_t aclRule,
2660  uint32_t *intf);
2661 
2662 /*****************************************************************/
2689  uint32_t aclId,
2690  uint32_t aclRule,
2691  uint32_t agent);
2692 
2693 /*****************************************************************/
2713  uint32_t aclId,
2714  uint32_t aclRule,
2715  uint32_t *agent);
2716 
2717 /*****************************************************************/
2743  uint32_t aclId,
2744  uint32_t aclRule,
2745  uint32_t agent);
2746 
2747 /*****************************************************************/
2767  uint32_t aclId,
2768  uint32_t aclRule,
2769  uint32_t *agent);
2770 
2771 /*************************************************************************/
2794  uint32_t aclId,
2795  uint32_t aclRule,
2796  bool flag);
2797 
2798 /*************************************************************************/
2819  uint32_t aclId,
2820  uint32_t aclRule,
2821  bool *flag);
2822 
2823 /*************************************************************************/
2858  uint32_t aclId,
2859  uint32_t aclRule,
2860  uint32_t tcpVal,
2861  uint32_t tcpMask);
2862 
2863 /*************************************************************************/
2896  uint32_t aclId,
2897  uint32_t aclRule,
2898  uint32_t *tcpVal,
2899  uint32_t *tcpMask);
2900 
2901 /*************************************************************************/
2925  uint32_t aclId,
2926  uint32_t aclRule,
2927  open_buffdesc *name);
2928 
2929 /*************************************************************************/
2951  uint32_t aclId,
2952  uint32_t aclRule,
2953  open_buffdesc *name);
2954 
2955 /*************************************************************************/
2975  uint32_t aclId,
2976  uint32_t aclRule,
2977  OPEN_ACL_RULE_STATUS_t *status);
2978 
2979 /*****************************************************************/
3005  uint32_t aclId,
3006  uint32_t aclRule,
3007  open_buffdesc *tos,
3008  open_buffdesc *tosMask);
3009 
3010 /*****************************************************************/
3031  uint32_t aclId,
3032  uint32_t aclRule,
3033  open_buffdesc *tos,
3034  open_buffdesc *tosMask);
3035 
3036 /****************************************************************************/
3037 /************ Traffic-Filter (Access-Group) functions begin here ************/
3038 /****************************************************************************/
3039 
3040 /*****************************************************************/
3067  uint32_t intf,
3069  uint32_t *nextIntf,
3070  OPEN_ACL_DIRECTION_t *nextDir);
3071 
3072 /*****************************************************************/
3112  uint32_t intf,
3114  uint32_t aclId,
3115  uint32_t seqNum);
3116 
3117 /*****************************************************************/
3143  uint32_t intf,
3145  uint32_t aclId);
3146 
3147 /*****************************************************************/
3168  uint32_t intf,
3170  OPEN_CONTROL_t *inUse);
3171 
3172 /*****************************************************************/
3193  uint32_t vlan,
3195  OPEN_CONTROL_t *inUse);
3196 
3197 /*****************************************************************/
3230  uint32_t vlan,
3232  uint32_t aclId,
3233  uint32_t seqNum);
3234 
3235 /*****************************************************************/
3261  uint32_t vlan,
3263  uint32_t aclId);
3264 
3265 /*****************************************************************/
3290  uint32_t intf,
3292  OPEN_ACL_INTF_DIR_LIST_t *listInfo);
3293 
3294 /*****************************************************************/
3319  uint32_t vlan,
3321  OPEN_ACL_VLAN_DIR_LIST_t *listInfo);
3322 
3323 /*****************************************************************/
3344  uint32_t aclId,
3346  OPEN_ACL_ASSIGNED_INTF_LIST_t *intfList);
3347 
3348 /*****************************************************************/
3369  uint32_t aclId,
3371  OPEN_ACL_ASSIGNED_VLAN_LIST_t *vlanList);
3372 
3373 /*************************************************************************/
3392  uint32_t aclId,
3393  uint32_t routePrefix,
3394  uint32_t routeMask,
3395  OPEN_ACL_ACTION_t *aclAction);
3396 
3397 /*************************************************************************/
3416  uint32_t adminMode);
3417 
3418 /*****************************************************************/
3437  uint32_t asic,
3438  uint32_t aclId,
3439  uint32_t ruleNum,
3440  uint32_t ruleAction,
3441  uint64_t *hitPktCount);
3442 
3443 /*****************************************************************/
3460  uint32_t asic,
3461  uint32_t aclId,
3462  uint32_t ruleNum);
3463 
3464 /*****************************************************************/
3481  uint32_t asic,
3482  uint32_t aclId,
3483  uint32_t seqNum);
3484 
3485 /*****************************************************************/
3501  uint32_t asic,
3502  uint32_t aclId);
3503 
3504 /*************************************************************************/
3521  OPEN_ACL_TYPE_t aclType,
3522  uint32_t aclId,
3523  OPEN_BOOL_t *isDacl);
3524 
3525 /*************************************************************************/
3541  uint32_t * aclId);
3542 
3543 /*************************************************************************/
3560  uint32_t aclId, uint32_t * nextAclId);
3561 
3562 /*****************************************************************/
3586  uint32_t aclId,
3587  uint32_t aclRule,
3588  openIpAclRulesFields_t *ipAclRulesFields);
3589 
3590 /*****************************************************************/
3614  uint32_t aclId,
3615  uint32_t aclRule,
3616  openMacAclRulesFields_t *macAclRulesFields);
3617 #endif /* OPENAPI_ACL_H_INCLUDED */
3618 
open_error_t openapiAclRuleMatchMirrorAgentAdd(openapiClientHandle_t *client_handle, uint32_t aclId, uint32_t aclRule, uint32_t agent)
Add the mirror external agent id for an access list rule.
open_error_t openapiAclRuleMatchMacDstMacGet(openapiClientHandle_t *client_handle, uint32_t aclId, uint32_t aclRule, open_buffdesc *mac, open_buffdesc *mask)
Get the destination MAC address and mask.
open_error_t openapiAclMaxMirrorIntfCountGet(openapiClientHandle_t *client_handle, uint32_t *maxIntf)
Get the maximum mirror interface count for a match criteria.
open_error_t openapiAclRuleMatchIpv6SrcPfxGet(openapiClientHandle_t *client_handle, uint32_t aclId, uint32_t aclRule, open_inet_addr_t *addr, uint32_t *pfxLen)
Gets the source IPV6 address and prefix length.
open_error_t openapiAclRuleMatchIpv6DstPfxAdd(openapiClientHandle_t *client_handle, uint32_t aclId, uint32_t aclRule, open_inet_addr_t addr, uint32_t pfxLen)
Add the destination IPV6 address and prefix length.
open_error_t openapiAclRuleMatchTimeRangeStatusGet(openapiClientHandle_t *client_handle, uint32_t aclId, uint32_t aclRule, OPEN_ACL_RULE_STATUS_t *status)
Get the rule status of an access list rule entry.
open_error_t openapiAclVlanDirListGet(openapiClientHandle_t *client_handle, uint32_t vlan, OPEN_ACL_DIRECTION_t dir, OPEN_ACL_VLAN_DIR_LIST_t *listInfo)
Get the list of ACLs currently assigned to the specified VLAN and direction.
open_error_t openapiAclRuleMatchMacCos2Add(openapiClientHandle_t *client_handle, uint32_t aclId, uint32_t aclRule, uint32_t cos)
Add a Secondary Class Of Server (COS) match condition.
open_error_t openapiAclAssignedIntfDirListGet(openapiClientHandle_t *client_handle, uint32_t aclId, OPEN_ACL_DIRECTION_t dir, OPEN_ACL_ASSIGNED_INTF_LIST_t *intfList)
Get the list of interfaces currently assigned to the specified ACL and direction. ...
open_error_t openapiAclGetFirst(openapiClientHandle_t *client_handle, OPEN_ACL_TYPE_t aclType, uint32_t *aclId)
Get the first named access list identifier created in the system.
Mirror Interface.
Definition: openapi_acl.h:294
VLAN ID Ranage Start.
Definition: openapi_acl.h:271
open_error_t openapiAclRuleMatchRedirectAgentAdd(openapiClientHandle_t *client_handle, uint32_t aclId, uint32_t aclRule, uint32_t agent)
Add the redirect external agent id for an access list rule.
open_error_t openapiAclRuleMatchEveryGet(openapiClientHandle_t *client_handle, uint32_t aclId, uint32_t aclRule, bool *aclMatch)
Gets the match-all (every) status for a rule.
open_error_t openapiAclRuleMatchMacEtherTypeAdd(openapiClientHandle_t *client_handle, uint32_t aclId, uint32_t aclRule, uint32_t type)
Add a MAC Ethertype match condition.
open_error_t openapiAclRuleMatchProtocolAdd(openapiClientHandle_t *client_handle, uint32_t aclId, uint32_t aclRule, uint32_t aclProtocol)
Add a protocol to an existing access list rule.
Destinaiton End Port.
Definition: openapi_acl.h:314
Source End Port.
Definition: openapi_acl.h:308
Destination IPv6.
Definition: openapi_acl.h:311
open_error_t openapiAclIsVlanInUse(openapiClientHandle_t *client_handle, uint32_t vlan, OPEN_ACL_DIRECTION_t dir, OPEN_CONTROL_t *inUse)
Check if a VLAN and direction is in use by any access list.
open_error_t openapiAclRuleMatchMacVlanGet(openapiClientHandle_t *client_handle, uint32_t aclId, uint32_t aclRule, OPEN_ACL_VLAN_OPERATOR_t *oper, uint32_t *startId, uint32_t *endId)
Get the VLAN match condition.
open_error_t openapiAclRuleMatchMirrorAgentGet(openapiClientHandle_t *client_handle, uint32_t aclId, uint32_t aclRule, uint32_t *agent)
Get the mirror external agent id from an access list rule.
Soruce Start Port.
Definition: openapi_acl.h:307
#define OPEN_MASK_LEN(_size)
SETMASKBIT turns on bit index # k in mask j.
#define OPEN_ACL_MAX_LISTS_PER_INTF_DIR_PLAT
Maximum lists per interface.
Definition: openapi_acl.h:143
open_error_t openapiAclAssignedVlanDirListGet(openapiClientHandle_t *client_handle, uint32_t aclId, OPEN_ACL_DIRECTION_t dir, OPEN_ACL_ASSIGNED_VLAN_LIST_t *vlanList)
Get the list of VLANs currently assigned to the specified ACL and direction.
Port range specified (start and end port)
Definition: openapi_acl.h:185
Secondary VLAN.
Definition: openapi_acl.h:273
Destination Port Operator.
Definition: openapi_acl.h:328
open_error_t openapiAclRuleMatchIpDstMaskGet(openapiClientHandle_t *client_handle, uint32_t aclId, uint32_t aclRule, open_inet_addr_t *addr, open_inet_addr_t *mask)
Gets the destination IPv4 address and net mask.
ACL interface list.
Definition: openapi_acl.h:235
open_error_t openapiAclRuleMatchIpSrcMaskAdd(openapiClientHandle_t *client_handle, uint32_t aclId, uint32_t aclRule, open_inet_addr_t addr, open_inet_addr_t mask)
Add the source IPv4 address and net mask.
open_error_t openapiAclIsIntfInUse(openapiClientHandle_t *client_handle, uint32_t intf, OPEN_ACL_DIRECTION_t dir, OPEN_CONTROL_t *inUse)
Check if an interface and direction is in use by any access list.
open_error_t openapiAclRuleMatchTtlGet(openapiClientHandle_t *client_handle, uint32_t aclId, uint32_t aclRule, uint32_t *ttlVal)
Gets the TTL value for an access list rule.
open_error_t openapiAclRuleCountGet(openapiClientHandle_t *client_handle, uint32_t asic, uint32_t aclId, uint32_t ruleNum, uint32_t ruleAction, uint64_t *hitPktCount)
Get ACL rule hit count.
Id range specified (start and end VLAN id)
Definition: openapi_acl.h:192
Redirect Ext Agent.
Definition: openapi_acl.h:296
OPEN_BOOL_t isDacl
Is ACL downloadable ACL or not.
Definition: openapi_acl.h:209
VLAN ID Ranage End.
Definition: openapi_acl.h:272
open_error_t openapiAclRuleMatchMacCosAdd(openapiClientHandle_t *client_handle, uint32_t aclId, uint32_t aclRule, uint32_t cos)
Add a Class Of Server (COS) match condition.
open_error_t openapiAclCountersAdminModeSet(openapiClientHandle_t *client_handle, uint32_t adminMode)
Configures ACL counters admin mode.
open_error_t openapiAclRuleMatchEveryAdd(openapiClientHandle_t *client_handle, uint32_t aclId, uint32_t aclRule, bool aclMatch)
Set the match condition whereby all packets match for the ACL rule.
Ethertype Keyid.
Definition: openapi_acl.h:266
open_error_t openapiAclRuleMatchFlowLabelGet(openapiClientHandle_t *client_handle, uint32_t aclId, uint32_t aclRule, uint32_t *label)
Gets the flow label for an access list rule.
open_error_t
OPEN uses these enumerators to indicate the error codes.
open_error_t openapiAclIsDaclGet(openapiClientHandle_t *client_handle, OPEN_ACL_TYPE_t aclType, uint32_t aclId, OPEN_BOOL_t *isDacl)
Get whether ACL is downloadable or not.
Extended numbered ACL.
Definition: openapi_acl.h:159
Named IP ACL.
Definition: openapi_acl.h:150
open_error_t openapiAclRuleMatchLoggingGet(openapiClientHandle_t *client_handle, uint32_t aclId, uint32_t aclRule, bool *aclLogging)
Gets the logging flag from an existing access list rule entry.
open_error_t openapiAclRuleMatchRateLimitAdd(openapiClientHandle_t *client_handle, uint32_t aclId, uint32_t aclRule, uint32_t dataRate, uint32_t burstSize)
Set the rate limit parameters for an access list rule.
open_error_t openapiAclRuleMatchMirrorGet(openapiClientHandle_t *client_handle, uint32_t aclId, uint32_t aclRule, uint32_t *intf)
Get the mirror interface from an existing access list rule entry.
open_error_t openapiAclCreate(openapiClientHandle_t *client_handle, OPEN_ACL_TYPE_t aclType, open_buffdesc *aclName, uint32_t *aclId)
Create a new Access List.
open_error_t openapiAclIntfDirDelete(openapiClientHandle_t *client_handle, uint32_t intf, OPEN_ACL_DIRECTION_t dir, uint32_t aclId)
Remove an access list from the specified interface and direction.
open_error_t openapiAclMaxRedirectIntfCountGet(openapiClientHandle_t *client_handle, uint32_t *maxIntf)
Get the maximum redirect interface count for a match criteria.
OPEN_NUMBERED_ACL_TYPE_t
Supported numbered access list types.
Definition: openapi_acl.h:156
Named IPv6 ACL.
Definition: openapi_acl.h:152
Mirror Ext Agent.
Definition: openapi_acl.h:297
Source IP Mask.
Definition: openapi_acl.h:304
open_error_t openapiAclRuleMatchRoutingAdd(openapiClientHandle_t *client_handle, uint32_t aclId, uint32_t aclRule, bool flag)
Set the routing flag for an access list rule.
open_error_t openapiAclRuleMatchIpv6DstPfxGet(openapiClientHandle_t *client_handle, uint32_t aclId, uint32_t aclRule, open_inet_addr_t *addr, uint32_t *pfxLen)
Gets the destination IPV6 address and prefix length.
OPEN_ACL_TYPE_t aclType
Type of ACL.
Definition: openapi_acl.h:223
open_error_t openapiAclRuleMatchDscpAdd(openapiClientHandle_t *client_handle, uint32_t aclId, uint32_t aclRule, uint32_t dscp)
Set the DSCP value for an access list rule.
OPEN_MAC_ACL_RULEFIELDS_t
Definition: openapi_acl.h:249
Interface ACL list.
Definition: openapi_acl.h:213
open_error_t openapiAclRuleMatchAssignQueueAdd(openapiClientHandle_t *client_handle, uint32_t aclId, uint32_t aclRule, uint32_t queueId)
Set the assigned queue id for an access list rule.
Rule Number.
Definition: openapi_acl.h:290
open_error_t openapiAclRuleGetNext(openapiClientHandle_t *client_handle, uint32_t aclId, uint32_t aclRule, uint32_t *nextAclRule)
Get the next rule for the given ACL.
open_error_t openapiAclRuleMatchMacSecondaryVlanAdd(openapiClientHandle_t *client_handle, uint32_t aclId, uint32_t aclRule, OPEN_ACL_VLAN_OPERATOR_t oper, uint32_t startId, uint32_t endId)
Add a Secondary VLAN match condition.
open_error_t openapiAclRuleMatchPrecedenceGet(openapiClientHandle_t *client_handle, uint32_t aclId, uint32_t aclRule, uint32_t *precedence)
Get the match condition for precedence value.
OPEN_ACL_RULE_STATUS_t
Time Range Status.
Definition: openapi_acl.h:171
open_error_t openapiAclMaxAclIntfCountGet(openapiClientHandle_t *client_handle, uint32_t *maxIntf)
Get the maximum number of ACL Interfaces on this platform.
uint32_t count
Number of valid intf entries.
Definition: openapi_acl.h:244
open_error_t openapiAclRuleMatchLoggingAdd(openapiClientHandle_t *client_handle, uint32_t aclId, uint32_t aclRule, bool aclLogging)
Set the logging flag for an access list rule.
open_error_t openapiAclRuleMatchMacVlanAdd(openapiClientHandle_t *client_handle, uint32_t aclId, uint32_t aclRule, OPEN_ACL_VLAN_OPERATOR_t oper, uint32_t startId, uint32_t endId)
Add a VLAN match condition.
open_error_t openapiAclRuleMatchIpDstMaskAdd(openapiClientHandle_t *client_handle, uint32_t aclId, uint32_t aclRule, open_inet_addr_t addr, open_inet_addr_t mask)
Add the destination IPv4 address and net mask.
Source Port.
Definition: openapi_acl.h:306
Destination Start Port.
Definition: openapi_acl.h:313
uint32_t aclId
ACL identifying number (per ACL type)
Definition: openapi_acl.h:224
open_error_t openapiAclRuleMatchMacCosGet(openapiClientHandle_t *client_handle, uint32_t aclId, uint32_t aclRule, uint32_t *cos)
Get the Class Of Server (COS) match condition.
Source MAC Mask.
Definition: openapi_acl.h:269
open_error_t openapiAclRuleMatchIcmpTypeCodeGet(openapiClientHandle_t *client_handle, uint32_t aclId, uint32_t aclRule, bool getCode, uint32_t *type, uint32_t *code)
Get the ICMP match condition parameters for an existing access list rule.
open_error_t openapiAclFieldsConfiguredMaskGet(openapiClientHandle_t *client_handle, uint32_t aclId, uint32_t aclRule, openIpAclRulesFields_t *ipAclRulesFields)
Get the configured fields mask for the specified IP/IPv6 ACL and rule.
OPEN_ACL_L4_PORT_OPERATOR_t
Layer 4 Port Operator Flags.
Definition: openapi_acl.h:179
open_error_t openapiAclRuleMatchL4SrcPortGet(openapiClientHandle_t *client_handle, uint32_t aclId, uint32_t aclRule, OPEN_ACL_L4_PORT_OPERATOR_t *oper, uint32_t *startPort, uint32_t *endPort)
Get a Layer 4 source port match condition.
Redirect Interface.
Definition: openapi_acl.h:293
Destination Port.
Definition: openapi_acl.h:312
Flow Label IPv6.
Definition: openapi_acl.h:320
open_error_t openapiAclRuleGlobalApply(openapiClientHandle_t *client_handle, uint32_t asic, uint32_t aclId, uint32_t seqNum)
Apply ACL rule to all interfaces.
Source MAC.
Definition: openapi_acl.h:268
Destination IP Mask.
Definition: openapi_acl.h:310
open_error_t openapiAclGlobalDelete(openapiClientHandle_t *client_handle, uint32_t asic, uint32_t aclId)
Remove ACL from all interfaces.
Total number of ACL directions defined.
Definition: openapi_acl.h:200
uint32_t aclId
ACL identifying number (per ACL type)
Definition: openapi_acl.h:208
OPEN_ACL_TYPE_t aclType
Type of ACL.
Definition: openapi_acl.h:207
open_error_t openapiAclRouteFilter(openapiClientHandle_t *client_handle, uint32_t aclId, uint32_t routePrefix, uint32_t routeMask, OPEN_ACL_ACTION_t *aclAction)
Apply an ACL as a route filter.
open_error_t openapiAclRuleMatchFragmentsGet(openapiClientHandle_t *client_handle, uint32_t aclId, uint32_t aclRule, bool *fragments)
Get the match condition for non-initial fragmented packets.
open_error_t openapiAclMaxIntfAclCountGet(openapiClientHandle_t *client_handle, uint32_t *maxACL)
Get the maximum number of ACLs per interface on this platform.
OPEN_ACL_DIRECTION_t
Callers to ACL API functions use these values for interface direction.
Definition: openapi_acl.h:196
open_error_t openapiAclRuleMatchL4DstPortAdd(openapiClientHandle_t *client_handle, uint32_t aclId, uint32_t aclRule, OPEN_ACL_L4_PORT_OPERATOR_t oper, uint32_t startPort, uint32_t endPort)
Add a Layer 4 destination port match condition.
uint32_t seqNum
ACL evaluation order sequence number.
Definition: openapi_acl.h:222
open_error_t openapiAclRuleMatchRoutingGet(openapiClientHandle_t *client_handle, uint32_t aclId, uint32_t aclRule, bool *flag)
Get the routing flag for an access list rule.
open_error_t openapiAclRuleMatchTimeRangeAdd(openapiClientHandle_t *client_handle, uint32_t aclId, uint32_t aclRule, open_buffdesc *name)
Add the time range name for an access list rule.
open_error_t openapiAclMacFieldsConfiguredMaskGet(openapiClientHandle_t *client_handle, uint32_t aclId, uint32_t aclRule, openMacAclRulesFields_t *macAclRulesFields)
Get the configured fields mask for the specified MAC ACL and rule.
open_error_t openapiAclGetNext(openapiClientHandle_t *client_handle, OPEN_ACL_TYPE_t aclType, uint32_t aclId, uint32_t *nextAclId)
Get the next named access list identifier created in the system.
Secondary VLAN Range Start.
Definition: openapi_acl.h:274
open_error_t openapiAclRuleMatchTtlAdd(openapiClientHandle_t *client_handle, uint32_t aclId, uint32_t aclRule, uint32_t ttlVal)
Set the TTL value for an access list rule.
open_error_t openapiAclIdGetFirst(openapiClientHandle_t *client_handle, uint32_t *aclId)
Get the first access list ID created on the system.
open_error_t openapiAclRuleDelete(openapiClientHandle_t *client_handle, uint32_t asic, uint32_t aclId, uint32_t ruleId)
Delete a specific rule from the given ACL.
OPEN_CONTROL_t
OPEN uses these enumerators to indicate enable or disable for a given config or status parameter...
Match Every.
Definition: openapi_acl.h:300
open_error_t openapiAclRuleMatchMacEtherTypeGet(openapiClientHandle_t *client_handle, uint32_t aclId, uint32_t aclRule, uint32_t *type)
Get the MAC Ethertype match condition.
uint32_t count
Number of valid listEntry entries.
Definition: openapi_acl.h:230
open_error_t openapiAclRuleMatchTosGet(openapiClientHandle_t *client_handle, uint32_t aclId, uint32_t aclRule, open_buffdesc *tos, open_buffdesc *tosMask)
Get the match condition for IP ToS field.
Match Every.
Definition: openapi_acl.h:261
uint32_t count
Number of valid listEntry entries.
Definition: openapi_acl.h:215
OPEN_BOOL_t
OPEN uses these enumerators to indicate true or false for a given config or status parameter...
Standard numbered ACL.
Definition: openapi_acl.h:158
OPEN_ACL_TYPE_t
Supported Access List types.
Definition: openapi_acl.h:147
Secondary COS.
Definition: openapi_acl.h:263
open_error_t openapiAclRuleDeleteLast(openapiClientHandle_t *client_handle, uint32_t aclId)
Delete the last rule for the given ACL.
Secondary VLAN Range End.
Definition: openapi_acl.h:275
open_error_t openapiAclRename(openapiClientHandle_t *client_handle, uint32_t aclId, open_buffdesc *aclName)
Change the Access List name.
Destination MAC Mask.
Definition: openapi_acl.h:265
open_error_t openapiAclMaxAclVlanCountGet(openapiClientHandle_t *client_handle, uint32_t *maxVlan)
Get the maximum number of ACL VLANs on this platform.
open_error_t openapiAclDelete(openapiClientHandle_t *client_handle, uint32_t aclId)
Delete an Access List.
Named MAC ACL.
Definition: openapi_acl.h:151
open_error_t openapiAclRuleMatchTcpFlagsAdd(openapiClientHandle_t *client_handle, uint32_t aclId, uint32_t aclRule, uint32_t tcpVal, uint32_t tcpMask)
Add a match condition using a TCP Control Flag and Mask.
uint32_t seqNum
ACL evaluation order sequence number.
Definition: openapi_acl.h:206
Assign Queue ID.
Definition: openapi_acl.h:292
open_error_t openapiAclCountGet(openapiClientHandle_t *client_handle, uint32_t *aclCount)
Get the current (total) number of configured ACLs.
open_error_t openapiAclRuleMatchL4SrcPortAdd(openapiClientHandle_t *client_handle, uint32_t aclId, uint32_t aclRule, OPEN_ACL_L4_PORT_OPERATOR_t oper, uint32_t startPort, uint32_t endPort)
Add a Layer 4 source port match condition.
OPEN_IP_ACL_RULEFIELDS_t
Definition: openapi_acl.h:288
open_error_t openapiAclMacCountGet(openapiClientHandle_t *client_handle, uint32_t *aclCount)
Get the current number of configured MAC ACLs.
open_error_t openapiAclRuleActionAdd(openapiClientHandle_t *client_handle, uint32_t aclId, uint32_t *aclRule, OPEN_ACL_ACTION_t aclAction)
Add a new rule and its associated action to the given ACL.
Redirect Interface.
Definition: openapi_acl.h:254
open_error_t openapiAclIdGetNext(openapiClientHandle_t *client_handle, uint32_t aclId, uint32_t *nextAclId)
Get the next access list ID for given aclId.
open_error_t openapiAclRuleMatchMacSrcMacGet(openapiClientHandle_t *client_handle, uint32_t aclId, uint32_t aclRule, open_buffdesc *mac, open_buffdesc *mask)
Get the source MAC address and mask.
Source IP.
Definition: openapi_acl.h:303
Ethertype Value.
Definition: openapi_acl.h:267
open_error_t openapiAclRuleMatchMacDstMacAdd(openapiClientHandle_t *client_handle, uint32_t aclId, uint32_t aclRule, open_buffdesc *mac, open_buffdesc *mask)
Add the destination MAC address and mask.
open_error_t openapiAclRuleGetFirst(openapiClientHandle_t *client_handle, uint32_t aclId, uint32_t *aclRule)
Get the rule for the given ACL.
open_error_t openapiAclRuleMatchMirrorAdd(openapiClientHandle_t *client_handle, uint32_t aclId, uint32_t aclRule, uint32_t intf)
Set the mirror interface for an access list rule.
open_error_t openapiAclRuleMatchTosAdd(openapiClientHandle_t *client_handle, uint32_t aclId, uint32_t aclRule, open_buffdesc *tos, open_buffdesc *tosMask)
Add a match condition based on the value of the IP ToS field.
open_error_t openapiAclNameGet(openapiClientHandle_t *client_handle, uint32_t aclId, open_buffdesc *aclName)
Get the Access List name for the given ACL.
open_error_t openapiAclRuleMatchMacSrcMacAdd(openapiClientHandle_t *client_handle, uint32_t aclId, uint32_t aclRule, open_buffdesc *mac, open_buffdesc *mask)
Add the source MAC address and mask.
open_error_t openapiAclRuleMatchFragmentsAdd(openapiClientHandle_t *client_handle, uint32_t aclId, uint32_t aclRule, bool fragments)
Set the match condition to match on non-initial fragmented packets.
open_error_t openapiAclVlanDirDelete(openapiClientHandle_t *client_handle, uint32_t vlan, OPEN_ACL_DIRECTION_t dir, uint32_t aclId)
Remove an access list from the specified VLAN and direction.
open_error_t openapiAclRuleMatchRateLimitGet(openapiClientHandle_t *client_handle, uint32_t aclId, uint32_t aclRule, uint32_t *dataRate, uint32_t *burstSize)
Get the rate limit parameters from an existing access list rule entry.
Rule Number.
Definition: openapi_acl.h:251
open_error_t openapiAclRuleMatchRedirectAdd(openapiClientHandle_t *client_handle, uint32_t aclId, uint32_t aclRule, uint32_t intf)
Add the redirect interface for an access list rule.
open_error_t openapiAclRuleCountersClear(openapiClientHandle_t *client_handle, uint32_t asic, uint32_t aclId, uint32_t ruleNum)
Clear ACL rule counters.
open_error_t openapiAclIntfDirGetNext(openapiClientHandle_t *client_handle, uint32_t intf, OPEN_ACL_DIRECTION_t dir, uint32_t *nextIntf, OPEN_ACL_DIRECTION_t *nextDir)
Get next sequential interface and direction that is valid for use with an ACL.
uint32_t count
Number of valid intf entries.
Definition: openapi_acl.h:237
open_error_t openapiAclRuleMatchMacSecondaryVlanGet(openapiClientHandle_t *client_handle, uint32_t aclId, uint32_t aclRule, OPEN_ACL_VLAN_OPERATOR_t *oper, uint32_t *startId, uint32_t *endId)
Get the Secondary VLAN match condition.
open_error_t openapiAclRuleMatchRedirectAgentGet(openapiClientHandle_t *client_handle, uint32_t aclId, uint32_t aclRule, uint32_t *agent)
Get the redirect agent Id from an access list rule.
open_error_t openapiAclRuleMatchIcmpTypeCodeAdd(openapiClientHandle_t *client_handle, uint32_t aclId, uint32_t aclRule, bool addCode, uint32_t type, uint32_t code)
Add a match condition for ICMP parameters to an existing access list rule.
open_error_t openapiAclRuleMatchIgmpTypeAdd(openapiClientHandle_t *client_handle, uint32_t aclId, uint32_t aclRule, uint32_t type)
Add a match condition for IGMP parameters to an existing access list rule.
Destination MAC.
Definition: openapi_acl.h:264
open_error_t openapiAclRuleMatchDscpGet(openapiClientHandle_t *client_handle, uint32_t aclId, uint32_t aclRule, uint32_t *dscp)
Gets the DSCP value for an access list rule.
open_error_t openapiAclDeleteByName(openapiClientHandle_t *client_handle, OPEN_ACL_TYPE_t aclType, open_buffdesc *aclName)
Delete an Access List by its name.
open_error_t openapiNumberedAclCreate(openapiClientHandle_t *client_handle, OPEN_NUMBERED_ACL_TYPE_t aclType, uint32_t aclId)
Create a new numbered access List.
OPEN_ACL_VLAN_OPERATOR_t
MAC VLAN Operator Flags.
Definition: openapi_acl.h:189
Redirect Ext Agent.
Definition: openapi_acl.h:255
open_error_t openapiAclRuleMatchIpv6SrcPfxAdd(openapiClientHandle_t *client_handle, uint32_t aclId, uint32_t aclRule, open_inet_addr_t addr, uint32_t pfxLen)
Add the source IPV6 address and prefix length.
open_error_t openapiAclRuleMatchL4DstPortGet(openapiClientHandle_t *client_handle, uint32_t aclId, uint32_t aclRule, OPEN_ACL_L4_PORT_OPERATOR_t *oper, uint32_t *startPort, uint32_t *endPort)
Get a Layer 4 destination port match condition.
IP Precedence.
Definition: openapi_acl.h:316
open_error_t openapiAclRuleMatchAssignQueueGet(openapiClientHandle_t *client_handle, uint32_t aclId, uint32_t aclRule, uint32_t *queueId)
Gets the assigned queue id for an access list rule.
open_error_t openapiAclRuleMatchSflowSamplingGet(openapiClientHandle_t *client_handle, uint32_t aclId, uint32_t aclRule, bool *aclSflowSampling)
Gets the sFlow sampling flag from an existing access list rule entry.
open_error_t openapiAclMaxAssignQueueGet(openapiClientHandle_t *client_handle, uint32_t *maxQueue)
Get the maximum queue id value for a match criteria.
open_error_t openapiAclRuleMatchSflowSamplingAdd(openapiClientHandle_t *client_handle, uint32_t aclId, uint32_t aclRule, bool aclSflowSampling)
Set the sFlow sampling flag for an access list rule.
open_error_t openapiAclMaxVlanAclCountGet(openapiClientHandle_t *client_handle, uint32_t *maxACL)
Get the maximum number of ACLs per VLAN on this platform.
OPEN_ACL_ACTION_t
Supported Action Types.
Definition: openapi_acl.h:164
VLAN ACL entry information.
Definition: openapi_acl.h:220
open_error_t openapiAclRuleMatchPrecedenceAdd(openapiClientHandle_t *client_handle, uint32_t aclId, uint32_t aclRule, uint32_t precedence)
Set the match condition precedence value.
Source Port Operator.
Definition: openapi_acl.h:327
open_error_t openapiAclRuleMatchIgmpTypeGet(openapiClientHandle_t *client_handle, uint32_t aclId, uint32_t aclRule, uint32_t *type)
Get the IGMP match condition parameters for an existing access list rule.
open_error_t openapiAclRuleMatchTcpFlagsGet(openapiClientHandle_t *client_handle, uint32_t aclId, uint32_t aclRule, uint32_t *tcpVal, uint32_t *tcpMask)
Get a match condition using a TCP Control Flag and Mask.
Destination IP.
Definition: openapi_acl.h:309
#define OPEN_ACL_MAX_LISTS_PER_VLAN_DIR_PLAT
Maximum lists per vlan.
Definition: openapi_acl.h:144
open_error_t openapiAclRuleMatchMacCos2Get(openapiClientHandle_t *client_handle, uint32_t aclId, uint32_t aclRule, uint32_t *cos)
Get the Secondary Class Of Server (COS) match condition.
open_error_t openapiAclMaxCountGet(openapiClientHandle_t *client_handle, uint32_t *maxACL)
Get the maximum number of ACLs that can be configured.
open_error_t openapiAclIntfDirAdd(openapiClientHandle_t *client_handle, uint32_t intf, OPEN_ACL_DIRECTION_t dir, uint32_t aclId, uint32_t seqNum)
Add an access list to the specified interface and direction.
open_error_t openapiAclRuleMatchIpSrcMaskGet(openapiClientHandle_t *client_handle, uint32_t aclId, uint32_t aclRule, open_inet_addr_t *addr, open_inet_addr_t *mask)
Gets the source IPv4 address and net mask.
open_error_t openapiAclVlanDirAdd(openapiClientHandle_t *client_handle, uint32_t vlan, OPEN_ACL_DIRECTION_t dir, uint32_t aclId, uint32_t seqNum)
Add an access list to the specified VLAN and direction.
Source IPv6.
Definition: openapi_acl.h:305
open_error_t openapiAclRuleMatchFlowLabelAdd(openapiClientHandle_t *client_handle, uint32_t aclId, uint32_t aclRule, uint32_t label)
Set the flow label for an access list rule.
open_error_t openapiAclRuleMatchTimeRangeGet(openapiClientHandle_t *client_handle, uint32_t aclId, uint32_t aclRule, open_buffdesc *name)
Get the time range name assigned to access list rule.
open_error_t openapiAclGet(openapiClientHandle_t *client_handle, OPEN_ACL_TYPE_t aclType, open_buffdesc *aclName, uint32_t *aclId)
Get the Access List identifier for the given ACL name.
Mirror Interface.
Definition: openapi_acl.h:256
open_error_t openapiAclIntfDirListGet(openapiClientHandle_t *client_handle, uint32_t intf, OPEN_ACL_DIRECTION_t dir, OPEN_ACL_INTF_DIR_LIST_t *listInfo)
Get the list of ACLs currently assigned to the specified interface and direction. ...
open_error_t openapiAclRuleActionGet(openapiClientHandle_t *client_handle, uint32_t aclId, uint32_t aclRule, OPEN_ACL_ACTION_t *aclAction)
Get the action for a rule.
Interface ACL entry information.
Definition: openapi_acl.h:204
open_error_t openapiAclRuleMatchRedirectGet(openapiClientHandle_t *client_handle, uint32_t aclId, uint32_t aclRule, uint32_t *intf)
Get the redirect interface from an existing access list rule entry.
open_error_t openapiAclRuleMatchProtocolGet(openapiClientHandle_t *client_handle, uint32_t aclId, uint32_t aclRule, uint32_t *aclProtocol)
Gets the protocol from an existing access list rule entry.