XenevaOS
Loading...
Searching...
No Matches
packet.h
Go to the documentation of this file.
1
5#ifndef __AU_PACKET_H__
6#define __AU_PACKET_H__
7
8#include <stdint.h>
9#include <Fs/vfs.h>
10
11enum {
15};
16
17enum {
21 NF_NAT_STUB = 3
22};
23
24typedef struct _au_packet_ {
25 void* data; /* L3 start (IPv4Header* / IPv6Header*) */
30 uint8_t origin; /* AU_PKT_ORIGIN_* */
33 void* rt; /* optional AuRouteResult* */
37
38/*
39 * Process-local origin + reinject depth (AA64 loopback).
40 * Depth >= 2 stops further local reinject to bound ICMP echo bounce.
41 */
42extern void AuPacketSetOrigin(uint8_t origin);
43extern uint8_t AuPacketGetOrigin(void);
44extern int AuPacketLocalEnter(void); /* returns 0 if depth would exceed cap */
45extern void AuPacketLocalLeave(void);
46extern int AuPacketLocalDepth(void);
47
48/* Fill a stack AuPacket from an IPv4 header (l4_off from IHL). */
49extern void AuPacketInitIpv4(AuPacket* pkt, void* ipv4, uint16_t len,
50 AuVFSNode* in_dev, AuVFSNode* out_dev);
51
52#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
size_t len
Definition initial.c:23
@ NF_DROP
Definition packet.h:19
@ NF_NAT_STUB
Definition packet.h:21
@ NF_ACCEPT
Definition packet.h:18
@ NF_REJECT
Definition packet.h:20
uint8_t AuPacketGetOrigin(void)
Definition packet.cpp:19
@ AU_PKT_ORIGIN_WIRE
Definition packet.h:12
@ AU_PKT_ORIGIN_LOCAL
Definition packet.h:13
@ AU_PKT_ORIGIN_STACK
Definition packet.h:14
void AuPacketLocalLeave(void)
Definition packet.cpp:31
void AuPacketInitIpv4(AuPacket *pkt, void *ipv4, uint16_t len, AuVFSNode *in_dev, AuVFSNode *out_dev)
Definition packet.cpp:42
void AuPacketSetOrigin(uint8_t origin)
Definition packet.cpp:15
int AuPacketLocalEnter(void)
Definition packet.cpp:23
int AuPacketLocalDepth(void)
Definition packet.cpp:38
struct _au_packet_ AuPacket
Definition vfs.h:129
Definition packet.h:24
void * rt
Definition packet.h:33
uint8_t proto
Definition packet.h:29
uint16_t l3_off
Definition packet.h:27
int verdict
Definition packet.h:35
uint32_t mark
Definition packet.h:34
uint8_t origin
Definition packet.h:30
uint16_t len
Definition packet.h:26
void * data
Definition packet.h:25
AuVFSNode * out_dev
Definition packet.h:32
uint16_t l4_off
Definition packet.h:28
AuVFSNode * in_dev
Definition packet.h:31