libosmoisdn 1.11.0.1-6f11.202502142026
Osmocom ISDN library
|
LAPD datalink. More...
#include <lapd_core.h>
Data Fields | ||
int(* | send_dlsap )(struct osmo_dlsap_prim *dp, struct lapd_msg_ctx *lctx) | |
int(* | send_ph_data_req )(struct lapd_msg_ctx *lctx, struct msgb *msg) | |
int(* | update_pending_frames )(struct lapd_msg_ctx *lctx) | |
struct { | ||
struct lapd_cr_ent loc2rem | ||
filled-in once we set the lapd_mode above More... | ||
struct lapd_cr_ent rem2loc | ||
} | cr | |
enum lapd_mode | mode | |
current mode of link | ||
unsigned int | lapd_flags | |
lapd_flags to change processing | ||
int | use_sabme | |
use SABME instead of SABM | ||
int | reestablish | |
enable reestablish support | ||
int | n200 | |
int | n200_est_rel | |
number of retranmissions | ||
struct lapd_msg_ctx | lctx | |
LAPD context. | ||
int | maxf | |
maximum frame size (after defragmentation) | ||
uint8_t | k | |
maximum number of unacknowledged frames | ||
uint8_t | v_range | |
range of sequence numbers | ||
uint8_t | v_send | |
seq nr of next I frame to be transmitted | ||
uint8_t | v_ack | |
last frame ACKed by peer | ||
uint8_t | v_recv | |
seq nr of next I frame expected to be received | ||
uint32_t | state | |
LAPD state (lapd_state) | ||
int | seq_err_cond | |
condition of sequence error | ||
uint8_t | own_busy | |
receiver busy on our side | ||
uint8_t | peer_busy | |
receiver busy on remote side | ||
int | t200_sec | |
int | t200_usec | |
retry timer (default 1 sec) | ||
int | t203_sec | |
int | t203_usec | |
retry timer (default 10 secs) | ||
enum lapd_t200_rts | t200_rts | |
state of T200 in RTS mode | ||
struct osmo_timer_list | t200 | |
T200 timer. | ||
struct osmo_timer_list | t203 | |
T203 timer. | ||
uint8_t | retrans_ctr | |
re-transmission counter | ||
struct llist_head | tx_queue | |
frames to L1 | ||
struct llist_head | send_queue | |
frames from L3 | ||
struct msgb * | send_buffer | |
current frame transmitting | ||
int | send_out | |
how much was sent from send_buffer | ||
struct lapd_history * | tx_hist | |
tx history structure array | ||
uint8_t | range_hist | |
range of history buffer 2..2^n | ||
struct msgb * | rcv_buffer | |
buffer to assemble the received message | ||
struct msgb * | cont_res | |
buffer to store content resolution data on network side, to detect multiple phones on same channel | ||
char * | name | |
user-provided name | ||
LAPD datalink.
struct msgb* lapd_datalink::cont_res |
buffer to store content resolution data on network side, to detect multiple phones on same channel
Referenced by lapd_dl_newstate(), and lapd_rx_u_sabm().
struct { ... } lapd_datalink::cr |
Referenced by lapd_est_req(), lapd_rel_req(), lapd_res_req(), lapd_rx_i(), lapd_rx_s(), lapd_rx_u_disc(), lapd_rx_u_dm(), lapd_rx_u_sabm(), lapd_rx_u_ua(), lapd_rx_u_ui(), lapd_send_dm(), lapd_send_i(), lapd_send_rej(), lapd_send_resend(), lapd_send_rnr(), lapd_send_rr(), lapd_send_ua(), lapd_set_mode(), lapd_t200_cb(), and lapd_udata_req().
uint8_t lapd_datalink::k |
maximum number of unacknowledged frames
Referenced by lapd_dl_init2(), and lapd_send_i().
unsigned int lapd_datalink::lapd_flags |
lapd_flags to change processing
Referenced by lapd_dl_set_flags(), lapd_is_t200_started(), lapd_rx_i(), lapd_send_i(), lapd_start_t200(), lapd_stop_t200(), and lapd_t200_timeout().
struct lapd_msg_ctx lapd_datalink::lctx |
LAPD context.
Referenced by lapd_acknowledge(), lapd_data_req(), lapd_est_req(), lapd_ph_data_ind(), lapd_ph_rts_ind(), lapd_recv_dlsap(), lapd_reestablish(), lapd_rel_req(), lapd_rel_req_idle(), lapd_res_req(), lapd_rx_i(), lapd_rx_s(), lapd_rx_u(), lapd_rx_u_disc(), lapd_rx_u_dm(), lapd_rx_u_frmr(), lapd_rx_u_sabm(), lapd_rx_u_ua(), lapd_rx_u_ui(), lapd_send_dm(), lapd_send_i(), lapd_send_rej(), lapd_send_resend(), lapd_send_rnr(), lapd_send_rr(), lapd_send_ua(), lapd_susp_req(), lapd_t200_cb(), lapd_t203_cb(), lapd_udata_req(), mdl_error(), and send_dl_l3().
struct lapd_cr_ent lapd_datalink::loc2rem |
filled-in once we set the lapd_mode above
Referenced by lapd_est_req(), lapd_rel_req(), lapd_res_req(), lapd_send_dm(), lapd_send_i(), lapd_send_rej(), lapd_send_resend(), lapd_send_rnr(), lapd_send_rr(), lapd_send_ua(), lapd_set_mode(), lapd_t200_cb(), and lapd_udata_req().
int lapd_datalink::maxf |
maximum frame size (after defragmentation)
Referenced by lapd_dl_init2(), and lapd_rx_i().
enum lapd_mode lapd_datalink::mode |
current mode of link
Referenced by lapd_rx_u_sabm(), and lapd_set_mode().
int lapd_datalink::n200 |
Referenced by lapd_dl_init2(), and lapd_t200_cb().
int lapd_datalink::n200_est_rel |
number of retranmissions
Referenced by lapd_dl_init2(), and lapd_t200_cb().
char* lapd_datalink::name |
user-provided name
Referenced by lapd_dl_exit(), lapd_dl_init2(), and lapd_dl_set_name().
uint8_t lapd_datalink::own_busy |
receiver busy on our side
Referenced by lapd_est_req(), lapd_rel_req(), lapd_res_req(), lapd_rx_i(), lapd_rx_s(), lapd_t200_cb(), and lapd_t203_cb().
uint8_t lapd_datalink::peer_busy |
receiver busy on remote side
Referenced by lapd_est_req(), lapd_rel_req(), lapd_res_req(), lapd_rx_s(), and lapd_send_i().
uint8_t lapd_datalink::range_hist |
range of history buffer 2..2^n
Referenced by lapd_acknowledge(), lapd_dl_flush_hist(), lapd_dl_init2(), lapd_send_i(), lapd_send_resend(), and lapd_t200_cb().
struct msgb* lapd_datalink::rcv_buffer |
buffer to assemble the received message
Referenced by lapd_dl_reset(), lapd_est_req(), lapd_res_req(), and lapd_rx_i().
int lapd_datalink::reestablish |
enable reestablish support
Referenced by lapd_dl_init2(), lapd_rx_u_dm(), lapd_rx_u_frmr(), and lapd_t200_cb().
struct lapd_cr_ent lapd_datalink::rem2loc |
Referenced by lapd_rx_i(), lapd_rx_s(), lapd_rx_u_disc(), lapd_rx_u_dm(), lapd_rx_u_sabm(), lapd_rx_u_ua(), lapd_rx_u_ui(), and lapd_set_mode().
uint8_t lapd_datalink::retrans_ctr |
re-transmission counter
Referenced by lapd_est_req(), lapd_rel_req(), lapd_res_req(), lapd_t200_cb(), and lapd_t203_cb().
struct msgb* lapd_datalink::send_buffer |
current frame transmitting
Referenced by lapd_dl_flush_send(), lapd_res_req(), lapd_send_i(), and lapd_susp_req().
int(* lapd_datalink::send_dlsap) (struct osmo_dlsap_prim *dp, struct lapd_msg_ctx *lctx) |
Referenced by mdl_error(), and send_dl_l3().
int lapd_datalink::send_out |
how much was sent from send_buffer
Referenced by lapd_res_req(), and lapd_send_i().
int(* lapd_datalink::send_ph_data_req) (struct lapd_msg_ctx *lctx, struct msgb *msg) |
struct llist_head lapd_datalink::send_queue |
frames from L3
Referenced by lapd_data_req(), lapd_dl_flush_send(), lapd_dl_init2(), lapd_send_i(), and lapd_susp_req().
int lapd_datalink::seq_err_cond |
condition of sequence error
Referenced by lapd_rx_i(), lapd_rx_s(), lapd_rx_u_disc(), lapd_rx_u_sabm(), and lapd_t200_cb().
uint32_t lapd_datalink::state |
LAPD state (lapd_state)
Referenced by lapd_acknowledge(), lapd_dl_newstate(), lapd_dl_reset(), lapd_ph_rts_ind(), lapd_recv_dlsap(), lapd_rel_req(), lapd_rx_i(), lapd_rx_s(), lapd_rx_u_disc(), lapd_rx_u_dm(), lapd_rx_u_sabm(), lapd_rx_u_ua(), lapd_send_i(), lapd_send_resend(), lapd_t200_cb(), lapd_t203_cb(), and mdl_error().
struct osmo_timer_list lapd_datalink::t200 |
T200 timer.
Referenced by lapd_dl_init2(), lapd_is_t200_started(), lapd_start_t200(), and lapd_stop_t200().
enum lapd_t200_rts lapd_datalink::t200_rts |
state of T200 in RTS mode
Referenced by lapd_is_t200_started(), lapd_ph_rts_ind(), lapd_start_t200(), lapd_stop_t200(), and lapd_t200_timeout().
int lapd_datalink::t200_sec |
Referenced by lapd_dl_init2(), and lapd_start_t200().
int lapd_datalink::t200_usec |
retry timer (default 1 sec)
Referenced by lapd_dl_init2(), and lapd_start_t200().
struct osmo_timer_list lapd_datalink::t203 |
T203 timer.
Referenced by lapd_dl_init2(), lapd_start_t203(), and lapd_stop_t203().
int lapd_datalink::t203_sec |
Referenced by lapd_acknowledge(), lapd_dl_init2(), lapd_dl_newstate(), and lapd_start_t203().
int lapd_datalink::t203_usec |
retry timer (default 10 secs)
Referenced by lapd_acknowledge(), lapd_dl_init2(), lapd_dl_newstate(), and lapd_start_t203().
struct lapd_history* lapd_datalink::tx_hist |
tx history structure array
Referenced by lapd_acknowledge(), lapd_dl_exit(), lapd_dl_flush_hist(), lapd_dl_init2(), lapd_rx_u_sabm(), lapd_rx_u_ua(), lapd_send_i(), lapd_send_resend(), lapd_t200_cb(), and msg_to_tx_hist0().
struct llist_head lapd_datalink::tx_queue |
frames to L1
Referenced by lapd_dl_flush_tx_queue(), lapd_dl_init2(), lapd_ph_rts_ind(), and lapd_send_i().
int(* lapd_datalink::update_pending_frames) (struct lapd_msg_ctx *lctx) |
Referenced by lapd_rx_i().
int lapd_datalink::use_sabme |
use SABME instead of SABM
Referenced by lapd_est_req(), lapd_res_req(), and lapd_send_resend().
uint8_t lapd_datalink::v_ack |
last frame ACKed by peer
Referenced by lapd_acknowledge(), lapd_rx_s(), lapd_rx_u_sabm(), lapd_rx_u_ua(), and lapd_send_i().
uint8_t lapd_datalink::v_range |
range of sequence numbers
Referenced by lapd_acknowledge(), lapd_dl_init2(), lapd_rx_i(), lapd_send_i(), and lapd_t200_cb().
uint8_t lapd_datalink::v_recv |
seq nr of next I frame expected to be received
Referenced by lapd_rx_i(), lapd_rx_u_sabm(), lapd_rx_u_ua(), lapd_send_i(), lapd_send_rej(), lapd_send_rnr(), lapd_send_rr(), and lapd_t200_cb().
uint8_t lapd_datalink::v_send |
seq nr of next I frame to be transmitted
Referenced by lapd_acknowledge(), lapd_est_req(), lapd_rel_req(), lapd_res_req(), lapd_rx_s(), lapd_rx_u_sabm(), lapd_rx_u_ua(), lapd_send_i(), lapd_send_resend(), and lapd_t200_cb().