51 lines
1.2 KiB
C
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 */
|