diff --git a/BUILDING.md b/BUILDING.md
index 0c26453..08352c0 100644
--- a/BUILDING.md
+++ b/BUILDING.md
@@ -262,7 +262,7 @@
 make OPENOLTDEVICE=asfvolt16 distclean
 ```
 
-## Openolt build procedure for Radisys RLT-3200G-W
+## Openolt build procedure for Radisys RLT-3200G-W/RLT-1600G-W/RLT-1600X-W
 
 Clone the `openolt` repository either from OpenCORD Gerrit:
 
@@ -293,6 +293,21 @@
 make OPENOLTDEVICE=rlt-3200g-w
 ```
 
+NOTE:
+To compile for Radisys RLT-1600G-W 16 port GPON OLT, set `OPENOLTDEVICE` to
+`rlt-1600g-w` during build procedure like below.
+
+```shell
+make OPENOLTDEVICE=rlt-1600g-w
+```
+
+To compile for Radisys RLT-1600X-W 16 port GPON OLT, set `OPENOLTDEVICE` to
+`rlt-1600x-w` during build procedure like below.
+
+```shell
+make OPENOLTDEVICE=rlt-1600x-w
+```
+
 Note that the required ONL version `4.19` is built as part of the above build
 procedure and is available at path
 `build/onl/OpenNetworkLinux/RELEASE/stretch/amd64/ONL-onl-4.19_ONL-OS9_2021-03-30.0455-72b95a7_AMD64_INSTALLED_INSTALLER`.
@@ -313,26 +328,41 @@
 *openolt/agent/build* directory.
 
 Command to build debian package that will be installed on the OLT with default
-QSFP NNI port speed as 40g and SFP NNI port speed as 10g. NNI port speed configuration
-not included during inital make to reduce build time in case of different NNI port speed
+QSFP NNI port speed as 40g and SFP NNI port speed as 10g in case of RLT-3200G-w
+and RLT-1600G-w and with default QSFP NNI port speed as 100g and SFP NNI port
+speed as 25g in case of RLT_1600X-W. NNI port speed configuration not included
+during inital make to reduce build time in case of different NNI port speed
 requirement.
 
 ```shell
 make OPENOLTDEVICE=rlt-3200g-w deb
 ```
 
-Optionally, debian package can be built with one other NNI port speed option as below,
+Optionally, debian package can be built with other NNI port speed options as below
+for RLT-3200G-W/RLT-1600G-W/RLT-1600X-W,
 
-* 40G QSFP NNI port change to 10Gbps speed (use Break-out cable)
+* 40G QSFP NNI port change to 10Gbps speed (use Break-out cable) (Phoenix/Radisys RLT-3200G-W, RLT-1600G-W)
 
 ```shell
-make OPENOLTDEVICE=rlt-3200g-w deb PORT_40G_SPEED=10g PORT_10G_SPEED=10g
+make OPENOLTDEVICE=rlt-3200g-w deb PORT_QSFP_SPEED=10g PORT_SFP_SPEED=10g
+```
+
+* 100G QSFP NNI port change to 40Gbps speed and 25G SFP NNI port change to 10Gbps speed (Phoenix/Radisys RLT-1600X-W)
+
+```shell
+make OPENOLTDEVICE=rlt-1600x-w deb PORT_QSFP_SPEED=40g PORT_SFP_SPEED=10g
+```
+
+* 100G QSFP NNI port change to 10Gbps speed and 25G SFP NNI port change to 10Gbps speed (Phoenix/Radisys RLT-1600X-W)
+
+```shell
+make OPENOLTDEVICE=rlt-1600x-w deb PORT_QSFP_SPEED=10g PORT_SFP_SPEED=10g
 ```
 
 If the build process succeeds, a `.deb` package will be created as well in the
 `openolt/agent/build` directory.
 
-## Radisys RLT-3200G-W build cleanup
+## Radisys RLT-3200G-W/RLT-1600G-W/RLT-1600X-W build cleanup
 
 To cleanup the repository and start the build procedure again, run:
 
diff --git a/README.md b/README.md
index 1af4320..a891c28 100644
--- a/README.md
+++ b/README.md
@@ -162,7 +162,7 @@
 ./dev_mgmt_daemon -d -pcie -port_25g_speed 1000
 ```
 
-* 40G QSFP NNI port change to 10Gbps speed and 10G SFP NNI port to default speed (Phoenix/Radisys RLT-3200G-W).  
+* 40G QSFP NNI port change to 10Gbps speed and 10G SFP NNI port to default speed (Phoenix/Radisys RLT-3200G-W, RLT-1600G-W).\
   If no speed specified QSFP port speed defaults to 40G and SFP port speed defaults to 10G
 
 ```shell
@@ -173,6 +173,28 @@
 ./dev_mgmt_daemon -d -pcie
 ```
 
+* 100G QSFP NNI port change to 10Gbps speed and 25G SFP NNI port change to 10Gbps speed (Phoenix/Radisys RLT-1600X-W).\
+  If no speed specified QSFP port speed defaults to 100G and SFP port speed defaults to 25G
+
+```shell
+cd /opt/bcm68650/
+./svk_init.sh -clean
+./svk_init.sh -qsfp_speed=10g -sfp_speed=10g
+cd /broadcom
+./dev_mgmt_daemon -d -pcie
+```
+
+* 100G QSFP NNI port change to 40Gbps speed and 25G SFP NNI port change to 10Gbps speed (Phoenix/Radisys RLT-1600X-W).\
+  If no speed specified QSFP port speed defaults to 100G and SFP port speed defaults to 25G
+
+```shell
+cd /opt/bcm68650/
+./svk_init.sh -clean
+./svk_init.sh -qsfp_speed=40g -sfp_speed=10g
+cd /broadcom
+./dev_mgmt_daemon -d -pcie
+```
+
 The `dev_mgmt_daemon` executable presents the CLI for Broadcom's BAL when run
 in the foreground which is useful for debugging.
 
diff --git a/VERSION b/VERSION
index 414a102..1545d96 100644
--- a/VERSION
+++ b/VERSION
@@ -1 +1 @@
-3.5.0-dev
+3.5.0
diff --git a/agent/Makefile.in b/agent/Makefile.in
index c62baf8..2e3ea01 100644
--- a/agent/Makefile.in
+++ b/agent/Makefile.in
@@ -29,15 +29,20 @@
 BAL_MAJOR_VER = 3
 BAL_MINOR_VER = 4
 BAL_REV_A_VER = 9
-BAL_REV_B_VER != if [ "$(OPENOLTDEVICE)" = "rlt-3200g-w" ]; then echo "8"; else echo "6"; fi
+ifeq ("$(strip $(OPENOLTDEVICE))",$(findstring "$(strip $(OPENOLTDEVICE))", "rlt-3200g-w" "rlt-1600g-w" "rlt-1600x-w"))
+BAL_REV_B_VER = 8
+DEV_VER = 20210420
+# Version of Open Network Linux (ONL).
+ONL_KERN_VER_MAJOR = 4.19
+else
+BAL_REV_B_VER = 6
+DEV_VER = 202012040101
+ONL_KERN_VER_MAJOR = 4.14
+endif
 BAL_API_REV_B_VER = 6
 BAL_API_VER = $(BAL_MAJOR_VER).$(BAL_MINOR_VER).$(BAL_REV_A_VER).$(BAL_API_REV_B_VER)
 BAL_VER = $(BAL_MAJOR_VER).$(BAL_MINOR_VER).$(BAL_REV_A_VER).$(BAL_REV_B_VER)
 SDK_VER = 6.5.13
-DEV_VER != if [ "$(OPENOLTDEVICE)" = "rlt-3200g-w" ]; then echo "20210420"; else echo "202012040101"; fi
-#
-# Version of Open Network Linux (ONL).
-ONL_KERN_VER_MAJOR != if [ "$(OPENOLTDEVICE)" = "rlt-3200g-w" ]; then echo "4.19"; else echo "4.14"; fi
 
 # OpenOLT Proto version.
 # This specifies the GIT tag in https://github.com/opencord/voltha-protos
@@ -52,8 +57,13 @@
 # NNI ports speed setting
 PORT_100G_SPEED ?= 100000
 PORT_25G_SPEED ?= 25000
-PORT_40G_SPEED ?= 40g
-PORT_10G_SPEED ?= 10g
+ifeq ("$(strip $(OPENOLTDEVICE))",$(findstring "$(strip $(OPENOLTDEVICE))", "rlt-3200g-w" "rlt-1600g-w"))
+PORT_QSFP_SPEED ?= 40g
+PORT_SFP_SPEED ?= 10g
+else ifeq ("$(strip $(OPENOLTDEVICE))","rlt-1600x-w")
+PORT_QSFP_SPEED ?= 100g
+PORT_SFP_SPEED ?= 25g
+endif
 
 # Build directory
 BUILD_DIR = build
@@ -93,7 +103,11 @@
 PCAPPLUSPLUS_INCLUDE_PATH=-I/usr/local/include/pcapplusplus/
 PCAPPLUSPLUS_LIB_PATH=-lPcap++ -lPacket++ -lCommon++
 
-CXX != if [ "$(OPENOLTDEVICE)" = "rlt-3200g-w" ]; then echo "@CXX@-6"; else echo "@CXX@-4.9"; fi
+ifeq ("$(strip $(OPENOLTDEVICE))",$(findstring "$(strip $(OPENOLTDEVICE))", "rlt-3200g-w" "rlt-1600g-w" "rlt-1600x-w"))
+CXX = @CXX@-6
+else
+CXX = @CXX@-4.9
+endif
 CXXFLAGS += @CXXFLAGS@
 CXXFLAGS += $(shell pkg-config --cflags-only-I grpc++)
 CXXFLAGS += $(PCAPPLUSPLUS_INCLUDE_PATH)
@@ -128,7 +142,8 @@
 		git clone https://github.com/opencomputeproject/OpenNetworkLinux.git $(ONL_DIR)/OpenNetworkLinux; \
 		cp download/Makefile.onl $(ONL_DIR)/Makefile; \
 		install -m 755 download/build-onl.sh $(ONL_DIR)/OpenNetworkLinux; \
-		if [ "$(OPENOLTDEVICE)" = "rlt-3200g-w" ]; then \
+		if [ "$(OPENOLTDEVICE)" = "rlt-3200g-w" ] || [ "$(OPENOLTDEVICE)" = "rlt-1600g-w" ] || [ "$(OPENOLTDEVICE)" = "rlt-1600x-w" ]; \
+		then \
 			cp $(TOP_DIR)/device/$(OPENOLTDEVICE)/update_kernel_options.sh $(ONL_DIR)/OpenNetworkLinux/.; \
 			chmod 0755 $(ONL_DIR)/OpenNetworkLinux/update_kernel_options.sh; \
 		fi; \
@@ -167,9 +182,11 @@
 ##
 BAL_ZIP = SW-BCM686OLT_$(subst .,_,$(BAL_VER)).tgz
 SDK_ZIP = sdk-all-$(SDK_VER).tar.gz
-PATCH_FILE != if [ "$(OPENOLTDEVICE)" = "rlt-3200g-w" ]; then \
-	echo "PHOENIX_BAL_$(BAL_VER)_V$(DEV_VER).patch"; else \
-	echo "ACCTON_BAL_$(BAL_VER)-V$(DEV_VER).patch"; fi
+ifeq ("$(strip $(OPENOLTDEVICE))",$(findstring "$(strip $(OPENOLTDEVICE))", "rlt-3200g-w" "rlt-1600g-w" "rlt-1600x-w"))
+PATCH_FILE = PHOENIX_BAL_$(BAL_VER)_V$(DEV_VER).patch
+else
+PATCH_FILE = ACCTON_BAL_$(BAL_VER)-V$(DEV_VER).patch
+endif
 BAL_DIR = $(BUILD_DIR)/$(OPENOLTDEVICE)-bal
 BCM_SDK = $(BAL_DIR)/switch_sdk/$(SDK_VER)
 BALLIBDIR = $(BAL_DIR)/build/host_reference/host_api
@@ -206,17 +223,22 @@
 	echo "setenv port_speed_for_100 $(PORT_100G_SPEED)" > $(PORT_SPEED_FILE)
 	echo "setenv port_speed_for_25 $(PORT_25G_SPEED)" >> $(PORT_SPEED_FILE)
 endif
-ifeq ("$(strip $(OPENOLTDEVICE))","rlt-3200g-w")
+ifeq ("$(strip $(OPENOLTDEVICE))",$(findstring "$(strip $(OPENOLTDEVICE))", "rlt-3200g-w" "rlt-1600g-w" "rlt-1600x-w"))
 	chmod 0755 $(BAL_DIR)/onu_mgmt/libomcistack/me_codegen/omci_stack_codegen
 	make -C $(BAL_DIR) BOARD=phoenix ONL=$(TOP_DIR)/$(ONL_DIR)/OpenNetworkLinux ONL_DEBIAN_SUITE=$(shell lsb_release -c -s) OPEN_SOURCE=y
+	make -C $(BAL_DIR) BOARD=phoenix release_board
 else
 	make -C $(BAL_DIR) BOARD=$(OPENOLTDEVICE) ONL_DIR=$(TOP_DIR)/$(ONL_DIR)/OpenNetworkLinux OPEN_SOURCE=y
-endif
 	make -C $(BAL_DIR) BOARD=$(OPENOLTDEVICE) release_board
 endif
+endif
 
 bal-release: sdk
+ifeq ("$(strip $(OPENOLTDEVICE))",$(findstring "$(strip $(OPENOLTDEVICE))", "rlt-3200g-w" "rlt-1600g-w" "rlt-1600x-w"))
+	make -C $(BAL_DIR) BOARD=phoenix release_board
+else
 	make -C $(BAL_DIR) BOARD=$(OPENOLTDEVICE) release_board
+endif
 
 bal-clean:
 	make -C $(BAL_DIR) BOARD=$(OPENOLTDEVICE) clean_all
@@ -279,7 +301,7 @@
 all: $(BUILD_DIR)/openolt
 $(BUILD_DIR)/openolt: sdk protos $(OBJS)
 	$(CXX) $(LDFLAGS) -L$(BALLIBDIR) $(OBJS) $(OPENOLT_API_LIB) $(LIBPROTOBUF_PATH)/libprotobuf.a -o $@ -l$(BALLIBNAME) $(shell pkg-config --libs protobuf grpc++ grpc) $(PCAPPLUSPLUS_LIB_PATH)
-ifeq ("$(strip $(OPENOLTDEVICE))","rlt-3200g-w")
+ifeq ("$(strip $(OPENOLTDEVICE))",$(findstring "$(strip $(OPENOLTDEVICE))", "rlt-3200g-w" "rlt-1600g-w" "rlt-1600x-w"))
 	ln -sf $(TOP_DIR)/$(BAL_DIR)/build/fs/phoenix/release/release_phoenix_v$(BAL_VER).tar.gz $(BUILD_DIR)/release_$(OPENOLTDEVICE)_V$(BAL_VER).$(DEV_VER).tar.gz
 else
 	ln -sf $(TOP_DIR)/$(BAL_DIR)/build/fs/$(OPENOLTDEVICE)/release/release_$(OPENOLTDEVICE)_V$(BAL_VER).$(DEV_VER).tar.gz $(BUILD_DIR)/.
@@ -307,8 +329,8 @@
 	cp $(BUILD_DIR)/libbal_host_api.so device/$(OPENOLTDEVICE)/mkdebian/debian
 	cp -a scripts/init.d device/$(OPENOLTDEVICE)/mkdebian/debian
 	cp -a $(RXTX_POWER_EXE) device/$(OPENOLTDEVICE)/mkdebian/debian
-ifeq ("$(strip $(OPENOLTDEVICE))","rlt-3200g-w")
-	sed -i '/\/opt\/bcm68650\/svk_init.sh/c\    \/opt\/bcm68650\/svk_init.sh -qsfp_speed=$(PORT_40G_SPEED) -sfp_speed=$(PORT_10G_SPEED)' device/$(OPENOLTDEVICE)/mkdebian/debian/init.d/dev_mgmt_daemon
+ifeq ("$(strip $(OPENOLTDEVICE))",$(findstring "$(strip $(OPENOLTDEVICE))", "rlt-3200g-w" "rlt-1600g-w" "rlt-1600x-w"))
+	sed -i '/\/opt\/bcm68650\/svk_init.sh/c\    \/opt\/bcm68650\/svk_init.sh -qsfp_speed=$(PORT_QSFP_SPEED) -sfp_speed=$(PORT_SFP_SPEED)' device/$(OPENOLTDEVICE)/mkdebian/debian/init.d/dev_mgmt_daemon
 endif
 	cp -a scripts/watchdog device/$(OPENOLTDEVICE)/mkdebian/debian
 	cd device/$(OPENOLTDEVICE)/mkdebian && ./build_$(OPENOLTDEVICE)_deb.sh
diff --git a/agent/device/rlt-1600g-w/mkdebian/build_rlt-1600g-w_deb.sh b/agent/device/rlt-1600g-w/mkdebian/build_rlt-1600g-w_deb.sh
new file mode 100755
index 0000000..e4cc706
--- /dev/null
+++ b/agent/device/rlt-1600g-w/mkdebian/build_rlt-1600g-w_deb.sh
@@ -0,0 +1,19 @@
+#!/bin/bash
+
+#Copyright 2018-present 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.
+
+
+export ONL_ARCH="amd64"
+dpkg-buildpackage -b -us -uc -a"$ONL_ARCH"
diff --git a/agent/device/rlt-1600g-w/mkdebian/debian/changelog b/agent/device/rlt-1600g-w/mkdebian/debian/changelog
new file mode 100644
index 0000000..7abf7a7
--- /dev/null
+++ b/agent/device/rlt-1600g-w/mkdebian/debian/changelog
@@ -0,0 +1,7 @@
+rlt-1600g-w (3.4.9.8+radisys-V20210420) stable; urgency=high
+
+    * Based on code from SW-BCM686OLT_3_4_9_8.tgz.
+    * Patches required for BAL to support RLT-1600G-W has been merged to
+      PHOENIX_BAL_3.4.9.8_V20210420.patch.
+
+ -- Thiyagarajan Subramani <thiyagarajan.subramani@radisys.com>  Tue, 20 APR 2021 09:30:00 +0400
diff --git a/agent/device/rlt-1600g-w/mkdebian/debian/compat b/agent/device/rlt-1600g-w/mkdebian/debian/compat
new file mode 100644
index 0000000..ec63514
--- /dev/null
+++ b/agent/device/rlt-1600g-w/mkdebian/debian/compat
@@ -0,0 +1 @@
+9
diff --git a/agent/device/rlt-1600g-w/mkdebian/debian/control b/agent/device/rlt-1600g-w/mkdebian/debian/control
new file mode 100644
index 0000000..35a6aa1
--- /dev/null
+++ b/agent/device/rlt-1600g-w/mkdebian/debian/control
@@ -0,0 +1,13 @@
+Source: rlt-1600g-w
+Section: misc
+Priority: optional
+Maintainer: Thiyagarajan Subramani  <thiyagarajan.subramani@radisys.com>
+Build-Depends: debhelper (>= 4.0.0)
+Standards-Version: 3.6.2
+
+Package: rlt-1600g-w
+Architecture: amd64
+Depends: ${shlibs:Depends}
+Description: Broadcom OLT drivers,CLI
+  ported from Broadcom SDK-3.4.9.8 package
+
diff --git a/agent/device/rlt-1600g-w/mkdebian/debian/copyright b/agent/device/rlt-1600g-w/mkdebian/debian/copyright
new file mode 100644
index 0000000..0e527f0
--- /dev/null
+++ b/agent/device/rlt-1600g-w/mkdebian/debian/copyright
@@ -0,0 +1 @@
+(C) Copyright Broadcom Corporation 2003-2016
diff --git a/agent/device/rlt-1600g-w/mkdebian/debian/files b/agent/device/rlt-1600g-w/mkdebian/debian/files
new file mode 100644
index 0000000..194e4db
--- /dev/null
+++ b/agent/device/rlt-1600g-w/mkdebian/debian/files
@@ -0,0 +1,3 @@
+rlt-1600g-w-dbgsym_3.4.9.8+radisys-V20210420_amd64.deb debug extra
+rlt-1600g-w_3.4.9.8+radisys-V20210420_amd64.buildinfo misc optional
+rlt-1600g-w_3.4.9.8+radisys-V20210420_amd64.deb misc optional
diff --git a/agent/device/rlt-1600g-w/mkdebian/debian/logrotate.d/openolt b/agent/device/rlt-1600g-w/mkdebian/debian/logrotate.d/openolt
new file mode 100644
index 0000000..480b59f
--- /dev/null
+++ b/agent/device/rlt-1600g-w/mkdebian/debian/logrotate.d/openolt
@@ -0,0 +1,10 @@
+/var/log/dev_mgmt_daemon.log
+/var/log/openolt.log
+{
+  rotate 7
+  daily
+  compress
+  missingok
+  delaycompress
+  copytruncate
+}
diff --git a/agent/device/rlt-1600g-w/mkdebian/debian/rlt-1600g-w.install b/agent/device/rlt-1600g-w/mkdebian/debian/rlt-1600g-w.install
new file mode 100644
index 0000000..ceeb05b
--- /dev/null
+++ b/agent/device/rlt-1600g-w/mkdebian/debian/rlt-1600g-w.install
@@ -0,0 +1 @@
+/tmp
diff --git a/agent/device/rlt-1600g-w/mkdebian/debian/rlt-1600g-w.postinst b/agent/device/rlt-1600g-w/mkdebian/debian/rlt-1600g-w.postinst
new file mode 100755
index 0000000..96de4ca
--- /dev/null
+++ b/agent/device/rlt-1600g-w/mkdebian/debian/rlt-1600g-w.postinst
@@ -0,0 +1,52 @@
+#!/bin/bash
+
+#Copyright 2018-present 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.
+
+rm -rf /opt/bcm686*
+rm -rf /broadcom
+tar zxf /tmp/release_rlt-1600g-w_V*.tar.gz -C / 2>&1 > /dev/null
+
+mkdir -p /opt/openolt && cp /tmp/watchdog/openolt_dev_mgmt_daemon_process_watchdog /opt/openolt && cp /tmp/watchdog/watchdog.config /opt/openolt
+
+sed -i -e '$i rm -rf \/tmp\/bcm68650_svk_init\/' /etc/rc.local
+[ -f /opt/openolt/openolt_dev_mgmt_daemon_process_watchdog ] && grep -q '\/opt\/openolt\/openolt_dev_mgmt_daemon_process_watchdog' /etc/rc.local || sed -i -e '$i nohup bash \/opt\/openolt\/openolt_dev_mgmt_daemon_process_watchdog &' /etc/rc.local
+
+rm -f /tmp/release_rlt-1600g-w_V*.tar.gz
+rm -f /run/bcm686*
+
+
+mv /tmp/openolt /broadcom
+mv /tmp/libz.so.1 /usr/local/lib
+mv /tmp/libstdc++.so.6 /usr/local/lib
+mv /tmp/libbal_host_api.so /usr/local/lib
+
+cp /tmp/logrotate.d/openolt /etc/logrotate.d
+chmod +x /opt/openolt/openolt_dev_mgmt_daemon_process_watchdog
+
+cp /tmp/init.d/dev_mgmt_daemon /etc/init.d
+chmod +x /etc/init.d/dev_mgmt_daemon
+update-rc.d dev_mgmt_daemon defaults
+[ "A`cat ~/.bashrc| grep LD_LIBRARY_PATH`" = "A" ] && echo "export LD_LIBRARY_PATH=/broadcom:\$LD_LIBRARY_PATH" >> ~/.bashrc; . ~/.bashrc
+ldconfig /broadcom
+ln -s /broadcom/libbal_core_real.*.so /broadcom/libbal_core.so
+#cd /broadcom/ && export LD_LIBRARY_PATH=LD_LIBRARY_PATH:/broadcom && ./dev_mgmt_daemon -d -pcie
+service dev_mgmt_daemon start
+echo "Wait for 30 sec for BAL to be ready"
+sleep 30
+
+cp /tmp/init.d/openolt /etc/init.d
+chmod +x /etc/init.d/openolt
+update-rc.d openolt defaults
+service openolt start
diff --git a/agent/device/rlt-1600g-w/mkdebian/debian/rlt-1600g-w.postrm b/agent/device/rlt-1600g-w/mkdebian/debian/rlt-1600g-w.postrm
new file mode 100755
index 0000000..fd44b74
--- /dev/null
+++ b/agent/device/rlt-1600g-w/mkdebian/debian/rlt-1600g-w.postrm
@@ -0,0 +1,51 @@
+#!/bin/bash
+
+#Copyright 2018-present 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.
+
+# kill CLI applications
+echo "kill running time application"
+[ -n "`pidof openolt`" ] && service openolt stop
+[ -n "`pidof openolt`" ] && killall openolt
+[ -n "`pidof dev_mgmt_daemon`" ] && service dev_mgmt_daemon stop
+[ -n "`pidof dev_mgmt_daemon`" ] && killall dev_mgmt_daemon
+[ -n "`pidof bcm.user`" ] && killall bcm.user
+[ -n "`pidof dev_mgmt_attach`" ] && killall dev_mgmt_attach
+[ -n "`pidof embedded_console`" ] && killall embedded_console
+[ -n "`pidof example_user_appl`" ] && killall example_user_appl
+
+rm -f /tmp/root_dev_mgmt_pid /tmp/root_dev_mgmt_init_done
+sleep 3
+
+if [ -d /opt/bcm68650 ]; then
+    bash /opt/bcm68650/svk_init.sh -clean
+    sleep 3
+fi
+
+rm -rf /tmp/bcm68650_svk_init/
+
+rm -rf /opt/bcm68650
+rm -rf /opt/openolt
+rm -rf /broadcom
+
+sed -i '\/rm -rf \/tmp\/bcm68650_svk_init/d' /etc/rc.local
+sed -i '\/nohup bash \/opt\/openolt\/openolt_dev_mgmt_daemon_process_watchdog &/d' /etc/rc.local
+
+rm -rf /run/bcm68650
+rm -rf /usr/local/lib/libz.so.1
+rm -rf /usr/local/lib/libbal_host_api.so
+rm -rf /usr/local/lib/libstdc++.so.6
+rm -f /etc/init.d/openolt
+rm -f /etc/init.d/dev_mgmt_daemon
+rm -f /etc/logrotate.d/openolt
diff --git a/agent/device/rlt-1600g-w/mkdebian/debian/rlt-1600g-w.preinst b/agent/device/rlt-1600g-w/mkdebian/debian/rlt-1600g-w.preinst
new file mode 100755
index 0000000..fd44b74
--- /dev/null
+++ b/agent/device/rlt-1600g-w/mkdebian/debian/rlt-1600g-w.preinst
@@ -0,0 +1,51 @@
+#!/bin/bash
+
+#Copyright 2018-present 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.
+
+# kill CLI applications
+echo "kill running time application"
+[ -n "`pidof openolt`" ] && service openolt stop
+[ -n "`pidof openolt`" ] && killall openolt
+[ -n "`pidof dev_mgmt_daemon`" ] && service dev_mgmt_daemon stop
+[ -n "`pidof dev_mgmt_daemon`" ] && killall dev_mgmt_daemon
+[ -n "`pidof bcm.user`" ] && killall bcm.user
+[ -n "`pidof dev_mgmt_attach`" ] && killall dev_mgmt_attach
+[ -n "`pidof embedded_console`" ] && killall embedded_console
+[ -n "`pidof example_user_appl`" ] && killall example_user_appl
+
+rm -f /tmp/root_dev_mgmt_pid /tmp/root_dev_mgmt_init_done
+sleep 3
+
+if [ -d /opt/bcm68650 ]; then
+    bash /opt/bcm68650/svk_init.sh -clean
+    sleep 3
+fi
+
+rm -rf /tmp/bcm68650_svk_init/
+
+rm -rf /opt/bcm68650
+rm -rf /opt/openolt
+rm -rf /broadcom
+
+sed -i '\/rm -rf \/tmp\/bcm68650_svk_init/d' /etc/rc.local
+sed -i '\/nohup bash \/opt\/openolt\/openolt_dev_mgmt_daemon_process_watchdog &/d' /etc/rc.local
+
+rm -rf /run/bcm68650
+rm -rf /usr/local/lib/libz.so.1
+rm -rf /usr/local/lib/libbal_host_api.so
+rm -rf /usr/local/lib/libstdc++.so.6
+rm -f /etc/init.d/openolt
+rm -f /etc/init.d/dev_mgmt_daemon
+rm -f /etc/logrotate.d/openolt
diff --git a/agent/device/rlt-1600g-w/mkdebian/debian/rules b/agent/device/rlt-1600g-w/mkdebian/debian/rules
new file mode 100755
index 0000000..c56d2db
--- /dev/null
+++ b/agent/device/rlt-1600g-w/mkdebian/debian/rules
@@ -0,0 +1,74 @@
+#!/usr/bin/make -f
+# See debhelper(7) (uncomment to enable)
+# output every command that modifies files on the build system.
+#DH_VERBOSE = 1
+
+# see EXAMPLES in dpkg-buildflags(1) and read /usr/share/dpkg/*
+DPKG_EXPORT_BUILDFLAGS = 1
+include /usr/share/dpkg/default.mk
+
+# see FEATURE AREAS in dpkg-buildflags(1)
+#export DEB_BUILD_MAINT_OPTIONS = hardening=+all
+
+# see ENVIRONMENT in dpkg-buildflags(1)
+# package maintainers to append CFLAGS
+#export DEB_CFLAGS_MAINT_APPEND  = -Wall -pedantic
+# package maintainers to append LDFLAGS
+#export DEB_LDFLAGS_MAINT_APPEND = -Wl,--as-needed
+
+# main packaging script based on dh7 syntax
+%:
+	dh $@
+
+DOCS=LEGAL_TERMS README LICENSE_APACHE20
+
+DEB_DH_INSTALL_SOURCEDIR = $(CURDIR)/debian/tmp
+
+override_dh_auto_install:
+	mkdir -p $(DEB_DH_INSTALL_SOURCEDIR)/tmp
+	cp -a $(CURDIR)/debian/release_rlt-1600g-w_V*.tar.gz $(DEB_DH_INSTALL_SOURCEDIR)/tmp
+	cp -a $(CURDIR)/debian/libz.so.1 $(DEB_DH_INSTALL_SOURCEDIR)/tmp
+	cp -a $(CURDIR)/debian/libstdc++.so.6 $(DEB_DH_INSTALL_SOURCEDIR)/tmp
+	cp -a $(CURDIR)/debian/libbal_host_api.so $(DEB_DH_INSTALL_SOURCEDIR)/tmp
+	cp -a $(CURDIR)/debian/openolt $(DEB_DH_INSTALL_SOURCEDIR)/tmp
+	cp -a $(CURDIR)/debian/init.d $(DEB_DH_INSTALL_SOURCEDIR)/tmp
+	cp -a $(CURDIR)/debian/logrotate.d $(DEB_DH_INSTALL_SOURCEDIR)/tmp
+	cp -a $(CURDIR)/debian/watchdog $(DEB_DH_INSTALL_SOURCEDIR)/tmp
+
+#override_dh_shlibdeps:
+#	dh_shlibdeps --dpkg-shlibdeps-params=--ignore-missing-info -l$(ONLP_LIB_PATH):$(OFDPA_LIB_PATH)
+
+# avoid auto strip for debug ofagentapp.dbg
+#
+#override_dh_strip:
+#	echo "No auto strip!"
+
+#override_dh_installdeb:
+#	dh_installdeb
+#	for pkg in $$(dh_listpackages); do \
+#		sed -i -e 's!#DEB_SOURCE#!$(DEB_SOURCE)!' debian/$$pkg/DEBIAN/*; \
+#		sed -i -e 's!#OPDPA_VER_SUFFIX#!-$(OPDPA_VER)!g' debian/$$pkg/DEBIAN/*; \
+#	done
+
+test:
+	@echo DEB_SOURCE=$(DEB_SOURCE)
+	@echo DEB_VERSION=$(DEB_VERSION)
+	@echo DEB_VERSION_EPOCH_UPSTREAM=$(DEB_VERSION_EPOCH_UPSTREAM)
+	@echo DEB_VERSION_UPSTREAM_REVISION=$(DEB_VERSION_UPSTREAM_REVISION)
+	@echo DEB_VERSION_UPSTREAM=$(DEB_VERSION_UPSTREAM)
+	@echo DEB_DISTRIBUTION=$(DEB_DISTRIBUTION)
+	@echo DEB_HOST_ARCH=$(DEB_HOST_ARCH)
+	@echo DEB_HOST_ARCH_CPU=$(DEB_HOST_ARCH_CPU)
+	@echo DEB_HOST_ARCH_OS=$(DEB_HOST_ARCH_OS)
+	@echo DEB_HOST_GNU_TYPE=$(DEB_HOST_GNU_TYPE)
+	@echo DEB_HOST_GNU_CPU=$(DEB_HOST_GNU_CPU)
+	@echo DEB_HOST_GNU_SYSTEM=$(DEB_HOST_GNU_SYSTEM)
+	@echo DEB_BUILD_ARCH=$(DEB_BUILD_ARCH)
+	@echo DEB_BUILD_ARCH_CPU=$(DEB_BUILD_ARCH_CPU)
+	@echo DEB_BUILD_ARCH_OS=$(DEB_BUILD_ARCH_OS)
+	@echo DEB_BUILD_GNU_TYPE=$(DEB_BUILD_GNU_TYPE)
+	@echo DEB_BUILD_GNU_CPU=$(DEB_BUILD_GNU_CPU)
+	@echo DEB_BUILD_GNU_SYSTEM=$(DEB_BUILD_GNU_SYSTEM)
+	@echo ONLP_LIB_PATH=$(ONLP_LIB_PATH)
+#	@echo OFDPA_LIB_PATH=$(OFDPA_LIB_PATH)
+#	@echo OFDPA_BIN_PATH=$(OFDPA_BIN_PATH)
diff --git a/agent/device/rlt-1600g-w/update_kernel_options.sh b/agent/device/rlt-1600g-w/update_kernel_options.sh
new file mode 100755
index 0000000..0ff4c42
--- /dev/null
+++ b/agent/device/rlt-1600g-w/update_kernel_options.sh
@@ -0,0 +1,140 @@
+#!/bin/bash
+
+#Copyright 2018-present 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.
+
+TOPDIR=`pwd`
+KERNEL_CONFIG_FILE=${TOPDIR}/packages/base/any/kernels/4.19-lts/configs/x86_64-all/x86_64-all.config
+
+ADDITIONAL_OPTIONS=(
+CONFIG_CC_IS_GCC=y
+CONFIG_GCC_VERSION=80300
+CONFIG_CLANG_VERSION=0
+CONFIG_CC_HAS_ASM_GOTO=y
+CONFIG_IRQ_WORK=y
+CONFIG_BUILDTIME_EXTABLE_SORT=y
+CONFIG_THREAD_INFO_IN_TASK=y
+"# CONFIG_ACPI_IPMI is not set"
+CONFIG_HOTPLUG_PCI_ACPI_IBM=y
+CONFIG_BCM_NET_PHYLIB=y
+CONFIG_USB_NET_AX8817X=y
+CONFIG_USB_NET_AX88179_178A=y
+CONFIG_USB_NET_CDCETHER=y
+CONFIG_USB_NET_CDC_EEM=y
+CONFIG_USB_NET_CDC_NCM=y
+"# CONFIG_USB_NET_HUAWEI_CDC_NCM is not set"
+"# CONFIG_USB_NET_CDC_MBIM is not set"
+"# CONFIG_USB_NET_DM9601 is not set"
+"# CONFIG_USB_NET_SR9700 is not set"
+"# CONFIG_USB_NET_SR9800 is not set"
+"# CONFIG_USB_NET_SMSC75XX is not set"
+"# CONFIG_USB_NET_SMSC95XX is not set"
+"# CONFIG_USB_NET_GL620A is not set"
+CONFIG_USB_NET_NET1080=y
+"# CONFIG_USB_NET_PLUSB is not set"
+"# CONFIG_USB_NET_MCS7830 is not set"
+"# CONFIG_USB_NET_RNDIS_HOST is not set"
+CONFIG_USB_NET_CDC_SUBSET_ENABLE=y
+CONFIG_USB_NET_CDC_SUBSET=y
+"# CONFIG_USB_ALI_M5632 is not set"
+"# CONFIG_USB_AN2720 is not set"
+CONFIG_USB_BELKIN=y
+CONFIG_USB_ARMLINUX=y
+"# CONFIG_USB_EPSON2888 is not set"
+"# CONFIG_USB_KC2190 is not set"
+CONFIG_USB_NET_ZAURUS=y
+"# CONFIG_USB_NET_CX82310_ETH is not set"
+"# CONFIG_USB_NET_KALMIA is not set"
+"# CONFIG_USB_NET_QMI_WWAN is not set"
+"# CONFIG_USB_NET_INT51X1 is not set"
+"# CONFIG_USB_SIERRA_NET is not set"
+"# CONFIG_USB_VL600 is not set"
+"# CONFIG_USB_NET_CH9200 is not set"
+CONFIG_IPMI_DMI_DECODE=y
+CONFIG_IPMI_PANIC_EVENT=y
+"# CONFIG_IPMI_PANIC_STRING is not set"
+CONFIG_IPMI_DEVICE_INTERFACE=y
+CONFIG_IPMI_SI=y
+"# CONFIG_IPMI_SSIF is not set"
+"# CONFIG_IPMI_WATCHDOG is not set"
+CONFIG_IPMI_POWEROFF=y
+CONFIG_HW_RANDOM_TPM=y
+CONFIG_TCG_TIS_CORE=y
+CONFIG_TCG_TIS=y
+CONFIG_TCG_TIS_SPI=y
+CONFIG_TCG_TIS_I2C_ATMEL=y
+CONFIG_TCG_TIS_I2C_INFINEON=y
+CONFIG_TCG_TIS_I2C_NUVOTON=y
+CONFIG_TCG_NSC=y
+CONFIG_TCG_ATMEL=y
+CONFIG_TCG_INFINEON=y
+CONFIG_TCG_CRB=y
+CONFIG_TCG_VTPM_PROXY=y
+CONFIG_TCG_TIS_ST33ZP24=y
+CONFIG_TCG_TIS_ST33ZP24_I2C=y
+CONFIG_TCG_TIS_ST33ZP24_SPI=y
+CONFIG_I2C_MUX_PCA954X_BUSES_CREATE_FORCE=y
+"# CONFIG_SENSORS_IBMAEM is not set"
+"# CONFIG_SENSORS_IBMPEX is not set"
+"# CONFIG_TRUSTED_KEYS is not set"
+CONFIG_ENABLE_DEFAULT_TRACERS=y
+"# CONFIG_FTRACE_STARTUP_TEST is not set"
+)
+
+OPTIONS_TO_CHANGE=(
+CONFIG_HOTPLUG_PCI_PCIE=y
+CONFIG_HOTPLUG_PCI_ACPI=y
+CONFIG_HOTPLUG_PCI_SHPC=y
+CONFIG_EEPROM_AT24=y
+CONFIG_BROADCOM_PHY=y
+CONFIG_USB_USBNET=y
+CONFIG_DEVKMEM=y
+CONFIG_IPMI_HANDLER=y
+CONFIG_TCG_TPM=y
+CONFIG_I2C_ISMT=y
+CONFIG_GPIO_ICH=y
+CONFIG_X86_PKG_TEMP_THERMAL=y
+CONFIG_INTEL_PCH_THERMAL=y
+CONFIG_LPC_ICH=y
+CONFIG_SECURITYFS=y
+)
+
+OPTIONS_TO_COMMENT=(
+CONFIG_EEPROM_LEGACY
+CONFIG_I2C_MUX_REG
+CONFIG_I2C_MUX_MLXCPLD
+CONFIG_GENERIC_TRACER
+CONFIG_BLK_DEV_IO_TRACE
+)
+
+add_additional_options() {
+	for i in "${ADDITIONAL_OPTIONS[@]}"; do echo "$i" >> ${KERNEL_CONFIG_FILE}; done
+}
+
+modify_options() {
+	for i in "${OPTIONS_TO_CHANGE[@]}"; do
+		option=$(echo $i | cut -d= -f1);
+		sed -i "s/.*$option.*/$i/" ${KERNEL_CONFIG_FILE};
+	done
+}
+
+comment_options() {
+	for i in "${OPTIONS_TO_COMMENT[@]}"; do
+		sed -i "s/.*$i.*/# $i is not set/" ${KERNEL_CONFIG_FILE};
+	done
+}
+
+modify_options
+comment_options
+add_additional_options
diff --git a/agent/device/rlt-1600g-w/vendor.cc b/agent/device/rlt-1600g-w/vendor.cc
new file mode 100644
index 0000000..86836ff
--- /dev/null
+++ b/agent/device/rlt-1600g-w/vendor.cc
@@ -0,0 +1,21 @@
+/*
+ * Copyright 2018-present 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.
+ */
+
+#include "vendor.h"
+
+void vendor_init()
+{
+}
diff --git a/agent/device/rlt-1600g-w/vendor.h b/agent/device/rlt-1600g-w/vendor.h
new file mode 100644
index 0000000..a126063
--- /dev/null
+++ b/agent/device/rlt-1600g-w/vendor.h
@@ -0,0 +1,45 @@
+/*
+ * Copyright 2018-present 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.
+ */
+
+#ifndef __VENDOR_H__
+#define __VENDOR_H__
+#define VENDOR_ID "Radisys"
+#define RLT1600GW
+#define MODEL_ID  "rlt-1600g-w"
+#define MAX_SUPPORTED_PON 16 
+#define ONU_BIT_TRANSMISSION_DELAY 0.8038585/1000 /* unit: ns to us */
+#define MINIMUM_ONU_RESPONSE_RANGING_TIME 198075 /* hardcore: this is ranging time for the shortest distance, typically 35us */
+
+// DeviceInfo definitions
+
+#define ONU_ID_START 1
+#define ONU_ID_END 32
+#define MAX_ONUS_PER_PON (ONU_ID_END - ONU_ID_START + 1)
+
+#define MAX_ALLOC_ID_PER_ONU 4
+#define ALLOC_ID_START 256
+#define ALLOC_ID_END (ALLOC_ID_START + MAX_ONUS_PER_PON * MAX_ALLOC_ID_PER_ONU)
+
+#define GEM_PORT_ID_PER_ALLOC_ID 8
+#define GEM_PORT_ID_START 256
+#define GEM_PORT_ID_END (GEM_PORT_ID_START + MAX_ONUS_PER_PON * MAX_ALLOC_ID_PER_ONU * GEM_PORT_ID_PER_ALLOC_ID)
+
+#define FLOW_ID_START 1
+#define FLOW_ID_END 65535
+#define MAX_FLOW_ID FLOW_ID_END
+#define INVALID_FLOW_ID 0
+
+#endif
diff --git a/agent/device/rlt-1600x-w/mkdebian/build_rlt-1600x-w_deb.sh b/agent/device/rlt-1600x-w/mkdebian/build_rlt-1600x-w_deb.sh
new file mode 100755
index 0000000..e4cc706
--- /dev/null
+++ b/agent/device/rlt-1600x-w/mkdebian/build_rlt-1600x-w_deb.sh
@@ -0,0 +1,19 @@
+#!/bin/bash
+
+#Copyright 2018-present 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.
+
+
+export ONL_ARCH="amd64"
+dpkg-buildpackage -b -us -uc -a"$ONL_ARCH"
diff --git a/agent/device/rlt-1600x-w/mkdebian/debian/changelog b/agent/device/rlt-1600x-w/mkdebian/debian/changelog
new file mode 100644
index 0000000..cee6ace
--- /dev/null
+++ b/agent/device/rlt-1600x-w/mkdebian/debian/changelog
@@ -0,0 +1,7 @@
+rlt-1600x-w (3.4.9.8+radisys-V20210420) stable; urgency=high
+
+    * Based on code from SW-BCM686OLT_3_4_9_8.tgz.
+    * Patches required for BAL to support RLT-1600X-W has been merged to
+      PHOENIX_BAL_3.4.9.8_V20210420.patch.
+
+ -- Thiyagarajan Subramani <thiyagarajan.subramani@radisys.com>  Tue, 20 APR 2021 09:30:00 +0400
diff --git a/agent/device/rlt-1600x-w/mkdebian/debian/compat b/agent/device/rlt-1600x-w/mkdebian/debian/compat
new file mode 100644
index 0000000..ec63514
--- /dev/null
+++ b/agent/device/rlt-1600x-w/mkdebian/debian/compat
@@ -0,0 +1 @@
+9
diff --git a/agent/device/rlt-1600x-w/mkdebian/debian/control b/agent/device/rlt-1600x-w/mkdebian/debian/control
new file mode 100644
index 0000000..c6648d8
--- /dev/null
+++ b/agent/device/rlt-1600x-w/mkdebian/debian/control
@@ -0,0 +1,13 @@
+Source: rlt-1600x-w
+Section: misc
+Priority: optional
+Maintainer: Thiyagarajan Subramani  <thiyagarajan.subramani@radisys.com>
+Build-Depends: debhelper (>= 4.0.0)
+Standards-Version: 3.6.2
+
+Package: rlt-1600x-w
+Architecture: amd64
+Depends: ${shlibs:Depends}
+Description: Broadcom OLT drivers,CLI
+  ported from Broadcom SDK-3.4.9.8 package
+
diff --git a/agent/device/rlt-1600x-w/mkdebian/debian/copyright b/agent/device/rlt-1600x-w/mkdebian/debian/copyright
new file mode 100644
index 0000000..0e527f0
--- /dev/null
+++ b/agent/device/rlt-1600x-w/mkdebian/debian/copyright
@@ -0,0 +1 @@
+(C) Copyright Broadcom Corporation 2003-2016
diff --git a/agent/device/rlt-1600x-w/mkdebian/debian/files b/agent/device/rlt-1600x-w/mkdebian/debian/files
new file mode 100644
index 0000000..22c5d8f
--- /dev/null
+++ b/agent/device/rlt-1600x-w/mkdebian/debian/files
@@ -0,0 +1,3 @@
+rlt-1600x-w-dbgsym_3.4.9.8+radisys-V20210420_amd64.deb debug extra
+rlt-1600x-w_3.4.9.8+radisys-V20210420_amd64.buildinfo misc optional
+rlt-1600x-w_3.4.9.8+radisys-V20210420_amd64.deb misc optional
diff --git a/agent/device/rlt-1600x-w/mkdebian/debian/logrotate.d/openolt b/agent/device/rlt-1600x-w/mkdebian/debian/logrotate.d/openolt
new file mode 100644
index 0000000..480b59f
--- /dev/null
+++ b/agent/device/rlt-1600x-w/mkdebian/debian/logrotate.d/openolt
@@ -0,0 +1,10 @@
+/var/log/dev_mgmt_daemon.log
+/var/log/openolt.log
+{
+  rotate 7
+  daily
+  compress
+  missingok
+  delaycompress
+  copytruncate
+}
diff --git a/agent/device/rlt-1600x-w/mkdebian/debian/rlt-1600x-w.install b/agent/device/rlt-1600x-w/mkdebian/debian/rlt-1600x-w.install
new file mode 100644
index 0000000..ceeb05b
--- /dev/null
+++ b/agent/device/rlt-1600x-w/mkdebian/debian/rlt-1600x-w.install
@@ -0,0 +1 @@
+/tmp
diff --git a/agent/device/rlt-1600x-w/mkdebian/debian/rlt-1600x-w.postinst b/agent/device/rlt-1600x-w/mkdebian/debian/rlt-1600x-w.postinst
new file mode 100755
index 0000000..c78b44f
--- /dev/null
+++ b/agent/device/rlt-1600x-w/mkdebian/debian/rlt-1600x-w.postinst
@@ -0,0 +1,52 @@
+#!/bin/bash
+
+#Copyright 2018-present 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.
+
+rm -rf /opt/bcm686*
+rm -rf /broadcom
+tar zxf /tmp/release_rlt-1600x-w_V*.tar.gz -C / 2>&1 > /dev/null
+
+mkdir -p /opt/openolt && cp /tmp/watchdog/openolt_dev_mgmt_daemon_process_watchdog /opt/openolt && cp /tmp/watchdog/watchdog.config /opt/openolt
+
+sed -i -e '$i rm -rf \/tmp\/bcm68650_svk_init\/' /etc/rc.local
+[ -f /opt/openolt/openolt_dev_mgmt_daemon_process_watchdog ] && grep -q '\/opt\/openolt\/openolt_dev_mgmt_daemon_process_watchdog' /etc/rc.local || sed -i -e '$i nohup bash \/opt\/openolt\/openolt_dev_mgmt_daemon_process_watchdog &' /etc/rc.local
+
+rm -f /tmp/release_rlt-1600x-w_V*.tar.gz
+rm -f /run/bcm686*
+
+
+mv /tmp/openolt /broadcom
+mv /tmp/libz.so.1 /usr/local/lib
+mv /tmp/libstdc++.so.6 /usr/local/lib
+mv /tmp/libbal_host_api.so /usr/local/lib
+
+cp /tmp/logrotate.d/openolt /etc/logrotate.d
+chmod +x /opt/openolt/openolt_dev_mgmt_daemon_process_watchdog
+
+cp /tmp/init.d/dev_mgmt_daemon /etc/init.d
+chmod +x /etc/init.d/dev_mgmt_daemon
+update-rc.d dev_mgmt_daemon defaults
+[ "A`cat ~/.bashrc| grep LD_LIBRARY_PATH`" = "A" ] && echo "export LD_LIBRARY_PATH=/broadcom:\$LD_LIBRARY_PATH" >> ~/.bashrc; . ~/.bashrc
+ldconfig /broadcom
+ln -s /broadcom/libbal_core_real.*.so /broadcom/libbal_core.so
+#cd /broadcom/ && export LD_LIBRARY_PATH=LD_LIBRARY_PATH:/broadcom && ./dev_mgmt_daemon -d -pcie
+service dev_mgmt_daemon start
+echo "Wait for 30 sec for BAL to be ready"
+sleep 30
+
+cp /tmp/init.d/openolt /etc/init.d
+chmod +x /etc/init.d/openolt
+update-rc.d openolt defaults
+service openolt start
diff --git a/agent/device/rlt-1600x-w/mkdebian/debian/rlt-1600x-w.postrm b/agent/device/rlt-1600x-w/mkdebian/debian/rlt-1600x-w.postrm
new file mode 100755
index 0000000..fd44b74
--- /dev/null
+++ b/agent/device/rlt-1600x-w/mkdebian/debian/rlt-1600x-w.postrm
@@ -0,0 +1,51 @@
+#!/bin/bash
+
+#Copyright 2018-present 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.
+
+# kill CLI applications
+echo "kill running time application"
+[ -n "`pidof openolt`" ] && service openolt stop
+[ -n "`pidof openolt`" ] && killall openolt
+[ -n "`pidof dev_mgmt_daemon`" ] && service dev_mgmt_daemon stop
+[ -n "`pidof dev_mgmt_daemon`" ] && killall dev_mgmt_daemon
+[ -n "`pidof bcm.user`" ] && killall bcm.user
+[ -n "`pidof dev_mgmt_attach`" ] && killall dev_mgmt_attach
+[ -n "`pidof embedded_console`" ] && killall embedded_console
+[ -n "`pidof example_user_appl`" ] && killall example_user_appl
+
+rm -f /tmp/root_dev_mgmt_pid /tmp/root_dev_mgmt_init_done
+sleep 3
+
+if [ -d /opt/bcm68650 ]; then
+    bash /opt/bcm68650/svk_init.sh -clean
+    sleep 3
+fi
+
+rm -rf /tmp/bcm68650_svk_init/
+
+rm -rf /opt/bcm68650
+rm -rf /opt/openolt
+rm -rf /broadcom
+
+sed -i '\/rm -rf \/tmp\/bcm68650_svk_init/d' /etc/rc.local
+sed -i '\/nohup bash \/opt\/openolt\/openolt_dev_mgmt_daemon_process_watchdog &/d' /etc/rc.local
+
+rm -rf /run/bcm68650
+rm -rf /usr/local/lib/libz.so.1
+rm -rf /usr/local/lib/libbal_host_api.so
+rm -rf /usr/local/lib/libstdc++.so.6
+rm -f /etc/init.d/openolt
+rm -f /etc/init.d/dev_mgmt_daemon
+rm -f /etc/logrotate.d/openolt
diff --git a/agent/device/rlt-1600x-w/mkdebian/debian/rlt-1600x-w.preinst b/agent/device/rlt-1600x-w/mkdebian/debian/rlt-1600x-w.preinst
new file mode 100755
index 0000000..fd44b74
--- /dev/null
+++ b/agent/device/rlt-1600x-w/mkdebian/debian/rlt-1600x-w.preinst
@@ -0,0 +1,51 @@
+#!/bin/bash
+
+#Copyright 2018-present 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.
+
+# kill CLI applications
+echo "kill running time application"
+[ -n "`pidof openolt`" ] && service openolt stop
+[ -n "`pidof openolt`" ] && killall openolt
+[ -n "`pidof dev_mgmt_daemon`" ] && service dev_mgmt_daemon stop
+[ -n "`pidof dev_mgmt_daemon`" ] && killall dev_mgmt_daemon
+[ -n "`pidof bcm.user`" ] && killall bcm.user
+[ -n "`pidof dev_mgmt_attach`" ] && killall dev_mgmt_attach
+[ -n "`pidof embedded_console`" ] && killall embedded_console
+[ -n "`pidof example_user_appl`" ] && killall example_user_appl
+
+rm -f /tmp/root_dev_mgmt_pid /tmp/root_dev_mgmt_init_done
+sleep 3
+
+if [ -d /opt/bcm68650 ]; then
+    bash /opt/bcm68650/svk_init.sh -clean
+    sleep 3
+fi
+
+rm -rf /tmp/bcm68650_svk_init/
+
+rm -rf /opt/bcm68650
+rm -rf /opt/openolt
+rm -rf /broadcom
+
+sed -i '\/rm -rf \/tmp\/bcm68650_svk_init/d' /etc/rc.local
+sed -i '\/nohup bash \/opt\/openolt\/openolt_dev_mgmt_daemon_process_watchdog &/d' /etc/rc.local
+
+rm -rf /run/bcm68650
+rm -rf /usr/local/lib/libz.so.1
+rm -rf /usr/local/lib/libbal_host_api.so
+rm -rf /usr/local/lib/libstdc++.so.6
+rm -f /etc/init.d/openolt
+rm -f /etc/init.d/dev_mgmt_daemon
+rm -f /etc/logrotate.d/openolt
diff --git a/agent/device/rlt-1600x-w/mkdebian/debian/rules b/agent/device/rlt-1600x-w/mkdebian/debian/rules
new file mode 100755
index 0000000..1da531f
--- /dev/null
+++ b/agent/device/rlt-1600x-w/mkdebian/debian/rules
@@ -0,0 +1,74 @@
+#!/usr/bin/make -f
+# See debhelper(7) (uncomment to enable)
+# output every command that modifies files on the build system.
+#DH_VERBOSE = 1
+
+# see EXAMPLES in dpkg-buildflags(1) and read /usr/share/dpkg/*
+DPKG_EXPORT_BUILDFLAGS = 1
+include /usr/share/dpkg/default.mk
+
+# see FEATURE AREAS in dpkg-buildflags(1)
+#export DEB_BUILD_MAINT_OPTIONS = hardening=+all
+
+# see ENVIRONMENT in dpkg-buildflags(1)
+# package maintainers to append CFLAGS
+#export DEB_CFLAGS_MAINT_APPEND  = -Wall -pedantic
+# package maintainers to append LDFLAGS
+#export DEB_LDFLAGS_MAINT_APPEND = -Wl,--as-needed
+
+# main packaging script based on dh7 syntax
+%:
+	dh $@
+
+DOCS=LEGAL_TERMS README LICENSE_APACHE20
+
+DEB_DH_INSTALL_SOURCEDIR = $(CURDIR)/debian/tmp
+
+override_dh_auto_install:
+	mkdir -p $(DEB_DH_INSTALL_SOURCEDIR)/tmp
+	cp -a $(CURDIR)/debian/release_rlt-1600x-w_V*.tar.gz $(DEB_DH_INSTALL_SOURCEDIR)/tmp
+	cp -a $(CURDIR)/debian/libz.so.1 $(DEB_DH_INSTALL_SOURCEDIR)/tmp
+	cp -a $(CURDIR)/debian/libstdc++.so.6 $(DEB_DH_INSTALL_SOURCEDIR)/tmp
+	cp -a $(CURDIR)/debian/libbal_host_api.so $(DEB_DH_INSTALL_SOURCEDIR)/tmp
+	cp -a $(CURDIR)/debian/openolt $(DEB_DH_INSTALL_SOURCEDIR)/tmp
+	cp -a $(CURDIR)/debian/init.d $(DEB_DH_INSTALL_SOURCEDIR)/tmp
+	cp -a $(CURDIR)/debian/logrotate.d $(DEB_DH_INSTALL_SOURCEDIR)/tmp
+	cp -a $(CURDIR)/debian/watchdog $(DEB_DH_INSTALL_SOURCEDIR)/tmp
+
+#override_dh_shlibdeps:
+#	dh_shlibdeps --dpkg-shlibdeps-params=--ignore-missing-info -l$(ONLP_LIB_PATH):$(OFDPA_LIB_PATH)
+
+# avoid auto strip for debug ofagentapp.dbg
+#
+#override_dh_strip:
+#	echo "No auto strip!"
+
+#override_dh_installdeb:
+#	dh_installdeb
+#	for pkg in $$(dh_listpackages); do \
+#		sed -i -e 's!#DEB_SOURCE#!$(DEB_SOURCE)!' debian/$$pkg/DEBIAN/*; \
+#		sed -i -e 's!#OPDPA_VER_SUFFIX#!-$(OPDPA_VER)!g' debian/$$pkg/DEBIAN/*; \
+#	done
+
+test:
+	@echo DEB_SOURCE=$(DEB_SOURCE)
+	@echo DEB_VERSION=$(DEB_VERSION)
+	@echo DEB_VERSION_EPOCH_UPSTREAM=$(DEB_VERSION_EPOCH_UPSTREAM)
+	@echo DEB_VERSION_UPSTREAM_REVISION=$(DEB_VERSION_UPSTREAM_REVISION)
+	@echo DEB_VERSION_UPSTREAM=$(DEB_VERSION_UPSTREAM)
+	@echo DEB_DISTRIBUTION=$(DEB_DISTRIBUTION)
+	@echo DEB_HOST_ARCH=$(DEB_HOST_ARCH)
+	@echo DEB_HOST_ARCH_CPU=$(DEB_HOST_ARCH_CPU)
+	@echo DEB_HOST_ARCH_OS=$(DEB_HOST_ARCH_OS)
+	@echo DEB_HOST_GNU_TYPE=$(DEB_HOST_GNU_TYPE)
+	@echo DEB_HOST_GNU_CPU=$(DEB_HOST_GNU_CPU)
+	@echo DEB_HOST_GNU_SYSTEM=$(DEB_HOST_GNU_SYSTEM)
+	@echo DEB_BUILD_ARCH=$(DEB_BUILD_ARCH)
+	@echo DEB_BUILD_ARCH_CPU=$(DEB_BUILD_ARCH_CPU)
+	@echo DEB_BUILD_ARCH_OS=$(DEB_BUILD_ARCH_OS)
+	@echo DEB_BUILD_GNU_TYPE=$(DEB_BUILD_GNU_TYPE)
+	@echo DEB_BUILD_GNU_CPU=$(DEB_BUILD_GNU_CPU)
+	@echo DEB_BUILD_GNU_SYSTEM=$(DEB_BUILD_GNU_SYSTEM)
+	@echo ONLP_LIB_PATH=$(ONLP_LIB_PATH)
+#	@echo OFDPA_LIB_PATH=$(OFDPA_LIB_PATH)
+#	@echo OFDPA_BIN_PATH=$(OFDPA_BIN_PATH)
diff --git a/agent/device/rlt-1600x-w/update_kernel_options.sh b/agent/device/rlt-1600x-w/update_kernel_options.sh
new file mode 100755
index 0000000..0ff4c42
--- /dev/null
+++ b/agent/device/rlt-1600x-w/update_kernel_options.sh
@@ -0,0 +1,140 @@
+#!/bin/bash
+
+#Copyright 2018-present 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.
+
+TOPDIR=`pwd`
+KERNEL_CONFIG_FILE=${TOPDIR}/packages/base/any/kernels/4.19-lts/configs/x86_64-all/x86_64-all.config
+
+ADDITIONAL_OPTIONS=(
+CONFIG_CC_IS_GCC=y
+CONFIG_GCC_VERSION=80300
+CONFIG_CLANG_VERSION=0
+CONFIG_CC_HAS_ASM_GOTO=y
+CONFIG_IRQ_WORK=y
+CONFIG_BUILDTIME_EXTABLE_SORT=y
+CONFIG_THREAD_INFO_IN_TASK=y
+"# CONFIG_ACPI_IPMI is not set"
+CONFIG_HOTPLUG_PCI_ACPI_IBM=y
+CONFIG_BCM_NET_PHYLIB=y
+CONFIG_USB_NET_AX8817X=y
+CONFIG_USB_NET_AX88179_178A=y
+CONFIG_USB_NET_CDCETHER=y
+CONFIG_USB_NET_CDC_EEM=y
+CONFIG_USB_NET_CDC_NCM=y
+"# CONFIG_USB_NET_HUAWEI_CDC_NCM is not set"
+"# CONFIG_USB_NET_CDC_MBIM is not set"
+"# CONFIG_USB_NET_DM9601 is not set"
+"# CONFIG_USB_NET_SR9700 is not set"
+"# CONFIG_USB_NET_SR9800 is not set"
+"# CONFIG_USB_NET_SMSC75XX is not set"
+"# CONFIG_USB_NET_SMSC95XX is not set"
+"# CONFIG_USB_NET_GL620A is not set"
+CONFIG_USB_NET_NET1080=y
+"# CONFIG_USB_NET_PLUSB is not set"
+"# CONFIG_USB_NET_MCS7830 is not set"
+"# CONFIG_USB_NET_RNDIS_HOST is not set"
+CONFIG_USB_NET_CDC_SUBSET_ENABLE=y
+CONFIG_USB_NET_CDC_SUBSET=y
+"# CONFIG_USB_ALI_M5632 is not set"
+"# CONFIG_USB_AN2720 is not set"
+CONFIG_USB_BELKIN=y
+CONFIG_USB_ARMLINUX=y
+"# CONFIG_USB_EPSON2888 is not set"
+"# CONFIG_USB_KC2190 is not set"
+CONFIG_USB_NET_ZAURUS=y
+"# CONFIG_USB_NET_CX82310_ETH is not set"
+"# CONFIG_USB_NET_KALMIA is not set"
+"# CONFIG_USB_NET_QMI_WWAN is not set"
+"# CONFIG_USB_NET_INT51X1 is not set"
+"# CONFIG_USB_SIERRA_NET is not set"
+"# CONFIG_USB_VL600 is not set"
+"# CONFIG_USB_NET_CH9200 is not set"
+CONFIG_IPMI_DMI_DECODE=y
+CONFIG_IPMI_PANIC_EVENT=y
+"# CONFIG_IPMI_PANIC_STRING is not set"
+CONFIG_IPMI_DEVICE_INTERFACE=y
+CONFIG_IPMI_SI=y
+"# CONFIG_IPMI_SSIF is not set"
+"# CONFIG_IPMI_WATCHDOG is not set"
+CONFIG_IPMI_POWEROFF=y
+CONFIG_HW_RANDOM_TPM=y
+CONFIG_TCG_TIS_CORE=y
+CONFIG_TCG_TIS=y
+CONFIG_TCG_TIS_SPI=y
+CONFIG_TCG_TIS_I2C_ATMEL=y
+CONFIG_TCG_TIS_I2C_INFINEON=y
+CONFIG_TCG_TIS_I2C_NUVOTON=y
+CONFIG_TCG_NSC=y
+CONFIG_TCG_ATMEL=y
+CONFIG_TCG_INFINEON=y
+CONFIG_TCG_CRB=y
+CONFIG_TCG_VTPM_PROXY=y
+CONFIG_TCG_TIS_ST33ZP24=y
+CONFIG_TCG_TIS_ST33ZP24_I2C=y
+CONFIG_TCG_TIS_ST33ZP24_SPI=y
+CONFIG_I2C_MUX_PCA954X_BUSES_CREATE_FORCE=y
+"# CONFIG_SENSORS_IBMAEM is not set"
+"# CONFIG_SENSORS_IBMPEX is not set"
+"# CONFIG_TRUSTED_KEYS is not set"
+CONFIG_ENABLE_DEFAULT_TRACERS=y
+"# CONFIG_FTRACE_STARTUP_TEST is not set"
+)
+
+OPTIONS_TO_CHANGE=(
+CONFIG_HOTPLUG_PCI_PCIE=y
+CONFIG_HOTPLUG_PCI_ACPI=y
+CONFIG_HOTPLUG_PCI_SHPC=y
+CONFIG_EEPROM_AT24=y
+CONFIG_BROADCOM_PHY=y
+CONFIG_USB_USBNET=y
+CONFIG_DEVKMEM=y
+CONFIG_IPMI_HANDLER=y
+CONFIG_TCG_TPM=y
+CONFIG_I2C_ISMT=y
+CONFIG_GPIO_ICH=y
+CONFIG_X86_PKG_TEMP_THERMAL=y
+CONFIG_INTEL_PCH_THERMAL=y
+CONFIG_LPC_ICH=y
+CONFIG_SECURITYFS=y
+)
+
+OPTIONS_TO_COMMENT=(
+CONFIG_EEPROM_LEGACY
+CONFIG_I2C_MUX_REG
+CONFIG_I2C_MUX_MLXCPLD
+CONFIG_GENERIC_TRACER
+CONFIG_BLK_DEV_IO_TRACE
+)
+
+add_additional_options() {
+	for i in "${ADDITIONAL_OPTIONS[@]}"; do echo "$i" >> ${KERNEL_CONFIG_FILE}; done
+}
+
+modify_options() {
+	for i in "${OPTIONS_TO_CHANGE[@]}"; do
+		option=$(echo $i | cut -d= -f1);
+		sed -i "s/.*$option.*/$i/" ${KERNEL_CONFIG_FILE};
+	done
+}
+
+comment_options() {
+	for i in "${OPTIONS_TO_COMMENT[@]}"; do
+		sed -i "s/.*$i.*/# $i is not set/" ${KERNEL_CONFIG_FILE};
+	done
+}
+
+modify_options
+comment_options
+add_additional_options
diff --git a/agent/device/rlt-1600x-w/vendor.cc b/agent/device/rlt-1600x-w/vendor.cc
new file mode 100644
index 0000000..86836ff
--- /dev/null
+++ b/agent/device/rlt-1600x-w/vendor.cc
@@ -0,0 +1,21 @@
+/*
+ * Copyright 2018-present 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.
+ */
+
+#include "vendor.h"
+
+void vendor_init()
+{
+}
diff --git a/agent/device/rlt-1600x-w/vendor.h b/agent/device/rlt-1600x-w/vendor.h
new file mode 100644
index 0000000..80410a3
--- /dev/null
+++ b/agent/device/rlt-1600x-w/vendor.h
@@ -0,0 +1,45 @@
+/*
+ * Copyright 2018-present 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.
+ */
+
+#ifndef __VENDOR_H__
+#define __VENDOR_H__
+#define VENDOR_ID "Radisys"
+#define RLT1600XW
+#define MODEL_ID  "rlt-1600x-w"
+#define MAX_SUPPORTED_PON 16 
+#define ONU_BIT_TRANSMISSION_DELAY 0.8038585/1000 /* unit: ns to us */
+#define MINIMUM_ONU_RESPONSE_RANGING_TIME 198075 /* hardcore: this is ranging time for the shortest distance, typically 35us */
+
+// DeviceInfo definitions
+
+#define ONU_ID_START 1
+#define ONU_ID_END 32
+#define MAX_ONUS_PER_PON (ONU_ID_END - ONU_ID_START + 1)
+
+#define MAX_ALLOC_ID_PER_ONU 4
+#define ALLOC_ID_START 256
+#define ALLOC_ID_END (ALLOC_ID_START + MAX_ONUS_PER_PON * MAX_ALLOC_ID_PER_ONU)
+
+#define GEM_PORT_ID_PER_ALLOC_ID 8
+#define GEM_PORT_ID_START 256
+#define GEM_PORT_ID_END (GEM_PORT_ID_START + MAX_ONUS_PER_PON * MAX_ALLOC_ID_PER_ONU * GEM_PORT_ID_PER_ALLOC_ID)
+
+#define FLOW_ID_START 1
+#define FLOW_ID_END 65535
+#define MAX_FLOW_ID FLOW_ID_END
+#define INVALID_FLOW_ID 0
+
+#endif
diff --git a/agent/device/rlt-3200g-w/vendor.h b/agent/device/rlt-3200g-w/vendor.h
index e77c183..761bb53 100644
--- a/agent/device/rlt-3200g-w/vendor.h
+++ b/agent/device/rlt-3200g-w/vendor.h
@@ -19,7 +19,7 @@
 #define VENDOR_ID "Radisys"
 #define RLT3200GW
 #define MODEL_ID  "rlt-3200g-w"
-#define MAX_SUPPORTED_PON 64
+#define MAX_SUPPORTED_PON 32
 #define ONU_BIT_TRANSMISSION_DELAY 0.8038585/1000 /* unit: ns to us */
 #define MINIMUM_ONU_RESPONSE_RANGING_TIME 198075 /* hardcore: this is ranging time for the shortest distance, typically 35us */
 
diff --git a/agent/scripts/init.d/dev_mgmt_daemon b/agent/scripts/init.d/dev_mgmt_daemon
index 6500ac7..647ab92 100755
--- a/agent/scripts/init.d/dev_mgmt_daemon
+++ b/agent/scripts/init.d/dev_mgmt_daemon
@@ -43,7 +43,7 @@
     [ "$Port_100G_SPEED" = "10000" ] && TOPOLOGY_CONFIG_FILE="$APPDIR/topology_config_16_ports.ini"
     Port_25G_SPEED=`cat $PORT_SPEED_FILE | awk -F "port_speed_for_25 " '{print $2}'`
     APPARGS="-pcie -d -port_100g_speed $Port_100G_SPEED -pcie -port_25g_speed $Port_25G_SPEED -topology_config_file $TOPOLOGY_CONFIG_FILE"
-elif [ "$OLT_MODEL" = "RLT-3200G" ] || [ "$OLT_MODEL" = "RLT-3200X" ] || [ "$OLT_MODEL" = "RLT-1600G" ] || [ "$OLT_MODEL" = "RLT-1600X" ]; then
+elif [ "$OLT_MODEL" = "RLT-3200G" ] || [ "$OLT_MODEL" = "RLT-1600G" ] || [ "$OLT_MODEL" = "RLT-1600X" ]; then
     APPARGS="-pcie -d"
 else
     Port_100G_SPEED="100000"
@@ -58,7 +58,7 @@
 start() {
   if [ "$OLT_MODEL" = "ASGvOLT64" ] || [ "$OLT_MODEL" = "ASXvOLT16" ]; then
     /opt/bcm68620/svk_init.sh
-  elif [ "$OLT_MODEL" = "RLT-3200G" ] || [ "$OLT_MODEL" = "RLT-3200X" ] || [ "$OLT_MODEL" = "RLT-1600G" ] || [ "$OLT_MODEL" = "RLT-1600X" ]; then
+  elif [ "$OLT_MODEL" = "RLT-3200G" ] || [ "$OLT_MODEL" = "RLT-1600G" ] || [ "$OLT_MODEL" = "RLT-1600X" ]; then
     /opt/bcm68650/svk_init.sh
   fi
 
diff --git a/agent/src/core_api_handler.cc b/agent/src/core_api_handler.cc
index 1579a4f..e72fc36 100644
--- a/agent/src/core_api_handler.cc
+++ b/agent/src/core_api_handler.cc
@@ -402,6 +402,14 @@
                 dev_key.device_id = dev;
                 BCMOLT_CFG_INIT(&dev_cfg, device, dev_key);
                 BCMOLT_MSG_FIELD_GET(&dev_cfg, system_mode);
+
+		/* FIXME: Single Phoenix BAL patch is prepared for all three variants of Radisys OLT
+		 * in which BCM_MAX_DEVS_PER_LINE_CARD macro need to be redefined as 1 incase of
+		 * "rlt-1600g-w" and "rlt-1600x-w", till then this workaround is required.*/
+                if (dev == 1 && (MODEL_ID == "rlt-1600g-w" || MODEL_ID == "rlt-1600x-w")) {
+		    continue;
+		}
+
                 err = bcmolt_cfg_get(dev_id, &dev_cfg.hdr);
                 if (err == BCM_ERR_NOT_CONNECTED) {
                     bcmolt_device_key key = {.device_id = dev};
@@ -420,7 +428,7 @@
                         BCMOLT_MSG_FIELD_SET(&oper, inni_config.mode, BCMOLT_INNI_MODE_ALL_10_G_XFI);
                         BCMOLT_MSG_FIELD_SET(&oper, inni_config.mux, BCMOLT_INNI_MUX_FOUR_TO_ONE);
                         BCMOLT_MSG_FIELD_SET (&oper, system_mode, BCMOLT_SYSTEM_MODE_GPON__16_X);
-                    } else if (MODEL_ID == "rlt-3200g-w") {
+                    } else if (MODEL_ID == "rlt-3200g-w" || MODEL_ID == "rlt-1600g-w") {
                         BCMOLT_MSG_FIELD_SET(&oper, inni_config.mux, BCMOLT_INNI_MUX_NONE);
                         if(dev == 1) {
                             BCMOLT_MSG_FIELD_SET(&oper, inni_config.mux, BCMOLT_INNI_MUX_FOUR_TO_ONE);
@@ -428,6 +436,14 @@
                         BCMOLT_MSG_FIELD_SET (&oper, ras_ddr_mode, BCMOLT_RAS_DDR_USAGE_MODE_TWO_DDRS);
                         BCMOLT_MSG_FIELD_SET(&oper, inni_config.mode, BCMOLT_INNI_MODE_ALL_10_G_XFI);
                         BCMOLT_MSG_FIELD_SET (&oper, system_mode, BCMOLT_SYSTEM_MODE_GPON__16_X);
+                    } else if (MODEL_ID == "rlt-1600x-w") {
+                        BCMOLT_MSG_FIELD_SET(&oper, inni_config.mux, BCMOLT_INNI_MUX_NONE);
+                        BCMOLT_MSG_FIELD_SET (&oper, ras_ddr_mode, BCMOLT_RAS_DDR_USAGE_MODE_TWO_DDRS);
+                        BCMOLT_MSG_FIELD_SET(&oper, inni_config.mode, BCMOLT_INNI_MODE_ALL_10_G_XFI);
+                        /* By default setting device mode to GPON for rlt 1600x.
+                           In future device mode can be configured to XGSPON || GPON by reading
+                           device mode configuration from a static configuration file*/
+                        BCMOLT_MSG_FIELD_SET (&oper, system_mode, BCMOLT_SYSTEM_MODE_GPON__16_X);
                     }
                     err = bcmolt_oper_submit(dev_id, &oper.hdr);
                     if (err) {
@@ -441,7 +457,7 @@
                     bcmos_usleep(200000);
                 }
                 else {
-                    OPENOLT_LOG(WARNING, openolt_log_id, "PON deivce %d already connected\n", dev);
+                    OPENOLT_LOG(WARNING, openolt_log_id, "PON device %d already connected\n", dev);
                     state.activate();
                 }
             }
