VOL-767 Enable/Disable PON interface
Change-Id: I5dde5ec5c9d90fc509a4c93abb848be3d5b6dd86
diff --git a/src/core.cc b/src/core.cc
index c77048c..5bf3a62 100644
--- a/src/core.cc
+++ b/src/core.cc
@@ -71,6 +71,24 @@
return Status::OK;
}
+Status DisablePonIf_(uint32_t intf_id) {
+ bcmbal_interface_cfg interface_obj;
+ bcmbal_interface_key interface_key;
+
+ interface_key.intf_id = intf_id;
+ interface_key.intf_type = BCMBAL_INTF_TYPE_PON;
+
+ BCMBAL_CFG_INIT(&interface_obj, interface, interface_key);
+ BCMBAL_CFG_PROP_SET(&interface_obj, interface, admin_state, BCMBAL_STATE_DOWN);
+
+ if (bcmbal_cfg_set(DEFAULT_ATERM_ID, &(interface_obj.hdr))) {
+ std::cout << "ERROR: Failed to disable PON interface: " << intf_id << std::endl;
+ return Status(grpc::StatusCode::INTERNAL, "Failed to disable PON interface");
+ }
+
+ return Status::OK;
+}
+
Status ActivateOnu_(uint32_t intf_id, uint32_t onu_id,
const char *vendor_id, const char *vendor_specific) {