qmss_qosSched.h File Reference

This is the QMSS QOS packet scheduler header file. This corresponds to the firmware qos_sched_[be|le]_bin.h. More...

#include <ti/drv/qmss/qmss_drv.h>

Data Structures

struct  Qmss_QosSchedQueueCfg
 QoS scheduler queue configuration structure. More...
struct  Qmss_QosSchedGroupCfg
 QoS scheduler group configuration. More...
struct  Qmss_QosSchedPortCfg
 QoS scheduler port configuration. More...
struct  Qmss_QosSchedStats
 QoS scheduler statistics. More...
struct  Qmss_QosSchedDropSchedStats
 Drop scheduler statistics. More...
struct  Qmss_QosSchedDropSchedPushStats
 Drop scheduler push statistics. More...
struct  Qmss_QosSchedDropSchedOutProf
 Drop Scheduler Output Configuration Profile. More...
struct  Qmss_QosSchedDropSchedCfgProf
 Drop Scheduler Configuration Profile. More...
struct  Qmss_QosSchedDropSchedQueCfg
 Drop Scheduler Queue Configuration Profile. More...
struct  Qmss_QosSchedDropSchedStatsQueues
 Drop Scheduler Push Stats Queue Pair. More...
struct  Qmss_QosSchedDropSchedCfg
 Drop Scheduler Top Level configuration. More...

Defines

#define QMSS_QOS_SCHED_PDSP_NUM   1
#define QMSS_QOS_SCHED_FULL_MAX_PHYS_PORTS   2
#define QMSS_QOS_SCHED_LITE_MAX_PHYS_PORTS   10
#define QMSS_QOS_SCHED_WIDE_FULL_MAX_PHYS_PORTS   1
#define QMSS_QOS_SCHED_WIDE_LITE_MAX_PHYS_PORTS   0
#define QMSS_QOS_SCHED_DROP_SCHED_FULL_MAX_PHYS_PORTS   0
#define QMSS_QOS_SCHED_DROP_SCHED_LITE_MAX_PHYS_PORTS   20
#define QMSS_QOS_SCHED_MAX_PHYS_PORTS
#define QMSS_QOS_SCHED_WIDE_MAX_PHYS_PORTS
#define QMSS_QOS_SCHED_DROP_SCHED_MAX_PHYS_PORTS
#define QMSS_QOS_SCHED_FULL_MAX_LOG_GROUPS   5
#define QMSS_QOS_SCHED_WIDE_MAX_LOG_GROUPS   17
#define QMSS_QOS_SCHED_LITE_MAX_LOG_GROUPS   1
#define QMSS_QOS_SCHED_FULL_MAX_QUEUES_PER_GROUP   8
#define QMSS_QOS_SCHED_WIDE_MAX_QUEUES_PER_GROUP   8
#define QMSS_QOS_SCHED_LITE_MAX_QUEUES_PER_GROUP   4
#define QMSS_QOS_SCHED_STATS_FORWARDED_BYTES   1
#define QMSS_QOS_SCHED_STATS_FORWARDED_PACKETS   2
#define QMSS_QOS_SCHED_STATS_DISCARDED_BYTES   4
#define QMSS_QOS_SCHED_STATS_DISCARDED_PACKETS   8
#define QMSS_QOS_SCHED_DROP_SCHED_CFG_PROFILES   8
#define QMSS_QOS_SCHED_DROP_SCHED_OUT_PROFILES   36
#define QMSS_QOS_SCHED_DROP_SCHED_QUE_CONFIGS   80
#define QMSS_QOS_SCHED_DROP_SCHED_STATS_BLOCKS   48
#define QMSS_QOS_SCHED_DROP_SCHED_MAX_TC   16
#define QMSS_QOS_SCHED_DROP_SCHED_STATS_QUEUES   4
#define QMSS_QOS_SCHED_RETCODE_SUCCESS   1
#define QMSS_QOS_SCHED_INVALID_COMMAND   2
#define QMSS_QOS_SCHED_INVALID_INDEX   3
#define QMSS_QOS_SCHED_INVALID_OPTION   4
#define QMSS_QOS_SCHED_INVALID_PORT   100
#define QMSS_QOS_SCHED_INVALID_GROUP   101
#define QMSS_QOS_SCHED_INVALID_QUEUE   102
#define QMSS_QOS_SCHED_INVALID_WRRTYPE   103
#define QMSS_QOS_SCHED_INVALID_CIRTYPE   104
#define QMSS_QOS_SCHED_INVALID_CONGTYPE   105
#define QMSS_QOS_SCHED_INVALID_PORT_STATE   106
#define QMSS_QOS_SCHED_INVALID_GROUP_STATE   107
#define QMSS_QOS_SCHED_INVALID_CIR_MAX   108
#define QMSS_QOS_SCHED_INVALID_PIR_MAX   109
#define QMSS_QOS_SCHED_INVALID_CIR_ITERATION   110
#define QMSS_QOS_SCHED_INVALID_PIR_ITERATION   111
#define QMSS_QOS_SCHED_INVALID_WRR_CREDIT   112
#define QMSS_QOS_SCHED_UNDERFLOW   113
#define QMSS_QOS_SCHED_OVERFLOW   114
#define QMSS_QOS_SCHED_INVALID_PARAM   115
#define QMSS_QOS_SCHED_INVALID_MAGIC   116
#define QMSS_QOS_SCHED_UNUSED_GROUP_ARGS   117
#define QMSS_QOS_SCHED_INVALID_THROTTYPE   118
#define QMSS_QOS_SCHED_REQ_DROP_SCHED   119
#define QMSS_QOS_SCHED_INVALID_VALID_FLAG   120
#define QMSS_QOS_SCHED_INVALID_DROP_MODE   121
#define QMSS_QOS_SCHED_INVALID_TAILDROP_THRESH_TYPE   122
#define QMSS_QOS_SCHED_INVALID_RED_TC   123
#define QMSS_QOS_SCHED_INVALID_CFG_PROF_IDX   124
#define QMSS_QOS_SCHED_INVALID_STATS_BLOCK_IDX   125
#define QMSS_QOS_SCHED_INVALID_OUT_PROF_IDX   126
#define QMSS_QOS_SCHED_INVALID_RED_THRESH   127
#define QMSS_QOS_SCHED_INVALID_RED_THRESH_RECIP   128
#define QMSS_QOS_SCHED_INVALID_INTNUM   131
#define QMSS_QOS_SCHED_INVALID_TAIL_DROP_THRESH   132
#define QMSS_QOS_SCHED_SMALL_WRR_CREDIT   133
#define QMSS_QOS_SCHED_TAIL_ONLY   134
#define QMSS_QOS_SCHED_ISJOINT_EVEN_ONLY   135
#define QMSS_QOS_SCHED_ISJOINT_LITE_ONLY   136
#define QMSS_QOS_SCHED_PACKETS_SCALE_SHIFT   20
#define QMSS_QOS_SCHED_BYTES_SCALE_SHIFT   11
#define QMSS_QOS_SCHED_WRR_PACKETS_SCALE_SHIFT   (QMSS_QOS_SCHED_PACKETS_SCALE_SHIFT - 3)
#define QMSS_QOS_SCHED_WRR_BYTES_SCALE_SHIFT   (QMSS_QOS_SCHED_BYTES_SCALE_SHIFT - 3)

Enumerations

enum  Qmss_QosSchedAcctType { Qmss_QosSchedAcctType_PACKETS, Qmss_QosSchedAcctType_BYTES }
 QoS scheduler accounting types. More...
enum  Qmss_QosSchedDropSchedProfValid { Qmss_QosSchedDropSchedProf_INVALID, Qmss_QosSchedDropSchedProf_VALID }
 QoS scheduler Drop Scheduler profile valid/invalid. More...
enum  Qmss_QosSchedDropSchedMode { Qmss_QosSchedDropSchedMode_TAILDROP, Qmss_QosSchedDropSchedMode_RED, Qmss_QosSchedDropSchedMode_REM }
 QoS scheduler Drop Scheduler mode. More...
enum  Qmss_QosSchedIsJointType { Qmss_QosSchedIsJoint_SPLIT = 0, Qmss_QosSchedIsJoint_JOINT }
 QoS sched + drop sched join lite ports. More...

Functions

Qmss_Result Qmss_setQosSchedQueueBaseSubSys (Qmss_SubSysHnd subSysHnd, Qmss_PdspId pdspId, uint32_t queueNum)
Qmss_Result Qmss_setQosSchedQueueBase (uint32_t queueNum)
Qmss_Result Qmss_getQosSchedQueueBaseSubSys (Qmss_SubSysHnd subSysHnd, Qmss_PdspId pdspId, uint32_t *queueNum)
Qmss_Result Qmss_getQosSchedQueueBase (uint32_t *queueNum)
Qmss_Result Qmss_configureQosSchedTimerSubSys (Qmss_SubSysHnd subSysHnd, Qmss_PdspId pdspId, uint32_t timerConstant)
Qmss_Result Qmss_configureQosSchedTimer (uint32_t timerConstant)
Qmss_Result Qmss_enableQosSchedPortSubSys (Qmss_SubSysHnd subSysHnd, Qmss_PdspId pdspId, uint32_t port)
Qmss_Result Qmss_enableQosSchedPort (uint32_t port)
Qmss_Result Qmss_disableQosSchedPortSubSys (Qmss_SubSysHnd subSysHnd, Qmss_PdspId pdspId, uint32_t port)
Qmss_Result Qmss_disableQosSchedPort (uint32_t port)
Qmss_Result Qmss_putCfgQosSchedPortSubSys (Qmss_SubSysHnd subSysHnd, Qmss_PdspId pdspId, uint32_t port, Qmss_QosSchedPortCfg *cfg)
Qmss_Result Qmss_putCfgQosSchedPort (uint32_t port, Qmss_QosSchedPortCfg *cfg)
Qmss_Result Qmss_getCfgQosSchedPortSubSys (Qmss_SubSysHnd subSysHnd, Qmss_PdspId pdspId, uint32_t port, Qmss_QosSchedPortCfg *cfg)
Qmss_Result Qmss_getCfgQosSchedPort (uint32_t port, Qmss_QosSchedPortCfg *cfg)
Qmss_Result Qmss_getQosSchedStatsSubSys (Qmss_SubSysHnd subSysHnd, Qmss_PdspId pdspId, Qmss_QosSchedStats *stats, uint32_t port, uint32_t group, uint32_t queue, uint32_t which_reset)
Qmss_Result Qmss_getQosSchedStats (Qmss_QosSchedStats *stats, uint32_t port, uint32_t group, uint32_t queue, uint32_t which_reset)
uint32_t Qmss_getQosSchedFwVersionSubSys (Qmss_SubSysHnd subSysHnd, Qmss_PdspId pdspId)
uint32_t Qmss_getQosSchedFwVersion (void)
uint32_t Qmss_getQosSchedFwMagicSubSys (Qmss_SubSysHnd subSysHnd, Qmss_PdspId pdspId)
uint32_t Qmss_getQosSchedFwMagic (void)
Qmss_Result Qmss_convertQosSchedBitRate (int32_t *result, uint32_t ticksPerSecond, uint32_t bitRatePerSecond)
Qmss_Result Qmss_convertQosSchedPacketRate (int32_t *result, uint32_t ticksPerSecond, uint32_t packetRatePerSecond)
Qmss_Result Qmss_convertQosSchedWrrBits (int32_t *result, uint32_t wrrCredit)
Qmss_Result Qmss_convertQosSchedWrrPackets (int32_t *result, uint32_t wrrCredit)
Qmss_Result Qmss_setQosSchedDropSchedQueueBaseSubSys (Qmss_SubSysHnd subSysHnd, Qmss_PdspId pdspId, uint32_t queueNum)
Qmss_Result Qmss_setQosSchedDropSchedQueueBase (uint32_t queueNum)
Qmss_Result Qmss_getQosSchedDropSchedQueueBaseSubSys (Qmss_SubSysHnd subSysHnd, Qmss_PdspId pdspId, uint32_t *queueNum)
Qmss_Result Qmss_getQosSchedDropSchedQueueBase (uint32_t *queueNum)
Qmss_Result Qmss_getCfgQosSchedDropSchedOutProfsSubSys (Qmss_SubSysHnd subSysHnd, Qmss_PdspId pdspId, uint32_t port, Qmss_QosSchedDropSchedOutProf *profs, int32_t nProfs)
Qmss_Result Qmss_getCfgQosSchedDropSchedOutProfs (uint32_t port, Qmss_QosSchedDropSchedOutProf *profs, int32_t nProfs)
Qmss_Result Qmss_putCfgQosSchedDropSchedOutProfsSubSys (Qmss_SubSysHnd subSysHnd, Qmss_PdspId pdspId, uint32_t port, Qmss_QosSchedDropSchedOutProf *profs, int32_t nProfs)
Qmss_Result Qmss_putCfgQosSchedDropSchedOutProfs (uint32_t port, Qmss_QosSchedDropSchedOutProf *profs, int32_t nProfs)
Qmss_Result Qmss_getCfgQosSchedDropSchedCfgProfsSubSys (Qmss_SubSysHnd subSysHnd, Qmss_PdspId pdspId, uint32_t port, Qmss_QosSchedDropSchedCfgProf *profs, int32_t nProfs)
Qmss_Result Qmss_getCfgQosSchedDropSchedCfgProfs (uint32_t port, Qmss_QosSchedDropSchedCfgProf *profs, int32_t nProfs)
Qmss_Result Qmss_putCfgQosSchedDropSchedCfgProfsSubSys (Qmss_SubSysHnd subSysHnd, Qmss_PdspId pdspId, uint32_t port, Qmss_QosSchedDropSchedCfgProf *profs, int32_t nProfs)
Qmss_Result Qmss_putCfgQosSchedDropSchedCfgProfs (uint32_t port, Qmss_QosSchedDropSchedCfgProf *profs, int32_t nProfs)
Qmss_Result Qmss_getCfgQosSchedDropSchedQueCfgsSubSys (Qmss_SubSysHnd subSysHnd, Qmss_PdspId pdspId, uint32_t port, Qmss_QosSchedDropSchedQueCfg *cfgs, int32_t nCfgs)
Qmss_Result Qmss_getCfgQosSchedDropSchedQueCfgs (uint32_t port, Qmss_QosSchedDropSchedQueCfg *cfgs, int32_t nCfgs)
Qmss_Result Qmss_putCfgQosSchedDropSchedQueCfgsSubSys (Qmss_SubSysHnd subSysHnd, Qmss_PdspId pdspId, uint32_t port, Qmss_QosSchedDropSchedQueCfg *cfgs, int32_t nCfgs)
Qmss_Result Qmss_putCfgQosSchedDropSchedQueCfgs (uint32_t port, Qmss_QosSchedDropSchedQueCfg *cfgs, int32_t nCfgs)
Qmss_Result Qmss_getCfgQosSchedDropSchedCfgSubSys (Qmss_SubSysHnd subSysHnd, Qmss_PdspId pdspId, uint32_t port, Qmss_QosSchedDropSchedCfg *cfg)
Qmss_Result Qmss_getCfgQosSchedDropSchedCfg (uint32_t port, Qmss_QosSchedDropSchedCfg *cfg)
Qmss_Result Qmss_putCfgQosSchedDropSchedCfgSubSys (Qmss_SubSysHnd subSysHnd, Qmss_PdspId pdspId, uint32_t port, Qmss_QosSchedDropSchedCfg *cfg)
Qmss_Result Qmss_putCfgQosSchedDropSchedCfg (uint32_t port, Qmss_QosSchedDropSchedCfg *cfg)
Qmss_Result Qmss_enableQosSchedDropSchedSubSys (Qmss_SubSysHnd subSysHnd, Qmss_PdspId pdspId, uint32_t port)
Qmss_Result Qmss_enableQosSchedDropSched (uint32_t port)
Qmss_Result Qmss_disableQosSchedDropSchedSubSys (Qmss_SubSysHnd subSysHnd, Qmss_PdspId pdspId, uint32_t port)
Qmss_Result Qmss_disableQosSchedDropSched (uint32_t port)
Qmss_Result Qmss_getQosSchedDropSchedStatsSubSys (Qmss_SubSysHnd subSysHnd, Qmss_PdspId pdspId, Qmss_QosSchedDropSchedStats *stats, uint32_t port, uint32_t block, uint32_t which_reset)
Qmss_Result Qmss_getQosSchedDropSchedStats (Qmss_QosSchedDropSchedStats *stats, uint32_t port, uint32_t block, uint32_t which_reset)
Qmss_Result Qmss_convertQosSchedDropSchedPushStats (Qmss_QosSchedDropSchedPushStats *stats, void *desc)
Qmss_Result Qmss_qosSchedDropSchedPushProxySubSys (Qmss_SubSysHnd subSysHnd, Qmss_PdspId pdspId, Qmss_QueueHnd hnd, void *descAddr, uint32_t packetSize, uint32_t descSize, Qmss_Location location)
Qmss_Result Qmss_qosSchedDropSchedPushProxy (Qmss_QueueHnd hnd, void *descAddr, uint32_t packetSize, uint32_t descSize, Qmss_Location location)


Detailed Description

This is the QMSS QOS packet scheduler header file. This corresponds to the firmware qos_sched_[be|le]_bin.h.

============================================================================
(C) Copyright 2012-2014, Texas Instruments, Inc.
Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:

Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.

Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.

Neither the name of Texas Instruments Incorporated nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.


Copyright 2014, Texas Instruments Incorporated