-
-
Notifications
You must be signed in to change notification settings - Fork 2.2k
Remove ARP entry limitation #4892
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
Removed the commented-out max_count calculation for PacketListField.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull request overview
This PR attempts to fix an issue where Scapy fails to import on macOS when the ARP cache contains more than 4096 entries. The change removes the hardcoded max_count=4096 parameter from the pfmsghdrs PacketListField definition.
Key changes:
- Removes the
max_count=4096parameter from the PacketListField in the pfmsghdrs class - Removes the associated comment explaining the calculation (65535 / len(pfmsghdr))
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
Fixes #4787
I'm removing the hardcoded ARP cache entry limit on MacOS because it's causing Scapy to raise on import if the ARP cache is larger than 4096.
Import error traceback
MacOS uniquely caches failed/rejected ARP lookups, causing the list of entries in the cache to grow substantially larger than other OSes when preforming network scans across a large subnet.
If i run
ping 10.0.0.2, which is a valid IP in my subnet but a host does not exist at that IP, my ARP cache will show:This behavior is unique to MacOS, I have tested on Windows and various Linux distros and they will only show entries with corresponding MAC addresses.
In summary, Scapy's hardcoded ARP cache entry limit conflicts with the ARP caching behavior on MacOS.