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