patty/include/patty/ax25/frame.h

47 lines
1 KiB
C

#ifndef _PATTY_AX25_FRAME_H
#define _PATTY_AX25_FRAME_H
#include <stdint.h>
#include <sys/types.h>
#define PATTY_AX25_FRAME_DEFAULT_MAXLEN 256
#define PATTY_AX25_FRAME_DEFAULT_WINDOW 8
enum patty_ax25_frame_type {
PATTY_AX25_FRAME_UNKNOWN,
PATTY_AX25_FRAME_INFO,
PATTY_AX25_FRAME_SUPER,
PATTY_AX25_FRAME_UNNUMBERED
};
enum patty_ax25_frame_cr {
PATTY_AX25_FRAME_COMMAND,
PATTY_AX25_FRAME_RESPONSE
};
typedef struct _patty_ax25_frame {
patty_ax25_address dest;
patty_ax25_address src;
patty_ax25_address repeaters[7];
int hops,
repeated;
enum patty_ax25_version version;
enum patty_ax25_frame_type type;
enum patty_ax25_frame_cr cr;
uint16_t control;
uint8_t proto;
void * payload;
size_t payloadsz;
size_t size;
} patty_ax25_frame;
int patty_ax25_frame_decode(patty_ax25_frame *frame, void *data, size_t len);
int patty_ax25_frame_payload(patty_ax25_frame *frame, void **data, size_t *len);
#endif /* _PATTY_AX25_FRAME_H */