XenevaOS
Loading...
Searching...
No Matches
packet.h
Go to the documentation of this file.
1
6#ifndef __AU_PACKET_H__
7#define __AU_PACKET_H__
8
9#include <stdint.h>
10#include <Fs/vfs.h>
11
12enum {
16};
17
18typedef struct _au_packet_ {
19 void* data; /* L3 start (IPv4Header* / IPv6Header*) for this pass */
21 uint8_t origin; /* AU_PKT_ORIGIN_* */
25
26/*
27 * Process-local origin + reinject depth (AA64 loopback).
28 * Depth >= 2 stops further local reinject to bound ICMP echo bounce.
29 */
30extern void AuPacketSetOrigin(uint8_t origin);
31extern uint8_t AuPacketGetOrigin(void);
32extern int AuPacketLocalEnter(void); /* returns 0 if depth would exceed cap */
33extern void AuPacketLocalLeave(void);
34extern int AuPacketLocalDepth(void);
35
36#endif
unsigned char uint8_t
Definition acefiex.h:161
unsigned short int uint16_t
Definition acefiex.h:162
uint8_t AuPacketGetOrigin(void)
Definition packet.c:17
void AuPacketLocalLeave(void)
Definition packet.c:29
void AuPacketSetOrigin(uint8_t origin)
Definition packet.c:13
@ AU_PKT_ORIGIN_WIRE
Definition packet.h:13
@ AU_PKT_ORIGIN_LOCAL
Definition packet.h:14
@ AU_PKT_ORIGIN_STACK
Definition packet.h:15
int AuPacketLocalEnter(void)
Definition packet.c:21
int AuPacketLocalDepth(void)
Definition packet.c:36
struct _au_packet_ AuPacket
Definition vfs.h:98
Definition packet.h:18
uint8_t origin
Definition packet.h:21
uint16_t len
Definition packet.h:20
void * data
Definition packet.h:19
AuVFSNode * out_dev
Definition packet.h:23
AuVFSNode * in_dev
Definition packet.h:22