BNG role with qinq interface

Hi, I am trying to work through the best way to deploy a Mikrotik CCR2116-12G-4s+ as a BNG for pppoe sessions from a wholesale carrier. The carrier provides an ENNI handover, over which the pppoe traffic is qinq tagged where each customer has a unique s-vlan/c-vlan combination.

cust1 - s-vlan 3000, c-vlan 10
cust2 - s-vlan 3000, c-vlan 11
custx - s-vlan 3001, c-vlan 10
etc

So far with my lab config I am finding for each customer you have to create the qinq interface. Also, a pppoe server for each qinq interface.
I wondered if there was a more efficient way of handling this type of service with less repetitive config.

This forum post seems to suggest another way to deploy this type of service using a bridge with a single pppoe server.
http://forum.mikrotik.com/t/stability-multiple-pppoe-servers-10-at-the-same-router-is-there-any-alternatives/139447/1

But I cannot find an example of this and all combinations I have tried don’t seem to work.
Can anyone help with an example config of a qinq interface and a bridge with a single pppoe server as suggested in the above article.
Or another approach to reduce the amount of config per new customer.

Any help is much appreciated.


current lab config
Screenshot 2024-05-29 at 16.08.23.png

[admin@bng1.mt-lab.net] > /export show-sensitive 
# 1970-01-02 00:08:52 by RouterOS 7.13.5
#
# model = CCR2116-12G-4S+
/interface bridge
add name=bridge
add name=loopback0
/interface ethernet
set [ find default-name=sfp-sfpplus1 ] l2mtu=9100 mtu=9000
set [ find default-name=sfp-sfpplus2 ] l2mtu=9100 mtu=9000
set [ find default-name=sfp-sfpplus4 ] l2mtu=9100 mtu=9000
/interface vlan
add interface=bridge mtu=1600 name=vlan67 vlan-id=67
/interface bonding
add mode=802.3ad mtu=9000 name=po1 slaves=sfp-sfpplus2,sfp-sfpplus4
add mode=802.3ad mtu=9000 name=po2 slaves=sfp-sfpplus1
/interface vlan
add interface=po2 name=svlan3000 vlan-id=3000
add interface=svlan3000 name=svlan3000-cvlan10 vlan-id=10
add interface=po2 name=svlan3001 vlan-id=3001
add interface=svlan3001 name=svlan3001-cvlan11 vlan-id=11
/ip pool
add name=pppoe-range ranges=100.64.0.1-100.64.0.254
/ppp profile
add change-tcp-mss=yes local-address=192.0.2.240 name=ppp-profile0 only-one=yes remote-address=pppoe-range use-compression=no use-encryption=no \
    use-mpls=no use-upnp=no
/interface bridge port
add bridge=bridge interface=po1
/interface bridge vlan
add bridge=bridge tagged=bridge,po1 vlan-ids=67
/interface pppoe-server server
add authentication=chap default-profile=ppp-profile0 disabled=no interface=svlan3000-cvlan10 max-mru=1500 max-mtu=1500 one-session-per-host=yes \
    service-name=3000-10
add authentication=chap default-profile=ppp-profile0 disabled=no interface=svlan3001-cvlan11 max-mru=1500 max-mtu=1500 one-session-per-host=yes \
    service-name=3001-11
/ip address
add address=192.0.2.5/28 interface=vlan67 network=192.0.2.0
add address=192.0.2.240 interface=loopback0 network=192.0.2.240
/ip route
add disabled=no dst-address=0.0.0.0/0 gateway=192.0.2.3 routing-table=main suppress-hw-offload=no
/ppp secret
add name=test1@mt-lab.net password=password1 profile=ppp-profile0
add name=test2@mt-lab.net password=password1 profile=ppp-profile0

For anyone who reads this post and is looking to do something similar.
There is a nice blog entry from linitx explaining the options and a new feature in 7.17.

https://blog.linitx.com/mikrotik-vlan-aware-pppoe-server-routeros-7-17/

be aware this is old style config (“new” bridge vlan filtering It has existed for more than 7 years)

this kind of config can be in “misconfiguration” territory
Layer2 misconfiguration
https://help.mikrotik.com/docs/spaces/ROS/pages/19136718/Layer2+misconfiguration

Not really. The role of that bridge is inverse of what vlan-aware bridge is about. In the example bridge is used to span single ethernet broadcast domain into multiple inner VLANs (while in normal cases bridge ensures that different VLANs remain separated) … because inner VLANs are then stripped off at some edge router of infrastructure provider.
This use case of bridge is a niche use and has nothing to do with “old vs. new bridge”.