diff --git a/Makefile b/Makefile
index 11060c1..1a65d48 100644
--- a/Makefile
+++ b/Makefile
@@ -98,7 +98,6 @@
 	fi;
 onl-force:
 	make -C $(ONL_DIR) $(DEVICE)-$(ONL_KERN_VER_MAJOR)
-clean-onl:
 distclean-onl:
 	sudo rm -rf $(ONL_DIR)
 
@@ -185,8 +184,7 @@
 	mv -f release_$(DEVICE)_V$(BAL_MAJOR_VER).$(ACCTON_VER).tar.gz $(BUILD_DIR)
 	mv -f libbal_api_dist.so $(BUILD_DIR)
 	mv -f bal_core_dist $(BUILD_DIR)
-clean-bal: clean-onl
-distclean-bal: distclean-onl
+distclean-bal:
 	sudo rm -rf $(BAL_DIR)
 	rm -f build/release_$(DEVICE)_V$(BAL_MAJOR_VER).$(ACCTON_VER).tar.gz
 
@@ -196,19 +194,14 @@
 ##        OpenOLT API
 ##
 ##
-OPENOLT_API_DIR = $(BUILD_DIR)/openolt-api
-OPENOLT_API_LIB = $(OPENOLT_API_DIR)/libopenoltapi.a
-CXXFLAGS += -I./$(OPENOLT_API_DIR) -I $(OPENOLT_API_DIR)/googleapis/gens
-.PHONY: openolt-api
-openolt-api:
-	if [ ! -e "$(OPENOLT_API_DIR)" ]; then \
-		mkdir -p $(BUILD_DIR); \
-		git clone https://gerrit.opencord.org/openolt-api $(OPENOLT_API_DIR); \
-	fi;
-	make -C $(OPENOLT_API_DIR) all
-clean-openolt-api:
-	-make -C $(OPENOLT_API_DIR) clean
-distclean-openolt-api:
+OPENOLT_PROTOS_DIR = ./protos
+OPENOLT_API_LIB = $(OPENOLT_PROTOS_DIR)/libopenoltapi.a
+CXXFLAGS += -I./$(OPENOLT_PROTOS_DIR) -I $(OPENOLT_PROTOS_DIR)/googleapis/gens
+.PHONY: protos
+protos:
+	make -C $(OPENOLT_PROTOS_DIR) all
+clean-protos:
+	-make -C $(OPENOLT_PROTOS_DIR) clean
 
 ########################################################################
 ##
@@ -221,7 +214,7 @@
 DEPS = $(SRCS:.cc=.d)
 .DEFAULT_GOAL := all
 all: $(BUILD_DIR)/openolt
-$(BUILD_DIR)/openolt: openolt-api bal $(OBJS)
+$(BUILD_DIR)/openolt: protos bal $(OBJS)
 	$(CXX) $(OBJS) $(LDFLAGS) $(OPENOLT_API_LIB) -o $@ -L$(BALLIBDIR) -l$(BALLIBNAME)
 	ln -s $(shell ldconfig -p | grep libgrpc.so.6 | tr ' ' '\n' | grep /) $(BUILD_DIR)/libgrpc.so.6
 	ln -s $(shell ldconfig -p | grep libgrpc++.so.1 | tr ' ' '\n' | grep /) $(BUILD_DIR)/libgrpc++.so.1
@@ -230,10 +223,9 @@
 src/%.o: %.cpp
 	$(CXX) -MMD -c $< -o $@
 
-clean: clean-bal
-	rm -f $(OBJS) $(DEPS) $(BUILD_DIR)/openolt
-	rm -rf $(OPENOLT_API_DIR)
+clean: clean-protos
+	rm -f $(OBJS) $(DEPS)
 	rm -f $(BUILD_DIR)/libgrpc.so.6 $(BUILD_DIR)/libgrpc++.so.1 $(BUILD_DIR)/libgrpc++_reflection.so.1
-distclean: distclean-openolt-api distclean-bal
+
+distclean:
 	rm -rf $(BUILD_DIR)
--include $(DEPS)
diff --git a/protos/Makefile b/protos/Makefile
new file mode 100644
index 0000000..ba9591f
--- /dev/null
+++ b/protos/Makefile
@@ -0,0 +1,59 @@
+# Copyright (c) 2018 Open Networking Foundation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at:
+#
+#     http:#www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+HOST_SYSTEM = $(shell uname | cut -f 1 -d_)
+SYSTEM ?= $(HOST_SYSTEM)
+CXX = g++
+CPPFLAGS += `pkg-config --cflags protobuf grpc` -I googleapis/gens
+CXXFLAGS += -std=c++11
+ifeq ($(SYSTEM),Darwin)
+LDFLAGS += -L/usr/local/lib `pkg-config --libs protobuf grpc++ grpc`\
+           -lgrpc++_reflection\
+           -ldl
+else
+LDFLAGS += -L/usr/local/lib `pkg-config --libs protobuf grpc++ grpc`\
+           -Wl,--no-as-needed -lgrpc++_reflection -Wl,--as-needed\
+           -ldl
+endif
+PROTOC = protoc
+GRPC_CPP_PLUGIN = grpc_cpp_plugin
+GRPC_CPP_PLUGIN_PATH ?= `which $(GRPC_CPP_PLUGIN)`
+
+OBJS = openolt.pb.o openolt.grpc.pb.o ./googleapis/gens/google/api/annotations.grpc.pb.o ./googleapis/gens/google/api/annotations.pb.o ./googleapis/gens/google/api/http.pb.o
+
+all: googleapis libopenoltapi.a
+
+libopenoltapi.a: $(OBJS)
+	ar ru $@ $^
+	ranlib $@
+
+googleapis:
+	if [ ! -e "googleapis" ]; then \
+		git clone git@github.com:googleapis/googleapis.git; \
+		make -C googleapis LANGUAGE=cpp all; \
+	fi;
+
+.PRECIOUS: %.grpc.pb.cc
+%.grpc.pb.cc: %.proto
+	$(PROTOC) --proto_path=. -I./googleapis --grpc_out=. --plugin=protoc-gen-grpc=$(GRPC_CPP_PLUGIN_PATH) $<
+
+.PRECIOUS: %.pb.cc
+%.pb.cc: %.proto
+	$(PROTOC) --proto_path=. -I./googleapis --cpp_out=. $<
+
+clean:
+	rm -f *.o *.pb.cc *.pb.h *.a
+
+distclean: clean
+	rm -rf googleapis
diff --git a/protos/README.md b/protos/README.md
new file mode 100644
index 0000000..5214f86
--- /dev/null
+++ b/protos/README.md
@@ -0,0 +1,3 @@
+### openolt-api
+
+**openolt-api** is the protobuf definition of the gRPC service implemented by [OpenOLT](https://github.com/OpenOLT). See [openolt](https://github.com/OpenOLT/openolt) and [openasf](https://github.com/OpenOLT/openasf).
diff --git a/protos/generate.go b/protos/generate.go
new file mode 100644
index 0000000..47889c4
--- /dev/null
+++ b/protos/generate.go
@@ -0,0 +1,17 @@
+// Copyright (c) 2018 Open Networking Foundation
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at:
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+//go:generate protoc openolt.proto --go_out=plugins=grpc:.
+
+package openolt;
diff --git a/protos/openolt.proto b/protos/openolt.proto
new file mode 100644
index 0000000..c9f6d98
--- /dev/null
+++ b/protos/openolt.proto
@@ -0,0 +1,172 @@
+// Copyright (c) 2018 Open Networking Foundation
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at:
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+syntax = "proto3";
+package openolt;
+import "google/api/annotations.proto";
+
+service Openolt {
+
+    rpc ActivateOnu(Onu) returns (Empty) {
+        option (google.api.http) = {
+          post: "/v1/EnableOnu"
+          body: "*"
+        };
+    }
+
+    rpc OmciMsgOut(OmciMsg) returns (Empty) {
+        option (google.api.http) = {
+          post: "/v1/OmciMsgOut"
+          body: "*"
+        };
+    }
+
+    rpc OnuPacketOut(OnuPacket) returns (Empty) {
+        option (google.api.http) = {
+          post: "/v1/OnuPacketOut"
+          body: "*"
+        };
+    }
+
+    rpc FlowAdd(Flow) returns (Empty) {
+        option (google.api.http) = {
+          post: "/v1/FlowAdd"
+          body: "*"
+        };
+    }
+
+    rpc EnableIndication(Empty) returns (stream Indication) {}
+}
+
+message Indication {
+    oneof data {
+        OltIndication olt_ind = 1;
+        IntfIndication intf_ind = 2;
+        IntfOperIndication intf_oper_ind = 3;
+        OnuDiscIndication onu_disc_ind = 4;
+        OnuIndication onu_ind = 5;
+        OmciIndication omci_ind = 6;
+        PacketIndication pkt_ind = 7;
+    }
+}
+
+message OltIndication {
+    string oper_state = 1;	// up, down
+}
+
+message IntfIndication {
+    fixed32 intf_id = 1;
+    string oper_state = 2;      // up, down
+}
+
+message OnuDiscIndication {
+    fixed32 intf_id = 1;
+    SerialNumber serial_number = 2;
+}
+
+message OnuIndication {
+    fixed32 intf_id = 1;
+    fixed32 onu_id = 2;
+    string oper_state = 3;      // up, down
+    SerialNumber serial_number = 4;
+}
+
+message IntfOperIndication {
+    string type = 1;		// nni, pon
+    fixed32 intf_id = 2;
+    string oper_state = 3;      // up, down
+}
+
+message OmciIndication {
+    fixed32 intf_id = 1;
+    fixed32 onu_id = 2;
+    bytes pkt = 3;
+}
+
+message PacketIndication {
+    fixed32 intf_id = 1;
+    fixed32 gemport_id = 2;
+    fixed32 flow_id = 3;
+    bytes pkt = 4;
+}
+
+message Onu {
+    fixed32 intf_id = 1;
+    fixed32 onu_id = 2;
+    SerialNumber serial_number = 3;
+}
+
+message OmciMsg {
+    fixed32 intf_id = 1;
+    fixed32 onu_id = 2;
+    bytes pkt = 3;
+}
+
+message OnuPacket {
+    fixed32 intf_id = 1;
+    fixed32 onu_id = 2;
+    bytes pkt = 3;
+}
+
+message Classifier {
+    fixed32 o_tpid = 1;
+    fixed32 o_vid = 2;
+    fixed32 i_tpid = 3;
+    fixed32 i_vid = 4;
+    fixed32 o_pbits = 5;
+    fixed32 i_pbits = 6;
+    fixed32 eth_type = 7;
+    bytes dst_mac = 8;
+    bytes src_mac = 9;
+    fixed32 ip_proto = 10;
+    fixed32 dst_ip = 11;
+    fixed32 src_ip = 12;
+    fixed32 src_port = 13;
+    fixed32 dst_port = 14;
+    string pkt_tag_type = 15;	// untagged, single_tag, double_tag
+}
+
+message ActionCmd {
+    bool add_outer_tag = 1;
+    bool remove_outer_tag = 2;
+    bool trap_to_host = 3;
+}
+
+message Action {
+    ActionCmd cmd = 1;
+    fixed32 o_vid = 2;
+    fixed32 o_pbits = 3;
+    fixed32 o_tpid = 4;
+    fixed32 i_vid = 5;
+    fixed32 i_pbits = 6;
+    fixed32 i_tpid = 7;
+}
+
+message Flow {
+    fixed32 access_intf_id = 1;
+    fixed32 onu_id = 2;
+    fixed32 flow_id = 3;
+    string flow_type = 4;	// upstream, downstream, broadcast, multicast
+    fixed32 network_intf_id = 5;
+    fixed32 gemport_id = 6;
+    Classifier classifier = 7;
+    Action action = 8;
+}
+
+message SerialNumber {
+    bytes vendor_id = 1;
+    bytes vendor_specific = 2;
+}
+
+message Empty {}
