8 #include <linux/types.h>    18 #define EAPOL_LOGOFF                    2    20 #define EAPOL_ENCAPSULATED_ASF_ALERT    4    22 #define EAPOL_ANNOUNCEMENT_GENERIC      6    23 #define EAPOL_ANNOUNCEMENT_SPECIFIC     7    24 #define EAPOL_ANNOUNCEMENT_REQ          8    34 #define EAP_CODE_REQUEST                1    35 #define EAP_CODE_RESPONSE               2    36 #define EAP_CODE_SUCCESS                3    37 #define EAP_CODE_FAILURE                4    48 #define EAP_TYPE_IDENTITY               1    49 #define EAP_TYPE_NOTIFICATION           2    50 #define EAP_TYPE_NAK                    3    51 #define EAP_TYPE_MD5_CHALLENGE          4    52 #define EAP_TYPE_OTP                    5    53 #define EAP_TYPE_GTC                    6    54 #define EAP_TYPE_TLS                    13          55 #define EAP_TYPE_SIM                    18          56 #define EAP_TYPE_TTLS                   21          57 #define EAP_TYPE_AKA_OLD                23          58 #define EAP_TYPE_PEAP                   25          59 #define EAP_TYPE_MS_CHAP_V2             26          60 #define EAP_TYPE_MS_CHAP_V2_OLD         29          61 #define EAP_TYPE_FAST                   43          62 #define EAP_TYPE_IKEV2                  49          63 #define EAP_TYPE_EXPANDED_TYPES         254    64 #define EAP_TYPE_EXPERIMENTAL_USE       255    72 #define EAPOL_KEY_TYPE_RC4              1           73 #define EAPOL_KEY_TYPE_IEEE_80211       2          107 }__attribute__((packed));
   124 }__attribute__((packed));
   140         }__attribute__((packed));
   141 }__attribute__((packed));
   150         uint8_t h_dest[ETH_ALEN];       
   151         uint8_t h_source[ETH_ALEN];     
 __be16 len
Length. 
Definition: packet.h:104
__u32 tp_snaplen
Definition: packet.h:90
__u8 type
Packet Type. 
Definition: packet.h:133
uint8_t vlan_valid
Flag: VLAN (802.1Q) tag currently present? 
Definition: packet.h:152
struct iface_t * ifaces
Interface list. 
Definition: peapod.c:85
#define EAP_TYPE_TTLS
Definition: packet.h:56
#define EAP_TYPE_TLS
Definition: packet.h:54
#define EAP_CODE_FAILURE
Definition: packet.h:37
#define EAP_TYPE_OTP
Definition: packet.h:52
char * packet_decode(uint8_t val, const struct decode_t *decode)
Decode a byte in an EAPOL packet to a C string. 
Definition: packet.c:309
Represents a network interface and its associated config. 
Definition: parser.h:82
#define EAP_TYPE_IDENTITY
Definition: packet.h:48
__u8 proto_ver
Protocol Version. 
Definition: packet.h:132
char * desc
Description. 
Definition: packet.h:168
#define EAP_TYPE_EXPERIMENTAL_USE
Definition: packet.h:64
__u32 tp_status
Definition: packet.h:88
static const struct decode_t eap_types[]
EAP-Request/Response Type descriptions. 
Definition: packet.h:205
uint8_t code
EAP Code. 
Definition: packet.h:157
#define EAP_CODE_RESPONSE
Definition: packet.h:35
#define EAP_TYPE_SIM
Definition: packet.h:55
Represents an EAPOL packet with some metadata already extracted. 
Definition: packet.h:144
__u16 tp_mac
Definition: packet.h:91
__u8 desc_type
Descriptor Type. 
Definition: packet.h:117
uint8_t * packet_buf(struct peapod_packet packet, uint8_t orig)
Return a pointer to a raw EAPOL packet. 
Definition: packet.c:253
#define EAPOL_ENCAPSULATED_ASF_ALERT
Definition: packet.h:20
__u16 tp_net
Definition: packet.h:92
__u16 tp_vlan_tpid
Definition: packet.h:94
__be64 replay_ctr
Replay Counter. 
Definition: packet.h:119
#define EAP_TYPE_IKEV2
Definition: packet.h:62
EAPOL MAC Protocol Data Unit (MPDU) format. 
Definition: packet.h:130
__u8 key_index
Key Index. 
Definition: packet.h:121
#define EAP_CODE_REQUEST
Definition: packet.h:34
Function prototypes for parser.y, config-related magic numbers and data structures. 
#define EAPOL_LOGOFF
Definition: packet.h:18
#define EAPOL_ANNOUNCEMENT_SPECIFIC
Definition: packet.h:23
A redefinition of struct tpacket_auxdata from <linux/if_packet.h>. 
Definition: packet.h:87
__be16 pkt_body_len
Packet Body Length. 
Definition: packet.h:134
#define EAPOL_KEY_TYPE_RC4
Definition: packet.h:72
#define EAP_TYPE_GTC
Definition: packet.h:53
EAPOL-EAP (EAP Packet) format. 
Definition: packet.h:101
#define EAP_TYPE_NAK
Definition: packet.h:50
#define EAPOL_ANNOUNCEMENT_GENERIC
Definition: packet.h:22
void packet_init(struct iface_t *ifaces)
Allocate the main buffer for the EAPOL packet. 
Definition: packet.c:209
struct iface_t * iface
Current interface. 
Definition: packet.h:146
802.1Q VLAN Tag Control Information 
Definition: parser.h:28
#define EAP_CODE_SUCCESS
Definition: packet.h:36
struct iface_t * iface_orig
Interface on which packet was originally received. 
Definition: packet.h:147
__be16 ether_type
PAE Ethernet Type. 
Definition: packet.h:131
#define EAP_TYPE_EXPANDED_TYPES
Definition: packet.h:63
#define EAPOL_KEY
Definition: packet.h:19
#define EAPOL_START
Definition: packet.h:17
__u8 code
Packet Code. 
Definition: packet.h:102
EAPOL-Key (Key Descriptor) format. 
Definition: packet.h:116
uint32_t packet_tcitonl(struct tci_t tci)
Convert a struct tci_t to a 4-byte 802.1Q tag. 
Definition: packet.c:286
#define EAP_TYPE_MD5_CHALLENGE
Definition: packet.h:51
uint8_t val
Value. 
Definition: packet.h:167
Matches a single-byte value with a description. 
Definition: packet.h:166
#define EAPOL_ANNOUNCEMENT_REQ
Definition: packet.h:24
#define EAPOL_EAP
Definition: packet.h:16
static const struct decode_t eap_codes[]
EAP Code descriptions. 
Definition: packet.h:192
__u8 type
Type (if Request or Response) 
Definition: packet.h:105
#define EAP_TYPE_MS_CHAP_V2
Definition: packet.h:59
#define EAP_TYPE_FAST
Definition: packet.h:61
__be16 key_len
Key Length. 
Definition: packet.h:118
#define EAPOL_KEY_TYPE_IEEE_80211
Definition: packet.h:73
uint8_t type
EAPOL Packet Type. 
Definition: packet.h:156
__u32 tp_len
Definition: packet.h:89
#define EAP_TYPE_AKA_OLD
Definition: packet.h:57
__u16 tp_vlan_tci
Definition: packet.h:93
static const struct decode_t eapol_types[]
EAPOL Packet Type descriptions. 
Definition: packet.h:175
static void decode(struct peapod_packet pkt)
Log metadata for a struct peapod_packet in a tcpdump-like format. 
Definition: packet.c:122
static const struct decode_t eapol_key_types[]
Descriptions for EAPOL-Key Descriptor Type. 
Definition: packet.h:230
#define EAP_TYPE_MS_CHAP_V2_OLD
Definition: packet.h:60
__u8 id
Identifier. 
Definition: packet.h:103
#define EAPOL_MKA
Definition: packet.h:21
#define EAP_TYPE_NOTIFICATION
Definition: packet.h:49
ssize_t len
Current length. 
Definition: packet.h:148
int packet_send(struct peapod_packet packet, struct iface_t *iface)
Send an EAPOL packet on a network interface. 
Definition: packet.c:331
ssize_t len_orig
Original length. 
Definition: packet.h:149
uint8_t vlan_valid_orig
Flag: VLAN (802.1Q) tag originally present? 
Definition: packet.h:153
#define EAP_TYPE_PEAP
Definition: packet.h:58