diff --git a/scripts/bbf_device_aggregation.exp b/scripts/bbf_device_aggregation.exp
new file mode 100644
index 0000000..a5c926b
--- /dev/null
+++ b/scripts/bbf_device_aggregation.exp
@@ -0,0 +1,126 @@
+# Copyright 2021-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.
+#!/usr/bin/expect -f
+#
+# This Expect script was generated by autoexpect on Wed Aug 17 22:24:22 2022
+# Expect and autoexpect were both written by Don Libes, NIST.
+#
+# Note that autoexpect does not guarantee a working script.  It
+# necessarily has to guess about certain things.  Two reasons a script
+# might fail are:
+#
+# 1) timing - A surprising number of programs (rn, ksh, zsh, telnet,
+# etc.) and devices discard or ignore keystrokes that arrive "too
+# quickly" after prompts.  If you find your new script hanging up at
+# one spot, try adding a short sleep just before the previous send.
+# Setting "force_conservative" to 1 (see below) makes Expect do this
+# automatically - pausing briefly before sending each character.  This
+# pacifies every program I know of.  The -c flag makes the script do
+# this in the first place.  The -C flag allows you to define a
+# character to toggle this mode off and on.
+
+set force_conservative 0  ;# set to 1 to force conservative mode even if
+			  ;# script wasn't run conservatively originally
+if {$force_conservative} {
+	set send_slow {1 .1}
+	proc send {ignore arg} {
+		sleep .1
+		exp_send -s -- $arg
+	}
+}
+
+#
+# 2) differing output - Some programs produce different output each time
+# they run.  The "date" command is an obvious example.  Another is
+# ftp, if it produces throughput statistics at the end of a file
+# transfer.  If this causes a problem, delete these patterns or replace
+# them with wildcards.  An alternative is to use the -p flag (for
+# "prompt") which makes Expect only look for the last line of output
+# (i.e., the prompt).  The -P flag allows you to define a character to
+# toggle this mode off and on.
+#
+# Read the man page for more info.
+#
+# -Don
+
+set bbfPodName [lindex $argv 0]
+
+set timeout 5
+spawn ssh -p 50022 voltha@localhost
+match_max 100000
+
+expect {
+	{Are you sure you want to continue connecting (yes/no/\[fingerprint\])? }
+	{ send -- "yes\r"
+	expect "voltha@localhost's password: "
+	send -- "onf\r"
+	expect -exact "$bbfPodName:~\$"
+	send -- "netopeer2-cli\r"
+	expect -exact "> "
+	send -- "searchpath /etc/sysrepo/yang\r"
+	expect -exact "> "
+	send -- "ext-data /schema-mount.xml\r"
+	expect -exact "> "
+	send -- "connect --login voltha\r"
+	expect -exact "Are you sure you want to continue connecting (yes/no)? "
+	send -- "yes\r"
+	expect -exact "Password: "
+	send -- "onf\r"
+	expect -exact "> "
+	send -- "get-data --datastore operational --filter-xpath /bbf-device-aggregation:* --out output.xml"
+	expect -exact "get-data --datastore operational --filter-xpath /bbf-device-aggregation:* --out output.xml"
+	send -- "\r"
+	expect -exact "> "
+	send -- ""
+	expect -exact "$bbfPodName:~\$ \[6n"
+	expect eof ; exp_continue}
+
+	"voltha@localhost's password: " {
+	send -- "onf\r"
+	expect -exact "$bbfPodName:~\$"
+	send -- "netopeer2-cli\r"
+	expect -exact "> "
+	send -- "searchpath /etc/sysrepo/yang\r"
+	expect -exact "> "
+	send -- "ext-data /schema-mount.xml\r"
+	expect -exact "> "
+	send -- "connect --login voltha\r"
+	expect {
+		"Are you sure you want to continue connecting (yes/no)? "	{
+		send -- "yes\r"
+		expect -exact "Password: "
+		send -- "onf\r"
+		expect -exact "> "
+		send -- "get-data --datastore operational --filter-xpath /bbf-device-aggregation:* --out output.xml"
+		expect -exact "get-data --datastore operational --filter-xpath /bbf-device-aggregation:* --out output.xml"
+		send -- "\r"
+		expect -exact "> "
+		send -- ""
+		expect -exact "$bbfPodName:~\$ \[6n"
+		expect eof ; exp_continue}
+
+		"Password: " {
+		send -- "onf\r"
+		expect -exact "> "
+		send -- "get-data --datastore operational --filter-xpath /bbf-device-aggregation:* --out output.xml"
+		expect -exact "get-data --datastore operational --filter-xpath /bbf-device-aggregation:* --out output.xml"
+		send -- "\r"
+		expect -exact "> "
+		send -- ""
+		expect -exact "$bbfPodName:~\$ \[6n"
+		expect eof ; exp_continue}
+	}
+	}
+}
+exit 0
\ No newline at end of file
