Open Ethernet Networking (OpEN) API Guide and Reference Manual  3.12.0.1
Priority-Based Flow Control

This document provides a brief description of the Priority-based Flow Control OpEN API. Priority-based Flow Control (PFC) is defined by 802.1Qbb. it is a flow-control mechanism that allows frames to be paused based on their priority. specifies enhancement of transmission selection to support allocation of bandwidth amongst traffic classes. Should a given traffic class not use all of its allocated bandwidth, ETS allows that bandwidth to be used by other traffic classes.

THE API provides the following services:

Example C Application pfc_example

Initialization

In the main function, the sample application initializes the OpEN API RPC service by calling openapiClientRegister() and waits for the RPC service in switchdrvr to start. A Client Handle is returned by openapiClientRegister() which is used while invoking the OpEN APIs. The application then exercises the associated OpEN APIs and logs informational and/or error messages on the console. The example application runs to its completion and exits.

pfc_example

pfc_example.c is a sample application that exercises the APIs provided by the PFC OpEN APIs.

Sample Output

PFC CLI/API Cross Reference

CLI Command OpEN API Reference
(config-if-dcb)#
priority-flow-control mode {on | off}
openapiIfPfcModeSet()
(config-if-dcb)#
priority-flow-control priority <0-7> { drop | no-drop }
openapiIfPfcPriorityModeSet()
openapiPfcMinNoDropPriorityGet()
openapiPfcMaxNoDropPriorityGet()
(Priv-User Mode)#
clear priority-flow-control-statistics
openapiIfPfcStatsClear()
(Priv-User Mode)#
show interface priority-flow-control
openapiIfPfcStatusGet()
openapiIfPfcModeGet()
openapiIfPfcPriorityModeGet()
openapiPfcOprPriorityModeGet()
openapiPfcOperLinkDelayAllowanceGet()
openapiPfcPeerCfgCompatibleGet()
openapiPfcPeerCompatibleCfgCountGet()
openapiPfcPeerIncompatibleCfgCountGet()
openapiIfPfcRxPriorityStatGet()
openapiPfcTxPriorityStatGet()
openapiIfPfcRxStatGet()
openapiIfPfcTxStatGet()
(config-dcb)#
priority-flow-control deadlock-detect-interval <10ms | 100ms>
openapiPfcDeadlockDetectIntervalSet()
(config-dcb)#
priority-flow-control deadlock-detect-time priority <0-7> detect-time <0-1500> [recovery-time <0-1500>]
openapiPfcDeadlockDetectTimeSet()
openapiPfcDeadlockRecoveryTimeSet()
(config-dcb)#
priority-flow-control deadlock-recovery-action <drop | forward>
openapiPfcDeadlockRecoveryActionSet()
(config-if-dcb)#
[no] priority-flow-control deadlock priority <0-7>
openapiIfPfcDeadlockConfigSet()
(Priv-User Mode)#
show interface <slot/port> priority-flow-control deadlock
openapiIfPfcDeadlockConfigGet()
openapiPfcDeadlockDetectIntervalGet()
openapiPfcDeadlockRecoveryActionGet()
openapiPfcDeadlockDetectTimeGet()