patty/include/patty/ax25/frame.h

51 lines
1.2 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_addr dest,
src,
repeaters[7];
unsigned int hops;
enum patty_ax25_version version;
enum patty_ax25_frame_type type;
enum patty_ax25_frame_cr cr;
uint16_t control;
uint8_t proto;
void *info;
size_t len;
} patty_ax25_frame;
ssize_t patty_ax25_frame_decode(patty_ax25_frame *frame,
void *data,
size_t len);
ssize_t patty_ax25_frame_info(patty_ax25_frame *frame,
void **info);
int patty_ax25_frame_addresed_to(patty_ax25_frame *frame,
const char *callsign,
uint8_t ssid);
#endif /* _PATTY_AX25_FRAME_H */