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