STRUCT IOSM_MUX(9)
π struct iosm_mux(9) π
okay so we're in the Kernel API Manual bestie, and today's main character is struct iosm_mux β literally the structure that handles data multiplexing over an IP channel. no cap, that's the whole vibe. let's get into it π
β¨ SYNOPSIS β¨
struct iosm_mux {
struct device *dev;
struct mux_session session[IPC_MEM_MUX_IP_SESSION_ENTRIES];
struct ipc_mem_channel *channel;
struct iosm_pcie *pcie;
struct iosm_imem *imem;
struct iosm_wwan *wwan;
struct iosm_protocol *ipc_protocol;
int channel_id;
enum ipc_mux_protocol protocol;
enum ipc_mux_ul_flow ul_flow;
int nr_sessions;
int instance_id;
enum mux_state state;
enum mux_event event;
u32 tx_transaction_id;
int rr_next_session;
struct mux_adb ul_adb;
int size_needed;
long long ul_data_pend_bytes;
struct mux_acb acb;
int wwan_q_offset;
u16 acb_tx_sequence_nr;
u16 adb_tx_sequence_nr;
unsigned long long acc_adb_size;
unsigned long long acc_payload_size;
u8 initialized:1, ev_mux_net_transmit_pending:1, adb_prep_ongoing;
};
like, look at her. so many fields. she's booked and busy πΈ
π¦ Members π¦
devβ pointer to thedevicestructure π«Άsessionβ the array of the MUX sessions, bestie. plural. many queens πchannelβ reference to the IP MUX channelpcieβ pointer to theiosm_pciestructimemβ pointer toiosm_imemwwanβ pointer toiosm_wwan(the original literally spells it "Poinetr" and honestly? iconic typo, we stan, moving on π )ipc_protocolβ pointer toiosm_protocolchannel_idβ the channel ID for MUXprotocolβ type of the MUX protocolul_flowβ UL Flow typenr_sessionsβ number of sessionsinstance_idβ the instance IDstateβ states of the MUX objecteventβ initiated actions to change the state of the MUX objecttx_transaction_idβ transaction id for the ACB command β¨rr_next_sessionβ next session number for round robinul_adbβ state of the UL ADB/ADGHsize_neededβ variable to store the size needed during ADB preparationul_data_pend_bytesβ pending UL data to be processed, in bytes πacbβ temporary ACB statewwan_q_offsetβ this will hold the offset of the given instance. useful while passing or receiving packets from the wwan/imem layer π§acb_tx_sequence_nrβ sequence number for the ACB headeradb_tx_sequence_nrβ sequence number for the ADB headeracc_adb_sizeβ statistic data for loggingacc_payload_sizeβ statistic data for logginginitializedβ MUX object is initialized βev_mux_net_transmit_pendingβ0means inform the IPC tasklet to pass the accumulated uplink ADB to CPadb_prep_ongoingβ flag for ADB preparation status
π SEE ALSO π
the whole friend group fr fr β kernel file ./drivers/net/wwan/iosm/iosm_ipc_mux.h union mux_cmd_param(9), struct mux_adth_dg(9), struct mux_qlth_ql(9), struct mux_qlth(9), struct mux_adb(9), struct mux_acb(9), ipc_mux_init(9), ipc_mux_deinit(9), ipc_mux_check_n_restart_tx(9), ipc_mux_get_active_protocol(9), ipc_mux_open_session(9), ipc_mux_close_session(9), ipc_mux_get_max_sessions(9)
go read them too, i'm not kidding, they're all linked for a reason π«Ά
mwah π that's the whole page. this one lives in ./drivers/net/wwan/iosm and it's dated October 2026 β so like, future-core of you to be reading it. bye bestie, drink water, close your sessions πΈπβ¨
π¦ 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