Layer 3 Routing vs Layer 2 Routing


Routing of packets in a network can be done on Layer 3 (i.e Network Layer) as well as Layer 2 (i.e Data-Link Layer), not sure whether data could be routed in Layer 1 (Physical Layer). I would like to know whether routing on lower layers are much more efficient, if yes, why?


Might not be a straight answer . But , trying to understand it .
According to this specification , batman started with(as batmand) layer 3 and then they move it to the ethernet layer (called above as the Data-Link layer) and give a detailed "Why Layer 2 " explanation .Moving to the advanced batctl , they mention a point clearly and I quote

since the virtual network switch is completely transparent for all protocols above layer 2.

I dont think Layer 1 can provide that flexibilty .


I have read the Why Layer 2? of batman-adv, but I don’t find their answers convincing. Why using Ethernet frames are better than UDP or any other protocol on Network layer?


Layer 3 maintatins hierarchy based on IP address. Layer 2 doesn’t because the MAC address of two cards purchased need not be consecutive.

So with layer 3 addressing we can form tree like topology so that there is an hierarchy.Having hierarchy drastically reduces the routing table size, which is not possible with layer 2 addressing.It is easier to implement and maintain hierarchical routing. That is why organization do that. But it is technically possible to implement and use networking topologies in layer to itself.

About efficieny, layer 2 routing is not necessarily more efficient than layer 3 routing. Protocols at any layers can be made to do efficient routing with careful design.