(self, pkt)
| 864 | |
| 865 | @ATMT.receive_condition(WAIT_ARP_REPLIES) |
| 866 | def get_arp(self, pkt): |
| 867 | # Avoid packet from other interfaces |
| 868 | if RadioTap not in pkt: |
| 869 | return |
| 870 | |
| 871 | # Skip retries |
| 872 | if pkt[Dot11].FCfield.retry: |
| 873 | return |
| 874 | |
| 875 | # Skip unencrypted frames (TKIP rely on encrypted packets) |
| 876 | if not pkt[Dot11].FCfield.protected: |
| 877 | return |
| 878 | |
| 879 | # Dot11.type 2: Data |
| 880 | if pkt.type == 2 and Raw in pkt and pkt.addr1 == self.mac: |
| 881 | # Do not check pkt.addr3, frame can be broadcast |
| 882 | raise self.WAIT_ARP_REPLIES().action_parameters(pkt) |
| 883 | |
| 884 | @ATMT.action(get_arp) |
| 885 | def check_arp_reply(self, pkt): |
nothing calls this directly
no test coverage detected