Smart Home firewall
Profile-based Smart Home firewall
src
parsers
include
header.h
Go to the documentation of this file.
1
19
#ifndef _PROTOCOL_PARSERS_HEADER_
20
#define _PROTOCOL_PARSERS_HEADER_
21
22
#include <stdlib.h>
23
#include <stdio.h>
24
#include <stdint.h>
25
#include <string.h>
26
#include <arpa/inet.h>
27
#include "
packet_utils.h
"
28
29
#define IPV6_HEADER_LENGTH 40
30
#define UDP_HEADER_LENGTH 8
31
32
36
typedef
enum
{
37
ICMP = 1,
38
IGMP = 2,
39
TCP = 6,
40
UDP = 17
41
}
ip_protocol_t
;
42
49
size_t
get_ipv4_header_length
(uint8_t *data);
50
57
size_t
get_ipv6_header_length
(uint8_t *data);
58
65
size_t
get_udp_header_length
(uint8_t *data);
66
73
size_t
get_tcp_header_length
(uint8_t *data);
74
81
size_t
get_l3_header_length
(uint8_t *data);
82
89
size_t
get_headers_length
(uint8_t* data);
90
97
uint16_t
get_udp_payload_length
(uint8_t *data);
98
105
uint16_t
get_dst_port
(uint8_t* data);
106
113
uint32_t
get_ipv4_src_addr
(uint8_t *data);
114
121
uint32_t
get_ipv4_dst_addr
(uint8_t *data);
122
129
uint8_t*
get_ipv6_src_addr
(uint8_t *data);
130
137
uint8_t*
get_ipv6_dst_addr
(uint8_t *data);
138
139
140
#endif
/* _PROTOCOL_PARSERS_HEADER_ */
get_udp_payload_length
uint16_t get_udp_payload_length(uint8_t *data)
Retrieve the length of a UDP payload.
Definition:
header.c:140
get_ipv4_header_length
size_t get_ipv4_header_length(uint8_t *data)
Definition:
header.c:29
get_l3_header_length
size_t get_l3_header_length(uint8_t *data)
Definition:
header.c:79
ip_protocol_t
ip_protocol_t
Definition:
header.h:36
get_ipv4_src_addr
uint32_t get_ipv4_src_addr(uint8_t *data)
Retrieve the source address from an IPv4 header.
Definition:
header.c:164
get_udp_header_length
size_t get_udp_header_length(uint8_t *data)
Definition:
header.c:54
get_ipv6_header_length
size_t get_ipv6_header_length(uint8_t *data)
Definition:
header.c:43
get_ipv6_src_addr
uint8_t * get_ipv6_src_addr(uint8_t *data)
Retrieve the source address from an IPv6 header.
Definition:
header.c:186
get_headers_length
size_t get_headers_length(uint8_t *data)
Definition:
header.c:100
get_ipv6_dst_addr
uint8_t * get_ipv6_dst_addr(uint8_t *data)
Retrieve the destination address from an IPv6 header.
Definition:
header.c:199
get_dst_port
uint16_t get_dst_port(uint8_t *data)
Retrieve the source port from a layer 4 header.
Definition:
header.c:153
get_tcp_header_length
size_t get_tcp_header_length(uint8_t *data)
Definition:
header.c:65
get_ipv4_dst_addr
uint32_t get_ipv4_dst_addr(uint8_t *data)
Retrieve the destination address from an IPv4 header.
Definition:
header.c:175
packet_utils.h
Utilitaries for payload manipulation and display.
Generated by
1.9.1