XenevaOS
Loading...
Searching...
No Matches
ipv4.h
Go to the documentation of this file.
1
30#ifndef __IPV4_H__
31#define __IPV4_H__
32
33#ifdef ARCH_X64
34#pragma pack(push,1)
35#endif
36typedef struct _ipv4head_ {
37 unsigned char versionHeaderLen;
38 unsigned char typeOfService;
39 unsigned short totalLength;
40 unsigned short identification;
41 unsigned short flagsFragOffset;
42 unsigned char timeToLive;
43 unsigned char protocol;
44 unsigned short headerChecksum;
45 unsigned srcAddress;
46 unsigned destAddress;
49#ifdef ARCH_X64
50#pragma pack(pop)
51#endif
52
53#define IPV4_PROTOCOL_UDP 17
54#define IPV4_PROTOCOL_TCP 6
55
56
57
59
60extern void ip_ntoa(const uint32_t src);
61/*
62* CreateIPv4Socket -- create a new ipv4 socket
63* @param type -- type of the socket its Datagram or
64* stream socket
65* @param protocol -- protocol number
66*/
67extern int CreateIPv4Socket(int type, int protocol);
68
69/*
70 * IPv4HandlePacket -- IPv4 Handle Packet
71 * @param data -- Pointer to IPv4 packet
72 * @param nic -- Pointer to Network Card
73 */
74extern void IPv4HandlePacket(void* data,AuVFSNode* nic);
75
76/*
77 * IPV4SendPacket -- sends a packet to next stage
78 * @param packet -- IPv4 packet to send
79 * @param nic -- Pointer to NIC device
80 */
81extern void IPV4SendPacket(IPv4Header* packet, AuVFSNode* nic);
82#endif
unsigned int uint32_t
Definition acefiex.h:163
unsigned char uint8_t
Definition acefiex.h:161
unsigned short int uint16_t
Definition acefiex.h:162
AuVFSNode * nic
Definition e1000.cpp:67
struct _ipv4head_ IPv4Header
int CreateIPv4Socket(int type, int protocol)
Definition ipv4.cpp:132
uint16_t IPv4CalculateChecksum(IPv4Header *p)
Definition ipv4.cpp:45
void IPv4HandlePacket(void *data, AuVFSNode *nic)
Definition ipv4.cpp:65
void ip_ntoa(const uint32_t src)
Definition ipv4.cpp:57
void IPV4SendPacket(IPv4Header *packet, AuVFSNode *nic)
IPV4SendPacket – sends a packet to next stage.
Definition ipv4.cpp:151
Definition vfs.h:98
Definition ipv4.h:36
unsigned char protocol
Definition ipv4.h:43
uint8_t payload[]
Definition ipv4.h:47
unsigned short flagsFragOffset
Definition ipv4.h:41
unsigned destAddress
Definition ipv4.h:46
unsigned short totalLength
Definition ipv4.h:39
unsigned char timeToLive
Definition ipv4.h:42
unsigned char versionHeaderLen
Definition ipv4.h:37
unsigned short identification
Definition ipv4.h:40
unsigned short headerChecksum
Definition ipv4.h:44
unsigned char typeOfService
Definition ipv4.h:38
unsigned srcAddress
Definition ipv4.h:45