diff --git a/include/patty/ax25/frame.h b/include/patty/ax25/frame.h index 006663c..2fd3ca0 100644 --- a/include/patty/ax25/frame.h +++ b/include/patty/ax25/frame.h @@ -94,4 +94,10 @@ void patty_ax25_frame_set_ui(patty_ax25_frame *frame, void *info, size_t infolen); +void patty_ax25_frame_set_sabme(patty_ax25_frame *frame, + enum patty_ax25_frame_u_flags flags); + +void patty_ax25_frame_set_sabm(patty_ax25_frame *frame, + enum patty_ax25_frame_u_flags flags); + #endif /* _PATTY_AX25_FRAME_H */ diff --git a/src/frame.c b/src/frame.c index 4a3a622..09ca9eb 100644 --- a/src/frame.c +++ b/src/frame.c @@ -353,8 +353,27 @@ void patty_ax25_frame_set_ui(patty_ax25_frame *frame, uint8_t proto, void *info, size_t infolen) { - frame->control = PATTY_AX25_FRAME_U_UI | flags; - frame->proto = proto; - frame->info = info; - frame->infolen = infolen; + patty_ax25_frame_set(frame, + PATTY_AX25_FRAME_U_UI | flags, + proto, + info, + infolen); +} + +void patty_ax25_frame_set_sabme(patty_ax25_frame *frame, + enum patty_ax25_frame_u_flags flags) { + patty_ax25_frame_set(frame, + PATTY_AX25_FRAME_U_SABME | flags, + PATTY_AX25_PROTO_NONE, + NULL, + 0); +} + +void patty_ax25_frame_set_sabm(patty_ax25_frame *frame, + enum patty_ax25_frame_u_flags flags) { + patty_ax25_frame_set_ui(frame, + PATTY_AX25_FRAME_U_SABM | flags, + PATTY_AX25_PROTO_NONE, + NULL, + 0); }