VOL-1195 Broadcom logger for format consistency and log rotation
Change-Id: I18d65e382682fcbbcad16676142effae6acbc795
diff --git a/src/core.cc b/src/core.cc
index bf2a41e..002783c 100644
--- a/src/core.cc
+++ b/src/core.cc
@@ -38,11 +38,16 @@
#include <bal_api_end.h>
// FIXME : dependency problem
// #include <bcm_common_gpon.h>
+// #include <bcm_dev_log_task.h>
}
+dev_log_id openolt_log_id = bcm_dev_log_id_register("OPENOLT", DEV_LOG_LEVEL_INFO, DEV_LOG_ID_TYPE_BOTH);
+dev_log_id omci_log_id = bcm_dev_log_id_register("OMCI", DEV_LOG_LEVEL_INFO, DEV_LOG_ID_TYPE_BOTH);
+
+
#define NUM_OF_PON_PORTS 16
const std::string technology = "xgspon";
-const std::string firmware_version = "BAL.2.6.0.1__Openolt.2018.09.05";
+const std::string firmware_version = "BAL.2.6.0.1__Openolt.2018.09.10";
State state;
@@ -90,15 +95,16 @@
bcmbal_access_terminal_key key = { };
if (!state.is_activated()) {
- std::cout << "Enable OLT" << std::endl;
+ BCM_LOG(INFO, openolt_log_id, "Enable OLT");
bcmbal_init(argc, argv, NULL);
Status status = SubscribeIndication();
if (!status.ok()) {
- std::cout << "ERROR: SubscribeIndication failed - "
- << status.error_code() << ": " << status.error_message()
- << std::endl;
+ BCM_LOG(ERROR, openolt_log_id, "SubscribeIndication failed - %s : %s\n",
+ grpc_status_code_to_string(status.error_code()).c_str(),
+ status.error_message().c_str());
+
return status;
}
@@ -107,7 +113,7 @@
BCMBAL_CFG_PROP_SET(&acc_term_obj, access_terminal, admin_state, BCMBAL_STATE_UP);
bcmos_errno err = bcmbal_cfg_set(DEFAULT_ATERM_ID, &(acc_term_obj.hdr));
if (err) {
- std::cout << "ERROR: Failed to enable OLT" << std::endl;
+ BCM_LOG(ERROR, openolt_log_id, "Failed to enable OLT\n");
return bcm_to_grpc_err(err, "Failed to enable OLT");
}
init_stats();
@@ -144,7 +150,7 @@
openolt::OltIndication* olt_ind = new openolt::OltIndication;
olt_ind->set_oper_state("down");
ind.set_allocated_olt_ind(olt_ind);
- std::cout << "Disable OLT, add an extra indication" << std::endl;
+ BCM_LOG(INFO, openolt_log_id, "Disable OLT, add an extra indication\n");
oltIndQ.push(ind);
}
return status;
@@ -159,7 +165,7 @@
openolt::OltIndication* olt_ind = new openolt::OltIndication;
olt_ind->set_oper_state("up");
ind.set_allocated_olt_ind(olt_ind);
- std::cout << "Reenable OLT, add an extra indication" << std::endl;
+ BCM_LOG(INFO, openolt_log_id, "Reenable OLT, add an extra indication\n");
oltIndQ.push(ind);
}
return status;
@@ -177,7 +183,7 @@
bcmos_errno err = bcmbal_cfg_set(DEFAULT_ATERM_ID, &(interface_obj.hdr));
if (err) {
- std::cout << "ERROR: Failed to enable PON interface: " << intf_id << std::endl;
+ BCM_LOG(ERROR, openolt_log_id, "Failed to enable PON interface: %d\n", intf_id);
return bcm_to_grpc_err(err, "Failed to enable PON interface");
}
@@ -196,7 +202,7 @@
bcmos_errno err = bcmbal_cfg_set(DEFAULT_ATERM_ID, &(interface_obj.hdr));
if (err) {
- std::cout << "ERROR: Failed to disable Uplink interface: " << intf_id << std::endl;
+ BCM_LOG(ERROR, openolt_log_id, "Failed to disable Uplink interface: %d\n", intf_id);
return bcm_to_grpc_err(err, "Failed to disable Uplink interface");
}
@@ -215,7 +221,7 @@
bcmos_errno err = bcmbal_cfg_set(DEFAULT_ATERM_ID, &(interface_obj.hdr));
if (err) {
- std::cout << "ERROR: Failed to enable Uplink interface: " << intf_id << std::endl;
+ BCM_LOG(ERROR, openolt_log_id, "Failed to enable Uplink interface: %d\n", intf_id);
return bcm_to_grpc_err(err, "Failed to enable Uplink interface");
}
@@ -234,7 +240,7 @@
bcmos_errno err = bcmbal_cfg_set(DEFAULT_ATERM_ID, &(interface_obj.hdr));
if (err) {
- std::cout << "ERROR: Failed to disable PON interface: " << intf_id << std::endl;
+ BCM_LOG(ERROR, openolt_log_id, "Failed to disable PON interface: %d\n", intf_id);
return bcm_to_grpc_err(err, "Failed to disable PON interface");
}
@@ -250,11 +256,8 @@
bcmbal_serial_number serial_num = {};
bcmbal_registration_id registration_id = {};
- std::cout << "Enabling ONU " << onu_id << " on PON " << intf_id << std::endl;
- std::cout << "Vendor Id " << vendor_id
- << "Vendor Specific Id " << vendor_specific
- << "pir " << pir
- << std::endl;
+ BCM_LOG(INFO, openolt_log_id, "Enabling ONU %d on PON %d : vendor id %s, vendor specific %s, pir %d\n",
+ onu_id, intf_id, vendor_id, vendor_specific, pir);
subs_terminal_key.sub_term_id = onu_id;
subs_terminal_key.intf_id = intf_id;
@@ -277,7 +280,7 @@
bcmos_errno err = bcmbal_cfg_set(DEFAULT_ATERM_ID, &(sub_term_obj.hdr));
if (err) {
- std::cout << "ERROR: Failed to enable ONU: " << std::endl;
+ BCM_LOG(ERROR, openolt_log_id, "Failed to enable ONU %d on PON %d\n", onu_id, intf_id);
return bcm_to_grpc_err(err, "Failed to enable ONU");
}
@@ -296,10 +299,8 @@
bcmbal_subscriber_terminal_cfg sub_term_obj = {};
bcmbal_subscriber_terminal_key subs_terminal_key;
- std::cout << "Deactivating ONU " << onu_id << " on PON " << intf_id << std::endl;
- std::cout << "Vendor Id " << vendor_id
- << "Vendor Specific Id " << vendor_specific
- << std::endl;
+ BCM_LOG(INFO, openolt_log_id, "Deactivating ONU %d on PON %d : vendor id %s, vendor specific %s\n",
+ onu_id, intf_id, vendor_id, vendor_specific);
subs_terminal_key.sub_term_id = onu_id;
subs_terminal_key.intf_id = intf_id;
@@ -308,7 +309,7 @@
BCMBAL_CFG_PROP_SET(&sub_term_obj, subscriber_terminal, admin_state, BCMBAL_STATE_DOWN);
if (bcmbal_cfg_set(DEFAULT_ATERM_ID, &(sub_term_obj.hdr))) {
- std::cout << "ERROR: Failed to deactivate ONU: " << std::endl;
+ BCM_LOG(ERROR, openolt_log_id, "Failed to deactivate ONU %d on PON %d\n", onu_id, intf_id);
return Status(grpc::StatusCode::INTERNAL, "Failed to deactivate ONU");
}
@@ -337,16 +338,16 @@
bcmbal_subscriber_terminal_cfg cfg;
bcmbal_subscriber_terminal_key key = { };
- std::cout << "Processing subscriber terminal cfg clear for sub_term_id = "
- << onu_id << " and intf_id = " << intf_id << std::endl;
+ BCM_LOG(INFO, openolt_log_id, "Processing subscriber terminal cfg clear for sub_term_id %d and intf_id %d\n",
+ onu_id, intf_id);
key.sub_term_id = onu_id ;
key.intf_id = intf_id ;
if (0 == key.sub_term_id)
{
- std::cout << "Invalid Key to handle subscriber terminal clear subscriber_terminal_id = "
- << onu_id << " Interface ID = " << intf_id << std::endl;
+ BCM_LOG(INFO, openolt_log_id,"Invalid Key to handle subscriber terminal clear subscriber_terminal_id %d, Interface ID %d\n",
+ onu_id, intf_id);
return Status(grpc::StatusCode::INTERNAL, "Failed to delete ONU");
}
@@ -355,8 +356,8 @@
err = bcmbal_cfg_clear(DEFAULT_ATERM_ID, &cfg.hdr);
if (err != BCM_ERR_OK)
{
- std::cout << "Failed to clear information for BAL subscriber_terminal_id = "
- << onu_id << " Interface ID = " << intf_id << std::endl;
+ BCM_LOG(ERROR, openolt_log_id, "Failed to clear information for BAL subscriber_terminal_id %d, Interface ID %d\n",
+ onu_id, intf_id);
return Status(grpc::StatusCode::INTERNAL, "Failed to delete ONU");
}
@@ -391,10 +392,6 @@
char str2[MAX_CHAR_LENGTH];
memset(&arraySend, 0, buf.len);
- // std::cout << "Sending omci msg to ONU of length is "
- // << buf.len
- // << std::endl;
-
for (idx1=0,idx2=0; idx1<((buf.len)*2); idx1++,idx2++) {
sprintf(str1,"%c", pkt[idx1]);
sprintf(str2,"%c", pkt[++idx1]);
@@ -404,15 +401,15 @@
buf.val = (uint8_t *)malloc((buf.len)*sizeof(uint8_t));
memcpy(buf.val, (uint8_t *)arraySend, buf.len);
- //
- // std::cout << "After converting bytes to hex "
- // << buf.val << buf.len << std::endl;
err = bcmbal_pkt_send(0, proxy_pkt_dest, (const char *)(buf.val), buf.len);
- // std::cout << "OMCI request msg of length " << buf.len
- // << " sent to ONU" << onu_id
- // << " through PON " << intf_id << std::endl;
+ if (err) {
+ BCM_LOG(ERROR, omci_log_id, "Error sending OMCI message to ONU %d on PON %d\n", onu_id, intf_id);
+ } else {
+ BCM_LOG(DEBUG, omci_log_id, "OMCI request msg of length %d sent to ONU %d on PON %d : %s\n",
+ buf.len, onu_id, intf_id, buf.val);
+ }
free(buf.val);
@@ -434,9 +431,8 @@
err = bcmbal_pkt_send(0, proxy_pkt_dest, (const char *)(buf.val), buf.len);
- std::cout << "Packet out of length " << buf.len
- << " sent to ONU" << onu_id
- << " through PON " << intf_id << std::endl;
+ BCM_LOG(INFO, openolt_log_id, "Packet out of length %d sent to ONU %d on PON %d\n",
+ buf.len, onu_id, intf_id);
free(buf.val);
@@ -457,8 +453,8 @@
err = bcmbal_pkt_send(0, proxy_pkt_dest, (const char *)(buf.val), buf.len);
- std::cout << "Packet out of length " << buf.len
- << " sent through uplink port " << intf_id << std::endl;
+ BCM_LOG(INFO, openolt_log_id, "Packet out of length %d sent through uplink port %d\n",
+ buf.len, intf_id);
free(buf.val);
@@ -476,14 +472,8 @@
bcmbal_flow_cfg cfg;
bcmbal_flow_key key = { };
- std::cout << "flow add -"
- << " intf_id:" << access_intf_id
- << " onu_id:" << onu_id
- << " flow_id:" << flow_id
- << " flow_type:" << flow_type
- << " gemport_id:" << gemport_id
- << " network_intf_id:" << network_intf_id
- << std::endl;
+ BCM_LOG(INFO, openolt_log_id, "flow add - intf_id %d, onu_id %d, fow_id %d, `flow_type` %s, gemport_id %d, network_intf_id %d\n",
+ access_intf_id, onu_id, flow_id, flow_type.c_str(), gemport_id, network_intf_id);
key.flow_id = flow_id;
if (flow_type.compare("upstream") == 0 ) {
@@ -491,7 +481,7 @@
} else if (flow_type.compare("downstream") == 0) {
key.flow_type = BCMBAL_FLOW_TYPE_DOWNSTREAM;
} else {
- std::cout << "Invalid flow type " << flow_type << std::endl;
+ BCM_LOG(WARNING, openolt_log_id, "Invalid flow type %s\n", flow_type.c_str());
return bcm_to_grpc_err(BCM_ERR_PARM, "Invalid flow type");
}
@@ -670,7 +660,7 @@
err = bcmbal_cfg_set(DEFAULT_ATERM_ID, &(cfg.hdr));
if (err) {
- std::cout << "ERROR: flow add failed" << std::endl;
+ BCM_LOG(ERROR, openolt_log_id, "Flow add failed\n");
return bcm_to_grpc_err(err, "flow add failed");
}
@@ -691,7 +681,7 @@
} else if (flow_type.compare("downstream") == 0) {
key.flow_type = BCMBAL_FLOW_TYPE_DOWNSTREAM;
} else {
- std::cout << "Invalid flow type " << flow_type << std::endl;
+ BCM_LOG(WARNING, openolt_log_id, "Invalid flow type %s\n", flow_type.c_str());
return bcm_to_grpc_err(BCM_ERR_PARM, "Invalid flow type");
}
@@ -700,12 +690,12 @@
bcmos_errno err = bcmbal_cfg_clear(DEFAULT_ATERM_ID, &cfg.hdr);
if (err) {
- std::cout << "Error " << err << " while removing flow "
- << flow_id << ", " << flow_type << std::endl;
+ BCM_LOG(ERROR, openolt_log_id, "Error %d while removing flow %d, %s\n",
+ err, flow_id, flow_type.c_str());
return Status(grpc::StatusCode::INTERNAL, "Failed to remove flow");
}
- std::cout << "Flow " << flow_id << ", " << flow_type << " removed";
+ BCM_LOG(INFO, openolt_log_id, "Flow %d, %s removed\n", flow_id, flow_type.c_str());
return Status::OK;
}
@@ -745,10 +735,8 @@
err = bcmbal_cfg_set(DEFAULT_ATERM_ID, &cfg.hdr);
if (err) {
- std::cout << "ERROR: Failed to create subscriber downstream sched"
- << " id:" << key.id
- << " intf_id:" << intf_id
- << " onu_id:" << onu_id << std::endl;
+ BCM_LOG(ERROR, openolt_log_id, "Failed to create subscriber downstream sched, id %d, intf_id %d, onu_id %d\n",
+ key.id, intf_id, onu_id);
return bcm_to_grpc_err(err, "Failed to create subscriber downstream sched");
}
}
@@ -766,11 +754,8 @@
err = bcmbal_cfg_set(DEFAULT_ATERM_ID, &cfg.hdr);
if (err) {
- std::cout << "ERROR: Failed to create subscriber downstream tm queue"
- << " id: " << key.id
- << " sched_id: " << key.sched_id
- << " intf_id: " << intf_id
- << " onu_id: " << onu_id << std::endl;
+ BCM_LOG(ERROR, openolt_log_id, "Failed to create subscriber downstream tm queue, id %d, sched_id %d, intf_id %d, onu_id %d\n",
+ key.id, key.sched_id, intf_id, onu_id);
return bcm_to_grpc_err(err, "Failed to create subscriber downstream tm queue");
}
@@ -807,16 +792,12 @@
err = bcmbal_cfg_set(DEFAULT_ATERM_ID, &(cfg.hdr));
if (err) {
- std::cout << "ERROR: Failed to create upstream DBA sched"
- << " id:" << key.id
- << " intf_id:" << intf_id
- << " onu_id:" << onu_id << std::endl;
+ BCM_LOG(ERROR, openolt_log_id, "Failed to create upstream DBA sched, id %d, intf_id %d, onu_id %d\n",
+ key.id, intf_id, onu_id);
return bcm_to_grpc_err(err, "Failed to create upstream DBA sched");
}
- std::cout << "create upstream DBA sched"
- << " id:" << key.id
- << " intf_id:" << intf_id
- << " onu_id:" << onu_id << std::endl;
+ BCM_LOG(INFO, openolt_log_id, "Create upstream DBA sched, id %d, intf_id %d, onu_id %d\n",
+ key.id,intf_id,onu_id);
return Status::OK;
}
@@ -841,17 +822,13 @@
err = bcmbal_cfg_clear(DEFAULT_ATERM_ID, &(tm_cfg_us.hdr));
if (err) {
- std::cout << "ERROR: Failed to remove upstream DBA sched"
- << " id:" << tm_key_us.id
- << " intf_id:" << intf_id
- << " onu_id:" << onu_id << std::endl;
+ BCM_LOG(ERROR, openolt_log_id, "Failed to remove upstream DBA sched, id %d, intf_id %d, onu_id %d\n",
+ tm_key_us.id, intf_id, onu_id);
return Status(grpc::StatusCode::INTERNAL, "Failed to remove upstream DBA sched");
}
- std::cout << "remove upstream DBA sched"
- << " id:" << tm_key_us.id
- << " intf_id:" << intf_id
- << " onu_id:" << onu_id << std::endl;
+ BCM_LOG(INFO, openolt_log_id, "Remove upstream DBA sched, id %d, intf_id %d, onu_id %d\n",
+ tm_key_us.id, intf_id, onu_id);
/* Downstream */
@@ -867,19 +844,13 @@
err = bcmbal_cfg_clear(DEFAULT_ATERM_ID, &(queue_cfg.hdr));
if (err) {
- std::cout << "ERROR: Failed to remove downstream tm queue"
- << " id:" << queue_key.id
- << " sched_id:" << queue_key.sched_id
- << " intf_id:" << intf_id
- << " onu_id:" << onu_id << std::endl;
+ BCM_LOG(ERROR, openolt_log_id, "Failed to remove downstream tm queue, id %d, sched_id %d, intf_id %d, onu_id %d\n",
+ queue_key.id, queue_key.sched_id, intf_id, onu_id);
return Status(grpc::StatusCode::INTERNAL, "Failed to remove downstream tm queue");
}
- std::cout << "remove upstream DBA sched"
- << " id:" << queue_key.id
- << " sched_id:" << queue_key.sched_id
- << " intf_id:" << intf_id
- << " onu_id:" << onu_id << std::endl;
+ BCM_LOG(INFO, openolt_log_id, "Remove upstream DBA sched, id %d, sched_id %d, intf_id %d, onu_id %d\n",
+ queue_key.id, queue_key.sched_id, intf_id, onu_id);
// Sheduler
@@ -891,17 +862,13 @@
err = bcmbal_cfg_clear(DEFAULT_ATERM_ID, &(tm_cfg_ds.hdr));
if (err) {
- std::cout << "ERROR: Failed to remove sub downstream sched"
- << " id:" << tm_key_us.id
- << " intf_id:" << intf_id
- << " onu_id:" << onu_id << std::endl;
+ BCM_LOG(ERROR, openolt_log_id, "Failed to remove sub downstream sched, id %d, intf_id %d, onu_id %d\n",
+ tm_key_us.id, intf_id, onu_id);
return Status(grpc::StatusCode::INTERNAL, "Failed to remove sub downstream sched");
}
- std::cout << "remove sub downstream sched"
- << " id:" << tm_key_us.id
- << " intf_id:" << intf_id
- << " onu_id:" << onu_id << std::endl;
+ BCM_LOG(INFO, openolt_log_id, "Remove sub downstream sched, id %d, intf_id %d, onu_id %d\n",
+ tm_key_us.id, intf_id, onu_id);
return Status::OK;
//return 0;