38 #ifndef OPENAPI_DOT1CB_H_INCLUDED
39 #define OPENAPI_DOT1CB_H_INCLUDED
43 #define OPEN_MAX_DOT1CB_VLANS 16
44 #define OPEN_MAX_DOT1CB_IPV4 512
45 #define OPEN_MAX_DOT1CB_IPV6 512
46 #define OPEN_MIN_DOT1CB_INITIATOR_FLOWS 1
47 #define OPEN_MAX_DOT1CB_INITIATOR_FLOWS 1024
48 #define OPEN_MIN_DOT1CB_TRANSIT_FLOWS 1
49 #define OPEN_MAX_DOT1CB_TRANSIT_FLOWS 1024
50 #define OPEN_MFDB_MAX_MAC_ENTRIES 1024
52 #define OPEN_DOT1CB_IPV4_PREFIX_LEN 32
53 #define OPEN_DOT1CB_IPV6_PREFIX_LEN 128
364 uint32_t ifNum, uint32_t *nextIfNum);
744 uint32_t flowId, uint32_t *classifiers,
745 uint32_t *nextTxSequence, uint64_t *txPackets);
766 uint32_t *flowId, uint32_t *classifiers,
767 uint32_t *nextTxSequence, uint64_t *txPackets);
790 uint32_t flowId, uint32_t *classifiers,
791 uint32_t *lastRxSequence, uint64_t *matchingPackets,
792 uint64_t *acceptedPackets, uint64_t *duplicatePackets);
815 uint32_t *flowId, uint32_t *classifiers,
816 uint32_t *lastRxSequence, uint64_t *matchingPackets,
817 uint64_t *acceptedPackets, uint64_t *duplicatePackets);
838 uint32_t flowId, uint32_t *historyWindow,
839 uint32_t *acceptanceWindow, uint32_t *ageTime);
858 uint32_t flowId, uint32_t historyWindow);
877 uint32_t flowId, uint32_t acceptanceWindow);
896 uint32_t flowId, uint32_t ageTime);
open_error_t openapiDot1cbRtagModeSet(openapiClientHandle_t *client_handle, uint32_t ifNum, OPEN_CONTROL_t mode)
Set the 802.1CB RTAG mode for the specified interface.
uint64_t arp_to_cpu
number of ARP requests and replies sent to CPU
open_error_t openapiFilterFlowTypeIdSet(openapiClientHandle_t *client_handle, open_buffdesc *buf, uint32_t vlanID, OPEN_DOT1CB_FLOW_TYPE_t flowType, uint32_t flowId)
Set the flow type and ID of an existing macfilter.
open_error_t openapiDot1cbIntfStatsGet(openapiClientHandle_t *client_handle, uint32_t ifNum, OPEN_DOT1CB_INTF_STATS_t *stat)
Get the 802.1CB statistics for the specified interface.
open_error_t openapiDot1cbModeSet(openapiClientHandle_t *client_handle, uint32_t vlanID, OPEN_CONTROL_t mode)
Set the 802.1CB mode for a given VLAN.
uint64_t bcast_to_cpu
number of broadcast packets sent to CPU
open_error_t openapiDot1cbIpv4ClassifierAdd(openapiClientHandle_t *client_handle, open_inet_addr_t *srcAddr, uint32_t srcMaskLen, open_inet_addr_t *dstAddr, uint32_t dstMaskLen, OPEN_DOT1CB_FLOW_TYPE_t flowType, uint32_t flowId)
Add an IPv4 classifier.
open_error_t openapiDot1cbIpv6ClassifierAdd(openapiClientHandle_t *client_handle, open_in6_addr_t *srcAddr, uint32_t srcMaskLen, open_in6_addr_t *dstAddr, uint32_t dstMaskLen, OPEN_DOT1CB_FLOW_TYPE_t flowType, uint32_t flowId)
Add an IPv6 classifier.
open_error_t
OPEN uses these enumerators to indicate the error codes.
open_error_t openapiDot1cbApiTransitFlowAcceptanceWindowSizeSet(openapiClientHandle_t *client_handle, uint32_t flowId, uint32_t acceptanceWindow)
Set the acceptance window size for an 802.1CB transit flow.
open_error_t openapiDot1cbApiInitFlowGet(openapiClientHandle_t *client_handle, uint32_t flowId, uint32_t *classifiers, uint32_t *nextTxSequence, uint64_t *txPackets)
Get the 802.1CB initiator flow and its status/statistics.
open_error_t openapiDot1cbIpv6ClassifierInHardwareGet(openapiClientHandle_t *client_handle, uint32_t *value)
Get the status flag indicating whether IPv6 classifiers are installed in the hardware.
open_error_t openapiDot1cbIpv6ClassifierNextGet(openapiClientHandle_t *client_handle, open_in6_addr_t *srcAddr, uint32_t *srcMaskLen, open_in6_addr_t *dstAddr, uint32_t *dstMaskLen, OPEN_DOT1CB_FLOW_TYPE_t *flowType, uint32_t *flowId)
Get the next IPv6 classifier.
open_error_t openapiDot1cbApiInitFlowNextGet(openapiClientHandle_t *client_handle, uint32_t *flowId, uint32_t *classifiers, uint32_t *nextTxSequence, uint64_t *txPackets)
Get the next 802.1CB initiator flow and its status/statistics.
uint64_t rtag_packets_dups
number of duplicate R-Tagged packets dropped
open_error_t openapiFilterFlowIdGet(openapiClientHandle_t *client_handle, open_buffdesc *buf, uint32_t vlanID, uint32_t *flowId)
Get the configured flow ID.
open_error_t openapiDot1cbGlobalStatsGet(openapiClientHandle_t *client_handle, OPEN_DOT1CB_GLOBAL_STATS_t *stat)
Get the 802.1CB global statistics.
uint64_t rtag_packets_tx
number of transmitted R-Tagged packets
open_error_t openapiDot1cbIpv4ClassifierGet(openapiClientHandle_t *client_handle, open_inet_addr_t *srcAddr, uint32_t srcMaskLen, open_inet_addr_t *dstAddr, uint32_t dstMaskLen, OPEN_DOT1CB_FLOW_TYPE_t *flowType, uint32_t *flowId)
Get an IPv4 classifier.
open_error_t openapiDot1cbIpv6ClassifierCountGet(openapiClientHandle_t *client_handle, uint32_t *value)
Get the number of configured IPv6 classifiers.
open_error_t openapiDot1cbIpv4ClassifierInHardwareGet(openapiClientHandle_t *client_handle, uint32_t *value)
Get the status flag indicating whether IPv4 classifiers are installed in the hardware.
open_error_t openapiDot1cbIpv4ClassifierNextGet(openapiClientHandle_t *client_handle, open_inet_addr_t *srcAddr, uint32_t *srcMaskLen, open_inet_addr_t *dstAddr, uint32_t *dstMaskLen, OPEN_DOT1CB_FLOW_TYPE_t *flowType, uint32_t *flowId)
Get the next IPv4 classifier.
OPEN_CONTROL_t
OPEN uses these enumerators to indicate enable or disable for a given config or status parameter...
open_error_t openapiDot1cbIpv4ClassifierDelete(openapiClientHandle_t *client_handle, open_inet_addr_t *srcAddr, uint32_t srcMaskLen, open_inet_addr_t *dstAddr, uint32_t dstMaskLen)
Delete an IPv4 classifier.
open_error_t openapiDot1cbNumActiveInititatorFlowsGet(openapiClientHandle_t *client_handle, uint32_t *value)
Get the number of initiator flows installed in the hardware.
uint64_t ucast_dropped
number of unicast packets dropped
open_error_t openapiFilterFlowTypeGet(openapiClientHandle_t *client_handle, open_buffdesc *buf, uint32_t vlanID, OPEN_DOT1CB_FLOW_TYPE_t *flowType)
Get the configured flow type.
uint64_t rtag_packets_rx
number of received R-Tagged packets
open_error_t openapiDot1cbApiTransitFlowGet(openapiClientHandle_t *client_handle, uint32_t flowId, uint32_t *classifiers, uint32_t *lastRxSequence, uint64_t *matchingPackets, uint64_t *acceptedPackets, uint64_t *duplicatePackets)
Get the 802.1CB transit flow and its status/statistics.
open_error_t openapiDot1cbForwardArpNdpModeSet(openapiClientHandle_t *client_handle, uint32_t vlanID, OPEN_CONTROL_t mode)
Set the 802.1CB ARP/NDP forwarding mode for a given VLAN.
open_error_t openapiDot1cbModeGet(openapiClientHandle_t *client_handle, uint32_t vlanID, OPEN_CONTROL_t *mode)
Get the 802.1CB mode for a given VLAN.
open_error_t openapiDot1cbForwardArpNdpModeGet(openapiClientHandle_t *client_handle, uint32_t vlanID, OPEN_CONTROL_t *mode)
Get the 802.1CB ARP/NDP forwarding mode for a given VLAN.
open_error_t openapiDot1cbNumActiveTransitFlowsGet(openapiClientHandle_t *client_handle, uint32_t *value)
Get the number of transit flows installed in the hardware.
open_error_t openapiDot1cbSaModeGet(openapiClientHandle_t *client_handle, OPEN_CONTROL_t *mode)
Get the SA-MAC/VLAN flow association mode.
open_error_t openapiDot1cbApiDot1cbEnabledVlanNextGet(openapiClientHandle_t *client_handle, uint32_t *vid)
Get the next 802.1CB enabled VLAN.
open_error_t openapiDot1cbSaModeSet(openapiClientHandle_t *client_handle, OPEN_CONTROL_t mode)
Set the SA-MAC/VLAN flow association mode.
open_error_t openapiDot1cbApiTransitFlowAgeTimeSet(openapiClientHandle_t *client_handle, uint32_t flowId, uint32_t ageTime)
Set the age time for an 802.1CB transit flow.
open_error_t openapiDot1cbApiTransitFlowNextGet(openapiClientHandle_t *client_handle, uint32_t *flowId, uint32_t *classifiers, uint32_t *lastRxSequence, uint64_t *matchingPackets, uint64_t *acceptedPackets, uint64_t *duplicatePackets)
Get the next 802.1CB transit flow and its status/statistics.
open_error_t openapiDot1cbNumMfdbClassifiersGet(openapiClientHandle_t *client_handle, uint32_t *value)
Get the number of MFDB entries associated with flows.
uint64_t rtag_packets_accepted
number of received R-Tagged packets not dropped
uint64_t mcast_to_cpu
number of multicast packets sent to CPU
open_error_t openapiDot1cbIpv6ClassifierGet(openapiClientHandle_t *client_handle, open_in6_addr_t *srcAddr, uint32_t srcMaskLen, open_in6_addr_t *dstAddr, uint32_t dstMaskLen, OPEN_DOT1CB_FLOW_TYPE_t *flowType, uint32_t *flowId)
Get an IPv6 classifier.
open_error_t openapiDot1cbIpv4ClassifierCountGet(openapiClientHandle_t *client_handle, uint32_t *value)
Get the number of configured IPv4 classifiers.
open_error_t openapiDot1cbApiTransitFlowHistoryWindowSizeSet(openapiClientHandle_t *client_handle, uint32_t flowId, uint32_t historyWindow)
Set the history window size for an 802.1CB transit flow.
open_error_t openapiDot1cbApiNumDot1cbVlansGet(openapiClientHandle_t *client_handle, uint32_t *value)
Get the number of 802.1CB enabled VLANs.
open_error_t openapiDot1cbApiTransitFlowConfigGet(openapiClientHandle_t *client_handle, uint32_t flowId, uint32_t *historyWindow, uint32_t *acceptanceWindow, uint32_t *ageTime)
Get the 802.1CB transit flow configuration.
open_error_t openapiDot1cbRtagModeGet(openapiClientHandle_t *client_handle, uint32_t ifNum, OPEN_CONTROL_t *mode)
Get the 802.1CB RTAG mode for the specified interface.
open_error_t openapiDot1cbIntfNextGet(openapiClientHandle_t *client_handle, uint32_t ifNum, uint32_t *nextIfNum)
Get the next valid 802.1CB interface.
open_error_t openapiDot1cbIpv6ClassifierDelete(openapiClientHandle_t *client_handle, open_in6_addr_t *srcAddr, uint32_t srcMaskLen, open_in6_addr_t *dstAddr, uint32_t dstMaskLen)
Delete an IPv6 classifier.
open_error_t openapiDot1cbStatsClear(openapiClientHandle_t *client_handle)
Clear all the 802.1CB statistics.