VOL-1236: BAL upgrade for 2.6 and support for Traffic Shaping
Change-Id: If12f914e5981b2eabfca90a70dbb0f0750a76c4b
diff --git a/src/bal_tmsched_hdlr.c b/src/bal_tmsched_hdlr.c
index 73c738b..a0a92ac 100755
--- a/src/bal_tmsched_hdlr.c
+++ b/src/bal_tmsched_hdlr.c
@@ -98,20 +98,6 @@
}
}
break;
- case BCMBAL_TM_SCHED_OWNER_TYPE_UNI:
- if(tmScOwn->uni->has_intf_id)
- {
- valtmScOwn.u.uni.intf_id = tmScOwn->uni->intf_id;
- }
- if(tmScOwn->uni->has_sub_term_id)
- {
- valtmScOwn.u.uni.sub_term_id = tmScOwn->uni->sub_term_id;
- }
- if(tmScOwn->uni->has_idx)
- {
- valtmScOwn.u.uni.idx = tmScOwn->uni->idx;
- }
- break;
case BCMBAL_TM_SCHED_OWNER_TYPE_VIRTUAL:
if(tmScOwn->virtual_->has_idx)
{
@@ -149,10 +135,6 @@
ASFVOLT_CFG_PROP_SET(tm_sched_obj, tm_sched, sched_parent, BCMOS_TRUE, valSchedPar);
}
- ASFVOLT_CFG_PROP_SET(tm_sched_obj, tm_sched, sched_child_type,
- tm_sched_cfg->data->has_sched_child_type,
- tm_sched_cfg->data->sched_child_type);
-
/* rating/shaping */
BalTmShaping *balShaping = (BalTmShaping *)tm_sched_cfg->data->rate;
bcmbal_tm_shaping val = {};
@@ -250,7 +232,7 @@
}
/* Subsidiary queues */
- BalIdList *balQueues = (BalIdList *)tm_sched_cfg->data->queues;
+ BalTmQueueIdList *balQueues = (BalTmQueueIdList *)tm_sched_cfg->data->queues;
bcmbal_tm_queue_id_list_u8 valQueues = {};
if(balQueues != NULL && balQueues->n_val)
{
@@ -264,11 +246,11 @@
}
memcpy((void *)valQueues.val, (const void *)balQueues->val,
(balQueues->n_val)*sizeof(uint32_t));
- ASFVOLT_CFG_PROP_SET(tm_sched_obj, tm_sched, queues, BCMOS_TRUE, valQueues);
+ ASFVOLT_CFG_PROP_SET(tm_sched_obj, tm_sched, queue_list, BCMOS_TRUE, valQueues);
}
/* Subsidiary schedulers */
- BalIdList *balSubScheds = (BalIdList *)tm_sched_cfg->data->sub_scheds;
+ BalTmSchedIdList *balSubScheds = (BalTmSchedIdList *)tm_sched_cfg->data->sub_scheds;
bcmbal_tm_sched_id_list_u8 valSubScheds = {};
if(balSubScheds != NULL && balSubScheds->n_val)
{
@@ -282,7 +264,7 @@
}
memcpy((void *)valSubScheds.val, (const void *)balSubScheds->val,
(balSubScheds->n_val)*sizeof(uint32_t));
- ASFVOLT_CFG_PROP_SET(tm_sched_obj, tm_sched, sub_scheds, BCMOS_TRUE, valSubScheds);
+ ASFVOLT_CFG_PROP_SET(tm_sched_obj, tm_sched, sub_sched_list, BCMOS_TRUE, valSubScheds);
}
ASFVOLT_CFG_PROP_SET(tm_sched_obj, tm_sched, num_priorities,
@@ -308,25 +290,14 @@
* Description : get the OLT device tm queue configuration *
********************************************************************/
-uint32_t bal_tm_sched_cfg_get(BalTmSchedKey *tm_sched_key, BalTmSchedCfg *tm_sched_cfg)
+uint32_t bal_tm_sched_cfg_get(BalTmSchedCfg *tm_sched_cfg)
{
bcmos_errno err = BCM_ERR_OK;
bcmbal_tm_sched_cfg tm_sched_obj; /**< declare main API struct */
bcmbal_tm_sched_key key = { }; /**< declare key */
- if((tm_sched_cfg->key->has_dir) && (tm_sched_cfg->key->has_id))
- {
- key.dir = tm_sched_cfg->key->dir;
- key.id = tm_sched_cfg->key->id;
- }
- else
- {
- ASFVOLT_LOG(ASFVOLT_ERROR, "Failed to get the tm schedule cfg(OLT): Missing Key values "
- "Received key values Sched-Dir(%d), Sched-Id(%d)",
- tm_sched_cfg->key->dir, tm_sched_cfg->key->id);
- return BAL_ERRNO__BAL_ERR_NOENT;
- }
-
+ key.dir = tm_sched_cfg->key->dir;
+ key.id = tm_sched_cfg->key->id;
ASFVOLT_LOG(ASFVOLT_DEBUG, "Gem tm scheduler cfg (for OLT) starts");
@@ -346,6 +317,10 @@
ASFVOLT_LOG(ASFVOLT_INFO, "Get tm scheduler cfg sent to OLT. "
"Sched ID(%d) Sched Dir(%d)", key.id, key.dir);
+
+ memcpy(tm_sched_cfg->key, &key, sizeof(BalTmSchedKey));
+ memcpy(tm_sched_cfg->data, &tm_sched_obj, sizeof(BalTmSchedCfgData));
+
return err;
}