there should be a way to limit the number of mac addresses learnt by a bridge instance. in case of p2p E-VCs (when one bridges an ethernet port/vlan into a eomps [vpls] circuit) there are only two ports in the bridge, so what arrives on one exits on the other, and vice versa. there’s no need for mac learning.
let’s assume a very varying L2 set of src/dst addresses show up in the communication, and the “pipe” device’s bridge host table gets polluted and resource is spent to maintain this states.
if we could limit (disable) mac learning this would be great.
this is certainly a possibility. i just checked the corresponding code in kernel (net/bridge/br_fdb.c) and it seems to act so.
there’s a function called br_fdb_update and its first check is on whether there’s a topology change, and if not, then what is the ageing value.
if it’s 0, it just returns, e.g. the FDB will not be updated, so all frames will be flooded.
and this is exactly what i want.
so Mikrotik needs to allow ageing to be 0 but only in case there are two interfaces in the bridge. or they could just create a new kind of special bridge, called ‘pipe’.
it could have the following attributes:
max 2 member ports
running no protocol
max ageing = 0 (MAC learning disabled)
forward delay = 0
can not have IP address
does not need mac address (router cannot receive frames through it, not even BC or MC)
it could enslave its members as bridge does, and this way we could separate it from the more advanced “bridge”-s.
Creating a new interface type is certainly a lot more work. I’m not sure Mikrotik do have such free time, they are probably working hard actually on Router OS 7.
Because it is a minor modification to allow ageing-time=0, you could try to send this request to support@mikrotik.com
This would be a console command only anyway, and a console warning could be issued :
“ageing-time=0 will disable mac learning. Are you sure you want to do this ?”
router cannot receive frames through it, not even BC or MC
Especially this feature is important.
When connecting customer sites via VPLS/EoIP our Routers are not affected anymore by a broadcast-storm caused by the customer, if we got such a ‘pipe’ feature.
interactive commands with user confirmation suck. cannot be automated properly. of course a system wide “confirm=yes” option would kick-a$$ in other cases, like /system reset-configuration or similar.
all in all the “pipe” feature would require a major change, a totally new device i guess to avoid messing with BC and MC with the existing bridge device.
if it comes down to mac-learning=0, honestly i guess this is the only place it makes sense, when you only have 2 interfaces in a “bridge”. but in a different implementation a very optimised code can be created that doesn’t look for other “bridge member” interfaces, just blindly copies the frame received on one end to the other end. as far as i know, bridge’s “use ip firewall” setting is a global one, so it would have unnecessary load on “pipes” whether you want it or not.
for me this is another reason to have it implemented differently.
there is just one thing that i guess we could leave up to the user: whether the mndp/cdp packets shall be processed by the router (e.g. reveal the router in “pipe-mode” to the far ends) or just transmit those frames w/o special treatment.