diff --git a/mininet/Chart.yaml b/mininet/Chart.yaml
index d3e94e1..c668bcb 100644
--- a/mininet/Chart.yaml
+++ b/mininet/Chart.yaml
@@ -17,4 +17,4 @@
 appVersion: 1.0.0
 description: A Helm chart for Mininet
 name: mininet
-version: 1.1.0
+version: 1.1.1
diff --git a/mininet/toposcripts/topo_sdbng.py b/mininet/toposcripts/topo_sdbng.py
new file mode 100644
index 0000000..0fb1683
--- /dev/null
+++ b/mininet/toposcripts/topo_sdbng.py
@@ -0,0 +1,77 @@
+#!/usr/bin/python
+
+# Copyright 2019-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.
+
+from mininet.cli import CLI
+from mininet.log import setLogLevel, info, error
+from mininet.net import Mininet
+from mininet.link import Intf
+from mininet.nodelib import LinuxBridge
+from stratum import StratumBmv2Switch
+from mininet.util import quietRun
+
+CPU_PORT = 255
+
+if __name__ == '__main__':
+    setLogLevel( 'info' )
+
+    net = Mininet( topo=None )
+
+    info( '*** Adding switches\n' )
+    agg1 = net.addSwitch( name='agg1', cls=StratumBmv2Switch, cpuport=CPU_PORT)
+    # FIXME: enable multicast
+    # s2 = net.addSwitch( 's2', cls=LinuxBridge )
+
+    info( '*** Creating hosts\n' )
+    h1 = net.addHost( 'h1' ) # PPPoE Server
+    h2 = net.addHost( 'h2', ip='10.10.10.1/24' ) # Upstream
+    # FIXME: enable multicast
+    # h3 = net.addHost( 'h3')
+
+    # Topology: pon1 - eth1 - agg1 - h2 - s2 - h3
+    #                          |
+    #                          h1
+    net.addLink( h1, agg1 )
+    net.addLink( h2, agg1 )
+    # FIXME: enable multicast
+    # net.addLink( h2, s2 )
+    # net.addLink( h3, s2 )
+
+{{- range $i, $junk := until (.Values.numOlts|int) -}}
+{{- $intf := printf "eth%d" (add $i 1) }}
+
+    info( '*** Adding hardware interface {{ $intf }} to switch agg1\n')
+    _intf = Intf( '{{ $intf }}', node=agg1 )
+
+    info( '*** Turning off checksum offloading for {{ $intf }}\n' )
+    print quietRun( 'ethtool -K {{ $intf }} tx off rx off' )
+{{- end }}
+
+
+# FIXME: enable multicast
+# {{- if .Values.enableMulticast }}
+#     info( '*** Start multicast routing on h1 and source on h2\n')
+#     h2.cmd( 'service pimd start' )
+#     h3.cmd( 'mcjoin -s -i h2-eth0 -t 2 >& /tmp/mcjoin.log &')
+# {{- end }}
+
+    net.start()
+    info( '*** Starting PPPoE Server')
+    h1.cmd( 'echo 10.255.255.100-250 > /iptoassign')
+    h1.cmd( 'pppoe-server -I h1-eth0 -L 10.255.255.1 -p /iptoassign -O /pppoe-options')
+    info( '*** Setting route back to access network')
+    h2.cmd( 'ip route add 10.255.255.0/24 via 10.10.10.254')
+    CLI( net )
+    net.stop()
