rudimentary eap packet parsing and dot11_action
this is addressing the problem described in this issue of libtins not handling eapol packets that are not rsn\rc4 key exchanges.
for eapol added:
- ability to create EAPOL packets without a body (for eapol start and logoff)
- more correct handling and parsing of EAPOL packets (checking the packet type)
- new EAP class for handling EAPOL with packet_type 0
so now it can parse 100% of the pcap file posted in the original issue. (anything past the normal header is passed as RawPDU but parsing every single type of identifier is a MUCH bigger project)
also added new action pdu to dot11 packets so it won't just throw those out. its very basic parsing (just one extra byte) but at least it won't throw them out
I think that the 802.11 Action definition is missing the one-byte action code and dialog token fields but that should be a simple addition.
those are not always present in all action packets iirc (for reference scapy only parses the one byte too) , maybe you can subclass it and add those in, but thats just a slippery slope of dozens of different types of actions to implement and my goal was mainly to just make sure action packets weren't dropped.
After looking at 802.11-2016 (9.3.3.14/Table 9-38)and 802.11u-2011, it looks the one-byte action code field is defined for all action frames in order to specify the type of action frame it is. Other than that it looks good.
EDIT: I stand corrected, it seems that it applies for all EXCEPT for vendor-specific (126/127). It looks like we will have to subclass it as you said.