gsm_dlci_command(9)
π gsm_dlci_command β data arrived on control channel
okay bestie, so you're reading the man page for gsm_dlci_command from the Kernel API Manual (section 9, the kernel-api girlies π), and honestly? it's a little function with a big job. let's get into it.
β¨ SYNOPSIS β¨
void gsm_dlci_command (struct gsm_dlci *dlci , const u8 *data , int len );
that's it. that's the whole signature. no return value, no drama, just vibes and a pointer. π«Ά
π ARGUMENTS π
dlciβ the channel. like, the actual DLCI struct you're working with. main character energy tbh.dataβ the block of bytes that just showed up. yep, raw bytes, freshly received πlenβ the length of that received block. gotta know how much you got, periodt.
πΈ DESCRIPTION πΈ
lowkey the whole point: a UI or UIH frame has arrived, and it's carrying data for DLCI 0, aka the control channel π. so like, this is the control channel specifically β not your data channels, bestie, keep up.
inside that frame there should be a command EA, followed by control data bytes. and here's the iconic part: the command EA contains a command/response bit, and we divide up the work accordingly. that bit is basically the vibe check for the whole frame β it tells you which way the traffic is flowing, so you know what to do next. π₯
ngl there's no return value here, so if you were waiting for a status code... she's not coming. the function just does the thing. π
π¦ SEE ALSO π¦
the kernel file ./drivers/tty/n_gsm.c and, fr fr, a whole friend group of functions β go say hi:
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_begin_open(9),gsm_dlci_set_opening(9),gsm_dlci_set_wait_config(9),gsm_dlci_begin_close(9),gsm_dlci_data(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 I said. a whole friend group. β¨
and that's the page, bestie!! π this one lives in ./drivers/tty (yes, the drivers/tty girlies ate), dated October 2026, and it's filed as gsm_dlci_command(9) in the Kernel API Manual. mwah π go read n_gsm.c and slay. π
π¦ 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