gsm_dlci_begin_open(9)
π gsm_dlci_begin_open β the Kernel API Manual tea ββ¨
okay so bestie, this one lives in the kernel API manual (gsm_dlci_begin_open(9) β section 9, we love a man page moment) and it's literally the "hey, open this channel" button. let's get into it π«Ά
β¨ NAME β¨
gsm_dlci_begin_open β start channel open procedure π₯
πΈ SYNOPSIS πΈ
void gsm_dlci_begin_open (struct gsm_dlci *dlci );
no cap, that's the whole signature. void in, no return value out, it's giving "trust the process" energy π
π ARGUMENTS π
dlciβ the DLCI you wanna open. that's it. that's the argument. the DLCI to open, periodt. π¦
π DESCRIPTION π
okay so here's the vibe π
we're commencing the opening of a DLCI, and we're doing it from the Linux side. like, we start it. we're the main character here.
we issue SABM messages to the modem π¨, and the modem should then reply with a UA or an ADM. the moment one of those lands, we move into open state. slay, transition complete β¨
and the way this happens is asynchronously β literally not blocking, we're not sitting around waiting like π β with retry running off timers and the responses. so the whole thing is vibing on a timer loop and reacting to what comes back. π
also, parameter negotiation is performed before SABM if required. only if required tho. iykyk π§
π SEE ALSO π
Kernel file ./drivers/tty/n_gsm.c β that's the home base bestie, everything below lives in that neighborhood π‘
gsm_fcs_add(9),gsm_fcs_add_block(9),gsm_read_ea(9),gsm_read_ea_val(9)gsm_encode_modem(9),gsm_encode_params(9),gsm_register_devices(9),gsm_unregister_devices(9)gsm_print_packet(9),gsm_stuff_frame(9),gsm_send(9)gsm_dlci_clear_queues(9),gsm_response(9),gsm_command(9)gsm_data_alloc(9),gsm_send_packet(9),gsm_is_flow_ctrl_msg(9)gsm_data_kick(9),__gsm_data_queue(9),gsm_data_queue(9)gsm_dlci_data_output(9),gsm_dlci_data_output_framed(9),gsm_dlci_modem_output(9)gsm_dlci_data_sweep(9),gsm_dlci_data_kick(9)gsm_control_command(9),gsm_control_reply(9),gsm_process_modem(9),gsm_process_negotiation(9)gsm_control_modem(9),gsm_control_negotiation(9),gsm_control_rls(9),gsm_control_message(9)gsm_control_response(9),gsm_control_keep_alive(9),gsm_control_transmit(9),gsm_control_retransmit(9)gsm_control_send(9),gsm_control_wait(9)gsm_dlci_close(9),gsm_dlci_open(9),gsm_dlci_negotiate(9),gsm_dlci_t1(9)gsm_dlci_set_opening(9),gsm_dlci_set_wait_config(9),gsm_dlci_begin_close(9)gsm_dlci_data(9),gsm_dlci_command(9),gsm_kick_timer(9)gsm_dlci_copy_config_values(9),gsm_dlci_config(9),gsm_dlci_alloc(9),gsm_dlci_free(9),gsm_dlci_release(9)gsm_queue(9),gsm0_receive_state_check_and_fix(9),gsm0_receive(9),gsm1_receive_state_check_and_fix(9),gsm1_receive(9),gsm_error(9)gsm_cleanup_mux(9),gsm_activate_mux(9),gsm_free_mux(9),gsm_free_muxr(9),gsm_alloc_mux(9)gsmld_output(9),gsmld_write_trigger(9),gsmld_write_task(9),gsmld_attach_gsm(9),gsmld_detach_gsm(9)gsmld_flush_buffer(9),gsmld_close(9),gsmld_open(9),gsmld_write_wakeup(9),gsmld_read(9),gsmld_write(9),gsmld_poll(9)gsm_modem_upd_via_data(9),gsm_modem_upd_via_msc(9),gsm_modem_update(9),gsm_wait_modem_change(9)
like, that's a whole friend group and they're all iconic π go read them, i'm begging π₯Ί
π quick reminder bestie: this returns void, so there's no return value to check. the "did it open" answer comes later, through the async timers and the modem's UA or ADM reply. don't go looking for an int that isn't there, i'm gonna cry π
and that's the page!! π from the fine folks over at ./drivers/tty π, dated October 2026 β mwah, sending you all the kernel kisses, drink some water, close your DLCIs responsibly β¨π
π«Ά
π¦ where this page comes from
- nixpkgs unstable: linux-manual 7.3.1
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms