VPLS performance is lower than EoIP

To our surprise RFC2544 tests have revealed that VPLS performs worse than EoIP, both on CCR and RB1100AHx2.

EoIP with 64 byte packets gives 300 mbps on two directly connected CCRs without packet loss, while VPLS gives only 150 mbps.

Is it expected and why?

VPLS config is basic:

/interface bridge
add name=lo0
add l2mtu=1500 name=vpn
/interface vpls
add disabled=no l2mtu=1500 mac-address=02:6D:CF:4C:2E:39 name=vpls1 \
    remote-peer=1.1.1.2 vpls-id=10:10
/routing ospf instance
set [ find default=yes ] router-id=1.1.1.1
/interface bridge port
add bridge=vpn interface=ether8
add bridge=vpn interface=vpls1
/ip address
add address=192.168.88.1/24 comment="default configuration" interface=ether1 \
    network=192.168.88.0
add address=10.10.10.1/24 interface=ether9 network=10.10.10.0
add address=1.1.1.1/32 interface=lo0 network=1.1.1.1
/mpls ldp
set enabled=yes lsr-id=1.1.1.1 transport-address=1.1.1.1
/mpls ldp interface
add interface=ether9
/routing ospf network
add area=backbone network=10.10.10.0/24
add area=backbone network=1.1.1.1/32

I suggest that you explain exactly what was tested and exactly how because I have seen the term RFC2544 used/abused in all sorts of ways!

Test setup was simple, we have two RFC2544 testers (Digital Lightwave), one is generating traffic, another one is looping it back (“smart loopback” mode).

Tester A ↔ Mikrotik A ↔ Mikrotik B ↔ Tester B

Standard RFC2544 test with 64-byte packets. Our partners are requiring us to provide full throughput with 64-byte packets.

Does it behave any differently if you use Ether 11 for the internal VPLS path rather than Ether 9? (Ether 8 & 9 share the same CPU port)

Yeah I’d suggest that, too.
A RB1100AHx2 has 13 gigabit ports, but only 5 of them can be used without oversubscription.
Also, routing traffic between those non-oversubscribed ports is faster than routing “on a stick” where source and destination are on the same port or switch-group.
So you want to only use one port of ether1-5 and ether6-10 (they share 1 gbit via a switch chip to the cpu), and the remaining three “single” ethernet ports.
I think Mikrotik themselves have already published guidelines for benchmarking and best practices for routing traffic, as well as corresponding block diagrams somewhere in the forum.

There have been benchmarks that show that VPLS should be around 1,5x the speed of EoIP on non-CCR routerboards, which is something that I can more or less confirm in practice. I am unsure how fast CCRs handle VPLS.

The config I gave was for CCR1016. If you do mean that CCR1016 has shared ports, do you have a pointer to docs which state so? The datasheet I have says “Ports directly connected to CPU”.

My comment was directed at the RB1100AHx2 only.

Testing again on RB1100AHx2 under most optimal configuration has shown that the performance isn’t worse than EoIP, we were able to get about 100 mbps with 64-byte packets.

So it seems that the issue affects CCR only.

I’ll try to give it a whirl tomorrow, i somehow can’t believe that 100 mbit/s is all that it’s gonna do.

We redid the VPLS/EoIP RFC2544 throughput tests, this time between two CCR-1009-8G-1S-1S+ , using RouterOS 6.33 and 6.32.3.

With 6.33.2 we got very bad results, there must be a regression in 6.33 compared to 6.32:

EoIP - 72 Mbps with 64 bytes frames and 0 loss
VPLS - 32 Mbps with 64 bytes frames and 0 loss

Same config on 6.32.3 gave much better results, but still EoIP has better performance with 64-byte packets:

VPLS - 64 bytes frames - 274 Mbps with no loss
EOIP - 64 bytes frames - 304 Mbps with no loss

I’ve heard about VPLS performance better than EoIP.
Is this still have same issue on current version?