It's possible that ARP is considered an IP Packet for kernel purposes, but the frame type of an ARP packet is different. Avoiding the philosophical argument, it probably sits somewhere between layer 2 and layer 3, but the actual packet itself is not an IP packet.
> I'm trying to do some arp to ip resolution with go. I need to be able
> to send my own arp packets (for various IP's) and wait for the correct
> 'arp reply'.
You may use BPF on BSD variants, LSF or AF_PACKET
socket on Linux.
e.g., <https://github.com/mikioh/go.rawnet>
-- Mikio
> Will he need BPF if the ETH_P_ARP is specified?
Not sure, I guess there is no concrete plan to support
EtherConn like API for Go 1.1 and beyond.
> If he's going that route, a
> libpcap wrapper might be more appropriate.
Perhaps.
> Maybe OP can expand on their application?
What's OP?
> OP := Original Poster = toxicnaan
Thank you. I guessed it was a upcoming something new OpenXXX stuff.
Agreed.