Splitting the accept and process functions into separate functions for IPv4 and IPv6 allows us to avoid the `IpRepr` enum and instead use the `Ipv4Repr` and `Ipv6Repr` structs directly. This reduces the binary size by 1.5 KiB.