diff --git a/.gitreview b/.gitreview
index 84dc7a2..6416082 100644
--- a/.gitreview
+++ b/.gitreview
@@ -3,3 +3,4 @@
 port=29418
 project=openolt.git
 defaultremote=origin
+defaultbranch=voltha-2.3
diff --git a/README.md b/README.md
index e37c347..cb01501 100644
--- a/README.md
+++ b/README.md
@@ -7,7 +7,9 @@
 through the [OpenOLT
 adapter](https://github.com/opencord/voltha/tree/master/voltha/adapters/openolt).
 
-OpenOLT agent uses Broadcom's BAL (Broadband Access Layer) software for Maple/Qumran chipsets based OLT such as the Edgecore/Accton ASXvOLT16.
+OpenOLT agent uses Broadcom's BAL (Broadband Access Layer) software for
+interfacing with the Maple/Qumran chipsets in OLTs such as the Edgecore/Accton
+ASXvOLT16.
 
 ```text
 
@@ -36,7 +38,6 @@
 |                                     |
 |           White box OLT             |
 +-------------------------------------+
-
 ```
 
 ## Hardware requirements
@@ -47,16 +48,20 @@
 
 ## Pre-built debian packages of OpenOLT agent for Accton/Edgecore ASFVOLT16
 
-Accton/Edgecore makes available pre-built debian packages of OpenOLT agent to their customers.
-Get access credentials for https://edgecore.quickconnect.to and then login and navigate to
-File_Station -> EdgecoreNAS, and then the folder /ASXvOLT16/OpenOLT_Agent/From_ONF_Distribution/
-and pick the right version of deb package required for your testing.
-voltha-2.3/openolt-2.3.0.deb is the latest version of package with support for BAL3.2.3.2
-The pre-built debian packages have been tested on ONL-4.14. The ONL Installer required for
-voltha-2.3/openolt-2.3.0.deb is also available at in the same path, i.e., voltha-2.3/.
+Accton/Edgecore makes available pre-built debian packages of OpenOLT agent to
+their customers.  Get access credentials for
+[edgecore.quickconnect.to](https://edgecore.quickconnect.to) and then login and
+navigate to `File_Station -> EdgecoreNAS`, and then the folder
+`/ASXvOLT16/OpenOLT_Agent/From_ONF_Distribution/` and pick the right version of
+`.deb` package required for your testing.
 
-More info on how to install ONL can be found on the official [ONL
-website](https://opennetlinux.org/).
+`voltha-2.3/openolt-2.3.0.deb` is the latest version of package with support
+for BAL3.2.3.2 .
+
+The pre-built debian packages have been tested on [Open Networking Linux
+(ONL)](http://opennetlinux.org/) version 4.14. The ONL Installer required for
+voltha-2.3/openolt-2.3.0.deb is also available at in the same path, i.e.,
+voltha-2.3/.
 
 ## Install OpenOLT
 
@@ -72,17 +77,20 @@
 dpkg -i openolt.deb
 ```
 
-Note that ONL required for BAL3.2.3.2 is ONL `4.14.109-OpenNetworkLinux`. This will be built as part of build procedure described `Build OpenOLT` section.
+The ONL version required for BAL3.2.3.2 is ONL `4.14.109-OpenNetworkLinux`. This
+will be built as part of build procedure described `Build OpenOLT` section.
 
 ## Run OpenOLT as a Linux service
 
-Rebooting the OLT (after the installation) will start dev_mgmt_daemon and openolt as init.d services:
+Rebooting the OLT (after the installation) will start `dev_mgmt_daemon` and
+`openolt` as system services:
 
-Rebooting the OLT will start the dev_mgmt_daemon and openolt services:
 ```shell
 reboot
 ```
+
 The services can also be stopped/started manually:
+
 ```shell
 service dev_mgmt_daemon stop
 service openolt stop
@@ -91,25 +99,35 @@
 ```
 
 Check the status of the services:
+
 ```shell
 service dev_mgmt_daemon status
 service openolt status
 ```
 
-## Run OpenOLT in foreground
+## Run OpenOLT in foreground for development and debugging
 
-Running the dev_mgmt_daemon and/or openolt services in the forground is useful for development and debugging. Make sure to first stop the services if they are running in background.
+Running the `dev_mgmt_daemon` and/or `openolt` services in the foreground is
+useful for development and debugging. Make sure to first stop the services if
+they are running in background.
 
-Open a terminal and run the Broadcom BAL software (*dev_mgmt_daemon*):
+```shell
+service dev_mgmt_daemon stop
+service openolt stop
+```
+
+Open a terminal and run the Broadcom BAL software (`dev_mgmt_daemon`):
 
 ```shell
 cd /broadcom
 ./dev_mgmt_daemon -d -pcie
 ```
-The `dev_mgmt_daemon` executable, when run in foreground, presents the CLI for Broadcom's BAL - Broadband Access Layer which is useful for debugging.
+
+The `dev_mgmt_daemon` executable presents the CLI for Broadcom's BAL when run
+in the foreground which is useful for debugging.
 
 While the first executable still runs (even in background), open another
-terminal and run *openolt*:
+terminal and run `openolt`:
 
 ```shell
 cd /broadcom
@@ -150,13 +168,13 @@
 
 The versions currently supported by the OpenOLT agent are:
 
-* SW-BCM686OLT_3_2_3_2.tgz
-* sdk-all-6.5.13.tar.gz
-* ACCTON_BAL_3.2.3.2-V201912230101.patch
+* `SW-BCM686OLT_3_2_3_2.tgz`
+* `sdk-all-6.5.13.tar.gz`
+* `ACCTON_BAL_3.2.3.2-V201912230101.patch`
 
 > NOTE: the repository does not contain the above three source packages.  These
-> are needed to build the OpenOLT agent executable. Contact
-> [Broadcom](mailto:dave.baron@broadcom.com) to access the source packages.
+> are needed to build the OpenOLT agent executable. Contact [Dave Baron at
+> Broadcom](mailto:dave.baron@broadcom.com) to access the source packages.
 
 ### System Requirements
 
@@ -164,9 +182,9 @@
 
 CPU: Dual-core (4 Threads) up.
 
-Memory: 6G bytes.
+Memory: 6GB
 
-Hard Disk: 40G of disk free space.
+Storage: 40GB of free space.
 
 **Software** :
 
@@ -176,20 +194,18 @@
 
 3. Essential tools for building packages
 
-       `sudo apt-get install build-essential ccache`
+   `sudo apt-get install build-essential ccache`
 
-4. Install cmake version 3.5.0 or above. Download cmake-3.5.0.tar.gz and install it by untaring cmake tar file.
-   Go to cmake-3.5.0 directory after untaring and execute
+4. Install cmake version 3.5.0 or above. Download cmake-3.5.0.tar.gz and untar
+   it, then in the cmake-3.5.0 directory install by running:
 
-       `./bootstrap && make && make install`
+   `./bootstrap && make && make install`
 
 ### Build procedure
 
-Clone the *openolt* repository either from GitHub or from OpenCORD Gerrit:
+Clone the `openolt` repository either from OpenCORD Gerrit:
 
 ```shell
-git clone git@github.com:opencord/openolt.git
-or
 git clone https://gerrit.opencord.org/openolt
 ```
 
@@ -200,14 +216,15 @@
 cp ACCTON_BAL_3.2.3.2-V201912230101.patch SW-BCM686OLT_3_2_3_2.tgz sdk-all-6.5.13.tar.gz <cloned openolt repo path>/agent/download
 ```
 
-Run Autoconfig to generate the appropriate makefile scaffolding for the desired target
+Run the configure script to generate the appropriate Makefile scaffolding for
+the desired target:
 
 ```shell
 cd openolt/agent
 ./configure
 ```
 
-Run *make prereq* to install the package dependencies.
+Run `make prereq` to install the package dependencies.
 This is usually a one-time thing, unless there is a change in the dependencies.
 
 ```shell
@@ -222,16 +239,21 @@
 make OPENOLTDEVICE=asfvolt16
 ```
 
-Note that the required ONL vesion `4.14` is built as part of the above build procedure and is available at path `build/onl/OpenNetworkLinux/RELEASE/jessie/amd64/ONL-onl-4.14_ONL-OS8_2019-09-24.0446 b4af32e_AMD64_INSTALLED_INSTALLER`. This ONL Installer should be used to flash the OS on the OLT. 
+Note that the required ONL version `4.14` is built as part of the above build
+procedure and is available at path
+`build/onl/OpenNetworkLinux/RELEASE/jessie/amd64/ONL-onl-4.14_ONL-OS8_2019-09-24.0446b4af32e_AMD64_INSTALLED_INSTALLER`.
+This ONL Installer should be used to flash the OS on the OLT.
 
-If you need to use a specific version of voltha-protos, then specify the git tag/branch corresponding to
-tht specific version as below. For ex:
+If you need to use a specific version of voltha-protos, then specify the git
+tag/branch corresponding to that specific version:
 
 ```shell
 make OPENOLTDEVICE=asfvolt16 OPENOLT_PROTO_VER=master
 ```
 
-By default, the OPENOLT_PROTO_VER defaults to git tag *v3.1.0* of https://github.com/opencord/voltha-protos repo.
+By default, the `OPENOLT_PROTO_VER` defaults to git tag *v3.1.0* of the
+[voltha-protos](https://gerrit.opencord.org/gitweb?p=voltha-protos.git;a=summary)
+repo.
 
 If the build process succeeds, libraries and executables will be created in the
 *openolt/agent/build* directory.
@@ -242,10 +264,11 @@
 make OPENOLTDEVICE=asfvolt16 deb
 ```
 
-If the build process succeeds, the *openolt.deb* package will be created as
-well in the *openolt/agent/build* directory.
+If the build process succeeds, a `.deb` package will be created as well in the
+`openolt/agent/build` directory.
 
-NOTE: To compile for ASGvOLT 64 port GPON OLT, set `OPENOLTDEVICE` to `asgvolt64` during build procedure like below.
+NOTE: To compile for ASGvOLT 64 port GPON OLT, set `OPENOLTDEVICE` to
+`asgvolt64` during build procedure like below.
 
 ```shell
 make OPENOLTDEVICE=asgvolt64
@@ -265,26 +288,39 @@
 
 ## FAQ
 
-The information here may be specific to specific OLT and ONU hardware such as Edgecore ASFVOLT16 OLT and Broadcom based ONUs.
+The information here may be specific to specific OLT and ONU hardware such as
+Edgecore ASFVOLT16 OLT and Broadcom based ONUs.
 
 ### How to change speed of ASFVOLT16 NNI interface?
 
-Auto-negotiation on the NNI (uplink) interfaces is not tested. By default, the OpenOLT agent sets the speed of the NNI interfaces to 100G. To downgrade the network interface speed to 40G, add the following lines at the end of the qax.soc (/broadcom/qax.soc) configuration file. A restart of the dev_mgmt_daemon and openolt executables is required after the change.
+Auto-negotiation on the NNI (Network to Network Interface) uplink ports is not
+tested.
 
-```shell
+By default, the OpenOLT agent sets the speed of the NNI interfaces to 100G. To
+downgrade the network interface speed to 40G, add the following lines at the
+end of the `/broadcom/qax.soc` configuration file.
+
+```text
 port ce128 sp=40000
 ```
 
+A restart of the `dev_mgmt_daemon` and `openolt` services is required after
+making this change.
+
+
 ### Why does the Broadcom ONU not forward eapol packets?
 
-The firmware on the ONU is likely not setup to forward 802.1x on the linux bridge. Drop down to the shell in the Broadcom ONU's console and configure the Linux bridge to forward 802.1x.
+The firmware on the ONU is likely not setup to forward 802.1x EAPOL traffic on
+the Linux bridge. Drop down to the shell in the Broadcom ONU's console and
+configure the Linux bridge to forward 802.1x.
 
 ```shell
 > sh
 # echo 8 > /sys/class/net/bronu513/bridge/group_fwd_mask
 ```
 
-Version 1.7 of VOLTHA has a known issue where the ONU is only able to pass EAPOL packets from a specific LAN port (e.g. LAN port 1 on ALPHA ONUs)
+Version 1.7 of VOLTHA has a known issue where the ONU is only able to pass
+EAPOL packets from a specific LAN port (e.g. LAN port 1 on ALPHA ONUs)
 
 ### How do I check packet counters on the ONU?
 
@@ -294,12 +330,16 @@
 bs /b/e port/index=lan{0,1,2,3,4,5,6}
 ```
 
-WAN port packt counters:
+WAN port packet counters:
+
 ```shell
 bs /b/e port/index=wan0
 ```
+
 ### How to get access to MAPLE CLI on OLT box
-To get access to the `BCM.0>` maple console please ssh into the OLT and then execute:
+
+To get access to the `BCM.0>` maple console, SSH into the OLT and then execute:
+
 ```shell
 cd /broadcom
 ./example_user_appl
@@ -307,7 +347,10 @@
 
 ### How do I check packet counters on the OLT's PON interface?
 
-Following is an example of retrieving the interface description for PON intf_id 0 (TODO: document PON interface numbering for Edgecore OLT).
+Following is an example of retrieving the interface description for PON
+`intf_id 0`
+
+(TODO: document PON interface numbering for Edgecore OLT).
 
 ```shell
 BCM.0> a/t clear=no object=pon_interface sub=itu_pon_stats pon_ni=0
@@ -361,7 +404,7 @@
 
 ### How do I check packet counters on the OLT's NNI interface?
 
-Following command retrieves NNI intf_id 0:
+Following command retrieves NNI `intf_id 0`:
 
 ```shell
 BCM.0> a/t clear=no object=nni_interface sub=stats id=0
@@ -396,15 +439,17 @@
 BCM.0> a/m max_msgs=100 filter_invert=no object=flow
 ```
 
-### How do I access device CLI when running dev_mgmt_daemon and openolt agent binary in background?
+### How do I access device CLI when running `dev_mgmt_daemon` and `openolt` agent binary as services?
 
-Navigate to `/opt/bcm68620` and execute the command `/broadcom/dev_mgmt_attach` to access the QAX
-diag shell. Note that you will not be able to access the QAX diag shell, you need to recompile the
-BAL SDK with `SW_UTIL_SHELL=y` option.
+Navigate to `/opt/bcm68620` and execute the command `/broadcom/dev_mgmt_attach`
+to access the QAX diagnostic shell. If you are not able to access the shell,
+you need to recompile the BAL SDK with `SW_UTIL_SHELL=y` option set.
 
 ### DBA Scheduler fail to create on the OLT with errors related to Bandwidth configuration
 
-Ensure that `additional_bw` indicator in the Technology Profile and the `bandwidthprofile` configured in ONOS netcfg for the subscriber are following the below guideline.
+Ensure that `additional_bw` indicator in the Technology Profile and the
+`bandwidthprofile` configured in ONOS netcfg for the subscriber are following
+the below guideline.
 
 * When `additional_bw` is configured as `AdditionalBW_BestEffort`, ensure `cir` + `eir`
   values in ONOS netcfg BW profile for the subscriber are greater than or equal to *16000*
@@ -419,8 +464,10 @@
 
 For more details about BW profile parameters, please refer below links.
 
-[MEF Whitepaper - Bandwidth-Profiles-for-Ethernet-Services](https://www.mef.net/Assets/White_Papers/Bandwidth-Profiles-for-Ethernet-Services.pdf)
-[Technology Profile Implementation Note](https://www.opennetworking.org/wp-content/uploads/2019/09/2pm-Shaun-Missett-Technology-Profile-and-Speed-Profile-Implementation.pdf)
+[MEF Whitepaper -
+Bandwidth-Profiles-for-Ethernet-Services](https://www.mef.net/Assets/White_Papers/Bandwidth-Profiles-for-Ethernet-Services.pdf)
+[Technology Profile Implementation
+Note](https://www.opennetworking.org/wp-content/uploads/2019/09/2pm-Shaun-Missett-Technology-Profile-and-Speed-Profile-Implementation.pdf)
 
 
 ## Known Issues
@@ -428,6 +475,5 @@
 * The Minimum BW that should be configured for ITU PON Alloc Object has changed from 16Kbps
   to 32Kbps from BAL3.1 to BAL3.2 release if you are using ALPHA ONUs.
   As per BAL3.x documents, when FEC is disabled, the minimum BW is 16Kbps on the ITU PON Alloc Object.
-  This seems to be a discrepency on the ALPHA ONU. So, ensure that `cir` + `eir` value is greater than
+  This seems to be a discrepancy on the ALPHA ONU. So, ensure that `cir` + `eir` value is greater than
   equal to *32000* for XGSPON use case for ALPHA ONU.
-
diff --git a/VERSION b/VERSION
index 276cbf9..32d1656 100644
--- a/VERSION
+++ b/VERSION
@@ -1 +1 @@
-2.3.0
+2.3.1-dev
diff --git a/agent/download/README.md b/agent/download/README.md
deleted file mode 100644
index 4c96c2b..0000000
--- a/agent/download/README.md
+++ /dev/null
@@ -1,10 +0,0 @@
-# Broadcom proprietary src code required to build olt-brcm
-
-The following vendor proprietary source files are required to build. These files are available from Broadcom under NDA through a common CSP.
-
-- `SW-BCM68620_<VER>.zip` - Broadcom BAL source and Maple SDK.
-- `sdk-all-<SDK_VER>.tar.gz` - Broadcom Qumran SDK.
-- `ACCTON_BAL_<BAL_VER>-<ACCTON_VER>.patch` - Accton/Edgecore's patch.
-- `OPENOLT_BAL_<BAL_VER>.patch` - ONF's patch to BAL (to enable BAL to compile with C++ based openolt)
-
-Copy the above four files to this folder before running make in the top level directory.
diff --git a/agent/test/README.md b/agent/test/README.md
index 54e8168..92ec74e 100644
--- a/agent/test/README.md
+++ b/agent/test/README.md
@@ -1,16 +1,19 @@
-# OpenOLT Agent Unit Test
+# OpenOLT Agent Unit Tests
 
 OpenOLT agent unit test framework is based on the following frameworks
 
-- Google Test: https://github.com/google/googletest
-- C-Mock: https://github.com/hjagodzinski/C-Mock
- 
-The goal of the unit tests for OpenOLT agent is to test the OpenOLT application by stubbing and mocking the external interfaces, especially the BAL API and GRPC.
+- [Google Test](https://github.com/google/googletest)
+- [C-Mock](https://github.com/hjagodzinski/C-Mock)
+
+The goal of the unit tests for OpenOLT agent is to test the OpenOLT application
+by stubbing and mocking the external interfaces, especially the BAL API and
+GRPC.
 
 ## Building and Running Unit Test
 
-All the pre-requisite software for running the openolt agent unit tests are packaged, versioned
-and released as a docker container. See https://github.com/opencord/openolt-test for more details.
+All the pre-requisite software for running the openolt agent unit tests are
+packaged, versioned and released as a docker container. See
+https://github.com/opencord/openolt-test for more details.
 
 Follow the below steps to build and run unit test
 
@@ -19,14 +22,15 @@
 make test
 ```
 
-The openolt agent source code will be mounted to docker container, compiled and unit tests will be run.
-Note that you will need access to internet to download the voltha/openolt-test docker container for the
-first time.
+The openolt agent source code will be mounted to docker container, compiled and
+unit tests will be run.  Note that you will need access to internet to download
+the voltha/openolt-test docker container for the first time.
 
-If you choose not to use docker conainer packaged with pre-requisite software for building and running
-unit tests, you may install the pre-requisite software directly on the host system using procedure below.
-However this procedure is NOT RECOMMENDED as software being installed via this procedure may conflict or
-overwrite the software that may already exist on the host sytem.
+If you choose not to use docker container packaged with pre-requisite software
+for building and running unit tests, you may install the pre-requisite software
+directly on the host system using procedure below.  However this procedure is
+NOT RECOMMENDED as software being installed via this procedure may conflict
+or overwrite the software that may already exist on the host system.
 
 ```shell
 $ cd agent/test
@@ -40,22 +44,39 @@
 $ make test
 ```
 
-Once you have successfully built and run the unit-test, the test report will be available in `test_openolt_report_xunit.xml` file in `agent/test`.
-To clean all build artifacts and test reports, do `make clean` from openolt agent root directory.
+Once you have successfully built and run the unit-test, the test report will be
+available in `test_openolt_report_xunit.xml` file in `agent/test`.  To clean
+all build artifacts and test reports, do `make clean` from openolt agent root
+directory.
 
 ## Adding new Unit Test Cases
 
-Before you add new test cases please read [GOOGLE TEST COOKBOOK](https://github.com/google/googletest/blob/master/googlemock/docs/cook_book.md) and [USING CMOCK](https://github.com/hjagodzinski/C-Mock/blob/master/README.md) to get acquainted with frameworks used for the unit-test cases.
+Before you add new test cases please read [GOOGLE TEST
+COOKBOOK](https://github.com/google/googletest/blob/master/googlemock/docs/cook_book.md)
+and [USING CMOCK](https://github.com/hjagodzinski/C-Mock/blob/master/README.md)
+to get acquainted with frameworks used for the unit-test cases.
 
 ### Create mocks, if needed
 
-Refer `agent/test/src/bal_mocker.cc` and `agent/test/src/bal_mocker.h` to see how mock functions are created (if needed by your test case). In the aforementioned examples, mocks are created for certain BAL APIs.
+Refer `agent/test/src/bal_mocker.cc` and `agent/test/src/bal_mocker.h` to see
+how mock functions are created (if needed by your test case). In the
+aforementioned examples, mocks are created for certain BAL APIs.
 
 ### Create Unit Test Case
 
 Please refer example `agent/test/src/test_enable_olt.cc`.
-Tests are grouped under Test Fixtures, i.e., `TEST_F` which takes argument of Test Fixture Name and the Test Case. There will typically be many test cases under a test fixture. Also it is preferrable to create a new file for different test fixtures.
-If your test case needs mocking, you will need to instantiate the appropriate mocker class you have created and use the `ON_CALL`, `EXPECT_CALL` or other utilities from the gtest suite to produce the required behavior.
-Use the `ASSERT_XXX` utility from the gtest suite to verify the required result.
-Please refer the [GOOGLE TEST COOKBOOK](https://github.com/google/googletest/blob/master/googlemock/docs/cook_book.md) for detailed documentation.
+
+Tests are grouped under Test Fixtures, i.e., `TEST_F` which takes argument of
+Test Fixture Name and the Test Case. There will typically be many test cases
+under a test fixture. Also it is preferable to create a new file for different
+test fixtures.
+
+If your test case needs mocking, you will need to instantiate the appropriate
+mocker class you have created and use the `ON_CALL`, `EXPECT_CALL` or other
+utilities from the gtest suite to produce the required behavior.
+
+Use the `ASSERT_XXX` utility from the gtest suite to verify the required
+result.  Please refer the [GOOGLE TEST
+COOKBOOK](https://github.com/google/googletest/blob/master/googlemock/docs/cook_book.md)
+for detailed documentation.
 
diff --git a/protos/Makefile b/protos/Makefile
index 1394778..7f5394f 100644
--- a/protos/Makefile
+++ b/protos/Makefile
@@ -34,7 +34,7 @@
 
 .DEFAULT_GOAL := all
 
-all: googleapis get_openolt_proto grpc-target protobuf-target libopenoltapi.a
+all: googleapis voltha_protos grpc-target protobuf-target libopenoltapi.a
 
 libopenoltapi.a: $(OBJS)
 	ar cr $@ $^
@@ -49,7 +49,8 @@
 		make -C googleapis LANGUAGE=cpp GRPCPLUGIN=$(GRPC_CPP_PLUGIN_PATH) all; \
 	fi;
 
-get_openolt_proto:
+voltha_protos:
+	mkdir voltha_protos
 	if [ ! -e "voltha_protos/openolt.proto" ]; then \
 		wget -O voltha_protos/openolt.proto https://raw.githubusercontent.com/opencord/voltha-protos/$(OPENOLT_PROTO_VER)/protos/voltha_protos/openolt.proto; \
 	fi; \
@@ -61,12 +62,12 @@
 	$(PROTOC) --proto_path=. -I./googleapis --grpc_out=. --plugin=protoc-gen-grpc=$(GRPC_CPP_PLUGIN_PATH) voltha_protos/openolt.proto
 	$(PROTOC) --proto_path=. -I./googleapis --grpc_out=. --plugin=protoc-gen-grpc=$(GRPC_CPP_PLUGIN_PATH) voltha_protos/tech_profile.proto
 
-protobuf-target:
+protobuf-target: voltha_protos
 	$(PROTOC) --proto_path=. -I./googleapis -I./ --cpp_out=. voltha_protos/openolt.proto
 	$(PROTOC) --proto_path=. -I./googleapis -I./ --cpp_out=. voltha_protos/tech_profile.proto
 
 clean:
-	rm -f *.a && cd voltha_protos/ && rm -f *.o *.pb.cc *.pb.h *.proto
+	rm -rf *.a voltha_protos
 
 distclean: clean
 	rm -rf googleapis
diff --git a/protos/README.md b/protos/README.md
deleted file mode 100644
index 6e892c4..0000000
--- a/protos/README.md
+++ /dev/null
@@ -1,3 +0,0 @@
-# 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/voltha_protos/README.md b/protos/voltha_protos/README.md
deleted file mode 100644
index 84c6460..0000000
--- a/protos/voltha_protos/README.md
+++ /dev/null
@@ -1,5 +0,0 @@
-# Place holder directory for openolt.proto and tech_profile.proto
-
-This is a place holder directory for openolt.proto and tech_profile.proto file downloaded
-from https://github.com/opencord/voltha-protos repo.
-
