-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathipv4.h~
68 lines (54 loc) · 1.88 KB
/
ipv4.h~
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
#ifndef _IPv4_H
#define _IPv4_H
#include <stdint.h>
#define IPv4_ADDR_SIZE 4
#define IPv4_STR_MAX_LENGTH 16
eth_iface_t * ipv4_open ( char* ifname );
int ipv4_close ( eth_iface_t * iface );
int ipv4_send ( ipv4_addr_t ipv4_dest, mac_addr_t dst, uint16_t type, unsigned char * payload, int payload_len );
int ipv4_recv ( ipv4_addr_t ipv4_src, mac_addr_t src, uint16_t type, unsigned char buffer[], long int timeout );
typedef unsigned char ipv4_addr_t [IPv4_ADDR_SIZE];
/*
* uint16_t ipv4_checksum ( unsigned char * data, int len )
*
* DESCRIPCIÓN:
* Esta función calcula el checksum IP de los datos especificados.
*
* PARÁMETROS:
* 'data': Puntero a los datos sobre los que se calcula el checksum.
* 'len': Longitud en bytes de los datos.
*
* VALOR DEVUELTO:
* El valor del checksum calculado.
*/
uint16_t ipv4_checksum ( unsigned char * data, int len );
/* void ipv4_addr_str ( ipv4_addr_t addr, char* str );
*
* DESCRIPCIÓN:
* Esta función genera una cadena de texto que representa la dirección IPv4
* indicada.
*
* PARÁMETROS:
* 'addr': La dirección IP que se quiere representar textualente.
* 'str': Memoria donde se desea almacenar la cadena de texto generada.
* Deben reservarse al menos 'IPv4_STR_MAX_LENGTH' bytes.
*/
void ipv4_addr_str ( ipv4_addr_t addr, char* str );
/* int ipv4_str_addr ( char* str, ipv4_addr_t addr );
*
* DESCRIPCIÓN:
* Esta función analiza una cadena de texto en busca de una dirección IPv4.
*
* PARÁMETROS:
* 'str': La cadena de texto que se desea procesar.
* 'addr': Memoria donde se almacena la dirección IPv4 encontrada.
*
* VALOR DEVUELTO:
* Se devuelve 0 si la cadena de texto representaba una dirección IPv4.
*
* ERRORES:
* La función devuelve -1 si la cadena de texto no representaba una
* dirección IPv4.
*/
int ipv4_str_addr ( char* str, ipv4_addr_t addr );
#endif /* _IPv4_H */