OpenNSL API Guide and Reference Manual
|
Go to the source code of this file.
Data Structures | |
struct | opennsl_cosq_egress_multicast_config_s |
multicast configuration settings More... | |
struct | opennsl_cosq_gport_discard_s |
For Virtual output queues (system ports) More... | |
struct | opennsl_cosq_gport_info_s |
gport information related to getting a handle More... | |
struct | opennsl_cosq_gport_stat_profile_s |
Statistics Profile. More... | |
Macros | |
#define | OPENNSL_COSQ_ALL 0x00000001 |
#define | OPENNSL_COSQ_BW_EAV_MODE 0x00000008 |
Prioritize selected queue(s) for bandwidth before non-selected queue(s). | |
#define | OPENNSL_COSQ_BW_LLFC 0x00000010 |
Link Level Flow Control setting. | |
#define | OPENNSL_COSQ_BW_NOT_COMMIT 0x00000040 |
Set rate to SW DB only, commit to HW is done when calling the API with the same GPort type and without NOT_COMMIT flag. | |
#define | OPENNSL_COSQ_BW_PACKET_MODE 0x00000020 |
The bandwidth specified is in packets per second instead of kbits per second. | |
#define | OPENNSL_COSQ_DEFICIT_ROUND_ROBIN 0x05 |
XGS3 only. | |
#define | OPENNSL_COSQ_DISCARD_BYTES 0x2000 |
#define | OPENNSL_COSQ_DISCARD_COLOR_ALL 0x0F00 |
#define | OPENNSL_COSQ_DISCARD_COLOR_BLACK 0x0800 |
#define | OPENNSL_COSQ_DISCARD_COLOR_GREEN 0x0100 |
#define | OPENNSL_COSQ_DISCARD_COLOR_RED 0x0400 |
#define | OPENNSL_COSQ_DISCARD_COLOR_YELLOW 0x0200 |
#define | OPENNSL_COSQ_DISCARD_DEVICE 0x10000 |
#define | OPENNSL_COSQ_DISCARD_DROP_FIRST OPENNSL_COSQ_DISCARD_COLOR_RED |
#define | OPENNSL_COSQ_DISCARD_ENABLE 0x0001 |
#define | OPENNSL_COSQ_DISCARD_IFP 0x400000 |
#define | OPENNSL_COSQ_DISCARD_MARK_CONGESTION 0x4000 |
#define | OPENNSL_COSQ_DISCARD_NONTCP 0x0004 |
#define | OPENNSL_COSQ_DISCARD_OUTER_CFI 0x800000 |
#define | OPENNSL_COSQ_DISCARD_PACKETS 0x1000 |
#define | OPENNSL_COSQ_DISCARD_PORT 0x8000 |
#define | OPENNSL_COSQ_DISCARD_PROBABILITY1 0x100000 |
#define | OPENNSL_COSQ_DISCARD_PROBABILITY2 0x200000 |
#define | OPENNSL_COSQ_DISCARD_SYSTEM 0x80000 |
#define | OPENNSL_COSQ_DISCARD_TCP 0x40000 |
#define | OPENNSL_COSQ_GPORT_DESTMOD_UCAST_QUEUE_GROUP 0x00000010 |
#define | OPENNSL_COSQ_GPORT_DISABLE 0x00000100 |
Disable queue, used for OPENNSL_COSQ_GPORT_CALENDAR scheduling discipline. | |
#define | OPENNSL_COSQ_GPORT_EGRESS_GROUP 0x00000080 |
#define | OPENNSL_COSQ_GPORT_MCAST_QUEUE 0x00000010 |
#define | OPENNSL_COSQ_GPORT_MCAST_QUEUE_GROUP 0x00000020 |
#define | OPENNSL_COSQ_GPORT_OVERLAY 0x00000004 |
#define | OPENNSL_COSQ_GPORT_SCHEDULER 0x00000002 |
#define | OPENNSL_COSQ_GPORT_STATS_SHARED 0x00000001 |
#define | OPENNSL_COSQ_GPORT_SUBSCRIBER 0x00000040 |
#define | OPENNSL_COSQ_GPORT_UCAST_QUEUE_GROUP 0x00000008 |
#define | OPENNSL_COSQ_GPORT_WITH_ID 0x00000001 |
#define | OPENNSL_COSQ_HIGH_PRIORITY -4 |
#define | OPENNSL_COSQ_LOW_PRIORITY -5 |
#define | OPENNSL_COSQ_MULTICAST_SCHEDULED 0x00000001 |
multicast scheduled values are valid | |
#define | OPENNSL_COSQ_NONE 0x0 |
Pass through. | |
#define | OPENNSL_COSQ_PRIO_VALID(prio) ((prio) >= 0 && (prio < 8)) |
#define | OPENNSL_COSQ_QUEUE_VALID(unit, numq) ((numq) >= 0 && (numq) < NUM_COS(unit)) |
#define | OPENNSL_COSQ_ROUND_ROBIN 0x02 |
Weights are ignored. | |
#define | OPENNSL_COSQ_SP0 0x0C |
Strict priority level 0. | |
#define | OPENNSL_COSQ_SP1 0x0D |
Strict priority level. | |
#define | OPENNSL_COSQ_STRICT 0x01 |
Weights are ignored. | |
#define | OPENNSL_COSQ_WEIGHT_MIN 1 |
#define | OPENNSL_COSQ_WEIGHT_STRICT 0 |
#define | OPENNSL_COSQ_WEIGHT_UNLIMITED -1 |
#define | OPENNSL_COSQ_WEIGHTED_FAIR_QUEUING 0x04 |
#define | OPENNSL_COSQ_WEIGHTED_ROUND_ROBIN 0x03 |
Typedefs | |
typedef enum opennsl_cosq_control_e | opennsl_cosq_control_t |
Features that can be controlled on a gport/cosq basis. | |
typedef struct opennsl_cosq_egress_multicast_config_s | opennsl_cosq_egress_multicast_config_t |
multicast configuration settings | |
typedef struct opennsl_cosq_gport_discard_s | opennsl_cosq_gport_discard_t |
For Virtual output queues (system ports) | |
typedef struct opennsl_cosq_gport_info_s | opennsl_cosq_gport_info_t |
gport information related to getting a handle | |
typedef struct opennsl_cosq_gport_stat_profile_s | opennsl_cosq_gport_stat_profile_t |
Statistics Profile. | |
typedef enum opennsl_cosq_gport_stats_e | opennsl_cosq_gport_stats_t |
For Virtual output queues (system ports) | |
typedef int(* | opennsl_cosq_gport_traverse_cb )(int unit, opennsl_gport_t port, int numq, uint32 flags, opennsl_gport_t gport, void *user_data) |
typedef enum opennsl_cosq_gport_type_e | opennsl_cosq_gport_type_t |
cosq gport type eumerations | |
typedef enum opennsl_cosq_stat_e | opennsl_cosq_stat_t |
XGS3 cosq counters. | |
Functions | |
int | opennsl_cosq_config_get (int unit, int *numq) LIB_DLL_EXPORTED |
Configure the number of Class of Service Queues (COSQs). | |
int | opennsl_cosq_config_set (int unit, int numq) LIB_DLL_EXPORTED |
Configure the number of Class of Service Queues (COSQs). | |
int | opennsl_cosq_control_get (int unit, opennsl_gport_t port, opennsl_cos_queue_t cosq, opennsl_cosq_control_t type, int *arg) LIB_DLL_EXPORTED |
Set various features at the gport/cosq level. | |
int | opennsl_cosq_control_set (int unit, opennsl_gport_t port, opennsl_cos_queue_t cosq, opennsl_cosq_control_t type, int arg) LIB_DLL_EXPORTED |
Set various features at the gport/cosq level. | |
int | opennsl_cosq_detach (int unit) LIB_DLL_EXPORTED |
De-initialize the CoSQ subsystem. | |
int | opennsl_cosq_discard_get (int unit, uint32 *flags) LIB_DLL_EXPORTED |
Configure Weighted Random Early Discard (WRED). | |
int | opennsl_cosq_discard_port_get (int unit, opennsl_port_t port, opennsl_cos_queue_t cosq, uint32 color, int *drop_start, int *drop_slope, int *average_time) LIB_DLL_EXPORTED |
Configure a port's Weighted Random Early Discard (WRED) parameters. | |
int | opennsl_cosq_discard_port_set (int unit, opennsl_port_t port, opennsl_cos_queue_t cosq, uint32 color, int drop_start, int drop_slope, int average_time) LIB_DLL_EXPORTED |
Configure a port's Weighted Random Early Discard (WRED) parameters. | |
int | opennsl_cosq_discard_set (int unit, uint32 flags) LIB_DLL_EXPORTED |
Configure Weighted Random Early Discard (WRED). | |
int | opennsl_cosq_gport_add (int unit, opennsl_gport_t port, int numq, uint32 flags, opennsl_gport_t *gport) LIB_DLL_EXPORTED |
Allocate/Retrieve unicast queue group and scheduler queue group configuration. | |
int | opennsl_cosq_gport_attach (int unit, opennsl_gport_t sched_port, opennsl_gport_t input_port, opennsl_cos_queue_t cosq) LIB_DLL_EXPORTED |
Attach/Detach the output of a GPORT to the input of a scheduler GPORT. | |
int | opennsl_cosq_gport_attach_get (int unit, opennsl_gport_t sched_port, opennsl_gport_t *input_port, opennsl_cos_queue_t *cosq) LIB_DLL_EXPORTED |
Attach/Detach the output of a GPORT to the input of a scheduler GPORT. | |
int | opennsl_cosq_gport_bandwidth_get (int unit, opennsl_gport_t gport, opennsl_cos_queue_t cosq, uint32 *kbits_sec_min, uint32 *kbits_sec_max, uint32 *flags) LIB_DLL_EXPORTED |
Configure/Retrieve bandwidth setting. | |
int | opennsl_cosq_gport_bandwidth_set (int unit, opennsl_gport_t gport, opennsl_cos_queue_t cosq, uint32 kbits_sec_min, uint32 kbits_sec_max, uint32 flags) LIB_DLL_EXPORTED |
Configure/Retrieve bandwidth setting. | |
int | opennsl_cosq_gport_child_get (int unit, opennsl_gport_t in_gport, opennsl_cos_queue_t cosq, opennsl_gport_t *out_gport) LIB_DLL_EXPORTED |
Get the child node GPORT atatched to N-th index (cosq) of the scheduler GPORT. | |
int | opennsl_cosq_gport_delete (int unit, opennsl_gport_t gport) LIB_DLL_EXPORTED |
Deletes queue group. | |
int | opennsl_cosq_gport_detach (int unit, opennsl_gport_t sched_port, opennsl_gport_t input_port, opennsl_cos_queue_t cosq) LIB_DLL_EXPORTED |
Attach/Detach the output of a GPORT to the input of a scheduler GPORT. | |
int | opennsl_cosq_gport_discard_get (int unit, opennsl_gport_t gport, opennsl_cos_queue_t cosq, opennsl_cosq_gport_discard_t *discard) LIB_DLL_EXPORTED |
Configure/Retrieve discard setting. | |
int | opennsl_cosq_gport_discard_set (int unit, opennsl_gport_t gport, opennsl_cos_queue_t cosq, opennsl_cosq_gport_discard_t *discard) LIB_DLL_EXPORTED |
Configure/Retrieve discard setting. | |
int | opennsl_cosq_gport_egress_map_get (int unit, opennsl_gport_t gport, opennsl_cos_t ingress_pri, opennsl_color_t ingress_dp, opennsl_cos_queue_t *offset) LIB_DLL_EXPORTED |
Configure/retrieve {traffic class, dp} mapping to egress queue on a port. | |
int | opennsl_cosq_gport_egress_map_set (int unit, opennsl_gport_t gport, opennsl_cos_t ingress_pri, opennsl_color_t ingress_dp, opennsl_cos_queue_t offset) LIB_DLL_EXPORTED |
Configure/retrieve {traffic class, dp} mapping to egress queue on a port. | |
int | opennsl_cosq_gport_egress_multicast_config_get (int unit, opennsl_gport_t gport, opennsl_cos_t ingress_pri, opennsl_color_t ingress_dp, uint32 flags, opennsl_cosq_egress_multicast_config_t *config) LIB_DLL_EXPORTED |
Configure/retrieve {traffic class, dp} mapping to multicast egress configuration on a port. | |
int | opennsl_cosq_gport_egress_multicast_config_set (int unit, opennsl_gport_t gport, opennsl_cos_t ingress_pri, opennsl_color_t ingress_dp, uint32 flags, opennsl_cosq_egress_multicast_config_t *config) LIB_DLL_EXPORTED |
Configure/retrieve {traffic class, dp} mapping to multicast egress configuration on a port. | |
int | opennsl_cosq_gport_enable_get (int unit, opennsl_gport_t gport, opennsl_cos_queue_t cosq, int *enable) LIB_DLL_EXPORTED |
Configure/Retrieve enable/disable state of a cos level in a queue group. | |
int | opennsl_cosq_gport_enable_set (int unit, opennsl_gport_t gport, opennsl_cos_queue_t cosq, int enable) LIB_DLL_EXPORTED |
Configure/Retrieve enable/disable state of a cos level in a queue group. | |
int | opennsl_cosq_gport_get (int unit, opennsl_gport_t gport, opennsl_gport_t *physical_port, int *num_cos_levels, uint32 *flags) LIB_DLL_EXPORTED |
Allocate/Retrieve unicast queue group and scheduler queue group configuration. | |
int | opennsl_cosq_gport_handle_get (int unit, opennsl_cosq_gport_type_t gport_type, opennsl_cosq_gport_info_t *gport_info) LIB_DLL_EXPORTED |
Getting a gport handle. | |
int | opennsl_cosq_gport_mapping_get (int unit, opennsl_port_t ing_port, opennsl_cos_t int_pri, uint32 flags, opennsl_gport_t *gport, opennsl_cos_queue_t *cosq) LIB_DLL_EXPORTED |
Get or set the mapping from internal priority to CoS queue. | |
int | opennsl_cosq_gport_mapping_set (int unit, opennsl_port_t ing_port, opennsl_cos_t int_pri, uint32 flags, opennsl_gport_t gport, opennsl_cos_queue_t cosq) LIB_DLL_EXPORTED |
Get or set the mapping from internal priority to CoS queue. | |
int | opennsl_cosq_gport_sched_config_get (int unit, opennsl_gport_t gport, int sched_mode, int int_pri, uint32 *flags) LIB_DLL_EXPORTED |
Mapping/redirecting scheduling discipline to Egress FIFO. | |
int | opennsl_cosq_gport_sched_config_set (int unit, opennsl_gport_t gport, int sched_mode, int int_pri, uint32 flags) LIB_DLL_EXPORTED |
Mapping/redirecting scheduling discipline to Egress FIFO. | |
int | opennsl_cosq_gport_sched_get (int unit, opennsl_gport_t gport, opennsl_cos_queue_t cosq, int *mode, int *weight) LIB_DLL_EXPORTED |
Configure/retrieve scheduling policy. | |
int | opennsl_cosq_gport_sched_set (int unit, opennsl_gport_t gport, opennsl_cos_queue_t cosq, int mode, int weight) LIB_DLL_EXPORTED |
Configure/retrieve scheduling policy. | |
int | opennsl_cosq_gport_stat_config_get (int unit, opennsl_gport_t gport, opennsl_gport_t lgl_gport, opennsl_cos_queue_t cosq, uint32 flags, opennsl_cosq_gport_stat_profile_t *profile) LIB_DLL_EXPORTED |
Get a previously-configured Central Statistic profile that captures WRED packets. | |
int | opennsl_cosq_gport_stat_config_set (int unit, opennsl_gport_t gport, opennsl_gport_t lgl_gport, opennsl_cos_queue_t cosq, uint32 flags, opennsl_cosq_gport_stat_profile_t profile) LIB_DLL_EXPORTED |
Set up a Central Statistic profile to capture WRED packets. | |
int | opennsl_cosq_gport_stat_enable_get (int unit, opennsl_gport_t gport, int *enable) LIB_DLL_EXPORTED |
Retrieve queue group statistic setting. | |
int | opennsl_cosq_gport_stat_enable_set (int unit, opennsl_gport_t gport, int enable) LIB_DLL_EXPORTED |
Enable/Disable statistics for queue group. | |
int | opennsl_cosq_gport_stat_get (int unit, opennsl_gport_t gport, opennsl_cos_queue_t cosq, opennsl_cosq_gport_stats_t stat, uint64 *value) LIB_DLL_EXPORTED |
Retrieve/Set Statistics. | |
int | opennsl_cosq_gport_stat_set (int unit, opennsl_gport_t gport, opennsl_cos_queue_t cosq, opennsl_cosq_gport_stats_t stat, uint64 value) LIB_DLL_EXPORTED |
Retrieve/Set Statistics. | |
int | opennsl_cosq_gport_stat_sync_get (int unit, opennsl_gport_t gport, opennsl_cos_queue_t cosq, opennsl_cosq_gport_stats_t stat, uint64 *value) LIB_DLL_EXPORTED |
Force an immediate counter update and retrieve statistics. | |
int | opennsl_cosq_gport_statistic_get (int unit, opennsl_gport_t gport, opennsl_gport_t lgl_gport, opennsl_cos_queue_t cosq, uint32 flags, opennsl_cosq_gport_stats_t stat, uint64 *value) LIB_DLL_EXPORTED |
Get the value associated with a Central Statistics Index. | |
int | opennsl_cosq_gport_statistic_set (int unit, opennsl_gport_t gport, opennsl_gport_t lgl_gport, opennsl_cos_queue_t cosq, uint32 flags, opennsl_cosq_gport_stats_t stat, uint64 value) LIB_DLL_EXPORTED |
Reset the value of a Central Statistics stat to zero. | |
int | opennsl_cosq_gport_traverse (int unit, opennsl_cosq_gport_traverse_cb cb, void *user_data) LIB_DLL_EXPORTED |
Traverse all added CoS queue GPORTs and call the supplied callback routine for each one. | |
int | opennsl_cosq_init (int unit) LIB_DLL_EXPORTED |
Initialize the CoSQ subsystem. | |
int | opennsl_cosq_mapping_get (int unit, opennsl_cos_t priority, opennsl_cos_queue_t *cosq) LIB_DLL_EXPORTED |
Get or set the mapping from internal priority to CoS queue. | |
int | opennsl_cosq_mapping_set (int unit, opennsl_cos_t priority, opennsl_cos_queue_t cosq) LIB_DLL_EXPORTED |
Get or set the mapping from internal priority to CoS queue. | |
int | opennsl_cosq_port_bandwidth_get (int unit, opennsl_port_t port, opennsl_cos_queue_t cosq, uint32 *kbits_sec_min, uint32 *kbits_sec_max, uint32 *flags) LIB_DLL_EXPORTED |
Configure a port's bandwidth distribution among CoS queues. | |
int | opennsl_cosq_port_bandwidth_set (int unit, opennsl_port_t port, opennsl_cos_queue_t cosq, uint32 kbits_sec_min, uint32 kbits_sec_max, uint32 flags) LIB_DLL_EXPORTED |
Configure a port's bandwidth distribution among CoS queues. | |
int | opennsl_cosq_port_mapping_get (int unit, opennsl_port_t port, opennsl_cos_t priority, opennsl_cos_queue_t *cosq) LIB_DLL_EXPORTED |
Get or set the mapping from internal priority to CoS queue. | |
int | opennsl_cosq_port_mapping_multi_get (int unit, opennsl_port_t port, int count, opennsl_cos_t *priority_array, opennsl_cos_queue_t *cosq_array) LIB_DLL_EXPORTED |
Get or set the mapping of multiple internal priorities to their corresponding CoS queues. | |
int | opennsl_cosq_port_mapping_multi_set (int unit, opennsl_port_t port, int count, opennsl_cos_t *priority_array, opennsl_cos_queue_t *cosq_array) LIB_DLL_EXPORTED |
Get or set the mapping of multiple internal priorities to their corresponding CoS queues. | |
int | opennsl_cosq_port_mapping_set (int unit, opennsl_port_t port, opennsl_cos_t priority, opennsl_cos_queue_t cosq) LIB_DLL_EXPORTED |
Get or set the mapping from internal priority to CoS queue. | |
int | opennsl_cosq_port_sched_get (int unit, opennsl_pbmp_t pbm, int *mode, int weights[OPENNSL_COS_COUNT], int *delay) LIB_DLL_EXPORTED |
Get or set Class of Service policy, weights and delay. | |
int | opennsl_cosq_port_sched_set (int unit, opennsl_pbmp_t pbm, int mode, const int weights[OPENNSL_COS_COUNT], int delay) LIB_DLL_EXPORTED |
Get or set Class of Service policy, weights and delay. | |
int | opennsl_cosq_priority_get (int unit, int start_queue, int end_queue, int *pri_profile_id) LIB_DLL_EXPORTED |
Get the priority profile associated with a queue range. | |
int | opennsl_cosq_priority_set (int unit, int start_queue, int end_queue, int pri_profile_id) LIB_DLL_EXPORTED |
Associate a priority profile with a queue range. | |
int | opennsl_cosq_sched_get (int unit, int *mode, int weights[OPENNSL_COS_COUNT], int *delay) LIB_DLL_EXPORTED |
Get or set Class of Service policy, weights and delay. | |
int | opennsl_cosq_sched_set (int unit, int mode, const int weights[OPENNSL_COS_COUNT], int delay) LIB_DLL_EXPORTED |
Get or set Class of Service policy, weights and delay. | |
int | opennsl_cosq_sched_weight_max_get (int unit, int mode, int *weight_max) LIB_DLL_EXPORTED |
Retrieve maximum weights for given CoS policy. | |
int | opennsl_cosq_stat_get (int unit, opennsl_gport_t gport, opennsl_cos_queue_t cosq, opennsl_cosq_stat_t stat, uint64 *value) LIB_DLL_EXPORTED |
Retrieve/set various MMU statistics based on stat type. | |
int | opennsl_cosq_stat_set (int unit, opennsl_gport_t gport, opennsl_cos_queue_t cosq, opennsl_cosq_stat_t stat, uint64 value) LIB_DLL_EXPORTED |
Retrieve/set various MMU statistics based on stat type. | |
int | opennsl_cosq_stat_sync_get (int unit, opennsl_gport_t gport, opennsl_cos_queue_t cosq, opennsl_cosq_stat_t stat, uint64 *value) LIB_DLL_EXPORTED |
Force an immediate counter update and retrieve various MMU statistics. | |