W5500 micropython without full tcp/ip stack

Hello, i would like to create with my rasberry pi pico board and 2x - W5500 pseudo-router with micropython. Because i need only 3 layers i dont think i need full tcp/ip stack, i would like to accomplish some routing, icmp,arp, etc., think is i can’t find way how to read from ethernet data like packets. I saw many topics about Raw modes, and how you can read data via registers but didnt find anything what could help me in micropython. Is there way how to read data from ethernet like packet and work with it ? Because if i want to program some routing i need to know destination ip of packets and also protocol which was used.

Thank you for your help