[VOL-1638][BAL3.0 Brigade] tcont/gem creation and scheduler
[VOL-1672][BAL3.0 Brigade] BAL v3.0 removed inner_TPID and outer_TPID
[VOL-1673][BAL3.0 Brigade] Create scheduler with addition parameter for BAL 3.0

Change-Id: I1aa6c92e2eb6596f7f9f61ac6d38a651bf2a3929
diff --git a/agent/src/indications.cc b/agent/src/indications.cc
index d938ea4..dc75317 100644
--- a/agent/src/indications.cc
+++ b/agent/src/indications.cc
@@ -73,6 +73,20 @@
         return "nni";
     } else if (intf_type == BCMOLT_INTERFACE_TYPE_PON) {
         return "pon";
+    } else if (intf_type == BCMOLT_INTERFACE_TYPE_HOST) {
+        return "host";
+    }
+    return "unknown";
+}
+
+std::string bcmolt_to_grpc_flow_intf_type(bcmolt_flow_interface_type intf_type)
+{
+    if (intf_type == BCMOLT_FLOW_INTERFACE_TYPE_NNI) {
+        return "nni";
+    } else if (intf_type == BCMOLT_FLOW_INTERFACE_TYPE_PON) {
+        return "pon";
+    } else if (intf_type == BCMOLT_FLOW_INTERFACE_TYPE_HOST) {
+        return "host";
     }
     return "unknown";
 }
@@ -134,7 +148,7 @@
                          BCMOLT_INTERFACE_TYPE_PON);
                      std::string status = alarm_status_to_string(bcm_los_ind->data.status);
 
-                     BCM_LOG(INFO, openolt_log_id, "LOS indication : intf_id: %d port: %d status %s\n", 
+                     OPENOLT_LOG(INFO, openolt_log_id, "LOS indication : intf_id: %d port: %d status %s\n", 
                              bcm_los_ind->key.pon_ni, intf_id, status.c_str());
 
                      los_ind->set_intf_id(intf_id);
@@ -176,7 +190,7 @@
             switch (msg->subgroup) {
                 case BCMOLT_NNI_INTERFACE_AUTO_SUBGROUP_STATE_CHANGE:
                 {
-                    BCM_LOG(INFO, openolt_log_id, "intf indication, intf_id: %d\n",
+                    OPENOLT_LOG(INFO, openolt_log_id, "intf indication, intf_id: %d\n",
                         ((bcmolt_nni_interface_state_change *)msg)->key.id);
                     bcmolt_nni_interface_key *key = 
                         &((bcmolt_nni_interface_state_change *)msg)->key;
@@ -209,7 +223,7 @@
                     intf_oper_ind->set_intf_id(key->pon_ni);
                     intf_oper_ind->set_type(bcmolt_to_grpc_intf_type(BCMOLT_INTERFACE_TYPE_PON));
                     SET_OPER_STATE(intf_oper_ind, data->new_state);
-                    BCM_LOG(INFO, openolt_log_id, "intf oper state indication, intf_type %s, intf_id %d, oper_state %s\n",
+                    OPENOLT_LOG(INFO, openolt_log_id, "intf oper state indication, intf_type %s, intf_id %d, oper_state %s\n",
                         intf_oper_ind->type().c_str(), key->pon_ni, intf_oper_ind->oper_state().c_str());
                     ind.set_allocated_intf_oper_ind(intf_oper_ind);
                     break;
@@ -226,7 +240,7 @@
                     intf_oper_ind->set_intf_id(key->id);
                     intf_oper_ind->set_type(bcmolt_to_grpc_intf_type(BCMOLT_INTERFACE_TYPE_NNI));
                     SET_OPER_STATE(intf_oper_ind, data->new_state);           
-                    BCM_LOG(INFO, openolt_log_id, "intf oper state indication, intf_type %s, intf_id %d, oper_state %s\n",
+                    OPENOLT_LOG(INFO, openolt_log_id, "intf oper state indication, intf_type %s, intf_id %d, oper_state %s\n",
                         intf_oper_ind->type().c_str(), key->id, intf_oper_ind->oper_state().c_str());
                     ind.set_allocated_intf_oper_ind(intf_oper_ind);
                     break;
@@ -256,7 +270,7 @@
                         onu_alarms->lopci_miss));
                     onu_alarm_ind->set_lopc_mic_error_status(alarm_status_to_string(
                         onu_alarms->lopci_mic_error));
-                    
+
                     alarm_ind->set_allocated_onu_alarm_ind(onu_alarm_ind);
                     ind.set_allocated_alarm_ind(alarm_ind);
                     break;
@@ -266,9 +280,9 @@
                     bcmolt_gpon_onu_alarms *onu_alarms = 
                         &((bcmolt_onu_gpon_alarm_data *)msg)->gpon_onu_alarm;
                     onu_alarm_ind->set_los_status(alarm_status_to_string(onu_alarms->losi));
-						  /* TODO: need to set lofi and loami 
-                    onu_alarm_ind->set_lof_status(alarm_status_to_string(onu_alarms->lofi));
-                    onu_alarm_ind->set_loami_status(alarm_status_to_string(
+                    /* TODO: need to set lofi and loami 
+                        onu_alarm_ind->set_lof_status(alarm_status_to_string(onu_alarms->lofi));
+                        onu_alarm_ind->set_loami_status(alarm_status_to_string(
                         onu_alarms->loami));
                     */ 
                     alarm_ind->set_allocated_onu_alarm_ind(onu_alarm_ind);
@@ -324,7 +338,7 @@
 
                     bcmolt_serial_number *in_serial_number = &(data->serial_number);
 
-                    BCM_LOG(INFO, openolt_log_id, "onu discover indication, pon_ni %d, serial_number %s\n",
+                    OPENOLT_LOG(INFO, openolt_log_id, "onu discover indication, pon_ni %d, serial_number %s\n",
                         key->pon_ni, serial_number_to_str(in_serial_number).c_str());
 
                     onu_disc_ind->set_intf_id(key->pon_ni);
@@ -361,7 +375,7 @@
                         onu_ind->set_oper_state("down");
                     (key->onu_id)?onu_ind->set_admin_state("up"):onu_ind->set_admin_state("down");
                     ind.set_allocated_onu_ind(onu_ind);
-                    BCM_LOG(INFO, openolt_log_id, "onu indication, pon_ni %d, onu_id %d, onu_state %s, onu_admin %s\n", 
+                    OPENOLT_LOG(INFO, openolt_log_id, "onu indication, pon_ni %d, onu_id %d, onu_state %s, onu_admin %s\n", 
                         key->pon_ni, key->onu_id, (data->status==BCMOLT_RESULT_SUCCESS)?"up":"down",
                         (key->onu_id)?"up":"down");
                 }
@@ -392,7 +406,7 @@
                         onu_ind->set_oper_state("down");
                     ind.set_allocated_onu_ind(onu_ind);
 
-                    BCM_LOG(INFO, openolt_log_id, "onu oper state indication, intf_id %d, onu_id %d, old oper state %d, new oper state %s\n",
+                    OPENOLT_LOG(INFO, openolt_log_id, "onu oper state indication, intf_id %d, onu_id %d, old oper state %d, new oper state %s\n",
                         key->pon_ni, key->onu_id, data->new_onu_state, onu_ind->oper_state().c_str());
                 }
             }
@@ -414,7 +428,7 @@
                     bcmolt_onu_key *key = &((bcmolt_onu_omci_packet*)msg)->key;
                     bcmolt_onu_omci_packet_data *data = &((bcmolt_onu_omci_packet*)msg)->data;
 
-                    BCM_LOG(DEBUG, omci_log_id, "OMCI indication: pon_ni %d, onu_id %d\n", 
+                    OPENOLT_LOG(DEBUG, omci_log_id, "OMCI indication: pon_ni %d, onu_id %d\n", 
                         key->pon_ni, key->onu_id);
 
                     omci_ind->set_intf_id(key->pon_ni);
@@ -446,17 +460,20 @@
                         &((bcmolt_flow_receive_eth_packet*)msg)->data;
 
                     uint32_t port_no = GetPortNum_(pkt->key.flow_id);
-                    pkt_ind->set_intf_type(bcmolt_to_grpc_intf_type((bcmolt_interface_type)get_flow_status(pkt->key.flow_id, INTF_TYPE)));
-                    pkt_ind->set_intf_id(get_flow_status(pkt->key.flow_id, INTF_ID));
-                    pkt_ind->set_gemport_id(get_flow_status(pkt->key.flow_id, SVC_PORT_ID));
+                    pkt_ind->set_intf_type(bcmolt_to_grpc_flow_intf_type((bcmolt_flow_interface_type)get_flow_status(pkt->key.flow_id, pkt->key.flow_type, INGRESS_INTF_TYPE)));
+                    pkt_ind->set_intf_id(get_flow_status(pkt->key.flow_id, pkt->key.flow_type, INGRESS_INTF_ID));
+                    pkt_ind->set_gemport_id(get_flow_status(pkt->key.flow_id, pkt->key.flow_type, SVC_PORT_ID));
                     pkt_ind->set_flow_id(pkt->key.flow_id);
                     pkt_ind->set_pkt(pkt_data->buffer.arr, pkt_data->buffer.len);
                     pkt_ind->set_port_no(port_no);
-                    pkt_ind->set_cookie(get_flow_status(pkt->key.flow_id, COOKIE));
+                    pkt_ind->set_cookie(get_flow_status(pkt->key.flow_id, pkt->key.flow_type, COOKIE));
                     ind.set_allocated_pkt_ind(pkt_ind);
 
-                    BCM_LOG(INFO, openolt_log_id, "packet indication, intf_type %s, intf_id %d, svc_port %d, flow_type %s, flow_id %d, port_no %d, cookie %"PRIu64"\n",
-                        pkt_ind->intf_type().c_str(), pkt_ind->intf_id(), pkt_ind->gemport_id(), GET_FLOW_TYPE(pkt->key.flow_type), 
+                    OPENOLT_LOG(INFO, openolt_log_id, "packet indication, ingress intf_type %s, ingress intf_id %d, egress intf_type %s, egress intf_id %lu, svc_port %d, flow_type %s, flow_id %d, port_no %d, cookie %"PRIu64"\n",
+                        pkt_ind->intf_type().c_str(), pkt_ind->intf_id(), 
+                        bcmolt_to_grpc_flow_intf_type((bcmolt_flow_interface_type)get_flow_status(pkt->key.flow_id, pkt->key.flow_type, EGRESS_INTF_TYPE)).c_str(),
+                        get_flow_status(pkt->key.flow_id, pkt->key.flow_type, EGRESS_INTF_ID),
+                        pkt_ind->gemport_id(), GET_FLOW_TYPE(pkt->key.flow_type), 
                         pkt_ind->flow_id(), port_no, pkt_ind->cookie());
                 }
             }
@@ -468,31 +485,31 @@
 
 static void FlowOperIndication(bcmolt_devid olt, bcmolt_msg *msg) {
     openolt::Indication ind;
-    BCM_LOG(DEBUG, openolt_log_id, "flow oper state indication\n");
+    OPENOLT_LOG(DEBUG, openolt_log_id, "flow oper state indication\n");
     bcmolt_msg_free(msg);
 }
 
 static void FlowIndication(bcmolt_devid olt, bcmolt_msg *msg) {
     openolt::Indication ind;
-    BCM_LOG(DEBUG, openolt_log_id, "flow indication\n");
+    OPENOLT_LOG(DEBUG, openolt_log_id, "flow indication\n");
     bcmolt_msg_free(msg);
 }
 
 static void TmQIndication(bcmolt_devid olt, bcmolt_msg *msg) {
     openolt::Indication ind;
-    BCM_LOG(DEBUG, openolt_log_id, "traffic mgmt queue indication\n");
+    OPENOLT_LOG(DEBUG, openolt_log_id, "traffic mgmt queue indication\n");
     bcmolt_msg_free(msg);
 }
 
 static void TmSchedIndication(bcmolt_devid olt, bcmolt_msg *msg) {
     openolt::Indication ind;
-    BCM_LOG(DEBUG, openolt_log_id,  "traffic mgmt sheduler indication\n");
+    OPENOLT_LOG(DEBUG, openolt_log_id,  "traffic mgmt sheduler indication\n");
     bcmolt_msg_free(msg);
 }
 
 static void McastGroupIndication(bcmolt_devid olt, bcmolt_msg *msg) {
     openolt::Indication ind;
-    BCM_LOG(DEBUG, openolt_log_id, "mcast group indication\n");
+    OPENOLT_LOG(DEBUG, openolt_log_id, "mcast group indication\n");
     bcmolt_msg_free(msg);
 }
 
@@ -509,7 +526,7 @@
                     bcmolt_onu_key *key = &((bcmolt_onu_sufi*)msg)->key;
                     bcmolt_onu_sufi_data *data = &((bcmolt_onu_sufi*)msg)->data;
 
-                    BCM_LOG(WARNING, openolt_log_id, "onu startup failure indication, intf_id %d, onu_id %d, alarm %d\n",
+                    OPENOLT_LOG(WARNING, openolt_log_id, "onu startup failure indication, intf_id %d, onu_id %d, alarm %d\n",
                         key->pon_ni, key->onu_id, data->alarm_status);
 
                     sufi_ind->set_intf_id(key->pon_ni);
@@ -539,7 +556,7 @@
                     bcmolt_onu_key *key = &((bcmolt_onu_sdi*)msg)->key;
                     bcmolt_onu_sdi_data *data = &((bcmolt_onu_sdi*)msg)->data;
 
-                    BCM_LOG(WARNING, openolt_log_id, "onu signal degrade indication, intf_id %d, onu_id %d, alarm %d, BER %d\n",
+                    OPENOLT_LOG(WARNING, openolt_log_id, "onu signal degrade indication, intf_id %d, onu_id %d, alarm %d, BER %d\n",
                         key->pon_ni, key->onu_id, data->alarm_status, data->ber);
 
                     sdi_ind->set_intf_id(key->pon_ni);
@@ -570,7 +587,7 @@
                     bcmolt_onu_key *key = &((bcmolt_onu_dowi*)msg)->key; 
                     bcmolt_onu_dowi_data *data = &((bcmolt_onu_dowi*)msg)->data;
 
-                    BCM_LOG(WARNING, openolt_log_id, "onu drift of window indication, intf_id %d, onu_id %d, alarm %d, drift %d, new_eqd %d\n",
+                    OPENOLT_LOG(WARNING, openolt_log_id, "onu drift of window indication, intf_id %d, onu_id %d, alarm %d, drift %d, new_eqd %d\n",
                         key->pon_ni, key->onu_id, data->alarm_status, data->drift_value, data->new_eqd);
 
                     dowi_ind->set_intf_id(key->pon_ni);
@@ -602,7 +619,7 @@
                     bcmolt_onu_key *key = &((bcmolt_onu_looci*)msg)->key;
                     bcmolt_onu_looci_data *data = &((bcmolt_onu_looci*)msg)->data;
 
-                    BCM_LOG(WARNING, openolt_log_id, "onu loss of OMCI channel indication, intf_id %d, onu_id %d, alarm %d\n",
+                    OPENOLT_LOG(WARNING, openolt_log_id, "onu loss of OMCI channel indication, intf_id %d, onu_id %d, alarm %d\n",
                         key->pon_ni, key->onu_id, data->alarm_status);
 
                     looci_ind->set_intf_id(key->pon_ni);
@@ -632,7 +649,7 @@
                     bcmolt_onu_key *key = &((bcmolt_onu_sfi*)msg)->key;
                     bcmolt_onu_sfi_data *data = &((bcmolt_onu_sfi*)msg)->data;
 
-                    BCM_LOG(WARNING, openolt_log_id,  "onu signals failure indication, intf_id %d, onu_id %d, alarm %d, BER %d\n",
+                    OPENOLT_LOG(WARNING, openolt_log_id,  "onu signals failure indication, intf_id %d, onu_id %d, alarm %d, BER %d\n",
                         key->pon_ni, key->onu_id, data->alarm_status, data->ber);
 
 
@@ -664,7 +681,7 @@
                     bcmolt_onu_key *key = &((bcmolt_onu_tiwi*)msg)->key;
                     bcmolt_onu_tiwi_data *data = &((bcmolt_onu_tiwi*)msg)->data;
 
-                    BCM_LOG(WARNING, openolt_log_id,  "onu transmission interference warning indication, intf_id %d, onu_id %d, alarm %d, drift %d\n",
+                    OPENOLT_LOG(WARNING, openolt_log_id,  "onu transmission interference warning indication, intf_id %d, onu_id %d, alarm %d, drift %d\n",
                         key->pon_ni, key->onu_id, data->alarm_status, data->drift_value);
 
                     tiwi_ind->set_intf_id(key->pon_ni);
@@ -696,7 +713,7 @@
                     bcmolt_onu_onu_activation_completed_data *data = 
                         &((bcmolt_onu_onu_activation_completed*)msg)->data;
 
-                    BCM_LOG(INFO, openolt_log_id, "Got onu deactivation, intf_id %d, onu_id %d, fail_reason %d\n",
+                    OPENOLT_LOG(INFO, openolt_log_id, "Got onu deactivation, intf_id %d, onu_id %d, fail_reason %d\n",
                         key->pon_ni, key->onu_id, data->fail_reason);
 
                     activation_fail_ind->set_intf_id(key->pon_ni);
@@ -722,7 +739,7 @@
     bcmbal_subscriber_terminal_key *key =
         &(((bcmbal_subscriber_terminal_processing_error*)obj)->key);
 
-    BCM_LOG(WARNING, openolt_log_id, "onu processing error indication, intf_id %d, onu_id %d\n",
+    OPENOLT_LOG(WARNING, openolt_log_id, "onu processing error indication, intf_id %d, onu_id %d\n",
         key->intf_id, key->sub_term_id);
 
 
@@ -814,7 +831,7 @@
     rc = bcmolt_ind_subscribe(current_device, &rx_cfg);
     if(rc != BCM_ERR_OK)
         return Status(grpc::StatusCode::INTERNAL, "onu alarm indication subscribe failed");
-    
+
     rx_cfg.obj_type = BCMOLT_OBJ_ID_ONU;
     rx_cfg.rx_cb = OnuDyingGaspIndication;
     rx_cfg.flags = BCMOLT_AUTO_FLAGS_NONE;
@@ -891,7 +908,7 @@
     rc = bcmolt_ind_subscribe(current_device, &rx_cfg);
     if(rc != BCM_ERR_OK)
         return Status(grpc::StatusCode::INTERNAL, "onu tiwi indication subscribe failed");
-     
+
     /* ONU Activation Failure Indiction */
     rx_cfg.obj_type = BCMOLT_OBJ_ID_ONU;
     rx_cfg.rx_cb = OnuActivationFailureIndication;