gsm_control_negotiation(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’… gsm_control_negotiation(9)

okay so this is a page from the Kernel API Manual β€” yes bestie, the kernel has lore too 🫢 β€” and today's main character is gsm_control_negotiation, a tiny little function that does exactly one job and does it iconically. periodt.


✨ NAME ✨

gsm_control_negotiation β€” parameter negotiation received 🌸

like literally, a negotiation message just showed up at the door and someone has to deal with it.


πŸŽ€ SYNOPSIS πŸŽ€

void gsm_control_negotiation (struct gsm_mux *gsm , unsigned int cr ,
const u8 *data , unsigned int dlen );

no return value, it's giving "void and unbothered" energy πŸ’…


πŸ¦‹ ARGUMENTS πŸ¦‹

  • gsm β€” the GSM channel πŸ’– this is the whole vibe we're operating on
  • cr β€” the command/response flag 🎯 tells you which way the message is headed
  • data β€” the data following the command πŸ“¦ the actual payload, the good stuff
  • dlen β€” the data length πŸ“ so we know how much of data to actually care about

πŸ‘‘ DESCRIPTION πŸ‘‘

so here's the tea: we have received a parameter negotiation message β˜•βœ¨ This is used by the GSM mux protocol to configure protocol parameters for a new DLCI. that's it, that's the whole function β€” it shows up, it gets handled, it slays, it leaves. πŸ”₯


🌈 SEE ALSO 🌈

ngl the friend group here is huge. first up, the source file itself: Kernel file ./drivers/tty/n_gsm.c 🧚

then the whole squad, and yes we're naming every single one because nobody gets left out of the group chat πŸ’œ

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_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_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 the whole extended universe, iykyk 😭


okay that's the page!! this one came out of ./drivers/tty and it's dated October 2026 β€” drop a πŸ’… in the chat for the tty subsystem, they've been carrying this whole thing fr fr. bye bestie, go read n_gsm.c 🫢✨

πŸ“¦ where this page comes from