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
36__declspec(align(2))
37typedef struct _ipv4head_ {
38 unsigned char versionHeaderLen;
39 unsigned char typeOfService;
40 unsigned short totalLength;
41 unsigned short identification;
42 unsigned short flagsFragOffset;
43 unsigned char timeToLive;
44 unsigned char protocol;
45 unsigned short headerChecksum;
46 unsigned srcAddress;
47 unsigned destAddress;
48 uint8_t payload[];
50#ifdef ARCH_X64
51#pragma pack(pop)
52#endif
53
54#define IPV4_PROTOCOL_UDP 17
55#define IPV4_PROTOCOL_TCP 6
56
57
58
60
61extern void ip_ntoa(const uint32_t src);
62/*
63* CreateIPv4Socket -- create a new ipv4 socket
64* @param type -- type of the socket its Datagram or
65* stream socket
66* @param protocol -- protocol number
67*/
68extern int CreateIPv4Socket(int type, int protocol);
69
70/*
71 * IPv4HandlePacket -- IPv4 Handle Packet
72 * @param data -- Pointer to IPv4 packet
73 * @param nic -- Pointer to Network Card
74 */
75extern void IPv4HandlePacket(void* data,AuVFSNode* nic);
76
77/*
78 * IPV4SendPacket -- sends a packet to next stage
79 * @param packet -- IPv4 packet to send
80 * @param nic -- Pointer to NIC device
81 */
82extern void IPV4SendPacket(IPv4Header* packet, AuVFSNode* nic);
83#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
int CreateIPv4Socket(int type, int protocol)
Definition ipv4.cpp:132
uint16_t IPv4CalculateChecksum(IPv4Header *p)
Definition ipv4.cpp:45
__declspec(align(2)) typedef struct _ipv4head_
Definition ipv4.h:36
IPv4Header
Definition ipv4.h:49
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:95